Add static serving class: platform-hosted static sites
Release artifact = content-addressed file tree served by the edge (optional CloudFront binding in AWS deployments); replaces GitHub Pages for carlosframework.com, 11factor.org, and app marketing sites. Channels give static sites branch preview URLs and rollback for free.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 file changed,
+14
−2
docs/superpowers/specs/2026-08-01-carlos-platform-design.md+14 −2
diff --git a/docs/superpowers/specs/2026-08-01-carlos-platform-design.md b/docs/superpowers/specs/2026-08-01-carlos-platform-design.md| index 4da904b50..00fff5b52 100644 |
| --- a/docs/superpowers/specs/2026-08-01-carlos-platform-design.md |
| +++ b/docs/superpowers/specs/2026-08-01-carlos-platform-design.md |
| @@ -93,8 +93,8 @@ State hierarchy in the bucket: |
| An **app** is a name plus a **manifest** — the entire contract between |
| author and platform. It declares: |
| -- **Processes**, each with a serving class (§5): `routed`, `replicated`, or |
| - `sidecar`. |
| +- **Processes**, each with a serving class (§5): `routed`, `replicated`, |
| + `sidecar`, or `static`. |
| - **Storage**, per process: ownership (`exclusive` | `mergeable`) and |
| engine (`embedded` | `attached`) (§5). |
| - **Placement**: tier (`shared` | `dedicated`), and optional residency |
| @@ -159,6 +159,18 @@ convention. |
| demand rules) and *read replicas* (tail the writer's WAL stream from the |
| bucket; serve reads; every write routes to the writer). |
| - **`sidecar`** — a headless client the platform happens to host; §5.4. |
| +- **`static`** — no process at all: the release artifact is a |
| + content-addressed file tree, and the edge serves it directly from |
| + local cache backed by the bucket. Static sites ride the full release |
| + machinery — `carlos ship` a file tree, canary channels give per-branch |
| + preview URLs, promotion and rollback are pointer writes — with zero |
| + runtime cost and nothing to hibernate. Routing keys and custom-domain |
| + certs work exactly as for routed apps. In AWS deployments an optional |
| + CDN binding (CloudFront over an S3 origin) can front a static app via |
| + its environment profile; it is an optimization, never a requirement — |
| + a self-hoster's edge serves the same tree unaided. This replaces |
| + GitHub Pages for the platform's own sites (carlosframework.com, |
| + 11factor.org) and the apps' marketing/status sites. |
| ### Storage: ownership |