<set key="campaign"
value="{{ data://campaign.json }}" />
<h1 id="campaign-title">
{{ campaign.client }} Campaign
</h1> The
「240fps」
hypertext engine
The developer system for addressable source, data, and rendered fragments. Build fast incremental sites, inspect every representation, preview safely, and hand exact graph context to agents.
{
"title": "Corpus Campaign",
"client": "Corpus Client",
"adCount": 2,
"assets": [ ... ]
} <h1 id="campaign-title"> Corpus Client Campaign </h1>
Addressable. Composable. Inspectable.
Addressable fragments
Every source, data, and rendered fragment has a stable protocol-style address.
src://components/component-bound.html Incremental rebuilds
Fine-grained dependency graph and change propagation for sub-100ms rebuild loops.
rendered://public/index.html Source data rendered inspection
Follow any fragment across its representations live in the browser or CLI.
rendered://public/index.html Safe preview worktrees
Feature branches get isolated worktrees and environments for live preview.
hypermake branches list Agent-aware workflows
Deterministic builds, JSON interfaces, and clean addresses for automation.
concept://ax-packet One system. Three representations.
Hypermake and LZR treat your content as a graph of fragments. Each node can be viewed as source, data, or rendered output, individually addressable and inspectable.
src://components/component-bound.html data data://campaign.json rendered rendered://public/components/component-bound.html src://components/component-bound.html<set key="campaign" value="{{ data://campaign.json }}" />
<scenario-layout
title="Component-bound rendered effects"
family="component invocation and prop lineage"
source="src://components/component-bound.html"
rendered="rendered://public/components/component-bound.html"
coverage="component prop changes, source ownership, rendered-effect proof"
></scenario-layout>
<test-panel label="What this page tests" tone="blue">
<p>Component invocation attributes, component-bound text, and data-backed rendered effects.</ data://campaign.json{
"title": "Corpus Campaign",
"client": "Corpus Client",
"url": "/campaign.html",
"adCount": 2,
"newsletterCount": 1,
"assets": [
{
"src": "/assets/banner.jpg",
"alt": "Banner asset"
},
{
"src": "/assets/newsletter.jpg",
"alt": "Newsletter asset"
}
],
"variants": [
{
"id": "banner",
"width": 300,
"height": 250
},
{
"id": "newsletter",
"width": 640,
"height": 480
}
]
} campaigncampaign
title"Corpus Campaign"
client"Corpus Client"
url"/campaign.html"
adCount 2
newsletterCount 1
assets [2 items]
variants [2 items]
rendered://public/components/component-bound.html<section class="card campaign-header" data-panel="Campaign header"><h2>Campaign header</h2> <h1 id=campaign-title>Corpus Client Campaign</h1> <p class=scope-note>This page is intended to reproduce component/data-bound rendered-effect proof gaps.</p> </section>Open the live scenario ->
Built different on purpose.
Hypermake focuses on addressable fragments and inspection, not opaque page builds or client-side state hiding the real source of truth.
See the full comparison ->Static-site generators
Page-level builds, full rebuilds on change, no live fragment inspection.
Hypermake + LZR
Fragment-level graph, source to data to rendered inspection, streamable HTML.
Generic SPA tooling
Client-side rendering, large bundles, state hidden in the browser.