Skip to main content
Juliano Alves
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

© 2026 Juliano Alves. All rights reserved.