Project Map
What each Wheel of Heaven repository does, and how they connect — the 30-second tour.
On this page
The Wheel of Heaven knowledge base spans ~20 repositories across one GitHub organization. Most contributors only touch two or three. This page shows the whole org at a glance so you can find the one you actually need.
For the full per-repo details — directory layouts, URLs, etc. — see Repository Inventory. This page is the map.
The sites (the output)#
Three production sites, each its own Cloudflare Pages project:
| Site | URL | What it is |
|---|---|---|
| www | www.wheelofheaven.world | The reading site — wiki, articles, library, timeline, news |
| api | api.wheelofheaven.world | Same content as JSON, for machines |
| assets | assets.wheelofheaven.world | Image CDN — AVIF/WebP/JPG |
| docs | docs.wheelofheaven.world | This site |
The shared inputs (the source)#
Both www and api read from the same content + theme submodules:
| Submodule | Repo | Used by | What’s in it |
|---|---|---|---|
themes/bifrost | bifrost | www, docs | Zola theme — templates, SCSS, JS |
content | data-content | www, api | All markdown content, in 10 languages |
data/library | data-library | www, api | Books as structured JSON |
So a single content change in data-content is picked up by both the reading site and the API on the next submodule-pointer bump.
The research core (the meaning)#
| Repo | What it is |
|---|---|
core | The durable research corpus — framework claim records, evidence maps, source notes, methodology, RFCs, and ADRs |
core is not a submodule and ships nothing to the sites. It is the authoritative record of what the framework claims and how it reasons, kept separate from the prose that presents those claims in data-content. Public pages may point back to a core claim at an exact version (core_claim_ids / core_versions), so a claim can change without silently redefining the pages that render it.
Pipelines (the processing layers)#
Three repos run pipelines that turn raw inputs into ship-ready outputs. These are not submodules — they’re standalone tools.
| Pipeline | Repo | Job |
|---|---|---|
| Image | data-images | Source images → AVIF/WebP/JPG + OG cards → push to assets CDN |
| Cinematics | data-cinematics | Source video loops → optimized WebM/AV1 → push to assets CDN |
| Ingest | ingest | Source PDFs/EPUBs → structured JSON → push to data-library |
Authoring + automation#
| Repo | Role |
|---|---|
.github | Org-level GitHub profile + issue templates |
.claude | AI-assistant context, project plans, roadmaps |
utilities | Maintenance scripts (frontmatter munging, SEO audits, sitemap tools) |
epub.wheelofheaven | EPUB build harness for the precessional-ages book |
data-sources | (Private) Original PDF/EPUB material feeding ingest |
data-bibliography | (Legacy) Initial bibliography, seeded data/sources.json |
raw-media | Raw video loops + intermediate files for data-cinematics |
reference | (Private) Visual reference / art inspiration |
genesis | Standalone planet-builder prototype (not part of the site) |
How things connect#
flowchart TB
subgraph submodules["Shared submodules"]
dc["data-content<br/><i>markdown, 10 languages</i>"]
dl["data-library<br/><i>books JSON</i>"]
bf["bifrost<br/><i>theme</i>"]
end
www["www"]
api["api"]
docs["docs"]
core["core<br/><i>claims + evidence</i>"]
dc -.-> www
dl -.-> www
bf -.-> www
dc -.-> api
dl -.-> api
bf -.-> docs
core -. "claim IDs" .- dc
di["data-images"]
dcin["data-cinematics"]
assets["assets"]
di --> assets
dcin --> assets
cf[("Cloudflare Pages")]
www --> cf
api --> cf
docs --> cf
assets --> cfWhere to start, based on what you want to do#
| Goal | Repo to clone | Then read |
|---|---|---|
| Add a wiki entry, edit prose, translate | data-content | Content overview |
| Add a book to the library | data-library | Library Book |
| Add images to a page | data-images | Pipelines → Image pipeline |
| Theme / styling work | bifrost (via www for testing) | Bifrost Theme |
| Site-level config, build chain, CI | www.wheelofheaven.io | CI & Deploy |
| API endpoints | api.wheelofheaven.io | Architecture → Sites → api |
| Edit these docs | docs.wheelofheaven.world | (you’re reading them) |
| Edit a framework claim, evidence map, or RFC | core | Repository Inventory → core |
If you’re not sure which one you need, start with Local Setup — it walks through cloning all the major ones.
Why so many repos?#
The split between www (site code) and data-content (content) lets content authors work without touching site code, and vice-versa. Sharing content as a submodule means the API and the reading site never diverge. Pulling the theme out of the site repo means it could (in theory) be reused. Most of the rest are pipelines that are conceptually independent of the site itself — image processing, EPUB generation, PDF ingestion — and benefit from their own scope.