{"id":"5008fbc3-4484-474b-a461-dee6bcfbcbdb","name":"Classic White Paper Page","slug":"classic-white-paper-page","category":"white-papers","description":"A written white paper page in classic report typography — masthead, title, abstract box and two-column justified body text with a drop cap. Feed paragraphs newline-separated; renders as a crisp A4-portrait image for sharing and embedding.","sample_params":{"abstract":"We examine the operational cost of ad-hoc screenshot pipelines and present a template-based alternative: declarative HTML specs published once, rendered on demand, and cached immutably. Across three case studies, teams cut image-related incidents to zero while shipping richer visuals.","author":"A. Hartmann","body":"Every product team eventually ships images: social cards, certificates, report pages. The common path starts with a designer, detours through a headless-browser script, and ends with a cron job nobody wants to own. The failure modes are well known — stale caches, font drift, broken CI.\nA template-first approach inverts the ownership. The document you are reading is itself a template: every word arrives as a URL parameter, the layout is versioned, and the rendered page is cached at the edge like any static asset.\nThe rest of this paper quantifies that shift. We measure publish latency, cache hit rates and incident counts before and after migration, and close with the sandbox model that makes third-party templates safe to run.","company":"Northwind Research","date":"August 2026","doc_label":"White paper · WP-07","page_label":"Page 1 of 12","subtitle":"How immutable render URLs replace bespoke screenshot pipelines","title":"Programmatic Image Generation at the Edge"},"spec":{"name":"classic-white-paper-page","width":1240,"height":1754,"scale":2,"html":"\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\u003cmeta charset='utf-8'\u003e\n\u003cstyle\u003e\n* { margin: 0; padding: 0; box-sizing: border-box; }\nhtml, body { width: 100vw; height: 100vh; overflow: hidden; }\nbody {\n  font-family: Georgia, 'Times New Roman', serif;\n  background: #fdfdfb; color: #1c2129;\n  display: flex; flex-direction: column;\n  padding: 96px 110px 72px;\n}\n.masthead {\n  display: flex; justify-content: space-between; align-items: baseline;\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;\n  font-size: 17px; letter-spacing: 0.14em; text-transform: uppercase;\n  color: #7a828f; padding-bottom: 22px; border-bottom: 3px double #c9ccd3;\n}\n.masthead .co { font-weight: 700; color: #2b3442; }\n.title { margin-top: 64px; font-size: 58px; line-height: 1.16; letter-spacing: -0.01em; font-weight: 700; max-width: 20em;\n  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }\n.subtitle { margin-top: 18px; font-size: 25px; line-height: 1.45; color: #4d5563; font-style: italic; max-width: 34em;\n  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }\n.rule { margin: 44px 0 40px; height: 1px; background: #d8dbe1; }\n.abstract {\n  background: #f3f4f0; border-left: 4px solid #2b3442; padding: 26px 32px;\n  font-size: 21px; line-height: 1.65; color: #333a45; margin-bottom: 44px;\n  display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden;\n}\n.abstract b { font-variant: small-caps; letter-spacing: 0.05em; margin-right: 8px; }\n.body { flex: 1; overflow: hidden; column-count: 2; column-gap: 56px; font-size: 20px; line-height: 1.72; text-align: justify; hyphens: auto; }\n.body p { margin-bottom: 16px; }\n.body p:first-child::first-letter { font-size: 54px; font-weight: 700; float: left; line-height: 0.85; padding: 6px 10px 0 0; color: #2b3442; }\n.foot {\n  margin-top: 40px; padding-top: 18px; border-top: 1px solid #d8dbe1;\n  display: flex; justify-content: space-between;\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;\n  font-size: 16px; color: #7a828f; letter-spacing: 0.04em;\n}\n\u003c/style\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv class='masthead'\u003e\u003cspan class='co'\u003e{{.company}}\u003c/span\u003e\u003cspan\u003e{{.doc_label}}\u003c/span\u003e\u003c/div\u003e\n\u003ch1 class='title'\u003e{{.title}}\u003c/h1\u003e\n\u003cp class='subtitle'\u003e{{.subtitle}}\u003c/p\u003e\n\u003cdiv class='rule'\u003e\u003c/div\u003e\n\u003cdiv class='abstract'\u003e\u003cb\u003eAbstract\u003c/b\u003e{{.abstract}}\u003c/div\u003e\n\u003cdiv class='body'\u003e{{range split .body \"\\n\"}}\u003cp\u003e{{.}}\u003c/p\u003e{{end}}\u003c/div\u003e\n\u003cdiv class='foot'\u003e\u003cspan\u003e{{.author}} · {{.date}}\u003c/span\u003e\u003cspan\u003e{{.page_label}}\u003c/span\u003e\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n","params":{"abstract":{"type":"string","maxLen":600,"description":"Abstract shown in the highlighted box (clamped to ~5 lines)."},"author":{"type":"string","maxLen":60,"description":"Author shown in the footer."},"body":{"type":"string","required":true,"maxLen":4000,"description":"Body text, newline-separated paragraphs, laid out in two justified columns with a drop cap."},"company":{"type":"string","default":"Acme Inc.","maxLen":40,"description":"Company or publisher name in the masthead."},"date":{"type":"string","maxLen":30,"description":"Date shown in the footer."},"doc_label":{"type":"string","default":"White paper","maxLen":40,"description":"Document label on the right of the masthead, e.g. 'White paper · WP-07'."},"page_label":{"type":"string","default":"Page 1","maxLen":20,"description":"Page indicator in the footer, e.g. 'Page 1 of 12'."},"subtitle":{"type":"string","maxLen":160,"description":"Italic subtitle under the title."},"title":{"type":"string","required":true,"maxLen":120,"description":"Paper title."}}}}
