From 4cc1e399276269f40010744cd56d918d3eb548b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ois=C3=ADn=20Kyne?= Date: Wed, 13 May 2026 12:10:26 +0100 Subject: [PATCH 1/2] Clean up ui --- internal/x402/templates/DESIGN.md | 161 ++++++++++++++++++ internal/x402/templates/payment_required.html | 9 +- web/public-storefront/DESIGN.md | 154 +++++++++++++++++ .../public/obol-stack-logo.png | Bin 2561 -> 8301 bytes .../public/obol-stack-logo.svg | 24 +++ .../scripts/build-wordmark.README.md | 37 ++++ .../scripts/build-wordmark.html | 47 +++++ web/public-storefront/src/app/globals.css | 2 +- .../src/components/Header.tsx | 6 +- .../src/components/ServiceCard.tsx | 6 +- 10 files changed, 437 insertions(+), 9 deletions(-) create mode 100644 internal/x402/templates/DESIGN.md create mode 100644 web/public-storefront/DESIGN.md create mode 100644 web/public-storefront/public/obol-stack-logo.svg create mode 100644 web/public-storefront/scripts/build-wordmark.README.md create mode 100644 web/public-storefront/scripts/build-wordmark.html diff --git a/internal/x402/templates/DESIGN.md b/internal/x402/templates/DESIGN.md new file mode 100644 index 0000000..6b000df --- /dev/null +++ b/internal/x402/templates/DESIGN.md @@ -0,0 +1,161 @@ +# HTTP 402 page — Design + +The HTML body that `x402-verifier` returns with status `402 Payment Required` +when a browser (or social-media link-preview scraper) hits a paid endpoint +without an `X-PAYMENT` header. Rendered by the Go `html/template` in +`payment_required.html`, populated from `paymentrequired.go`. + +Canonical design system: +[`@obolnetwork/obol-ui`](../../../../obol-packages/packages/obol-ui/DESIGN.md). +Sister surface that this page is closest to: +[`obol-stack/web/public-storefront`](../../../web/public-storefront/DESIGN.md). +This page is deliberately the **smallest, most constrained** of the four +surfaces. + +--- + +## 1. Why this surface is a single static-ish HTML file + +The 402 response is fired from a Go service that knows nothing about Next.js, +React, Tailwind, or npm. The page must: + +- **Render in a single response.** No second round-trip to load CSS or JS. + Every byte is in the HTML body the verifier writes. +- **Stand alone if the storefront is offline.** The verifier may answer 402 + before any other Obol pod is healthy, so the page can't depend on the + storefront serving (it only references it for the wordmark image and an + outbound link). +- **Be readable by OG/Twitter scrapers without JS.** The metadata + visible + copy must be in the initial HTML. +- **Stay tiny.** Currently ≈8 KB pre-compression. Don't grow that without + weighing what you're adding against the constraint above. + +Consequences: no external stylesheet, no JS bundle, no web fonts (DM Sans is +*requested* but falls back to system-ui gracefully), no Stitches, no React. +The page is one inline ` + + +
+ + + + + + + + + + + ObolStack + +
+ + diff --git a/web/public-storefront/src/app/globals.css b/web/public-storefront/src/app/globals.css index c0de60a..3ffc432 100644 --- a/web/public-storefront/src/app/globals.css +++ b/web/public-storefront/src/app/globals.css @@ -27,7 +27,7 @@ --color-red: #dd603c; --font-sans: var(--font-dm-sans), system-ui, -apple-system, sans-serif; - --font-mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace; + --font-mono: "JetBrains Mono", "IBM Plex Mono", "Fira Code", ui-monospace, monospace; } body { diff --git a/web/public-storefront/src/components/Header.tsx b/web/public-storefront/src/components/Header.tsx index bc62b9b..33074e4 100644 --- a/web/public-storefront/src/components/Header.tsx +++ b/web/public-storefront/src/components/Header.tsx @@ -7,10 +7,10 @@ export function Header() { Obol Stack diff --git a/web/public-storefront/src/components/ServiceCard.tsx b/web/public-storefront/src/components/ServiceCard.tsx index d7873d2..c09e9fd 100644 --- a/web/public-storefront/src/components/ServiceCard.tsx +++ b/web/public-storefront/src/components/ServiceCard.tsx @@ -232,7 +232,11 @@ function Snippet({ code }: { code: string }) { From c4d0c32c3db77c148c15c4ff19acf53518ea2636 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ois=C3=ADn=20Kyne?= Date: Tue, 19 May 2026 19:31:37 +0200 Subject: [PATCH 2/2] Update images --- .../public/obol-stack-logo.png | Bin 8301 -> 9066 bytes .../public/obol-stack-logo.svg | 25 +++++++++-------- .../scripts/build-wordmark.html | 26 ++++++++---------- 3 files changed, 25 insertions(+), 26 deletions(-) diff --git a/web/public-storefront/public/obol-stack-logo.png b/web/public-storefront/public/obol-stack-logo.png index 7e4013b818b8c5ed6d94afdc57a0df4adc80774a..0a3afa1413ca1edd37ae0df6d30fd76e36c170e1 100644 GIT binary patch literal 9066 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 Ty3|}-Xi3G=9;PP literal 8301 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 Gh5SF*=2h|l diff --git a/web/public-storefront/public/obol-stack-logo.svg b/web/public-storefront/public/obol-stack-logo.svg index 9a74df7..cd8a596 100644 --- a/web/public-storefront/public/obol-stack-logo.svg +++ b/web/public-storefront/public/obol-stack-logo.svg @@ -1,24 +1,25 @@ - - - - + + + + ObolStack + >Obol Stack diff --git a/web/public-storefront/scripts/build-wordmark.html b/web/public-storefront/scripts/build-wordmark.html index 800733e..3a95743 100644 --- a/web/public-storefront/scripts/build-wordmark.html +++ b/web/public-storefront/scripts/build-wordmark.html @@ -17,30 +17,28 @@
- - - - - - - + + + + ObolStack + >Obol Stack