Skip to content

SashankBhamidi/SynAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SynAI

Enterprise-grade multi-provider AI chat interface with file upload capabilities

CI Security TypeScript React CC BY-NC-SA 4.0

Live Demo β€’ Documentation β€’ Contributing β€’ Issues

πŸš€ Overview

SynAI is a production-ready, privacy-first AI chat interface that supports multiple AI providers in a unified experience. Built with enterprise-grade architecture, comprehensive testing, and designed for extensibility.

✨ Key Features

  • πŸ€– Multi-Provider Support: OpenAI GPT, Anthropic Claude, Perplexity AI
  • πŸ“Ž File Upload Capabilities: Images, PDFs, documents with intelligent content extraction
  • πŸ’¬ Advanced Chat Features: Conversation branching, search, templates, and history
  • 🎨 Modern UI/UX: Responsive design, dark/light themes, accessibility-first
  • πŸ”’ Privacy-First Architecture: All data stored locally, zero external tracking
  • 🏒 Enterprise Ready: Comprehensive testing, CI/CD, security auditing
  • πŸ”§ Developer Friendly: TypeScript, extensive documentation, contribution guidelines

πŸ“‹ Table of Contents

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ and npm 9+
  • Modern web browser
  • API keys for desired AI providers

Installation

# Clone the repository
git clone https://github.com/SashankBhamidi/SynAI.git
cd SynAI

# Install dependencies
npm install

# Start development server
npm run dev

Visit http://localhost:3000 to access SynAI.

API Configuration

  1. Click the Settings icon in the interface
  2. Add your API keys:

Security Note: API keys are stored locally in your browser and never transmitted to external servers.

✨ Features

AI Providers

  • OpenAI GPT Models: GPT-4, GPT-3.5 Turbo with various configurations
  • Anthropic Claude: Claude-3 family with different capability tiers
  • Perplexity AI: Web-enhanced AI responses with real-time information

Chat Capabilities

  • Conversation Management: Organize chats in folders, search conversations
  • Message Templates: Pre-defined prompts for common use cases
  • Conversation Branching: Explore different conversation paths
  • Export/Import: Share conversations and settings

File Processing

  • Image Analysis: Upload and analyze images with AI vision models
  • PDF Processing: Extract and process content from PDF documents
  • Document Support: Handle various document formats with intelligent parsing

User Experience

  • Responsive Design: Optimized for desktop, tablet, and mobile
  • Accessibility: WCAG 2.1 compliant with keyboard navigation
  • Customizable Themes: Dark/light modes with custom color schemes
  • Keyboard Shortcuts: Power-user features for efficient navigation

πŸ—οΈ Architecture

SynAI follows enterprise-grade architectural patterns:

Frontend Architecture

src/
β”œβ”€β”€ components/          # Reusable UI components
β”‚   β”œβ”€β”€ ui/             # Base design system components
β”‚   └── ...             # Feature-specific components
β”œβ”€β”€ services/           # AI provider integrations
β”‚   └── providers/      # Individual provider implementations
β”œβ”€β”€ utils/              # Utilities and helpers
β”œβ”€β”€ hooks/              # Custom React hooks
β”œβ”€β”€ types/              # TypeScript type definitions
└── contexts/           # React context providers

Key Architectural Principles

  • Separation of Concerns: Clear boundaries between UI, business logic, and data
  • Provider Pattern: Extensible AI provider integration system
  • Component Composition: Reusable, testable component architecture
  • Type Safety: Comprehensive TypeScript coverage
  • Error Handling: Robust error boundaries and graceful degradation

πŸ› οΈ Development

Development Workflow

# Start development server
npm run dev

# Run tests
npm test

# Type checking
npm run typecheck

# Linting and formatting
npm run lint
npm run lint:check

# Build for production
npm run build

# Preview production build
npm run preview

Testing Strategy

  • Unit Tests: Component and utility function testing
  • Integration Tests: AI provider service testing
  • End-to-End Tests: Critical user flow validation
  • Type Checking: Comprehensive TypeScript validation

Quality Assurance

  • ESLint: Code quality and consistency enforcement
  • TypeScript Strict Mode: Enhanced type safety
  • Automated Testing: CI/CD pipeline integration
  • Security Auditing: Dependency vulnerability scanning

🀝 Contributing

We welcome contributions from the community! SynAI is designed to be contributor-friendly with comprehensive documentation and clear guidelines.

Ways to Contribute

  • πŸ› Bug Reports: Help us identify and fix issues
  • πŸ’‘ Feature Requests: Suggest new capabilities
  • πŸ”§ Code Contributions: Implement features and fixes
  • πŸ“š Documentation: Improve guides and examples
  • 🎨 Design: Enhance UI/UX and accessibility

Getting Started

  1. Read our Contributing Guide
  2. Check Good First Issues
  3. Join our Discussions
  4. Review the Code of Conduct

Development Setup

See our detailed Development Guide for complete setup instructions.

πŸ“– Documentation

Resource Description
Setup Guide Complete installation and configuration
API Integration Adding new AI providers
Architecture Guide Technical architecture overview
Deployment Guide Production deployment instructions
Contributing Guide Contribution guidelines and workflows

🌟 Community

Join our growing community of contributors and users!

GitHub Discussions Issues

Community Guidelines

  • Be Respectful: Follow our Code of Conduct
  • Be Helpful: Assist other community members
  • Be Constructive: Provide actionable feedback and suggestions
  • Be Patient: Maintainers and contributors are volunteers

Getting Support

  1. Documentation: Check our docs first
  2. Search Issues: Look for existing solutions
  3. GitHub Discussions: Ask questions and share ideas
  4. Create Issues: Report bugs or request features

πŸ”’ Security

Security is a top priority for SynAI:

  • Privacy-First: No data collection or external tracking
  • Local Storage: API keys and conversations stored locally
  • Security Auditing: Regular dependency vulnerability scanning
  • Responsible Disclosure: Security Policy

πŸ“Š Project Status

  • βœ… Stable: Production-ready with comprehensive testing
  • πŸ”„ Active Development: Regular updates and improvements
  • 🀝 Community Driven: Open to contributions and feedback
  • πŸ“ˆ Growing: Expanding feature set and provider support

πŸ™ Acknowledgments

  • Thanks to all contributors who have helped improve SynAI
  • Built with amazing open source technologies and libraries
  • Inspired by the AI community's commitment to accessible AI tools

πŸ“„ License

This project is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

What this means:

βœ… You CAN:

  • Use for personal projects and learning
  • Modify and adapt the code
  • Share your modifications (under same license)
  • Use for educational and research purposes

❌ You CANNOT:

  • Use for commercial purposes or profit
  • Host competing commercial services
  • Sell or monetize the software

🌐 Official commercial hosting is exclusively provided at synai.site as a free service.

See the LICENSE file for complete terms.


Made with ❀️ by Sashank Bhamidi and the SynAI community

⭐ Star this project β€’ πŸ› Report Issues β€’ πŸ’‘ Request Features

About

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Languages