{"id":26019645,"url":"https://github.com/akazwz/openchat-monorepo","last_synced_at":"2025-04-11T23:16:51.598Z","repository":{"id":280817898,"uuid":"942635105","full_name":"akazwz/openchat-monorepo","owner":"akazwz","description":"一个现代化的全栈 AI Chatbot 应用，使用 React 和 Cloudflare Workers 结合 Connect RPC 构建，通过 Tauri 支持 Web、移动 App 和桌面端","archived":false,"fork":false,"pushed_at":"2025-04-11T03:54:54.000Z","size":6350,"stargazers_count":535,"open_issues_count":0,"forks_count":52,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-11T23:16:46.430Z","etag":null,"topics":["cloudflare","cloudflare-workers","connectrpc","react","react-router","tauri"],"latest_commit_sha":null,"homepage":"https://chat.antonai.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akazwz.png","metadata":{"files":{"readme":"README.en.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-03-04T12:24:20.000Z","updated_at":"2025-04-09T10:14:47.000Z","dependencies_parsed_at":"2025-03-05T13:42:28.785Z","dependency_job_id":"bb5cddaf-cfb8-4dfa-870d-294d69d7a3fa","html_url":"https://github.com/akazwz/openchat-monorepo","commit_stats":null,"previous_names":["akazwz/openchat-monorepo"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akazwz%2Fopenchat-monorepo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akazwz%2Fopenchat-monorepo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akazwz%2Fopenchat-monorepo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akazwz%2Fopenchat-monorepo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akazwz","download_url":"https://codeload.github.com/akazwz/openchat-monorepo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248492885,"owners_count":21113163,"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":["cloudflare","cloudflare-workers","connectrpc","react","react-router","tauri"],"created_at":"2025-03-06T07:35:53.880Z","updated_at":"2025-04-11T23:16:51.574Z","avatar_url":"https://github.com/akazwz.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# OpenChat\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/logo.png\" alt=\"OpenChat Logo\" width=\"200\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  A modern, full-stack application featuring AI-powered chat capabilities, built with React and multi-backend architecture (Cloudflare Workers/Node.js/Golang), supporting cross-platform clients for web, mobile app, and desktop\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e •\n  \u003ca href=\"#tech-stack\"\u003eTech Stack\u003c/a\u003e •\n  \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e •\n  \u003ca href=\"#deployment\"\u003eDeployment\u003c/a\u003e •\n  \u003ca href=\"#project-structure\"\u003eProject Structure\u003c/a\u003e •\n  \u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e •\n  \u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"right\"\u003e\n  \u003ca href=\"README.md\"\u003e中文\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://chat.antonai.com\" target=\"_blank\"\u003e\u003cstrong\u003e🔥 Live Demo\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003e\u003cstrong\u003eQR Code Login\u003c/strong\u003e\u003c/p\u003e\n  \u003cimg src=\"docs/signin.png\" alt=\"OpenChat Login Screen\" width=\"600\"/\u003e\n  \n  \u003cp\u003e\u003cstrong\u003eAndroid App\u003c/strong\u003e\u003c/p\u003e\n  \u003cimg src=\"docs/app.png\" alt=\"OpenChat Android App\" width=\"400\"/\u003e\n  \n  \u003cp\u003e\u003cstrong\u003eIntelligent Search\u003c/strong\u003e\u003c/p\u003e\n  \u003cimg src=\"docs/search.png\" alt=\"OpenChat Search Feature\" width=\"800\"/\u003e\n\u003c/div\u003e\n\n## ✨ Why OpenChat?\n\nOpenChat isn't just another AI chat application. It's built with a modern tech stack to provide a comprehensive AI conversation experience:\n\n- 💪 **Full-stack TypeScript** - Type safety across frontend and backend for improved developer productivity\n- 🚀 **Global Deployment** - Easily deploy worldwide with Cloudflare Workers in seconds\n- 🔄 **Cross-Platform Seamless Sync** - Real-time synchronization across web, mobile, and desktop, switch devices anytime while continuing your conversations\n- 📦 **Fully Featured** - Complete functionality out of the box with no additional configuration needed\n- 🧩 **Highly Extensible** - Modular design makes it easy to add new models and features\n\n## Features\n\n- 🤖 **AI-Powered Interactions**: Integration with OpenAI GPT-4 for natural language conversations\n- 🎨 **Text-to-Image Generation**: Support for Flux AI models to create images from text descriptions\n- 🔍 **Web Search Capabilities**: Integrated Brave Web search functionality\n- 📱 **Multi-Platform Support**: Works on both web browsers and as native applications (via Tauri)\n- 📊 **Modern Database Architecture**: PostgreSQL with Drizzle ORM and Cloudflare Hyperdrive optimization\n- 🔒 **Type-Safe API Communication**: Using Connect RPC and Protocol Buffers\n- 📷 **QR Code Login**: Support for scanning QR codes to log in on Tauri client apps\n- 🖼️ **Image Storage**: Efficient image storage with Cloudflare R2\n- ⚡ **Real-time Responses**: Fast, responsive interface with modern React components\n- 📲 **Three-Platform Sync**: Seamlessly switch between web, mobile, and desktop with real-time chat history synchronization\n\n## Tech Stack\n\n### Frontend\n- **Framework**: React with React Router\n- **UI Library**: Chakra UI\n- **Client Support**: Tauri\n\n### Backend\n- **Serverless**: Cloudflare Workers (Node.js and Golang backend implementations are in development)\n- **API**: Connect RPC with Protocol Buffers\n- **Type Generation**: buf\n\n### Database\n- **Database**: Neon (PostgreSQL)\n- **ORM**: Drizzle ORM\n- **Connection Optimization**: Cloudflare Hyperdrive\n\n### Development Tools\n- **Monorepo Management**: pnpm workspaces\n- **Code Formatting**: Biome\n- **Deployment**: Cloudflare\n\n## Getting Started\n\n### Prerequisites\n\n- [Node.js](https://nodejs.org/) (v18 or later)\n- [pnpm](https://pnpm.io/)\n- [Wrangler CLI](https://developers.cloudflare.com/workers/cli-wrangler/install-update/)\n- [buf CLI](https://buf.build/docs/installation)\n\n### Installation\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/akazwz/openchat-monorepo.git\n   cd openchat-monorepo\n   ```\n\n2. Install dependencies:\n   ```bash\n   pnpm install\n   ```\n\n3. Set up environment variables:\n   ```bash\n   # Create environment files based on examples\n   cp packages/workers/.dev.vars.example packages/workers/.dev.vars\n   cp packages/frontend/.env.example packages/frontend/.env\n   ```\n\n4. Generate Protocol Buffer types:\n   ```bash\n   pnpm gen\n   ```\n\n### Development\n\nStart the development servers:\n```bash\npnpm dev\n```\n\nThis will start both the frontend and Cloudflare Worker in development mode.\n\n## Deployment\n\nDeploy the application to Cloudflare:\n```bash\npnpm fly\n```\n\n## Project Structure\n\n```\n├── packages\n│   ├── frontend         # React frontend application\n│   ├── workers          # Cloudflare Workers backend service\n│   ├── nodejs           # Node.js backend implementation\n│   └── golang           # Golang backend implementation\n├── proto                # Protocol Buffer definitions\n```\n\n## Downloads\n\n- [Android APK Package](https://cdn.bytepacker.com/05eb5d86-a1a1-4076-bf63-5dd810288e25/app-universal-release.apk)\n- [Mac (Apple Silicon) DMG Package](https://cdn.bytepacker.com/2f02716a-d9bf-43db-b511-4fd0fd810813/openchat_0.1.0_aarch64.dmg)\n\n## Contributing\n\nContributions are welcome! Feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nWe're still deciding which open source license to use. Stay tuned! If you have any suggestions or thoughts, we'd love to hear them.\n\n---\n\n## ⚠️ Warning\n\n**This project is currently under active development.** Features may change, APIs may be unstable, and there might be bugs. Use in production environments at your own risk.\n\n---","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakazwz%2Fopenchat-monorepo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakazwz%2Fopenchat-monorepo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakazwz%2Fopenchat-monorepo/lists"}