Visit summary: producingtechnology.com/browser.html
Loaded SRC_URL (simulated Random)
https://producingtechnology.com/65-apps/jiyang_180060_15200451_jsonapp.html
What TERMINAL_VIEWER (browser.html) does
The page presents a retro terminal-style shell with status lines, a blinking cursor next to the URL, and three controls:
PREV, RANDOM, and NEXT. It keeps a fixed array of student app URLs, sets an iframe to the selected URL, updates a LOADED_SRC
label with the full URL, and shows PAGE: i/n
. On first load it calls updateView() with index 0, so the first entry in the list loads immediately (not a random start). RANDOM sets the index with Math.floor(Math.random() * pages.length) and reloads the iframe.
What the loaded app does
Despite the filename jsonapp.html, the embedded page is a polished dark UI titled Liminal — Project View. It shows a loading screen, then fetches JSON from
https://producingtechnology.com/a1/15-json/jiyang_180060_14904076_yj586.json
and renders a music-production style dashboard: project metadata (BPM, key, time signature, sample rate, tags), stem rows with level bars and clickable mute toggles, a timeline-style arrangement with section blocks, spectral clash
rows, collaborators, export history, and notes. Content is driven entirely from that JSON payload.
What did not match expectations
- Host shell: Button labels in the source appear corrupted in some environments (e.g. replacement characters instead of « / »), which looks like a character-encoding issue in the file or pipeline.
-
Host shell: The URL list includes non-student-app entries (e.g.
.split.pyand.filenames.csv), so Random can land on tooling artifacts instead of an interactive app. -
Host shell: First paint always loads index 0; only RANDOM introduces unpredictability—there is no
start from random
on load. - Embedded app: Several UI strings in the fetched HTML show mojibake (encoding problems), so typography and symbols may look wrong in the browser even when logic runs.
-
Embedded app: Stem mute buttons only flip local state in memory; they do not persist back to the server or JSON (reasonable for a mock, but easy to misread as
saving
).
Prompt to improve the app (host + gallery)
Refactor
browser.html(TERMINAL_VIEWER v1.0) into a maintainable gallery: serve the page as UTF-8 and fix PREV/NEXT label encoding; filter thepagesarray to only include real.htmlstudent apps (exclude.py,.csv, and other build artifacts); optionally shuffle or randomize the initial index on load with adon't repeat last sessionflag insessionStorage; add a text filter and copy-to-clipboard for the current URL; debounce rapid Random clicks; and when an iframe fails to load (network, 404, or X-Frame-Options), show an inline error panel with the URL and anopen in new tablink. For each embedded JSON app, normalize file encoding to UTF-8, replace broken glyphs, add visible error states for failedfetchwith retry, and document which fields are required in the JSON schema.