Iridium
A full-stack starter kit built for shipping AI-powered products. Clone the repo, configure your environment, and have a working application with authentication, AI chat, and agent tools in minutes.
What is included
Iridium ships with a complete authentication system, an AI chat interface with agent tools, persistent notes, and a set of production-ready patterns for forms, error handling, and role-based access control.
- Sign in and sign up with email and password via Better Auth. Sessions are secure, HTTP-only, and automatically refreshed.
- Role-based access control with USER, EDITOR, and ADMIN roles baked into the database schema and session helpers.
- AI chat powered by VoltAgent and the Vercel AI SDK. Messages persist to PostgreSQL and are organized into threads so conversations are never lost.
- Agent tools that let the AI assistant take actions on behalf of the user. The included note tools demonstrate the full pattern: tool definition, database mutation, and inline tool UI rendering.
- A browsable Notes page where users can see everything the agent has saved for them, completing the tool-to-UI vertical slice.
- Working memory powered by VoltAgent and PostgreSQL. The agent remembers user preferences and context across conversations.
- Client and server-side form validation using Zod and React Hook Form, with a working example in the Form route.
The stack
Every technology was chosen to keep the codebase type-safe from database to UI. Prisma generates types from the schema, Zod validates runtime data, React Router 7 types routes and loaders, and CVA ensures type-safe component variants.
- React Router v7 with SSR and config-based routing
- PostgreSQL via Prisma, schema at prisma/schema.prisma
- VoltAgent for agent orchestration, memory, and tool execution
- Vercel AI SDK for streaming chat UI
- Tailwind CSS v4 and DaisyUI v5 for styling
- Bun for local development, Node 20 Alpine for production
Adding your own tools
The included note tools show the complete pattern for extending the agent. To add a new tool:
- Define a Prisma model in
prisma/schema.prismaand run a migration. - Create a server data access module in
app/models/. - Add a
createTool()definition inapp/voltagent/agents.tsand wire it into the agent's tools array. - Build a tool UI component in
app/components/and route it in the chat thread view. - Optionally add a route page to browse the records outside of chat.
Getting started
Install dependencies with bun install, run migrations with bunx prisma migrate dev, seed the database with bunx prisma db seed, and start the dev server with bun run dev. The app will be available at http://localhost:5173.