/code/templates) of multi-page starts — landing page, SaaS dashboard, AI chat, e-commerce, portfolio, blog — that you can clone into a fresh project instead of starting from a single-screen scaffold.
The stack
This isn’t a soft default — every project ships with these installed. You can swap any of them by asking (“rewrite routing to use TanStack Router”), but most people don’t. The authoritative dep list is the project’s
package.json (the agent treats it as source-of-truth before installing anything).
What lands automatically
index.html → src/main.tsx → src/App.tsxentry chain with one starter route- A root layout with providers wired up (Query client, Router,
next-themes) - All 49 shadcn/ui primitives ready to import from
@/components/ui/*(Button, Input, Dialog, Card, …) — never runnpx shadcn add - Tailwind v3 + HSL semantic tokens in
src/index.css(text-foreground,bg-background,bg-primary, …) — the agent never uses rawtext-white/ hex literals - TypeScript,
cn()helper atsrc/lib/utils.ts,@/aliased to./src/
What gets added on demand
The agent installs anything it needs to build what you asked for. Common additions:- Backend —
@supabase/supabase-jswhenever you mention auth, database, or storage - Payments —
stripeorrazorpayfor checkout flows - Email —
resendfor transactional email - Specialised UI —
@radix-ui/react-*extras, drag-and-drop kits, table libraries, rich-text editors
Customising the stack
The template is a starting point, not a contract. Anything in it can be replaced:- Different router? “Rewrite to use
@tanstack/router.” - SSR instead of SPA? “Convert to Next.js App Router.” (Note: this changes the deploy story too — the default Vibely host expects a static SPA build.)
- Different UI kit? “Remove shadcn and use Mantine instead.”
Why pre-installed matters
Three things you get for free:- Preview-before-prompt. A live preview URL appears in seconds, not after a long install step.
- Instant hot reload. Save a file, see the change. No
npm installbetween you and your edit. - Smaller, faster prompts. The agent doesn’t waste tokens regenerating boilerplate — it writes only the parts that vary, so each turn lands faster.
