Skip to content

Start conformant.Stay conformant.

One strict baseline for every JavaScript and TypeScript repo: Biome, strict TypeScript, Git hooks, CI, and editor settings. Start new projects on it, bring existing ones up to it, and approve every change before it's written.

pnpm create xtarter-app@latest
◇ What is your project named?
│ my-app
◇ Which template would you like to use?
│ Vite + React + Tailwind
◇ Which package manager would you like to use?
│ pnpm
✔ Template downloaded to my-app
✔ package.json updated
✔ Dependencies installed successfully
✔ Git repository initialized
Next steps:
1. cd my-app 2. pnpm dev
Real CLI output, trimmed. The xtarterize runs are against a Vite + React fixture.

Two ways to get conformant

A new project and a five-year-old repo end up on the same baseline, so every project you open is set up the same way.

New projectcreate-xtarter-app

Pick one of four templates. The baseline is in place before your first commit.

pnpm create xtarter-app@latest
Read the create-xtarter-app guide

Existing repoxtarterize

Audit your configs, preview the plan, and apply only what you approve. Originals are backed up first.

pnpx xtarterize@latest init
Read the xtarterize guide

What lands in your repo

A dry run on a fresh Vite + React app plans 20 tasks across 25 files. Each one settles a question your team would otherwise argue about in review.

  • biome.json(new file)Lint and format rules from the Ultracite preset+125 -0
  • tsconfig.json(modified)Incremental builds on top of your strict settings+3 -1
  • vite.config.ts(modified)Type and lint errors in the dev overlay, bundle visualizer+5 -1
  • package.json(modified)Standard scripts and devEngines+21 -1
  • .husky/pre-commit(new file)Checks staged files before every commit+1 -0
  • commitlint.config.ts(new file)Conventional Commits, enforced on every commit+15 -0
  • knip.config.ts(new file)Finds unused files, exports, and dependencies+8 -0
  • .vscode/settings.json(new file)Format and fix on save with Biome+42 -0
  • AGENTS.md(new file)Project rules for AI coding agents+12 -0

…and 16 more files+424 -3 across 25 files

Nothing is written until you approve it

  • Preview the whole plan

    init --dry-run prints every task and per-file diff without writing any config files.

  • You approve every write

    init asks before it applies, and conflicts surface instead of overwriting your configs.

  • Backups before every change

    Originals are copied to .xtarterize/backups/ first, and undo restores the last run.

Stay conformant

Configs drift as tools upgrade and teammates come and go. Catch it before it merges, then pull the repo back to the baseline.

  • Fail the build on drift

    check exits non-zero when a repo falls out of conformance, so a CI step fails the pull request that introduced the drift.

  • Bring it back with sync

    sync offers only the tasks that drifted, with the same dry run, approval, and undo as init.

  • Only what drifted changes

    Tasks that already conform are skipped, so a run touches only the files that fell out of line.

Four templates that start conformant

Next.js or Vite with React, styled with Chakra UI or Tailwind CSS. Each one ships Biome, strict TypeScript, Git hooks, GitHub Actions workflows, VS Code settings, and agent skills before your first commit.

TemplateStackFlag
Next.js + Chakra UINext.js 16 prewired with Chakra UI v3, Biome, Playwright, and Turborepo.Next.js 16, Chakra UI v3, Biome, Turborepo-t next-chakra
Next.js + TailwindNext.js 16 with Tailwind CSS v4 and Biome, tuned for fast iteration.Next.js 16, Tailwind CSS v4, Biome-t next-tailwind
Vite + React + ChakraVite+ and React 19 on TanStack Router, styled with Chakra UI v3, tested with Vitest.Vite+ (Vite 8), React 19, Chakra UI v3, TanStack Router-t vite-chakra
Vite + React + TailwindVite+ and React 19 with Tailwind CSS v4 and TanStack Query caching built in.Vite+ (Vite 8), React 19, Tailwind CSS v4, TanStack Router-t vite-tailwind

Pass the flag to skip the template prompt, or browse all source repositories on GitHub.

How conformant is your repo?

check scores your repo against the baseline and changes nothing. Use npx, yarn dlx, or bunx if you prefer.

pnpx xtarterize@latest check
Or start a new project from a template