Building a browser canvas editor without a framework
Frontend state, pointer input, Canvas history, import/export, and nonvisual limits.
Notes / Build logs
Short logs on changes, tradeoffs, and next fixes. Use the quick path, topics, or case studies.
Start here
Three entries cover the strongest implementation signals.
Frontend state, pointer input, Canvas history, import/export, and nonvisual limits.
Command handling, vote state, local scanning, OBS control, and reconnects.
Map-first workflow, asset status, inspections, work orders, imports, and production gaps.
Browse by topic
Static anchor links keep the archive readable without JavaScript.
UI state, page structure, browser APIs, and project paths.
Python bot behavior, commands, vote state, and operations.
Map-first operations, sample data, field records, and caveats.
Pointer input, pixel state, history, export, and touch controls.
Keyboard paths, status output, focus states, and Canvas limits.
Static-site structure, metadata, project framing, and contact paths.
Archive
ImageData snapshots keep undo simple; large canvases make snapshots expensive.touch-action: none.!vote, !results, !currentmovie, !time, and !movies. TwitchIO routes them to Python handlers.movie-night.html focused on the stream and moved search, posters, copyable !vote, and no-JS list to movie-library.html.