Hey everyone! 👋
I wanted to share a project I've been working on called OmniChat.
I built it because I wanted a lightweight, unified web client to test different LLM providers (like Gemini, Groq, Anthropic, and others) without routing my personal API keys or chat logs through an unknown third-party backend server.
- GitHub Repository: https://github.com/abhinavarnav314-collab/OMNICHAT4
- Live Demo: https://abhinavarnav314-collab.github.io/OMNICHAT4/
How It Works & Architecture
- Zero Backend: The application is entirely client-side. It is built as a Progressive Web App (PWA) using React, TypeScript, and Vite. There is no central server handling user data.
- Client-Side Encryption: All API keys are securely encrypted and stored locally in the browser's IndexedDB using AES-GCM. Your credentials never touch an external server.
- Direct Browser Endpoints: Supports direct integration with providers that allow browser-side requests (such as Google Gemini and Groq).
Key Features
- Multi-Model Comparison: Test and compare responses side-by-side.
- Local Prompt Vault: Store and version reusable prompts directly in your browser.
- Offline Ready: Utilizes a Service Worker to cache assets so the app functions reliably offline.
What I'd Love Feedback On
Since this is heavily focused on privacy and client-side execution, I would love technical critiques or suggestions regarding:
- The security model for handling local browser encryption storage (IndexedDB + AES-GCM).
- Edge cases with PWA caching and service worker lifecycle management.
Try out the live demo, take a look at the code, and let me know what you think! All feedback and contributions are welcome. 🚀
Top comments (1)
How is it? Let me know in comments.