A sharp AI workspace for chatting, comparing, saving prompts, and tracking credits.
- Run it locally with
npm run dev - Open http://localhost:3000
- App shell: dark, motion-heavy, and built for fast model switching
- Next.js 16 App Router
- React 19
- Prisma + SQLite
- Tailwind CSS 4
- Zustand for state management
- Framer Motion for motion and transitions
- OpenRouter API integration
Add your own screenshots or a short demo GIF here when you're ready. A good set is:
- Chat screen with a live response stream
- Comparison mode with two model outputs side by side
- Dashboard showing credits and usage
npm installCreate a .env.local file if you want to override the default database location:
DATABASE_URL="file:./prisma/dev.db"If you want to use your own API keys, set them in the app settings or wire them into src/lib/api-keys.ts.
npx prisma db pushnpm run devOpen http://localhost:3000 in your browser.
npm run dev
npm run build
npm run start
npm run lint- Chat for fast model conversations
- Model browser for discovery and selection
- Comparison mode for side-by-side answers
- Prompt library for reusable workflows
- Dashboard for credits and usage
flowchart LR
User([User]) --> Chat[Chat Interface]
Chat --> Router[OpenRouter Models]
Chat --> Search[Tavily Search]
Chat --> Images[Unsplash Images]
Router --> Compare[Comparison Mode]
Router --> Models[Model Browser]
Chat --> Credits[Credit Tracking]
Chat --> Prompts[Prompt Library]
Credits --> Dashboard[Dashboard]
Prompts --> Chat
Models --> Chat
The UI uses Framer Motion for smooth view transitions, panel changes, and loading states. The animated hero above gives the README the same energy.
src/app- app routes, layout, globals, and API endpointssrc/components- chat, dashboard, models, prompts, layout, and UI componentssrc/lib- storage, state helpers, OpenRouter client, Prisma setup, and utilitiesprisma- database schema and local SQLite data
- The app falls back to a local SQLite database by default.
- OpenRouter access is required for live model chat.
- Some features depend on optional third-party keys such as Tavily and Unsplash.
This app can be deployed like a standard Next.js project. Make sure your environment variables and database path are configured for the target environment before deploying.