Developer Guide
Last updated: 2026-03-12 v04
developer_en.html
This document describes how developers should understand, extend,
and maintain the MyAnythingList system.
1. Development Philosophy
- Preserve simplicity.
- Preserve human-readable text.
- Prefer transparent behavior over hidden logic.
- Document decisions clearly.
Future developers should not need historical chat logs to understand
how the system works.
2. Core System Components
Playlist text
↓
URL discovery
↓
Command parsing
↓
Tile model creation
↓
Thumbnail / QR resolution
↓
Grid rendering
3. Playlist Parser
The parser extracts valid URLs from any UTF-8 text.
Rules:
- URLs may appear anywhere in text.
- Lines beginning with
# are comments.
- Commands use the syntax
#_Command().
Example:
My research notes:
https://example.com/article
#_ReplaceThumbnailWithImage("cover.jpg")
4. Command System
Commands extend playlist behavior.
Examples:
#_ReplaceThumbnailWithImage("image.jpg")
#_LoadImage("panel.png")
#_LoadImageHideLinks("poster.png")
Commands apply to the most recent URL unless otherwise defined.
5. UI State Architecture
Startup rendering order
Developers should optimize initial work in this order: visible tile shell, visible QR and text geometry, visible thumbnail or URL art, then off-screen work. A visible tile may continue improving after first paint, but it should never begin in an obviously wrong state.
Runtime state is controlled by configuration variables.
Examples:
- ShowControls
- ShowGear
- AutoHideGear
- ShowQR
- ShowTypes
- ShowURLs
These values may be set through:
- startup configuration
- URL parameters
- UI interaction
6. Thumbnail System
URL art implementation discipline
- Treat the live URL-art tile as canonical. Export code should reuse the same measurements and line-fitting logic wherever possible.
- Do not let export rendering drift into a separate approximate typography system.
- When the footer URL is visible, do not sink the main URL art underneath it; reserve the footer band and fit the main text into the remaining tile area.
- When URL length is within normal bounds, scale text to show the full URL exactly inside the tile.
Thumbnail sources are prioritized:
Command thumbnail
→ Uploaded thumbnail
→ Platform thumbnail
→ Fallback image
Rules:
- QR images must never replace thumbnails.
- Uploaded images must affect only the intended tile.
7. Contribution Guidelines
- Every materially relevant prompt must produce a documentation update in the same iteration.
- Missing an explicit prior requirement from the conversation or attached handoff artifacts is a spec-tracking failure.
- When in doubt, search the handoff materials and previously updated docs before assuming a rule does not exist.
- Preserve existing behavior unless explicitly redesigned.
- Update documentation when behavior changes.
- Favor readability over cleverness.
8. Long-Term Goal
The project aims to remain understandable to future
developers and AI systems for decades.