Skip to content

Getting started

Louise is the unopinionated toolkit: primitives you assemble yourself. Astroid is the opinionated preset on top—a section library, a theme system, and a single typed config that generates the Louise wiring a site would otherwise write by hand.

Astro → renderer / router / build
Louise → unopinionated primitives + framework glue (louise-toolkit)
Astroid → opinions: theme, sections, config, scaffold (astroidjs)

Dependencies flow one way—astroidjs → louise-toolkit, never the reverse.

Louise Astroid
You already have an Astro app Yes, add it No, it scaffolds a new one
You want to choose your own schema, routes, auth Yes No, it chooses for you
You want a running editable site today assembly required one command
You need a page-builder + section library build it ships 15 sections

If you’re adding editing to an app you already have, use Louise directly. If you’re starting a brand-new site on Cloudflare, start here.

Terminal window
pnpm create astroid my-site

Every option is prompted for; in a non-TTY each prompt takes its default, so the command is CI-safe. The business facts have no default, so a blank answer leaves each out of the config. The target directory must be empty.

pnpm create astroid [directory] [options]
--name <name> Brand / site name
--key <slug> Project key (slug); names the generated bindings
--archetype <type> marketing | storefront | wholesale | portfolio
--color <hex> Brand color
--host <domain> Primary domain, for example, example.com
--commerce <provider> square | stripe | fourthwall
--square-locations <n> single | multi (multi-merchant; needs --commerce square)
--map Self-hosted PMTiles/MapLibre location map
--pwa Installable PWA (scoped service worker + manifest)
--portal Customer/member portal (a second, isolated auth instance)
--realtime Live multi-editor editing (a per-page Durable Object)
--time-zone <zone> The business's IANA time zone, for example, Europe/Berlin
--currency <code> Its ISO 4217 currency, for example, EUR (required with --commerce)
--country <code> Its ISO 3166-1 alpha-2 country, for example, DE
--locale <tag> The site's BCP 47 locale, for example, de-DE
--credit-name <name> A "Site by <name>" credit in the footer
--credit-href <url> Where the credit links (pairs with --credit-name)
--app An app with no pages to edit (editor: false)
--into <path> One app into an existing repository, beside another

You get a working floor, not a blank page: an inline-editable home page, magic-link editor sign-in, the editor drawer wired up, migrations, and a wrangler.jsonc with every binding stubbed.