Overview
xtarterize is a CLI that detects a JavaScript or TypeScript projectβs stack, resolves applicable configuration tasks, previews the changes, and applies them with backups. It is the Day 1+ tool in the broader xtarter stack, alongside the create-xtarter-app scaffolder.
Run npx xtarterize init to add or update configurations for Biome, TypeScript, Renovate, commitlint, VS Code, GitHub Actions, and other supported tasks.
Why I Built This
I found myself repeatedly copying configuration files between projects: ESLint configs, Prettier setups, GitHub Actions workflows, and TypeScript settings. Each new project required the same setup, and keeping those configurations in sync across repositories was difficult.
Rather than maintaining templates that quickly go stale, I wanted a tool that could inspect an existing project and apply the configurations that fit its stack.
Key Features
Stack Detection
Reads package.json, lockfiles, and existing config files to build a ProjectProfile. The detector covers frameworks, bundlers, styling systems, package managers, and existing configuration.
Non-Destructive Application
Configuration updates use the patching strategy appropriate to each file, including deep merges, YAML merges, and targeted AST patches. Modified files are backed up to .xtarterize/backups/.
Preview and Status
The CLI resolves task status and shows a diff before applying changes. It also provides commands for checking, syncing, adding individual tasks, undoing a run, and restoring a file from backup.
Idempotent Tasks
Tasks are designed to be idempotent, so already-applied configuration is not rewritten unnecessarily.
Task Categories
Covers linting (Biome), TypeScript, CI/CD (GitHub Actions), dependencies (Renovate), release tooling, quality checks (Knip), code generation (Plop), monorepo tooling (Turborepo), editor settings, and AI agent configuration (AGENTS.md).
Build Notes
Safe Rollouts
The preview, backup, and undo flow lets developers adopt configuration changes without losing the ability to review or restore their existing setup.
Part of xtarter
xtarterize is the existing-project companion to create-xtarter-app, which scaffolds new projects from the same set of conventions.