Skip to content

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 site
workers/
bookmarks-api-worker/ # Cloudflare Worker API
migrations/0001_init.sql # D1 schema
seeds/seed.sql # Local seed data
docs/
bookmarks/ # This Starlight site
  • 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.

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.