» Tag
frontend
59 postsThe PageSpeed mystery: why identical pages scored differently
Why did architecturally identical static pages split into two PageSpeed score groups? An LCP=FCP clue exposes a paint race on slow hardware, fixed by inlining CSS.
Headless Component Architecture: Breaking Free from UI Library Lock-in in React
Instead of overriding Material UI or Bootstrap styles with endless CSS hacks, learn how headless components decouple logic from markup for scalable design systems.
Browser video analytics: ditch timeupdate for requestVideoFrameCallback
The CourseSpeed developer explains why the timeupdate event is unreliable for video analytics and how requestVideoFrameCallback offers a battery-efficient alternative.
CommitBrief — AI code reviews, right in your terminal
A provider-agnostic, local-first CLI that reviews your staged changes, a historic range, or a whole GitHub pull request. Zero telemetry, no server. Free and open source.
commitbrief.comuseEffect Is Not a Lifecycle Method
Treating useEffect like componentDidMount causes subtle race conditions. The real mental model is synchronization with external state, not timing.
EffCSS v5: Type-Safe CSS-in-TS Built on Native Browser APIs
EffCSS v5 is a zero-dependency CSS-in-TS library using CSSStyleSheet and adoptedStyleSheets, offering a contract-first, framework-agnostic styling approach.
Part 3: Stop Syncing Props Into State in React Applications
Explore why syncing props into state in React apps leads to unnecessary complexity.
Running TypeScript 7 in Vue via .tsx, no waiting required
TypeScript 7 shipped, but tools like Volar can't use it yet. Vue apps written in plain .tsx skip the wait entirely — here's why and how.
Why I Stopped Writing tap() Inside rxResource Streams
Writing signals via tap() inside an Angular rxResource stream triggers NG0600. The fix: return one typed value from the stream instead of side-effecting.
Plugin badge reuses dashboard cache instead of new state
A plugin-update badge reuses the existing cross-site dashboard cache instead of a new API, avoiding duplicate state and sync bugs.
Rewriting a 20,000-Line AngularJS Editor: The Real Engineering Challenge
A team rewriting a Fabric.js map editor found that the hardest problem wasn't legacy code, but a tainted canvas CORS error while building print support.