Microsite Generator: Block-based Page Publishing

website dashboard

A small CMS for campaign pages. Admins compose a microsite from blocks (hero, card, trimmed text, CTA), preview it, then publish it to a public URL.

How it works

  • Built with TanStack Start, Drizzle ORM on Supabase Postgres, and Lexical for rich text editing
  • Assets go to Supabase Storage through its S3-compatible API
  • Published pages are served from Netlify's CDN and cached indefinitely. Each publish purges only that microsite's cache tag, so readers always get a cached page and still see changes right away
  • Unit, component (Vitest browser mode), end-to-end and smoke tests, plus GitHub Actions for migrations and deploys

The interesting part is the caching: pages are effectively static until an editor changes them, without a rebuild step.

Tags

react typescript tanstack supabase tailwind