The starter template for AI startups. Auth, checkout and i18n included. Français
← All posts Engineering

Move fast without breaking checkout

Alinement team Alinement team October 6, 2026
testingquality

A two-person AI startup doesn't have a QA team. It does have a checkout that loses real money when it breaks, and a pricing page that investors will open on their phones. Alinement replaces the QA team you don't have with checks that run automatically.

What runs before every commit

The commit hook in .githooks/ runs, in order:

  • Commit message check. Subjects follow Conventional Commits, so your changelog writes itself.
  • Test reminder. A logic change in src/js/ has to come with a test.
  • Format, lint and dead code. Biome formats and lints, and Knip flags unused files and exports before they pile up.
  • i18n parity. Every English key needs a French one, every blog post needs its translation, and translated pages have to point at each other.
  • One production build, then unit tests, Playwright browser tests, and an internal link check across the whole site.
  • Coverage floor. If browser-test coverage drops more than five points below the baseline, the commit is blocked unless you record the debt.

Screenshots that review themselves

bun run screenshots:check renders every page in English and French, light and dark, at three viewport sizes, then compares each image against the stored baseline. Similar pages share one representative image, so the check stays fast. When something changes you get a side-by-side comparison with the changed pixels highlighted, so a shifted button on a phone layout is hard to miss.

A performance floor

bun run lighthouse:check audits every built page and fails below a score of 90 for performance, accessibility, best practices and SEO. Deliberate exceptions, such as noindex checkout pages, are written down in the policy file rather than ignored.

Why this matters for AI products

AI features change constantly: new prompts, new providers, new loading states. The UI around them should be the part you never have to worry about. With these gates in place, you can refactor the data service at midnight, push, and trust that the pricing page, the checkout and the French translation still work.

The troubleshooting guide explains what each gate checks and how to fix it when it fails.

Share this
Launch offer: 20% off either licence with code LAUNCH20 at checkout.