Skip to content

Astro Pages & Islands

The frontend is Astro pages that ship mostly static HTML and hydrate small React islands only where interactivity is needed (constitution §7.11, §8.2).

  • src/pages/index.astro — marketing/landing entry.
  • src/pages/app/ — the authenticated app routes (the workspace).
  • src/pages/sign-in.astro / sign-up.astro — Clerk prebuilt auth UI (ADR-010).
  • src/pages/api/ — the catch-all that delegates to the Hono Worker app ([...path].tscreateApp().fetch).
  • src/layouts/AppShell.astro — the prerendered application shell that the service worker precaches for offline launch (ADR-009, constitution §7.14.2).

Interactive components live in src/islands and hydrate via client:* directives; everything else is static Astro output. This keeps the client JS budget small (§8.2): only the strings/components a route uses ship, and the offline layer (SW, Dexie, i18n catalogs) loads without blocking first paint.

Related: Mobile Shell & Navigation, Client Sync & Steps Islands, Worker API & Clerk Auth (the /api delegate).