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
Building accessible UIs with Radix primitives
Why unstyled primitives beat hand-rolled dialogs, focus traps, aria attributes, and composing with your design system tokens.
React
Accessibility
Design Systems
•1 min read
Route Handlers in Next.js for webhooks and APIs
POST handlers, raw body parsing for signature verification, dynamic segments, edge vs Node runtime, and idempotent webhook processing.
Next.js
Node.js
API
•1 min read
Vitest mocking patterns that stay maintainable
vi.mock hoisting, partial mocks, timers, fetch stubs, and when to prefer integration tests over deep module mocks.
Testing
Vitest
TypeScript
•1 min read
The use() hook, Suspense, and async data in React 19
How use differs from useEffect, throwing promises to Suspense boundaries, and staying compatible with Server Components in Next.js.
React
Next.js
•1 min read
CSS cascade layers (@layer) for predictable specificity
Ordering theme, components, and utilities; taming third-party CSS; and how layers interact with !important.
CSS
Frontend
•1 min read
Stripe webhooks: verification and idempotency
constructEvent, storing event IDs, out-of-order delivery, retries, and connecting webhooks to your domain model safely.
Stripe
Node.js
API
•2 min read
Infinite queries with TanStack Query
useInfiniteQuery, stable pageParam, flattening pages, bi-directional scroll, and cache invalidation when lists mutate.
React
TypeScript
Data fetching
•1 min read
Turborepo remote caching in CI
Vercel Remote Cache vs self-hosted, cache inputs and env keys, hit rate metrics, and invalidation when toolchains change.
Monorepo
Turborepo
DevOps
•1 min read
Full-text search in PostgreSQL
tsvector, GIN indexes, ranking with ts_rank, language configs, and when to reach for Elasticsearch instead.
PostgreSQL
Backend
Performance