EN
getting-started

Introduction

What astro-ignite is, why it exists, and what it gives you out of the box.

Last updated

astro-ignite is a shadcn-style CLI for bootstrapping production-grade Astro sites built for AI agents. You get a finished site with SEO, i18n, performance, legal, and email pre-wired.

Why bother

Most Astro starters land at one of two extremes: a minimal hello world you assemble yourself, or an opinionated framework that hides decisions behind abstractions. astro-ignite picks a different point — opinionated defaults you fully own.

You get:

  • Lighthouse 100s on mobile out of the box, CI-enforced
  • Native i18n with one code path for monolingual and multilingual sites
  • Typed Schema.org JSON-LD built from schema-dts
  • A working contact form with Astro Actions, Zod, and your choice of Resend or SMTP
  • Cookie banner + legal templates that don’t pretend to be legal advice
  • Self-hosted Geist Sans + Mono with zero CLS on swap
  • Pure-Astro components — no React/Vue/Svelte runtime weighing down the page

Architecture

  • Shadcn-style CLI, not a framework. create-astro-ignite is a one-shot scaffolder. Once installed it’s gone from your node_modules — no imports, no plugin, no auto-update, no telemetry.
  • Three concerns, three packages. The CLI lives in packages/create-astro-ignite/. The real Astro projects live in packages/templates/<kind>/ (starter, docs, …). A shadcn-style component registry lives in packages/registry/. The CLI assembles a template; the registry’s atoms ship pre-installed.
  • Apps are canonical scaffolded outputs. apps/site and apps/docs are mirrors generated from the templates, not sources.

Tech stack

  • Astro 6 with native i18n, content collections, and Astro Actions (@astrojs/node@^10 adapter)
  • Tailwind v4 below the fold + scoped <style> above the fold; Beasties extracts critical CSS at build time
  • CSS variables for design tokens; tri-state dark mode via class flip
  • Astro + vanilla JS for every component — no React/Vue/Svelte/Radix anywhere. Native HTML primitives first (<details>, <dialog>, popover API); custom elements when native won’t do
  • schema-dts typed JSON-LD composed via @graph
  • Astro Actions + Zod + Resend or SMTP for the contact form
  • Plausible, env- and consent-gated; self-hosted Geist Sans + Mono
  • [email protected] workspaces, tsup for the CLI, vitest, changesets, Lighthouse CI (mobile + desktop, hard gate)

What it isn’t

astro-ignite is not a framework. The astro-ignite package on npm is a CLI for bootstrapping and maintaining your project — it never becomes a runtime dependency of the scaffolded site. After scaffolding, you own every line and can edit anything. Eject is free because there’s nothing to eject.

It’s also not a CMS, an auth system, or an e-commerce starter. It’s a site bootstrap.

Where to next

For a tour of what you get out of the box, head to Features. If you want to see code, jump straight to Quick start.