A retro-inspired secure chat application with AI integration
Botchato blends nostalgia, security, and AI—built for the future, inspired by the past!
I've always loved the look and feel of retro terminals and classic chat apps. With privacy becoming more important than ever, I wanted to build something that combined a nostalgic interface with modern security—end-to-end encryption and AI-powered features. The idea was to create a chat app that feels like hacking in a sci-fi movie, but is actually secure and practical for real conversations.
- 🔒 End-to-End Encryption - OpenPGP encryption for secure messaging
- 🤖 AI Integration - Powered by Google Gemini for intelligent conversations
- 🖥️ Retro Terminal UI - Pixel-perfect nostalgic design with modern usability
- 🔐 Secure Authentication - JWT-based auth with bcrypt password hashing
- ⚡ Real-time Chat - Seamless messaging experience
- 📱 Responsive Design - Works perfectly on all devices
- Next.js - React framework with SSR
- React - Component-based UI library
- Tailwind CSS - Utility-first CSS framework
- Custom Components - Retro terminal-inspired design
- Node.js - Runtime environment
- Express - Web application framework
- JWT - Authentication tokens
- bcrypt - Password hashing
- OpenPGP - End-to-end encryption
- Genkit - AI development framework
- Google Gemini API - Conversational AI
- Vercel - Frontend hosting
- Render/Heroku - Backend hosting
- Custom Domain - godofbot.site
- Node.js 18+
- npm or yarn
- Google Gemini API key
-
Clone the repository
git clone https://github.com/yourusername/botchato.git cd botchato -
Install dependencies
# Frontend npm install # Backend (if separate) cd backend npm install
-
Environment Setup Create a
.env.localfile in the root directory:GOOGLE_GEMINI_API_KEY=your_api_key_here JWT_SECRET=your_jwt_secret DATABASE_URL=your_database_url
-
Run the development server
npm run dev
-
Open your browser Navigate to
http://localhost:3000
Botchato implements robust end-to-end encryption using OpenPGP. The encryption process follows standard public-key cryptography:
C = E_K_pub(M)
Where:
C= Encrypted messageE_K_pub= Encryption with public keyM= Original message
Only the private key K_priv can decrypt C to recover the original message M, ensuring that only the intended recipient can read the message, even if intercepted.
- Retro Aesthetic - Inspired by classic terminals and sci-fi interfaces
- Modern Usability - Accessible, responsive, and user-friendly
- Security First - Privacy and encryption built into the core
- AI Enhanced - Intelligent features without compromising security
- Next.js & React - Building scalable web applications with SSR and API routes
- Node.js & Express - Secure backend development and authentication
- End-to-End Encryption - OpenPGP implementation and key management
- AI Integration - Working with Genkit and Google Gemini APIs
- Deployment - Vercel deployment, DNS configuration, and environment management
- Encryption Implementation - Seamlessly integrating E2E encryption with the chat UI
- API Integration - Handling errors, rate limits, and graceful failures
- DNS & Deployment - Managing domain verification and DNS propagation
- UI/UX Balance - Creating a retro aesthetic that's still modern and accessible
Add screenshots of your application here
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Live Demo: godofbot.site
- Documentation: [Coming Soon]
- Issues: GitHub Issues
- Inspired by classic terminal interfaces and retro computing
- Thanks to the open-source community for amazing tools and libraries
- Special appreciation for the cryptography community for security best practices
Built with 🤖 by Godofbot