Welcome to...

The Rendered Soul

…even life needs a re-render sometimes

Thoughts on web platforms and application architecture, from UI systems and APIs to performance, tooling, and scale.

Browse all posts

Standard Schema: The TS Validation Babel Fish

Standard Schema has emerged as one of those elegant solutions that makes you wonder why we didn’t have it sooner. Released in Jan, it’s already making waves across the TypeScript ecosystem by providing a unified interface for schema validation libraries. The Validation Tower of Babel Before diving into Standard Schema, we shall briefly recall the state of validation in the TypeScript world. We’ve had a proliferation of excellent libraries: Zod with its robust type inference and composable API Valibot optimized for bundle size ArkType focusing on performance Yup as the veteran in the space io-ts with its functional approach Superstruct, TypeBox, and many others Each has its strengths, trade-offs, and passionate fan bases. But this diversity created a problem: tools and frameworks that accept schemas (like form libraries, API frameworks, or ORM query builders) had to either: ...

March 1, 2025 · 5 min · 1061 words

Playing with Advanced attr() in CSS

The upgraded version of attr() is exactly the kind of CSS feature that makes you want to immediately open CodePen and start trying dumb little experiments. For years, attr() has mostly lived in the content: bucket: .tag::before { content: attr(data-label); } Useful, but narrow. The interesting part now is that attributes can be read as typed values. So instead of only pulling strings into generated content, CSS can parse them as lengths, colors, numbers, integers, and more. ...

February 21, 2025 · 4 min · 646 words

Advanced Patterns for Production-Ready SSE (continued)

Last June, I wrote “The Quiet Power of Server-Sent Events for Real-Time Apps” where I sang the praises of SSE as a lightweight alternative to WebSockets for many real-time scenarios. While the simplicity of SSE remains one of its greatest strengths, that simplicity can be deceptive. A naive implementation might work perfectly in development but crumble under the harsh realities of spotty connections, aggressive proxies, and browser quirks. Let’s dive into the techniques that transform fragile SSE connections into resilient data pipelines. ...

January 30, 2025 · 9 min · 1765 words

Svelte 5: The Comeback Story of a Revolutionary Framework

Back in early 2020, I wrote a blog post titled “Svelte 3: The Compiler as Your Framework”. Like many developers at the time, I was blown away by Rich Harris’s compiler-centric approach that promised to solve the virtual DOM overhead of React while offering a delightfully simple developer experience. The “write less code” mantra resonated with me, and for a handful of smaller projects, Svelte proven to be beyond useful. But then, as projects grew more complex and team considerations came into play, Svelte gradually slipped from my daily toolkit. The ecosystem wasn’t quite there yet. Component libraries were sparse compared to React’s thriving marketplace. Finding developers experienced with Svelte was challenging. The “real world” pushed me back toward React and occasionally Vue for client work. ...

November 16, 2024 · 8 min · 1579 words

When tRPC Might Not Be Your Best Bet: Adverse Cases for Choosing Alternatives

For web eng friends who are building TypeScript full-stack applications, chances are you’ve either used tRPC or had it enthusiastically recommended to you. And for very good reasons: tRPC has revolutionized how we build type-safe APIs, eliminating the schema definition/code generation dance that plagued earlier approaches. I’ve been a happy tRPC user since v9, and I’m not here to convince you to abandon it. The developer experience benefits are real. End-to-end type safety without code generation, excellent editor autocomplete, and runtime validation that just works. Plus, as the latest StackOverflow survey indicates, TypeScript developers continue to command higher salaries than their JavaScript counterparts. ...

September 27, 2024 · 5 min · 1011 words

Web Apps architecture without the hand-waving.