Canvas vs DOM & Interactive UI
Canvas vs DOM tradeoffs, CSS interactions, custom physics, and portfolio design
Explore topics
New here? Start at the home hub →Comparison guides for this topic
Comparison guides repeatedly referenced across this topic, collected as the next practical step.
Best TypeScript Books Compared 2026 — Find the Perfect Book from Beginner to Pro
A thorough comparison of 5 top TypeScript books including Effective TypeScript and Survival TypeScript using our 2026 scoring system. Find the best pick by weighted averages of depth, practicality, and beginner friendliness.
Best Algorithm Books Compared 2026 — Find the Perfect Book from Beginner to Advanced
A thorough comparison of 5 classic algorithm books including CLRS, the Ant Book, and more using our 2026 scoring system. Find your best pick based on weighted averages of depth and code examples.
Best Code Editors 2026 — AI Integration, Performance & Extensibility Compared
A thorough comparison of 5 popular code editors — Cursor, VS Code, Zed, and more — using our custom scoring system. Find the best editor by weighted averages of AI integration, performance, and extensibility.
5 articles
Canvas vs DOM — Decision Criteria from 203 Components with Real Benchmark Data
The decision criteria used to assign 203 interactive components between Canvas API and DOM, explained with real examples and measured performance data.
Top 10 Bugs from 203 Canvas/DOM Components — Patterns Revealed by Real Data
Bugs encountered during the development of 203 interactive components, tallied from git history. The most frequent patterns and their fixes presented in a Top 10 format.
Interactive UI with Pure CSS — Practical Use of transform, transition, and Custom Properties
CSS techniques using transform, transition, and custom properties demonstrated through DOM+CSS-based interactive UI components like FidgetSpinner, InfiniteKnob, and ToggleSwitch.
The Limits of a 180-Line Custom Physics Engine — Why I Dropped Matter.js and What I Couldn't Cover
Built a custom 2D physics engine in 166 lines of physics.ts, reducing Matter.js's 300KB to 4KB. The trade-offs of focusing on gravity, collision, and bounce while giving up constraints, friction, and stacking.
Building a Custom Physics Engine for the Browser from Scratch
How I built a lightweight 180-line physics engine in TypeScript instead of using Matter.js for my portfolio site. Reduced bundle size from 300KB to 4KB while maintaining 60fps.