AI Chatbot for Everyone — access modern AI models in one place
Deni AI is a multi-model AI chat app for people who want strong model choice without juggling many separate subscriptions. It supports OpenAI, Anthropic, Google, Groq, xAI, and more via platform keys or bring-your-own-key (BYOK).
Live app: https://deniai.app
- Multi-model chat — switch between OpenAI, Claude, Gemini, Groq, xAI, and other routed models
- BYOK — connect your own provider API keys (encrypted at rest); BYOK usage is not counted against platform limits
- Tools — web search (Brave), page browse, image generation, and video (Veo) where enabled
- Memory & projects — personalization memories and project-scoped context for organized chats
- Teams — organizations, seats, and shared Pro access with usage visibility
- Billing — Stripe subscriptions (personal and team); optional self-host disable via
NEXT_PUBLIC_BILLING_DISABLED - Affiliate referrals — shareable invite links, QR codes, milestone reset credits, and selectable paid-plan rewards (three resets or a manually sent 30% OFF coupon)
- Auth — Google / GitHub OAuth, magic link, anonymous guest, passkeys, and 2FA (better-auth)
- i18n — English and Japanese (
next-intl) - Public guides & blog — original articles on model choice, verification, and practical AI use, available without an account
- PWA — installable progressive web app assets and service worker
| Area | Choice |
|---|---|
| Framework | Next.js 16 (App Router, React 19, React Compiler) |
| Language | TypeScript (strict) |
| Runtime | Bun (preferred) or Node.js 20+ |
| UI | Tailwind CSS v4, shadcn/ui (Base UI) |
| API | tRPC + TanStack Query |
| DB | PostgreSQL (Neon recommended) + Drizzle ORM |
| Auth | better-auth |
| Billing | Stripe |
| AI | Vercel AI SDK + provider SDKs / OpenRouter |
# Clone
git clone https://github.com/teamzisty/deni-ai.git
cd deni-ai
# Install
bun install
# Configure (copy example and fill required keys)
cp .env.example .env
# Database
bun run db:migrate:dev # local: uses .env.local
# or: bun run db:push
# Dev server → http://localhost:3000
bun devFull prerequisites, environment variables, Stripe, OAuth, and deployment steps: SETUP.md.
Self-hosting database: we recommend Neon. The app is already wired for Neon serverless Postgres.
| Doc | Purpose |
|---|---|
| SETUP.md | Env vars, database, Stripe, Docker / Dokploy, scripts |
| CONTRIBUTING.md | Contributor workflow and coding standards |
| SECURITY.md | Vulnerability reporting |
| CODE_OF_CONDUCT.md | Community guidelines |
| AGENTS.md | Agent / AI-assisted development guide |
src/
app/ # Next.js App Router (marketing, chat, settings, API)
components/ # UI, chat, auth, billing, team
db/schema/ # Drizzle schemas
lib/ # Auth, billing, chat, tools, providers
server/api/ # tRPC routers
messages/ # en.json, ja.json
migrations/ # Drizzle SQL migrations
packages/ # Workspace packages (e.g. disposable-email-domains)
See CONTRIBUTING.md. Day-to-day development targets the canary branch; master is the release/promotion target.
bun run lint
bun run format
bun run typecheck
bun run buildMIT License — see LICENSE.
If Deni AI is useful to you, consider supporting development on GitHub Sponsors:
https://github.com/sponsors/raicdev
Sponsorships help cover hosting, infrastructure, and ongoing maintenance so we can keep improving free and accessible AI chat.
For issues, questions, or suggestions, please open a GitHub issue or discussion.
Security vulnerabilities: report privately per SECURITY.md — do not use public issues.