Architecture Overview
Architecture Overview
Section titled “Architecture Overview”The Bookmarks MVP is organized as a small set of focused projects inside the monorepo:
apps/ bookmarks_app/ # Flutter client (iOS/Android/Web) bookmarks_site/ # Astro + Tailwind marketing siteworkers/ bookmarks-api-worker/ # Cloudflare Worker API migrations/0001_init.sql # D1 schema seeds/seed.sql # Local seed datadocs/ bookmarks/ # This Starlight siteCore choices
Section titled “Core choices”- Flutter provides a single client codebase for mobile and web delivery.
- Astro and Tailwind keep the marketing site simple and fast to deploy on Cloudflare Pages.
- A Cloudflare Worker API keeps request handling close to users and fits the MVP scale.
- Cloudflare D1 stores relational entities such as clubs, memberships, notes, comments, and reactions.
- Bookmarks account tokens (issued by
cosmos-auth-worker) provide the production auth envelope. - R2 remains optional for note attachments and media metadata so file complexity stays out of the MVP core.
Why this split
Section titled “Why this split”This setup keeps the surface area small:
- The app owns reader and member interactions.
- The site owns marketing and acquisition pages.
- The worker owns API contracts, persistence, and authorization boundaries.
That separation is enough for an MVP while leaving room for future real-time and media features.