MyAnythingList Canonical English Docs
Freshness: 2026-03-12 v14 • Standard navigation header/footer • Every document should reveal freshness immediately at the very top and bottom.

Architecture

architecture_en.html

This document describes how the MyAnythingList system is built internally. It explains the startup model, parsing model, rendering model, state model, and deployment model. It is the technical companion to the behavioral truth defined in requirements_en.html.

1. High-Level System Model

The system can be understood as a sequence of transformations:

free-form UTF-8 text
→ URL discovery
→ comment / command parsing
→ tile model construction
→ thumbnail and QR resolution
→ grid rendering
→ interactive control state

The user does not need to learn a rigid playlist syntax first. The architecture exists to extract useful structure from ordinary text.

2. Startup Architecture

The top of the main application file follows a standardized architecture.

<meta charset="UTF-8" />
<title>generic fallback title</title>
<!-- Build: ... -->
<!-- Source files: ... -->

window.MyAnythingListConfig = { ... };

const BUILD_FILE = "...";
const ProjectSourceURL = "...";
const PageTitle = "...";
const HeaderText = `...`;
const FooterText = `...`;

3. Configuration and State Model

The runtime state model includes both startup defaults and current UI state.

Examples of state variables

GET variables may mirror supported startup values, but branding/template content should remain outside exported state objects where appropriate.

4. URL and Command Parsing Pipeline

The parsing system has multiple layers:

  1. Read raw UTF-8 text.
  2. Split into manageable textual units while preserving discovery order.
  3. Detect valid URLs anywhere in the text.
  4. Recognize comment lines beginning with #.
  5. Recognize command lines beginning with #_.
  6. Attach contextual commands to the most recent URL above them, unless the command creates standalone content.
  7. Build a normalized internal tile list.

The architecture is deliberately more flexible than a line-oriented parser. The parser is a text interpreter, not merely a one-line tokenizer.

5. Command Interpreter Architecture

The command interpreter is a second semantic layer on top of comment parsing. It must support contextual augmentation of playlist items and, where needed, standalone non-URL panels.

Current and planned command categories

Commands should remain readable in plain text and must not require hidden binary metadata.

6. Tile Model Architecture

Each discovered item becomes a tile model with content, presentation, and overlay metadata.

A tile may include:

7. Thumbnail Resolution Architecture

The thumbnail resolver determines what image to show for a tile.

command-defined thumbnail
→ uploaded thumbnail
→ platform-derived thumbnail
→ generic fallback

8. QR Architecture

QR generation is an overlay subsystem.

In image-only panel modes, the QR target may still point to the image URL unless the command semantics explicitly suppress link affordances.

9. Rendering Architecture

The rendering layer transforms tile models into grid panels.

tile model
→ tile container
→ thumbnail or image layer
→ QR overlay
→ footer overlays
→ click / info affordances

10. Control Panel and Gear Architecture

The control panel and gear are not separate unrelated features. They are part of a single recoverable control-state architecture.

11. Editor Architecture

The playlist editor is an in-browser editing environment for the raw text source.

12. Output and Export Architecture

Output generation is a secondary pipeline layered on top of tile rendering.

13. Documentation Architecture

The documentation tree is part of the project architecture, not an afterthought.

/_docs/
  index-docs.html
  /en/
    index_en.html
    requirements_en.html
    architecture_en.html
    system_en.html
    developer_en.html
    vision_en.html

14. Hosting Architecture

The system is intentionally designed to support static or mostly static deployment.

authoring / mastering environment
→ generated files
→ static hosting (Apache, S3, CDN)
→ public consumption

15. Build and Archive Architecture

Dated build archives may exist under daily build folders and are useful for transparency, testing, and human historical review.

16. Architectural Principle

The architecture of MyAnythingList is designed to preserve human-readable text, visual usefulness, static deployability, and future maintainability at the same time. Its strength is not just what it renders, but how understandable the whole pipeline remains.

For binding functional truth, read requirements_en.html. For philosophical purpose, read vision_en.html.

v09 Delta — Layout Geometry Clarifications

The viewport fitting system now has three logical modes: Fit Width, Fit Height, and Fit Everything. Safe-area profiles modify the usable viewport rectangle before scale is computed. Digital safe areas are intentionally tiny; Tube TV safe areas are intentionally generous. Fit Everything must use a single uniform scale derived from the usable viewport bounds. The immutable tile layer order remains: thumbnail or URL art, QR, type pill, small URL, optional overlays.

Updated: 2026-03-12 v09

v10 Delta — Fixed Tile Composition and Startup Discipline

Tile composition remains deterministic. Thumbnail imagery or URL art renders as the texture/background thumbnail layer. The QR code renders only on its dedicated QR layer above thumbnail imagery and below the pill and smaller URL text. The QR payload must use the full valid URL including anchor-comment fragments.

Startup QR placement must be computed from final tile geometry. If geometry is not ready, the QR waits for final placement rather than flashing on an incorrect layer or position. This rule exists to prevent regressions where a later build accidentally loses the startup fix from an earlier build.

URL art should occupy as much readable thumbnail area as possible while staying visually larger than the footer URL text. Exports must preserve the same proportions, positioning, and scaling that appear on-screen.

v14 Delta — Educational Mission, Transparency, and Misuse Resistance

MyAnythingList is a public educational system intended to help ethical, curious, and globally diverse people learn how information can be structured, inspected, rendered, and shared. The project should favor transparency, inspectability, multilingual access, and source-aware communication over black-box presentation.

Updated: 2026-03-12 v14

2026-03-17 Conversation Additions

2026-03-17 Additive Expansion: The original architecture remains authoritative and unchanged above. The following material is appended under a strict preservation rule so future sessions, tools, and contributors never delete or compress previously decided knowledge.

A. Unified Live / Export Architecture

The architecture now explicitly requires a single canonical tile composition model shared by live view, export rendering, scripted rendering, batch rendering, and future headless builds. Export is not permitted to reconstruct the tile using a second interpretation of layout. The same state must yield the same composition order, spacing, geometry, visibility decisions, and final layering regardless of whether the output is on-screen, downloaded, printed, or scripted.

B. Native-Resolution Rendering Requirement

The architecture now forbids screenshot-style export and any "capture what the browser already rasterized" shortcut when that shortcut would lower fidelity. Export must render the canonical model natively at the selected output size. Screen-resolution capture, viewport-bound CSS-pixel export, or flatten-then-upscale workflows are architectural failures because they violate the project's expert-quality expectations for 4K and 8K output.

C. Determinism and Repeatability

The system is now explicitly architected for total replicability. Any open-source programmer should be able to repeat yesterday's work today using the documentation package alone. The architecture therefore treats hidden judgment, undocumented heuristics, and one-off author memory as liabilities. Every meaningful behavior must be externalized into the docs.

D. Documentation Preservation Architecture

The documentation system itself is part of the architecture. The package now follows an append-only preservation model: old content remains, and new content is added as additive sections. Rewriting older sections into shorter summaries is a regression because it destroys institutional memory. A future assistant session, contributor, or automated tool is not allowed to "clean up" the docs by compressing them.

E. Global / School Deployment Implication

The architecture now explicitly recognizes a world-scale educational context. Controls, labels, and user-facing text must be designed for localization from the beginning. Directionality, longer translated strings, and multilingual rendering are not later polish items; they are architectural concerns affecting layout, rendering, scripting keys, acceptance tests, and UI behavior.