Blog
Articles about web development, React, Next.js, TypeScript and more.
42 articles · 9 per page
RSS feedAPI
Accessibility
Animation
Architecture
Backend
Blog
Browser
CSS
Compiler
DX
Data fetching
Design Systems
DevOps
Docker
Frontend
GitHub
JavaScript
Markdown
Media
Monorepo
Next.js
Node.js
ORM
Observability
Performance
Pipeline
Playwright
PostgreSQL
Prisma
React
Real-time
Redis
Security
Serverless
State management
Stripe
Tailwind CSS
Testing
Tooling
Turborepo
TypeScript
Vitest
Web
i18n
•1 min read
Nx and Turborepo: choosing a task runner for monorepos
Computation caching vs content hashing, project graphs, generators, migration cost, and using both tools together when it pays.
Monorepo
Tooling
DX
•4 min read
Streaming and Suspense in the Next.js App Router
A deep dive into HTML streaming, Suspense boundaries, loading.tsx, caching semantics, and how to compose fast perceived performance without sacrificing correctness.
Next.js
React
Performance
•1 min read
Content-Security-Policy nonces in Next.js
Why nonces beat unsafe-inline, generating per-request nonces in middleware, passing to Script components, and strict-dynamic tradeoffs.
Next.js
Security
•1 min read
Rate limiting serverless APIs with Upstash Redis
Token bucket vs sliding window, keys by IP or user id, @upstash/ratelimit in Vercel Edge, and false positives behind NAT.
Redis
Serverless
Security
•2 min read
Multi-stage Docker builds for Next.js
Standalone output, layer caching with BuildKit, non-root users, distroless or Alpine runtimes, and image size tradeoffs.
Docker
Next.js
DevOps
•1 min read
Biome as a single linter and formatter
Speed vs ESLint ecosystem parity, migration path, CI integration, and when you still need TypeScript-aware ESLint rules.
Tooling
JavaScript
DX
•1 min read
tRPC: end-to-end types without GraphQL
Procedures, routers, context, Zod input validation, React Query integration, and boundaries between BFF tRPC and public REST.
TypeScript
API
React
•2 min read
HTTP caching: browser, CDN, and origin
Cache-Control directives, stale-while-revalidate, ETag vs Last-Modified, CDN cache keys, and busting strategies for HTML vs assets.
Web
Performance
Architecture
•4 min read
TypeScript utility types I use every day
From Pick and Omit to satisfies, mapped types, and when to reach for conditional types—patterns for APIs, forms, and component libraries without drowning in generics.
TypeScript
Frontend