Templates
Four production templates: Next.js and TanStack Start, each plain or with i18n.
Framework choice
The CLI offers two main frameworks; both have equal priority:
- Next.js App Router: Server Components, Turbopack, React Compiler. The i18n template with next-intl is kept separate.
- TanStack Start: type-safe routing and SSR. Uses Paraglide JS for i18n.
Multi-language support isn’t stripped from code; it’s provided via separate templates. When the CLI asks “Do you want multi-language support?”, the matching template is copied:
templates: plain (single language)templates-i18n: includes locale routing and translation infrastructure
Shared stack
Aside from framework-specific routing, every template ships with these packages already installed:
| Area | Packages |
|---|---|
| State | TanStack Query, Zustand, nuqs |
| Form | React Hook Form, Zod |
| Hooks | usehooks-ts |
| UI | Base UI, Framer Motion, Lucide React |
Theme support and Zod-based env validation also ship with the template.
ViraStack AI encodes these choices as agent rules. Design skills are added separately by Start setup (emil-design-eng, make-interfaces-feel-better).
Folder structure
src/
├── app/ | routes/ # Next.js App Router | TanStack file-based routing
├── features/
│ └── landing/ # Sample feature (deletable)
│ ├── api/
│ ├── components/
│ ├── data/
│ ├── helpers/
│ ├── hooks/
│ ├── icons/
│ ├── schemas/
│ ├── stores/
│ ├── types/
│ └── index.ts
├── components/
│ ├── ui/
│ └── shared/
├── hooks/
├── stores/
├── schemas/
├── providers/
├── lib/
├── config/
├── constants/
├── helpers/
├── types/
├── styles/
└── env.ts
.agents/
└── skills/ # emil-design-eng, make-interfaces-feel-better
.cursor/
└── rules/ # ViraStack AI architecture rules
AGENTS.md
CLAUDE.mdReturn to installation to set up, or see the CLI page for flags.
