The Cloudbase Foundation · Infrastructure

Domain Map — canonical URLs by surface

Document · Revision 1 Date · 22 May 2026 Apex · cloudbase.foundation Companion to · roadmap.html

I.The URL surface, at a glance

One canonical apex domain — cloudbase.foundation — fronts everything CBF runs. This document maps each subdomain to the service it points at, the phase that brings it online, and the audience it serves. It is the single source of truth for URL decisions.

Surfaces
10
apex + 9 subdomains, prod
Live today
2
apex site + crm (dev on LAN)
DNS provider
Cloudflare
single source for all records
Separate domain
chelancomps.org
production Chelan install, kept independent

II.The constellation

The diagram below groups every URL by the audience it serves and shows what backs it. Color encodes audience group; the connection lines show where service responsibility lies. The apex sits at center.

Fig. 1cloudbase.foundation — subdomain constellation
flowchart LR APEX(("cloudbase.
foundation")):::apex subgraph PUB["Public surfaces"] direction TB WWW["www
(redirects to apex)"]:::pub DON["donate"]:::pub APX2["apex
public site"]:::pub end subgraph INT["Internal / org"] direction TB BOARD["board"]:::int CRM["crm"]:::int LISTS["lists"]:::int end subgraph OSS["Groundcrew / OSS"] direction TB GC["groundcrew"]:::oss TRY["trygroundcrew"]:::oss end subgraph SVC["Service endpoints"] direction TB INTAKE["intake"]:::svc STATUS["status"]:::svc end APEX --- WWW APEX --- DON APEX --- APX2 APEX --- BOARD APEX --- CRM APEX --- LISTS APEX --- GC APEX --- TRY APEX --- INTAKE APEX --- STATUS WWW -.->|CF Workers / Next.js| H1[("Cloudflare Pages")]:::host APX2 -.->|CF Workers / Next.js| H1 DON -.->|custom domain| H2[("Donorbox")]:::host BOARD -.->|Pages CMS| H3[("documents repo")]:::host CRM -.->|Docker| H4[("DO droplet")]:::host LISTS -.->|Docker| H4 INTAKE -.->|Docker| H4 GC -.->|static site| H1 TRY -.->|seeded install| H5[("Supabase + CF Pages")]:::host STATUS -.->|reserved| H6[("future")]:::host classDef apex fill:#0c2540,stroke:#c8a14a,stroke-width:3px,color:#f6f1e7 classDef pub fill:#1f3b5e,stroke:#0c2540,color:#f6f1e7 classDef int fill:#c8a14a,stroke:#9a7826,color:#0c2540 classDef oss fill:#406b3f,stroke:#2d4e2c,color:#f6f1e7 classDef svc fill:#3a4250,stroke:#15171c,color:#f6f1e7 classDef host fill:#fbf7ee,stroke:#6c7585,color:#3a4250,stroke-dasharray:3 2
Dashed lines indicate the hosting platform each URL resolves to. Solid lines show DNS hierarchy from the apex.

III.URL map

Each row is a production URL. Dev variants follow the *-dev convention documented in § IV. Phase pills indicate when the URL comes online — "Live" if active today, "P2/P3/P4" if a planned phase brings it up, "Future" if reserved.

URL Backed by Status What it is
Public surfaces What donors, partners, and the broader paragliding community see.
cloudbase.foundation Cloudflare Workers + Next.js (OpenNext) + Tina CMS Live The public website — home, projects, get involved, about, news, contact.
www.cloudbase.foundation Cloudflare DNS (CNAME) Live 301 redirect to apex. Single canonical hostname; www is alias only.
donate.cloudbase.foundation Donorbox (custom-domain feature) Phase 3 Public donation entry point. Owning this URL means the platform can be swapped later without breaking inbound links. GiveLively URLs redirect here at cutover.
Internal & org Surfaces used by the board, staff, and partner organizers — not for the general public.
board.cloudbase.foundation Pages CMS over Cloudbase-Foundation/documents Future Internal docs site: meeting agendas, minutes, bylaws, board roster, reference materials, tech docs (the doc you're reading lives here under /tech).
crm.cloudbase.foundation Twenty CRM in Docker on DO droplet Phase 2 Twenty CRM — donor records, donations, projects, project submissions. Single-workspace (multi-workspace mode is disabled), so no per-workspace subdomains.
lists.cloudbase.foundation ListMonk in Docker on DO droplet Phase 2 Email list management and broadcasts. Admin UI for staff; transactional sends go via the Twenty Workflow integration.
kan.cloudbase.foundation kan (self-hosted) in Docker — Unraid VM (dev), DO droplet (prod) Future Internal kanban board for org-wide work tracking. Running on dev today at kan.cbf-dev (LAN); the prod URL is reserved for the move alongside the CRM. Google + magic-link auth (Better Auth), locked to the thecloudbasefoundation.org Workspace — note the URL host (cloudbase.foundation) and the auth email domain are intentionally independent.
Groundcrew (OSS) Surfaces for the Groundcrew product — the open-source generalization of the chelan-comps app.
groundcrew.cloudbase.foundation Cloudflare Pages, static site Phase 4 Groundcrew product home: what it is, who uses it, setup docs, contribution guide, link to source on GitHub.
trygroundcrew.cloudbase.foundation Cloudflare Pages + dedicated Supabase project Phase 4 Demo install with seeded fixture data. Prospective comp organizers can click through the full applicant + admin flow without seeing real Chelan applicants. Resets nightly.
Service endpoints URLs that exist for other systems to reach, not for humans to browse to.
intake.cloudbase.foundation cbf-intake-service in Docker on DO droplet Phase 3 Public HTTPS endpoint Donorbox POSTs webhooks to. Also hosts the staging review queue UI for staff (auth-gated). Not publicly browsable in any meaningful way; signature-verified webhook traffic only.
status.cloudbase.foundation Reserved — not yet provisioned Future Uptime / incident page. Likely Cloudflare-hosted or a third-party status page (Atlassian Statuspage, Better Stack). Reserved now so the URL is available when it's needed.

IV.Conventions

Dev environments use a -dev suffix on the leftmost label

For services with separate dev and prod instances, the dev variant is the prod hostname with -dev appended to its leftmost label. So crm.cloudbase.foundationcrm-dev.cloudbase.foundation; listslists-dev; intakeintake-dev. The apex site uses Cloudflare Pages preview deployments instead of a -dev hostname — PR previews land at *.pages.dev.

Twenty workspaces get their own subdomain layer

Multi-workspace mode is disabled (IS_MULTIWORKSPACE_ENABLED=false) in both dev and prod — CBF runs a single workspace, so the CRM uses no per-workspace subdomains. (Partner access is handled by Twenty roles, not separate workspaces.) See CLAUDE.md.

chelancomps.org is kept independent

The production Chelan paragliding comp app lives at chelancomps.org — a separate domain owned by CBF but not part of the cloudbase.foundation subdomain tree. It stays that way: Chelan organizers, applicants, and bookmarks already use that URL, and conflating it with the OSS Groundcrew product would be misleading. The Groundcrew subdomain at cloudbase.foundation represents the generalized OSS product; chelancomps.org is the canonical install for one specific event.

One URL per service; SaaS gets a custom domain where supported

Where a third-party SaaS supports custom domains (Donorbox, eventually a status page provider, possibly ListMonk if managed-hosted), use the CBF subdomain rather than the vendor's default URL. This means the URL is yours regardless of who runs the service behind it — vendor migrations don't break inbound links or bookmarks.

SSL via Let's Encrypt + certbot for self-hosted; managed certs for SaaS

DO-droplet-backed subdomains (crm, lists, intake) use Let's Encrypt via certbot with the nginx plugin, auto-renewed. Cloudflare-fronted subdomains use Cloudflare's automatic SSL. Donorbox manages SSL for donate as part of their custom-domain feature.

V.Email addresses

Distinct concern from subdomains, but worth recording here: outbound mail from cloudbase.foundation requires SPF, DKIM, and DMARC records configured in Cloudflare DNS. These come online during Phase 6 (donor communications) but should be set up earlier if any transactional mail starts flowing from ListMonk or Donorbox using @cloudbase.foundation as the From address.

Address patternPurposePhase
donations@ Reply-to on Donorbox receipts; landing inbox for donor questions. Phase 3
hello@ General contact — the form-submission notification target on the website. Phase 2
news@ From address for ListMonk newsletters and announcements. Phase 2
board@ Distribution list to board members (handled outside this stack, but worth reserving the address). Future

VI.Decisions worth recording

DecisionReasoning
Apex hostname is canonicalwww redirects to apex, not the other way around. Simpler mental model; matches the convention of most modern sites.
Single apex (cloudbase.foundation) for the org; no separate .org/.com variants. One canonical name. .foundation is on-brand for a foundation.
trygroundcrew as flat subdomain, not demo.groundcrew. Easier to share verbally and in print; fewer dots to keep track of. "Try Groundcrew" reads as an invitation rather than a developer fixture.
lists rather than email for ListMonk. Accurate to what the service is (an email list manager, not an inbox). Keeps the email namespace open if a different email surface ever lands.
Donation URL on a CBF subdomain, not a vanity Donorbox URL. Decouples the inbound URL from the platform choice. If CBF later moves donation processing in-house or to another vendor, donate.cloudbase.foundation stays the same.
Groundcrew product separated from the Chelan production install. Conflating them would make the OSS positioning confusing to prospective adopters and would break the Chelan brand for existing applicants.
Status page reserved but not provisioned now. Reservation costs nothing (no DNS record needed yet). When a customer-facing reliability story matters, the URL is already conceptually allocated.