MyAnythingList Canonical English Docs
Freshness: 2026-03-12 v10 • Standard navigation header/footer • Every document should reveal freshness immediately at the very top and bottom.
System
system_en.html
This document explains how the MyAnythingList system is deployed, hosted,
archived, and maintained operationally.
Architecture describes how the software works internally.
System describes how it runs in the real world.
1. Hosting Philosophy
The system is intentionally designed to run on simple infrastructure.
- Static hosting is preferred whenever possible.
- Complex server frameworks are avoided.
- CPU-heavy server processing should be minimized.
- Client-side logic performs most rendering.
A major design goal is that a media wall can be deployed using
only static files on inexpensive hosting.
2. Typical Hosting Architecture
Authoring VPS
↓
Build / Testing
↓
Static publish
↓
S3 or CDN hosting
↓
Public browsers / kiosks
- Authoring and mastering occur on a development VPS.
- Public content may be served from object storage.
- CDNs may be used for global distribution.
3. Documentation Tree
_docs/
index-docs.html
en/
index_en.html
requirements_en.html
architecture_en.html
system_en.html
developer_en.html
vision_en.html
- Each language has its own folder.
- Documents are directly browsable.
- File system transparency is intentional.
4. Multilingual Documentation
The documentation architecture is designed for translation.
- English documents act as the canonical source.
- Other languages mirror the same structure.
- Translations may be human or AI assisted.
_docs/
en/
es/
fr/
de/
zh/
5. Static Deployment
The player itself is a static HTML + JavaScript application.
- No database is required.
- No backend runtime is required.
- Static hosting platforms can serve the entire application.
6. Logging
Usage can be monitored using normal web server logs.
Examples:
- Apache access logs
- S3 access logs
- CDN request logs
These logs allow operators to see:
- player usage
- playlist loading
- bot activity
- traffic sources
7. Daily Builds
Development builds may be archived in dated directories.
Example:
beta/
_daily-builds/
2026-03-11/
2026-03-12/
These builds provide transparency into development progress.
8. Public Mirrors
The project is intentionally mirror-friendly.
- Static file trees can be mirrored easily.
- Documentation folders can be copied directly.
- S3 object trees can act as distributed mirrors.
9. Operational Goal
The system should remain usable and understandable even on
simple infrastructure and inexpensive hosting.
v09 Delta — Current Implementation Focus
- Correct Fit Width + Digital so it uses all available width.
- Repair Fit Everything so the full visible grid actually fits inside the usable viewport.
- Keep Fit Height behavior intact as the working reference.
- Ensure QR export remains present whenever QR is visible in the live tile.
Updated: 2026-03-12 v09
v10 Delta — Active Issues and Corrections
- v09 regression: startup QR positioning regressed after previously being corrected in an earlier build. The system must retain the fixed startup QR path across later iterations.
- Header text toggle: the Show Header Text control must repopulate and reveal the standardized header text instead of leaving the top area blank.
- Uploaded thumbnails: uploaded custom images must fit the panel logically and export consistently.
- URL art: URL art should scale into the readable thumbnail area more aggressively while remaining legible and visually larger than the smaller footer URL.
v12 Delta — Deterministic Grid Geometry Rule
Principle: Never compute layout until the required inputs are known,
and never recompute it unless new wall-level information exists.
Grid geometry must be solved exactly once when the following inputs are known:
- startup control state
- viewport and safe-area geometry
- aspect ratio and fit mode
- number of loaded URLs (tile count)
Once these inputs are known, the wall grid (rows, columns, tile size, and margins)
must be computed deterministically and remain stable.
Thumbnail image loads, QR generation, and URL-art rendering must update only the
contents of an existing tile box. These events must not trigger a recomputation
of wall geometry.
Grid geometry may be recomputed only when one of the following changes:
- a control state
- viewport size
- safe-area selection
- tile count
This rule prevents unnecessary redraw loops and ensures consistent rendering
between the startup pass and later rendering phases.