Codex supports 16-scene HTML landing pages with season and timezone logic
Creators shared a Codex and GPT Image 2 workflow that outputs static HTML landing pages whose scenes shift by season and local time. The setup gives humans a cleaner format to review, tweak, and navigate than Markdown when agents generate multi-scene pages.

TL;DR
- bas_fijneman's Codex demo showed a one-prompt workflow for a static HTML waitlist page whose background swaps across 16 scenes, combining four seasons with four times of day.
- The prompt in bas_fijneman's landing page thread specifies plain HTML, CSS, and vanilla JavaScript, plus GPT Image 2 assets, so the result can run by opening
index.htmldirectly. - shannholmberg's framework and karpathy's post both argued that HTML is becoming the better review format when humans need to inspect, tweak, and navigate agent output instead of reading walls of Markdown.
- According to bas_fijneman's full prompt, the page picks scenes from local time plus hemisphere-aware season logic, and exposes URL overrides like
?season=winter&time=nightfor testing.
You can browse Studio Nope, steal the full prompt from bas_fijneman's thread, and compare it with shannholmberg's HTML vs Markdown diagram plus karpathy's HTML tip. The interesting bit is not just that Codex made a landing page. It is that the artifact stayed inspectable as a single static site while the visual system, time logic, and review layer all lived in HTML.
HTML as the review surface
In shannholmberg's post, Markdown is the agent-to-agent protocol and HTML is the human review layer. The split is concrete: briefs, drafts, and handoff files stay diffable in Markdown, while review gates, diagrams, tables, and annotated workspaces move into HTML.
karpathy pushed the same pattern one step further: ask the model to structure its response as HTML, open it in a browser, and you get layout, graphics, and interactivity instead of a long text blob. LinusEkenstam's reply adds that some builders have already been using HTML for context because it is easier for them to read than .md.
The 16-scene prompt
The prompt is unusually specific. Instead of asking for a pretty page, bas_fijneman's landing page thread locks down the art system, runtime, and deliverables:
- One subject, rendered in 16 variants: 4 seasons × 4 times of day.
- Composition lock across all images, including fixed camera angle, framing, landmark placement, and golden-ratio anchors.
- A single-page site built with HTML, CSS, and vanilla JavaScript, with no framework or build step.
- Three background layers: blurred fill, sharp scene, and a gradient overlay matched to each scene.
- A fixed output package:
index.html,README.md, and awaitlist-scenes/folder with named assets.
That structure is why the result reads more like a reusable template than a one-off vibe-coded mockup.
Time and season logic
The page logic is also part of the prompt. bas_fijneman's Codex demo says the site reads visitor timezone and local time, while bas_fijneman's full prompt spells out the buckets: morning is 05:00 to 10:59, midday is 11:00 to 16:29, golden hour is 16:30 to 19:59, and night covers the rest.
Season selection is supposed to use visitor date with hemisphere awareness, fall back to timezone, and avoid triggering a fresh geolocation permission prompt. For testing, the prompt includes explicit query-string overrides, including ?season=spring&time=morning and ?season=winter&time=night.
Static site fallback rules
A smaller but useful detail sits lower in the prompt: every visible nav item and CTA defaults to a single configurable studioNopeUrl, which bas_fijneman's full prompt points at Studio Nope. The waitlist form uses a waitlistEndpoint constant, posts JSON with email, season, time, and source, and falls back to redirecting to the studio URL when no backend is configured.
That makes the artifact portable. The same prompt covers the visuals, the local-time behavior, and the boring glue code that usually breaks when a generated landing page leaves the demo thread.