You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Live page types with no template at all. Each is bespoke, which makes each a small maintenance liability, and none of them benefit when the shared layer improves.
The two highest-volume content surfaces have their own tickets — blog in #255, research databases in #256. This issue covers the interior and utility page types with no home elsewhere.
Items
Page-recipe library. One written entry per page type, naming the ordered sequence of sections that composes it and which slots are required. This is the layer above the component catalog and the thing that lets someone build a page without a designer in the loop. Deliberately a markdown document, not a typed schema: a typed page-composition layer is a much larger build for a problem we do not have. Revisit only if pages start being assembled without engineers. (shipped in Wave 3 PR3: one template for all 28 ZenML comparison routes #284)
Conversion-utility page types. Three near-identical confirmation pages and three near-identical gated-asset pages, none sharing a template, plus the legal pages (/privacy-policy, /terms-of-service, /imprint), which sit outside every shared shell despite being pure long-form prose. (shipped in Wave 3, part 1: conversion-utility and legal templates, plus the embed contract #278)
Embed container contract. Five live surfaces — the ROI calculator, the Storylane embeds, the booking embed — with no governed container. Define aspect ratio, loading state, no-JS fallback, mobile behavior, and consent gating against our four-category consent island. Check the current behavior: the enhancement script and the iframe do not necessarily gate the same way. (shipped in Wave 3, part 1: conversion-utility and legal templates, plus the embed contract #278)
Comparison-system reconciliation. One page type, three implementations: /compare/[slug] dispatches over two different templates depending on the slug, and /vs/[slug] is a third stack serving three pages. Decide which survives and migrate the others. This is the single largest structural duplication on the site. (PR Wave 3 PR3: one template for all 28 ZenML comparison routes #284, in review — closes this issue when merged)
Done when
Every page type above renders from a shared template.
The recipe library covers every live page type, each with a buildable-today rating, so gaps are visible rather than discovered.
Part of #246. Depends on #248 and #249.
Live page types with no template at all. Each is bespoke, which makes each a small maintenance liability, and none of them benefit when the shared layer improves.
The two highest-volume content surfaces have their own tickets — blog in #255, research databases in #256. This issue covers the interior and utility page types with no home elsewhere.
Items
/privacy-policy,/terms-of-service,/imprint), which sit outside every shared shell despite being pure long-form prose. (shipped in Wave 3, part 1: conversion-utility and legal templates, plus the embed contract #278)/projectspage type. 16 entries with a live index and detail route, composed almost entirely of bespoke markup. (shipped in Wave 3, part 2: shared templates for /projects and the case studies #279)/compare/[slug]dispatches over two different templates depending on the slug, and/vs/[slug]is a third stack serving three pages. Decide which survives and migrate the others. This is the single largest structural duplication on the site. (PR Wave 3 PR3: one template for all 28 ZenML comparison routes #284, in review — closes this issue when merged)Done when