Projects
Errika

Errika

Live

One command to scaffold a production-ready Turborepo + Next.js monorepo — shared UI, Tailwind, Prisma, and sensible defaults already wired up.

Errika is an opinionated CLI scaffolding tool that eliminates the repetitive work of setting up a Turborepo monorepo from scratch. A single command generates a fully configured workspace: Next.js app, shared component library, Tailwind setup, Prisma with a base schema, TypeScript project references, and ESLint config — all pre-wired and building from the start. Templates are rendered via Handlebars, and Commander.js handles the interactive prompt flow. The tool is designed to be deterministic: run it twice with the same inputs, get the same output, no surprises.

Why I built this

I was setting up the same Turborepo structure for every new project — same folder layout, same shared packages, same config files copied and adjusted. The process was predictable enough to automate, so I did. Errika compresses two hours of setup into 30 seconds.

Use case

Developers and teams spinning up a new Next.js monorepo for a side project, internal tool, MVP, or client engagement. It's particularly useful at hackathons where the first hour is usually wasted on boilerplate that doesn't differentiate the product.

What I learned

Great CLI tools prioritize predictability above everything else. Users should know exactly what they're going to get before they run the command — and get exactly that every time. Clear prompts, deterministic output, and safe re-runs matter more than offering configuration flexibility that most users never need.

Where I got stuck

Template evolution without breaking existing generated projects is a genuinely hard problem. When the scaffold changes, what happens to projects already generated from an older version? Handling upgrade paths, respecting user customizations, and versioning templates forced me to think about the tool's maintenance story as seriously as its initial design.

Stack used

TypeScriptTypeScriptNode.jsNode.jsCLICommander.jsHandlebars