Quick Start
Once the CLI is available, setup will look like this:
Prerequisites
- Node.js 20 or later
- pnpm 10 or later
- A Cloudflare account (free tier is fine)
- Wrangler CLI —
npm install -g wrangler - A license token from indiepub.dev
0. Configure your npm registry
@indiepub/* packages are distributed through a private registry. Before the CLI can install dependencies, set up your license key. The generated project will include an .npmrc that picks this up automatically.
1. Scaffold your project
pnpm create indiepubThe CLI will ask for your site title, author details, which theme to use, and which syndication targets to enable. It generates:
package.jsonwith all required dependencies.npmrcpointing@indiepub:registryatregistry.indiepub.devastro.config.mjswith your integration configwrangler.tomlwith Cloudflare D1 and R2 bindings.dev.vars.examplelisting all required secrets.github/workflows/deploy.ymlfor Cloudflare Pages CI (optional)
2. Install dependencies
cd my-sitepnpm install3. Create your D1 database
npx wrangler d1 create my-site-dbCopy the database_id from the output into wrangler.toml.
4. Run migrations
pnpm db:migrate5. Configure secrets
Copy .dev.vars.example to .dev.vars and fill in your values:
cp .dev.vars.example .dev.varsAt minimum you need INDIEPUB_TOKEN — a random secret used to authenticate Micropub and admin requests:
INDIEPUB_TOKEN=some-long-random-string6. Start the dev server
pnpm devVisit http://localhost:4321 to see your site, and http://localhost:4321/admin/onboarding to set up your profile.
Next steps
- Configure syndication targets to POSSE to Bluesky or Mastodon
- Browse the packages reference to understand what
@indiepub/astroexposes - Set up email subscriptions with Resend