Random Pick: Meridian

Loaded SRC_URL

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

JSON source (via CORS proxy): wangshupeng_184764_15023612_dream_app.json

Summary of Behavior

Meridian v1.0.0 — tagline “Learn anything. Remember everything. Connect the dots.” — is a polished dark-mode learning dashboard for a user named William (12-day streak, 45-min daily goal). It fetches a JSON knowledge-graph and exposes four tabbed views:

Clicking any topic card opens a modal with mastery, subtopics, connected-topic pills (clickable — they swap the modal to the connected topic), and four study-mode buttons (Deep Dive / Flashcard / Quiz / Quick Review). “Start Session” fires a toast “▶ Starting deep dive session for Machine Learning” and closes the modal.

Networking is noteworthy: the app tries three public CORS proxies (corsproxy.io, api.cors.lol, api.codetabs.com) in sequence and falls back if any fail, then shows a red error banner if all three do.

Things That Didn’t Work As Expected

Prompt to Improve the App

Take Meridian from a pretty dashboard to a working learning loop. In this order:

  1. Drop the CORS proxies. The JSON lives on the same origin as the HTML — fetch it directly with a relative path (../a1/15-json/….json) and delete the PROXIES array. Add a real retry button to the error state.
  2. Fix the daily-goal ring. Filter data.sessions to today’s local date before summing. Show an explicit “no sessions today” state at 0 min. Render a subtle overflow ring when the user exceeds 100%.
  3. Make Flashcard and Quiz real, at minimum. For each topic, generate 5–10 flashcards via an LLM call (claude-haiku-4-5) seeded with the topic title, category, and subtopics. Render a one-card-at-a-time flipper with “Got it / Not yet” buttons that feed a spaced-repetition next-review date. Quiz mode: 5 MCQs with 1 correct answer, scored at the end. On session end, append to data.sessions with a real recall_score and nudge mastery_score up or down.
  4. Persist user-mutable state in localStorage (meridian.user.v1): toggles, selected mode, last-viewed tab, per-topic mastery drift from sessions, and the sessions array. Boot merges server JSON (as defaults) with the local overlay.
  5. Build the Topic Graph the toggle promises. Render an SVG force-layout using topic.connections as edges and mastery_score as node radius; click a node to open the topic modal.
  6. Make all four settings editable. Explanation Depth becomes a three-stop slider; AI Tutor Style becomes a <select>. Both values thread into the LLM prompt for flashcards and quizzes so the setting changes actually affect output.
  7. Make recommendations actionable. An insight-only rec should at minimum route to a generic “Reflect” view that lets the user journal against the insight; don’t render dead cards.