package templates import "strconv" // HomePage is the landing page: the 90-second read. templ HomePage(v HomeView) { @Layout(v.Layout) {

Melbourne · twenty-five years · AI · platform · edge

{ v.Positioning }

{ v.Support }

{ strconv.Itoa(v.Areas) } areas { strconv.Itoa(v.Pages) } pages { strconv.Itoa(v.Artifacts) } linked artefacts no page needs a model to render

@SearchForm("", "hero-search")
for _, c := range v.Cards { @PillarCard(c) }

How to read this site

} } // DocPage renders an L1, L2 or L3 document. templ DocPage(v DocView) { @Layout(v.Layout) {

{ v.AreaTitle } · { v.LevelLabel }

{ v.Doc.Title }

{ v.Doc.Claim }

{ v.Doc.Confidence } if v.Doc.Period != "" { { v.Doc.Period } } for _, m := range v.Metrics { { m.Value } { m.Label } }
if len(v.Tech) > 0 { }
@v.Body
if len(v.Evidence) > 0 {

Evidence for this page

Select a row to load the artefact into the presentation panel. Each row is also a link, so this works without JavaScript.

@EvidenceTable(evidenceRows(v.Evidence))
} if len(v.Timeline) > 0 {

In time order

@Timeline(v.Timeline)
} if len(v.SubPages) > 0 {

{ subHeading(v.Doc.Level) }

} if len(v.Backlinks) > 0 {

Referenced from

}
} } // EvidencePage is one page listing every artefact, grouped by area. It is the // shortest path from the landing page to any proof. templ EvidencePage(v EvidenceView) { @Layout(v.Layout) {

Index

Evidence index

Every artefact this site claims, on one page. { strconv.Itoa(v.Total) } links, each one a file in the repository.

for _, g := range v.Groups {

{ g.AreaTitle }

@EvidenceTable(g.Rows)
}
} } // SearchPage is the keyword search. The results block is swapped by HTMX on the // same page; with JavaScript off the form simply reloads the page. templ SearchPage(v SearchView) { @Layout(v.Layout) {

Keyword search

Search { strconv.Itoa(v.Indexed) } pages

Full-text search over page titles and body text. Served from a local index — no model, no network call.

@SearchForm(v.Query, "page-search") @SearchResults(v)
} } // SearchResults is swapped into #search-results by HTMX. templ SearchResults(v SearchView) {
if v.Query == "" {

Try “zigbee”, “signage”, “routing”, “backups” or “guardrails”.

} else if v.Failed {

That query could not be run. Try fewer or simpler words.

} else if len(v.Results) == 0 {

No page matches { v.Query }. The evidence index lists everything by area.

} else {

{ strconv.Itoa(len(v.Results)) } results for { v.Query }

    for _, r := range v.Results {
  1. { r.Title }

    { r.Area } L{ strconv.Itoa(r.Level) } { r.Confidence }

    @SafeSnippet(r.Snippet)

  2. }
}
} // StreamPage proves the panel can be re-pointed at a stream. The layout and the // panel markup are the ones every other page uses; only the binding differs. templ StreamPage(v StreamView) { @Layout(v.Layout) {

Design note · not a product feature

The panel takes content from a driver

This page renders the same layout and the same panel as every other page. Its panel is bound to an event stream instead of pre-rendered files, and no layout code changed.

The presentation panel is a content sink. In Mode A it takes pre-rendered fragments over HTMX: you click a row in an evidence table and one file is swapped in. On this page the same panel is bound to /api/stage/stream and receives { strconv.Itoa(v.Frames) } fragments over server-sent events, one after another.

Fragments are pushed, not requested. Nothing about the panel — its markup, its fragment view, its empty state — knows the difference. That is the point: the Phase 5 console re-points this panel at retrieval output and the layout does not change.

This demonstration streams the artefacts already built for the site, with no model in the loop. It exists to prove the transport, not to pretend an AI is answering.

if len(v.Fragment) > 0 {

Fragments in this stream

}
} } // NotFoundPage is the 404. templ NotFoundPage(v NotFoundView) { @Layout(v.Layout) {

404

That page is not here

The link may be from an older build. The six areas and the evidence index are the reliable ways in.

} } func evidenceRows(links []LinkView) []EvidenceRow { rows := make([]EvidenceRow, 0, len(links)) for _, l := range links { rows = append(rows, EvidenceRow{Label: l.Label, Href: l.Href, HXGet: l.HXGet, Kind: l.Kind, Confidence: l.Confidence}) } return rows } func subHeading(level int) string { if level == 1 { return "Drill-downs in this area" } return "Artefacts behind this page" }