Design — internal document space (board. + public.cloudbase.foundation)

Date: 2026-06-25 · Owner: Both (Jonathan = Cloudflare + Workspace/Drive + board-group; Claude = repo/site/theme build) · Status: Design approved — implementation plan pending Fulfills: the doc-space design referenced but never written in 2026-06-09-workspace-admin-audit-design.md (which assumed "11ty, no CMS, PagesCMS retired" — corrected here: non-technical editing brings a CMS back, so PagesCMS is revived, not deleted).

The need

Jonathan + Jacob want one place to store all internal CBF documents — IT plans, board agendas, operating budgets, proof of 501(c)(3) status, foundational docs (Theory of Change), etc. Today these are scattered (a git documents repo of mixed Markdown/HTML, plus ad-hoc files), with no access control and no friendly editing path for non-technical board/staff. This design gives the org a single, brand-styled, access-controlled document space that both technical and non-technical people can use.

Decisions (locked)

  1. Hybrid store. Narrative/reference docs live as a built static site; living and binary files (budgets, working financials, board packets) live in a Google Shared Drive, which the site indexes and links to. Each content type in its best-fit tool.
  2. Two tiers → two subdomains (not one site with path exclusions):
    • board.cloudbase.foundationinternal, entirely gated by Cloudflare Access → the board@cloudbase.foundation group. One blanket policy, no path exceptions to misconfigure (fail-safe — the reason subdomains beat a /public/* carve-out for a store holding budgets + legal docs).
    • public.cloudbase.foundationpublic document store, ungated.
  3. One repo, two builds. The existing documents repo is the single source of truth and single CMS surface. A top-level public/ subtree builds to public.cloudbase.foundation; everything else builds to the (gated) internal site.
  4. Stack: Eleventy (11ty) + PagesCMS → Cloudflare Pages. Lightweight, free, GitHub-native, no hosted-CMS dependency; .pages.yml already exists (revive + update, don't delete). Non-technical editors edit in PagesCMS's browser UI.
  5. Brand lives in a shared theme, not in each file. The design system currently embedded in each HTML doc (:root tokens --navy #0c2540 / --gold #c8a14a / --paper #f6f1e7; fonts Barlow Condensed, Newsreader, IBM Plex Mono; components .pill/.panel/.section; Mermaid) is lifted once into a shared 11ty layout. Routine docs are authored in Markdown and render through that theme → on-brand automatically; editors touch content, never CSS.
  6. Showcase docs stay bespoke HTML. Highly-designed docs (tech/domain-map.html, tech/roadmap.html) remain hand-crafted HTML pages inside the same themed site — not forced into Markdown. Recurring branded components (status pills, panels, callouts) are exposed as 11ty shortcodes so editors can use them without writing HTML.
  7. Repo-vs-Drive rule. Living/collaborative files (operating budgets, working financials, packet drafts) → Shared Drive. Final/static published artifacts (the 501(c)(3) determination letter PDF, signed final policies) → repo (version- pinned, directly servable, especially on the public tier).
  8. Not the marketing site. public.cloudbase.foundation is a public document store, distinct from cloudbase.foundation (the Next.js marketing site). The marketing site simply links to public docs.
  9. No Workspace automation. Drive use here is native folders + group sharing + hand-maintained index links. This explicitly does not revive the GAM / Workspace-admin tooling track (set aside in the rebrand work).

Architecture

documents repo  (one source of truth · one PagesCMS · shared brand theme)
│
├── public/  ─────────────────→  public.cloudbase.foundation   [ungated]
│     Theory of Change, 501(c)(3) letter (PDF), annual report
│
└── (everything else) ────────→  board.cloudbase.foundation    [Cloudflare Access → board@]
      it/  agendas/  tech/  research/  projects/  resumes/  foundational/(working)
      │
      └── file-index pages ──→  Google Shared Drive "CBF Internal"  (board@ permissioned)
                                 operating budgets (Sheets), board packets,
                                 working financials, signed forms (PDF)

Components

1. The site (Eleventy)

2. Editing (PagesCMS)

3. Living/binary files (Google Shared Drive)

4. Access control (Cloudflare Access)

Content taxonomy

Section Source Subdomain / store Format
IT / ops plans & runbooks repo it/ board Markdown
Board agendas & minutes repo agendas/ board Markdown
Theory of Change repo public/ (from foundational/) public Markdown
Other foundational / site copy (working) repo foundational/ board Markdown
Tech reference (domain-map, roadmap) repo tech/ board bespoke HTML showcase
Research / projects / resumes repo research/,projects/,resumes/ board Markdown / PDF
501(c)(3) determination letter repo public/ assets public PDF (downloadable)
Annual report repo public/ public Markdown / PDF
Operating budgets, working financials, board packets Google Shared Drive board (linked) Sheets / PDF
Bylaws, EIN, signed forms Shared Drive (working) → repo when final board PDF

Theory of Change is public and board-approved 2026-06-25, so it ships on the public tier immediately.

Dependencies & sequencing

  1. board@cloudbase.foundation Google group — create once; shared with the rebrand (board ACL) and audit workstreams. Membership = board + staff (one tier today).
  2. DNS (Cloudflare, cloudbase.foundation zone) — board. and public. subdomains pointed at the Pages deployments.
  3. Cloudflare Pages — one repo, two deployments (board = full build, public = public/ build).
  4. Cloudflare Access — app + policy on board.* → Google IdP → board@ group.
  5. Google Shared Drive "CBF Internal" — created, shared to board@.
  6. Repo work (Claude): add the 11ty build + shared brand theme (extract embedded CSS), shortcodes, the public/ subtree split, port showcase HTML pages, update .pages.yml. Migrate existing content into the structure.

This work does not block on the domain-rebrand primary-domain flip; it can proceed in parallel.

Risks & rollback

Out of scope (non-goals)

Open items (resolve in the plan)