blog
musings on software design, distributed systems, and the occasional gym update.
latest posts
- nginx for load balancing and reverse proxynginx basics for distributing traffic and hiding your backend. simple but powerful.11/27/2025nginxdevopsperformance
- cache stampede problemwhen your cache expires and everything hits the db at once. classic footgun.11/20/2025performancecaching
- rendering methodsCSR, SSR, SSG, and ISR explained. when to use each one.9/8/2025nextjsrenderingssrcsrssgisrperformanceweb-development
- seo & crawlershow google crawls your site, E-A-T, and making your next.js app search-friendly.6/20/2025seonextjsnodejsweb-developmentgoogleperformance
- client vs server directivesunderstanding 'use client', 'use server', and 'server-only'. managing the boundary.10/24/2024reactnextjs
- fetching with hookscustom hooks for data fetching. reusable, clean, and simple.10/20/2024reactnextjshooksdata fetching
- middleware tricksmiddleware in next.js lets you run code before requests hit your pages.auth, redirects, headers - all the good stuff.10/6/2024reactnextjs