{"id":28826493,"url":"https://github.com/ebenezerdon/e7.chat","last_synced_at":"2026-05-05T09:32:14.722Z","repository":{"id":299859807,"uuid":"1002458790","full_name":"ebenezerdon/e7.chat","owner":"ebenezerdon","description":"The open-source alternative to ChatGPT | Built with NextJS and Appwrite","archived":false,"fork":false,"pushed_at":"2025-06-18T16:47:10.000Z","size":556,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-18T17:43:28.553Z","etag":null,"topics":["appwrite","chatbot","chatgpt","llm","nextjs","openai","openrouter"],"latest_commit_sha":null,"homepage":"https://e7.chat","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ebenezerdon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["ebenezerdon"]}},"created_at":"2025-06-15T14:21:18.000Z","updated_at":"2025-06-18T16:47:14.000Z","dependencies_parsed_at":"2025-06-18T17:43:36.791Z","dependency_job_id":"c2c3b4f0-3a9f-4c8a-8246-13d933e2a3a2","html_url":"https://github.com/ebenezerdon/e7.chat","commit_stats":null,"previous_names":["ebenezerdon/e7.chat"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ebenezerdon/e7.chat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebenezerdon%2Fe7.chat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebenezerdon%2Fe7.chat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebenezerdon%2Fe7.chat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebenezerdon%2Fe7.chat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ebenezerdon","download_url":"https://codeload.github.com/ebenezerdon/e7.chat/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebenezerdon%2Fe7.chat/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260676934,"owners_count":23045115,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appwrite","chatbot","chatgpt","llm","nextjs","openai","openrouter"],"created_at":"2025-06-19T03:04:40.058Z","updated_at":"2026-05-05T09:32:14.710Z","avatar_url":"https://github.com/ebenezerdon.png","language":"JavaScript","funding_links":["https://github.com/sponsors/ebenezerdon"],"categories":[],"sub_categories":[],"readme":"# e7.chat\n\n\u003e The open-source alternative to ChatGPT\n\nLive url: [https://e7.chat](https://e7.chat)\n\nA modern, full-featured AI chat application built with Next.js, featuring multi-provider AI model access, image generation, user authentication, chat sharing, branching conversations, file attachments, and cloud synchronization.\n\n## ✨ Features\n\n- 🤖 **Multi-AI Model Support** - Access 100+ AI models via OpenRouter integration\n- 🔐 **Multiple Authentication Methods** - Email/password and OAuth (Google, GitHub)\n- 📱 **Responsive Design** - Works seamlessly on desktop and mobile\n- 💾 **Cloud Sync** - Chat history synchronized across devices\n- 🔗 **Chat Sharing** - Share conversations with public links\n- 🎨 **AI Image Generation** - Create images with AI models\n- 🌙 **Dark Theme** - Beautiful, modern dark interface\n- 📂 **File Uploads** - Support for images and PDFs\n- 🔍 **Search Functionality** - Find chats quickly\n- 🎯 **Chat Management** - Rename, delete, and organize conversations\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- Node.js 18+ installed\n- An [Appwrite](https://appwrite.io) account (free)\n- An [OpenRouter](https://openrouter.ai)\n- An [OpenAI api key for image generation](https://platform.openai.com/docs/api-reference/introduction)\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/ebenezerdon/e7.chat.git\ncd e7.chat\n```\n\n### 2. Install Dependencies\n\n```bash\nnpm install\n```\n\n### 3. Environment Setup\n\nCreate a `.env.local` file in the project root:\n\n```env\n# OpenRouter API Configuration\nOPENROUTER_API_KEY=your_openrouter_api_key_here\n\n# Site Information (Optional)\nNEXT_PUBLIC_SITE_URL=http://localhost:3000\nNEXT_PUBLIC_SITE_NAME=e7.chat\n\n# Appwrite Configuration\nNEXT_PUBLIC_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1\nNEXT_PUBLIC_APPWRITE_PROJECT_ID=your_appwrite_project_id\nAPPWRITE_API_KEY=your_appwrite_server_api_key\n\n# Database Configuration (Optional - will use defaults)\nNEXT_PUBLIC_APPWRITE_DATABASE_ID=ai-chat-db\nNEXT_PUBLIC_APPWRITE_CHATS_COLLECTION_ID=chats\n\n# Optional: OpenAI API Key for image generation\nOPENAI_API_KEY=your_openai_api_key_for_images\n```\n\n### 4. Start Development Server\n\n```bash\nnpm run dev\n```\n\nVisit [http://localhost:3000](http://localhost:3000) to see your application running!\n\n## 🔧 Setup Guides\n\n### OpenRouter Setup\n\n1. **Get API Key**\n\n   - Visit [OpenRouter](https://openrouter.ai)\n   - Sign up for a free account\n   - Navigate to [API Keys](https://openrouter.ai/keys)\n   - Create a new API key\n   - Copy the key (starts with `sk-or-`)\n\n2. **Add to Environment**\n   ```env\n   OPENROUTER_API_KEY=sk-or-v1-your-key-here\n   ```\n\n### Appwrite Setup\n\n#### 1. Create Project\n\n1. Go to [Appwrite Console](https://cloud.appwrite.io)\n2. Create a new project\n3. Copy your Project ID\n\n#### 2. Configure Authentication\n\n1. Go to **Auth** → **Settings**\n2. Add your domain to **Domains**: `http://localhost:3000`, `https://yourdomain.com`\n3. Enable **Email/Password** authentication\n\n#### 3. Set Up OAuth (Optional)\n\nFor Google and GitHub sign-in, follow this [OAuth Setup Guide](./OAUTH_SETUP.md).\n\n#### 4. Create Database\n\n1. **Database**: `ai-chat-db`\n2. **Collections**:\n   - `chats` - Stores chat conversations\n   - `shared-chats` - Stores shared chat links\n   - `user-chat-metadata` - Optimized chat metadata\n   - `user-profiles` - User preferences and API keys\n\n#### 5. Set Permissions\n\nFor each collection, set these permissions:\n\n- **Create**: `users`\n- **Read**: `users`\n- **Update**: `users`\n- **Delete**: `users`\n\n#### 6. Get Server API Key\n\n1. Go to **Overview** → **Integrate with your server**\n2. Create an API Key with these scopes:\n   - `databases.read`\n   - `databases.write`\n3. Copy the key to `APPWRITE_API_KEY`\n\n## 🏗️ Tech Stack\n\n- **Framework**: [Next.js 15](https://nextjs.org/) with App Router\n- **Styling**: [Tailwind CSS 4](https://tailwindcss.com/)\n- **Authentication**: [Appwrite](https://appwrite.io/)\n- **Database**: [Appwrite Database](https://appwrite.io/docs/products/databases)\n- **AI Models**: [OpenRouter](https://openrouter.ai/) (100+ models)\n- **Image Generation**: [OpenAI DALL-E](https://openai.com/dall-e)\n- **Icons**: [Lucide React](https://lucide.dev/)\n- **Markdown**: [React Markdown](https://github.com/remarkjs/react-markdown)\n- **Code Highlighting**: [React Syntax Highlighter](https://github.com/react-syntax-highlighter/react-syntax-highlighter)\n\n## 📁 Project Structure\n\n```\ne7.chat/\n├── src/\n│   ├── app/                  # Next.js App Router\n│   │   ├── api/             # API Routes\n│   │   │   ├── chat/        # Chat completions\n│   │   │   ├── generate-image/  # AI image generation\n│   │   │   ├── generate-title/  # Auto-generate chat titles\n│   │   │   └── user/        # User management\n│   │   ├── auth/            # Authentication pages\n│   │   └── share/           # Shared chat pages\n│   ├── components/          # React Components\n│   │   ├── AuthModal.jsx    # Authentication modal\n│   │   ├── ChatThread.jsx   # Chat message display\n│   │   ├── Sidebar.jsx      # Chat history sidebar\n│   │   └── ...              # Other components\n│   ├── lib/                 # Utility libraries\n│   │   ├── appwrite.js      # Appwrite client config\n│   │   ├── auth.js          # Authentication logic\n│   │   └── db.js            # Database operations\n│   └── styles/              # CSS styles\n├── public/                  # Static assets\n├── .env.local              # Environment variables\n└── package.json            # Dependencies\n```\n\n## 🎯 Available AI Models\n\nThrough OpenRouter, you have access to:\n\n### Popular Models\n\n- **OpenAI**: GPT-4o, GPT-4o-mini, o1, o1-mini, o3-mini\n- **Anthropic**: Claude 3.5 Sonnet, Claude 3.5 Haiku, Claude 3 Opus\n- **Google**: Gemini 2.0 Flash, Gemini 1.5 Pro, Gemini 1.5 Flash\n- **Meta**: Llama 3.1 405B, Llama 3.1 70B, Llama 3.1 8B\n- **DeepSeek**: DeepSeek V3, DeepSeek R1\n\n### Specialized Models\n\n- **Qwen**: Qwen 2.5 series\n- **Mistral**: Mistral 7B, 8x7B, 8x22B\n- **Cohere**: Command R+\n- **And 90+ more models**\n\n### Scripts\n\n```bash\nnpm run dev          # Start development server\nnpm run build        # Build for production\nnpm run start        # Start production server\nnpm run lint         # Run ESLint\n```\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature-name`\n3. Make your changes\n4. Run linting: `npm run lint`\n5. Commit: `git commit -m \"Add feature\"`\n6. Push: `git push origin feature-name`\n7. Create a Pull Request\n\n## 📄 License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n## 🆘 Support\n\n- **OpenRouter**: [OpenRouter Documentation](https://openrouter.ai/docs)\n- **Appwrite**: [Appwrite Documentation](https://appwrite.io/docs)\n\n## 🙏 Acknowledgments\n\n- [Appwrite](https://appwrite.io) for backend services\n- [OpenRouter](https://openrouter.ai) for unified AI model access\n- [Next.js](https://nextjs.org)\n- [Tailwind CSS](https://tailwindcss.com)\n- [Lucide](https://lucide.dev) for icons\n\n---\n\nBuilt by [Ebenezer Don](https://github.com/ebenezerdon)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febenezerdon%2Fe7.chat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Febenezerdon%2Fe7.chat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febenezerdon%2Fe7.chat/lists"}