Skip to main content
Every Kazzle app is self-contained. Infrastructure is provisioned automatically — you just describe what you want and the AI picks the right pieces.

The stack

Each layer is opt-in. A landing page uses none of this. A realtime collaborative app might use all of it.
LayerTechnologyWhat it does
DatabaseNeon PostgresDedicated, scale-to-zero instances
ORMDrizzle ORMType-safe queries and migrations
Realtime syncPowerSyncLocal-first reads, automatic sync
AuthBetter AuthSelf-hosted, runs in your app
Ephemeral dataUpstash RedisPresence, typing indicators, cursors
HostingFly.ioAutomatic deploys with live URLs

Database

Ask the AI to add a database and it provisions a Neon Postgres instance. Schema is managed through Drizzle ORM — the AI writes migrations, commits them, and they run automatically. See Databases for the full workflow.

Realtime sync

For apps that need instant reads and offline support, the AI sets up PowerSync — a sync layer between Postgres and a local SQLite database in the browser. Users never wait for network. Data is always available locally. See Realtime & Offline-First Apps for architecture and patterns.

Auth

Better Auth runs inside your app’s process component. The AI sets up email/password auth, session management, and wires it into PowerSync if sync is enabled. Users get their own data, scoped by user ID in sync rules.

Ephemeral realtime

For things that don’t need persistence — typing indicators, live cursors, presence — the AI uses Upstash Redis pub/sub. Lightweight, no schema needed.

Architecture

┌─────────────────────────────────────────────┐
│ UI Component (browser)                      │
│  ├── PowerSync client (local SQLite)        │
│  ├── Better Auth client (session)           │
│  └── React app                              │
├─────────────────────────────────────────────┤
│ Process Component (server)                  │
│  ├── GET /api/powersync/token  (JWT signing)│
│  ├── POST /api/sync            (CRUD upload)│
│  ├── /api/auth/*               (Better Auth)│
│  ├── Migration runner          (schema mgmt)│
│  └── Sync rule updater         (admin API)  │
├─────────────────────────────────────────────┤
│ Infrastructure (provisioned by Kazzle)      │
│  ├── Neon Postgres                          │
│  ├── PowerSync on Fly.io                    │
│  └── Upstash Redis (opt-in)                 │
└─────────────────────────────────────────────┘
Not every app needs all of this. A landing page is just the UI component. An API service is just the process component. The AI picks what’s needed based on what you ask for.