Random app summary: DreamBlog (inside TERMINAL_VIEWER)

Session capture from the embedded page after RANDOM in the parent shell (Finn Li’s mock blog app).

Parent shell: https://producingtechnology.com/browser.html

Shell state (as shown)

SYSTEM: ONLINE
SESSION: ACTIVE
PAGE: 13/143
« PREV
RANDOM
NEXT »
LOADED_SRC: https://producingtechnology.com/65-apps/lifinn_189454_15200462_dream.html

Loaded SRC_URL / LOADED_SRC

https://producingtechnology.com/65-apps/lifinn_189454_15200462_dream.html

Live embed (iframe)

Same LOADED_SRC in an iframe. If the area is blank, the host may block framing via X-Frame-Options or frame-ancestors.

Summary of the embedded app (DreamBlog)

DreamBlog is a mock blog: welcome + user line, New Post, Show JSON, a post list with Add Post / Loaded JSON, and client-side (or local) state only—no real public blog or server.

What the app did (behavior)

Things that may not work how you first expect

Best attempt at a prompt to improve the app

You are improving DreamBlog (single-file mock) and, if needed, how TERMINAL_VIEWER
frames it. Goals: (1) On load failure, show a clear error where “Loading...” is today.
(2) For “Add Post,” confirm whether state is in-memory, localStorage, or export-only, and
add a one-line “Demo: data stays on this device” banner. (3) In Show JSON, add
copy-to-clipboard and simple syntax highlighting. (4) A11y: main landmark, list semantics
for posts, focus order New Post → form → list. (5) Optional: draft vs published with a
read-only public preview route for assignments.