Documentation
Build on a deterministic infrastructure runtime.
Architecture references, API contracts, and module development guides for teams building high-trust products on top of Altason.
Documents
6
Sections
2
Primary Audience
Systems builders
Documentation
Architecture references, API contracts, and module development guides for teams building high-trust products on top of Altason.
Documents
6
Sections
2
Primary Audience
Systems builders
Developers
How to create site templates that apply to landing + dashboard + modules.
Templates define the structure + presentation of a project’s public site.
The goal is a modular “business OS” feel: templates must never look like bolted-on marketing themes.
Template modes:
Current internal templates are auth-enabled.
For full acceptance criteria and tiered requirements, see:
docs/template-contract.mdA template is identified by a templateId and is resolved per project via:
project.settings.site.templateIdcourses, products)Templates are implemented in @v2/site-templates and provide:
Auth-enabled templates must provide a coherent design language across both public and authenticated surfaces.
Landing-only templates provide only public surfaces and should omit authenticated workspace requirements.
Templates are for end-user surfaces only and must not affect the builder backoffice UI.
Auth-enabled templates must support at least all Tier-1 primitives from docs/template-contract.md, including:
publicHeader, publicFooter, authShell, workspaceHeader, workspaceNav, workspaceContent)moduleLinks)card, panel)ui.form.controls)ui.feedback.error)ui.data.list, ui.data.keyValue)var(--site-*)) for both light and dark themes.bg-white, fixed hex dark blocks) unless explicitly guarded by template theme selectors.If a template does not declare a capability, modules that require it are blocked from install/use on that template.
coreModuleId..site-section, .site-container, .site-card, and the --site-* tokens.primaryColor, logoUrl, defaultTheme, and limited copyOverrides.project.settings.landing (and future section builder).Templates can set CSS variables via the site shell:
--site-container-max (e.g. 1100px)--site-card-radius (e.g. 14px)--site-card-padding (e.g. 22px)The public site CSS (v2/apps/web/src/app/site/site.css) uses these variables so module pages automatically inherit template styling.
The public site resolves and applies templates in:
apps/web/src/app/site/layout.tsx
data-site-templatedata-site-theme and data-site-theme-defaultapps/web/src/app/site/page.tsx
template.renderLanding(...)Project owners configure global site appearance in:
Landing content remains in:
Every template submitted for marketplace review must pass all of the following gates.
capabilities field is present and explicitly lists every capability the template supports (no empty/missing fallback)courses, products, agency-operations, etc.).site-section, .site-container, .site-card, --site-*)renderLanding only imports from @v2/ui and @v2/site-templates (no direct module or app imports)pnpm --filter @v2/site-templates exec tsc --noEmitcoreCourses, coreProducts, or currentUser are nullpnpm lint:template-contractSITE_TEMPLATE_CAPABILITIES_STRICT=true pnpm --filter @v2/web dev
# or during typecheck:
SITE_TEMPLATE_CAPABILITIES_STRICT=true pnpm --filter @v2/web exec tsc --noEmit