carlos / platform Public

spec: record path routing as future work — the /blog case forces it eventually

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Paul Campbell 80d6811b302bea1ccbe09898986a9cbcafc3cd83 parent 3481167
1 file changed, +11 −0
  • docs/superpowers/specs/2026-08-02-custom-domains-design.md +11 −0
diff --git a/docs/superpowers/specs/2026-08-02-custom-domains-design.md b/docs/superpowers/specs/2026-08-02-custom-domains-design.md
index 5ee4cd22c..58c906a36 100644
--- a/docs/superpowers/specs/2026-08-02-custom-domains-design.md
+++ b/docs/superpowers/specs/2026-08-02-custom-domains-design.md
@@ -143,3 +143,14 @@ Per app page, replacing the raw routes framing:
deliberately excluded here).
- **Multi-region DNS checks** (per-region edge IP sets once the mesh
ports land).
+- **Path routing** — one host fanning out to several upstreams by path
+ prefix: `/blog` to a static site while the rest of the domain serves
+ the dynamic app, or an app's satellites behind one origin (Woodstar's
+ four services, see `2026-08-02-plan-woodstar-flagship.md` W0 — solved
+ app-side for now with relay fan-out, deliberately: host-only routing
+ keeps the route table a flat map with no longest-prefix ordering).
+ When this lands it needs: a `path_prefix` column, deterministic
+ longest-prefix matching, and an answer for which route owns ACME for
+ the shared host. The `/blog` case is the one that will actually force
+ it — a static class and an instance class sharing one hostname is
+ something no app can solve for itself.