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).
Pages & layout
Section titled “Pages & layout”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].ts→createApp().fetch).src/layouts/AppShell.astro— the prerendered application shell that the service worker precaches for offline launch (ADR-009, constitution §7.14.2).
Islands model
Section titled “Islands model”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
/apidelegate).