Tech stack
| Layer | What it uses |
|---|---|
| Web app | Next.js 16, React 19, Tailwind CSS v4, Motion |
| Backend | Convex: database, functions, streaming, crons |
| Auth | Clerk |
| Models | OpenRouter via the AI SDK |
| Tooling | Bun workspaces, TypeScript |
Everything beyond Convex, Clerk, and OpenRouter is optional and switches on with its own keys: billing (Autumn), web search (Exa), memory (Supermemory), analytics (PostHog, Axiom), tracing (Braintrust), email (Resend), and the support agent (Median). Leave them out and Whirl hides the features they power. See docs/configuration.md.
Source captured: 2026-10-11