Articles

A Declarative Naming Layer for the View Transition API

I describe how I built a declarative naming layer for the View Transition API to replace repetitive imperative orchestration with hierarchical transition attributes. The system uses Vue template syntax, Vite compiler transforms, generated TypeScript transition names, VS Code highlighting, and a single runtime startTransition function to manage complex multi-element View Transitions.

Conditional Wrapping in Vue 3: Three Approaches

I explore three ways to build a conditional wrapper component in Vue 3: passing the wrapper as a prop, defining it directly in the default slot, and using a dedicated wrapper slot for arbitrary nesting. The advanced version includes both the original cloneVNode and ShapeFlags implementation and a more future-proof alternative based only on Vue's public VNode API.

Hard Object References: Stable Object References for Mutable Application State

I explain Hard Object References as a practical rule for mutable application state: use stable object and array references, avoid rebinding and nested reference replacement, and copy data into existing objects instead. This approach helps reduce stale aliases, obsolete references, and hard-to-debug state bugs in complex TypeScript and frontend applications.

Why Every Frontend Project Should Have Its Own UI Layer

I argue that frontend projects should own an internal UI layer instead of scattering third-party components across product code. Wrappers create stable contracts, centralize accessibility, theming, defaults, localization, and vendor quirks, reduce migration risk, and make UI architecture product-owned.

Stop Turning the Mobile Web Into a Second-Class Platform

I argue that app-first strategies are weakening the mobile web by forcing web-shaped products into closed containers. Browsers provide tabs, links, bookmarks, extensions, interoperability, and user control. Developers should support PWAs and better mobile browser capabilities to preserve open software.