6 articles
Thoughts & Notes
How we work: the technology, decisions, and approach behind our projects.
CDN for the ones who actually need it
The pitch for CDN is often a blanket recommendation: serve static assets from the edge, reduce latency everywhere. The reality is more precise. CDN improves performance when the content is static, cacheable, and requested from multiple geographic regions. For a regional SaaS product with authenticated users, you're mostly serving uncacheable responses — adding a CDN layer won't change your p95 latency by much, but it will add complexity to your cache invalidation story.
We don't build SPAs. Here's why.
Most development teams default to single-page applications because that's the path of least resistance—a Create React App, a Vite template, everything client-rendered. The user opens your product and stares at a blank screen while the browser downloads, parses, and executes hundreds of kilobytes of JavaScript before showing anything.
60 frames, no compromises
Animation quality is one of the fastest ways to tell a premium product from a mediocre one. Most teams reach for JavaScript-driven animations by default—attaching scroll listeners, computing values on every event, setting styles directly. The result is main-thread congestion: the same thread that handles clicks, layout, and JavaScript execution now also drives every frame of your animation.
TypeScript: baseline, not an option
Some teams treat TypeScript as optional—a choice you make for large projects or when you have time. We treat it as the minimum viable starting point, the same way you wouldn't ship a project without version control. The question isn't whether to use it; it's how strictly to use it.
Tokens, not colors
Most projects start with a color palette—a Figma file with named swatches. Then the same hex value gets copy-pasted into thirty component files. When the brand updates, a developer spends a day doing find-and-replace, misses three occurrences, and ships a half-updated product. This is the cost of working with colors instead of tokens.
The metrics Google measures — and so do we
Core Web Vitals are Google's way of measuring user experience as a number. LCP measures how long until the largest visible element appears. INP measures how long the page takes to respond to user input. CLS measures how much the layout shifts unexpectedly as the page loads. Together they determine whether your site is ranked as fast, needs improvement, or poor.