
Blog
Articles
(53)

Building a Global Toast Queue: Mantine Notifications Driven by a Zustand Slice
Calling notifications.show() directly from a fetch wrapper works fine — until you need to test that error path without mocking Mantine's internals, or…


A Deep Dive into
Personalization only feels instant when the decision about which variant to show happens before the page has to render — which is exactly the problem…


Zustand's
Add Zustand's persist middleware to a store, ship it to production, and the first thing you'll hit is a console full of hydration warnings — the server…


Streaming Server Components: Suspense Boundaries and Mantine Skeletons Done Right
The moment one section of your dashboard waits 1.2 seconds on an upstream API, a single top-level Suspense boundary drags the entire page down with it.…


Next.js Route Handlers as a Thin BFF in Front of
Fetching personalized Uniform.dev content directly in a Server Component works great for the initial page load — but the moment a client-side filter or tab…