Themes
Konduit is a business theme — one implementation of the theme contract. The theme contract is designed so that many frontends can implement it, from platform-shipped experiences to a game to themes your own team creates.
Theme registration and the Forge builder are both in beta and land incrementally.
Every other theme — including our own experiments — is provided for fun and inspiration, not production support. Themes are a big part of why people fall for the platform, so we keep building them: browse Theme Labs for the current experiments, and remember your zones and apps are platform resources that survive any theme switch.
The example themes below aren't just demos — read their source and they double as living documentation of how the theme contract gets used for a real, opinionated experience. Ship It! in particular shows how to wire an existing frontend to the theme contract without rewriting it.
The model
A theme is a frontend application in a Git repository that implements the theme contract:
- It consumes the theme contract API — zones, apps, the shop, and optionally character progression — using the signed-in user's identity
- It renders those concepts under its own metaphor: Konduit's business language, a space game's planets and launches, a racing team's cars and tracks
- It declares its capabilities: a theme may implement a subset (apps only, no shop) and that's legitimate
Profiles
Every theme declares one profile, defined in the theme specification:
| Profile | What it is | Example |
|---|---|---|
informational | Read-only. Renders apps, phases, URLs, build logs. No writes. | A delivery status wall |
interactive | Full zone/app lifecycle under a plain or branded metaphor. | Konduit |
game | Interactive, plus character, progression, shop, and a universe view. | Ship It! |
Example themes
- Konduit — built in, preinstalled,
interactiveprofile, plain business language - Ship It! — the flagship
gameprofile example: planets, rockets, and a hero who levels up by shipping - Theme Starter — the minimal reference to copy when building your own
Themes are apps the platform ships
The theme pipeline is the Konduit pipeline, pointed at itself:
- An admin registers a theme repository with the organization
- The platform builds it with Cloud Native Buildpacks — the same build system that ships every app
- It deploys through GitOps into one of the organization's zones and serves on the platform's app domain
- It appears as a launcher in the organization's workspace
No special hosting, no separate infrastructure: if the platform can ship your apps, it can ship your themes.
Creating your own theme
A theme repository needs:
- A frontend (any stack the buildpacks can build) that speaks the theme contract client contract
static/theme.js, copied byte-for-byte from the starter — launch detection, discovery, and every contract operation over the v2 postMessage transport- A
theme-manifest.yaml(the theme's full self-description) and aTHEME.mdwhose header matches it — see the theme specification
Full walkthrough: Creating a theme.
Build one with the Forge
The contract is deliberately small and fully specified, which enables a shortcut: from Themes, Create your own opens the Forge — a fill-in-the-blank builder that asks for a name, a profile, an aesthetic, a character, what zones represent in your world, what shipping should feel like, and a storyline (plus a 🎲 Random idea button if you'd rather be surprised).
From those answers, the platform's LLM:
- Designs a complete
theme-manifest.yaml - Writes a working theme repository against it
- Pushes the repository to git
- Registers it
Minutes after you start, the theme is building; a little after that, it's Live. The Forge is also the fastest way to see what the theme contract can express before you commit to hand-crafting something — generate a rough version of your idea, then read Creating a theme to refine it by hand.
Distribution
Themes flow through three tiers:
- Upstream — the official theme repos live on GitHub at
konstructio/. These are the reference implementations. - Platform — the platform team pulls upstream themes into the organization's git provider during setup. Themes shows available upstream themes and lets admins install them.
- Organization — the Theme CR points at the org's git copy, and kpack builds from there using the org's GitAccount credentials.
The upstream repository is the source of truth for the code; the org's copy is what the build pipeline runs against. This means theme updates flow upstream → org copy → rebuild.
Trust and scope
Themes are organization-scoped applications, not platform code:
- A theme runs in the organization that registered it, serving that organization's users
- It acts with the signed-in user's identity — it can do nothing the user couldn't do
- Removing the theme removes the deployment, like any app
What's next
- Creating a theme — the authoring spec, precise enough to hand to an AI assistant
- The theme contract — the contract themes implement