X

Xerixy Launch Kit

Astro SaaS template

Cloudflare-native MVP

Launch a real SaaS surface without splitting your frontend and backend.

This starter combines Astro SSR, React islands, D1 persistence, R2 media delivery, and deploy-ready Wrangler config into one project. It is opinionated enough to ship an MVP and light enough to reshape for the next product.

Runtime

Workers SSR

Database

D1 + Drizzle

Storage

R2 over Worker route

R2 empty state

Your landing visuals will appear here.

The page is already querying the `landing-page/` prefix from your Cloudflare R2 bucket. Run `pnpm r2:seed` after setting `R2_BUCKET_NAME` to upload the sample SVG assets.

What ships in the template

A stack that already speaks Cloudflare.

The template keeps the moving pieces explicit: Wrangler owns the bindings, Drizzle owns the schema, Astro owns rendering, and React only hydrates what truly needs interactivity.

D1 wired through Drizzle

Schema, migrations, and a real lead capture API route are ready for remote Wrangler workflows.

R2-backed marketing media

Landing assets are fetched from Cloudflare R2 through a Worker route, so you control caching and access.

Auth pre-wired for the next sprint

Better Auth is installed with a server entrypoint and toggle, without blocking this MVP on auth tables.

Rollout path

Remote-first operations for your MVP.

The scripts intentionally mirror Cloudflare workflows: generate SQL with Drizzle Kit, apply it with Wrangler, inspect D1 remotely, and seed R2 content from the same repository.

Deploy with `wrangler deploy` after updating the placeholder D1 and R2 bindings.

Upload the sample SVG gallery with `pnpm r2:seed` to verify the R2 fetch path.

Run `pnpm db:migrate:remote` against your D1 database once you have a real database ID.

Lead workflow

Capture contact details directly into D1.

The example form demonstrates the full round-trip: a React island validates input, Astro handles the request on Workers, and Drizzle inserts the lead into Cloudflare D1.

Included SEO surface

  • Canonical, Open Graph, Twitter Card, and structured data.
  • Dedicated `robots.txt`, `sitemap.xml`, and SVG social card endpoint.
  • Semantic headings and server-rendered image alt text sourced from code metadata.
Lead Capture

Collect buyer intent without a separate backend.

This React island posts directly to the Astro API route on Cloudflare Workers. Validation runs in the browser first, then again on the server before D1 writes.

Responses go directly into Cloudflare D1. Better Auth and anti-spam hooks are reserved for the next iteration.