DEV Community

Abhinav Arnav
Abhinav Arnav

Posted on

OmniChat: A Zero-Backend AI Chat PWA with Local AES-GCM Encryption. #showdev, #open-source, #javascript, #ai

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.


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:

  1. The security model for handling local browser encryption storage (IndexedDB + AES-GCM).
  2. 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)

Collapse
 
abhinav_arnav_8fb1769740e profile image
Abhinav Arnav

How is it? Let me know in comments.