Blog
Thoughts on web development, TypeScript, React, and building better software.
PostgreSQL Can Replace Your Whole Stack
With extensions for vector search, messaging, caching, and document storage — PostgreSQL has evolved from a database into a complete platform that replaces Redis, MongoDB, Elasticsearch, and more.
Proxmox LXC Containers: Lightweight Virtualization Done Right
Why LXC containers on Proxmox beat full VMs for most workloads — performance, density, and management walkthrough.
Building a Bare-Metal Kubernetes Cluster with K3s
How I built a high-availability compute cluster using Raspberry Pis and recycled hardware, orchestrated with lightweight K3s.
Building Scalable Web Apps with Next.js
A deep dive into modern architecture patterns for building production-ready Next.js applications that scale.
Understanding React Server Components
A practical guide to React Server Components in Next.js App Router — when to use them and how they change the mental model of building web apps.
Mastering TypeScript Generics
Understanding generics in TypeScript — from basic usage to advanced patterns with real-world examples.
Tailwind CSS v4: What's New and Why It Matters
Exploring the major changes in Tailwind CSS v4 — from CSS-first configuration to the new engine, and how it changes your workflow.
Building Real-Time Features with Convex
How to build reactive, real-time features using Convex — from live cursors to instant data sync — without managing WebSocket infrastructure.
Designing for Performance: Web Vitals Deep Dive
Learn how to optimize Core Web Vitals — LCP, INP, and CLS — with actionable techniques and real metrics.
Docker for Frontend Developers
A practical introduction to Docker from a frontend perspective — containerizing Next.js apps, managing development environments, and CI/CD.
Clean Architecture in TypeScript
Applying clean architecture principles to TypeScript applications — separating concerns, managing dependencies, and writing testable code.