Your UI Shouldn't Wait for Everything
Rendering nothing until every API responds makes a fast app feel slow. Progressive rendering, streaming and skeletons that show users something immediately.
- Frontend at Scale
- Frontend Architecture
- User Experience
- Web Performance
- Frontend
- Software Architecture
- System Design
One mindset changed how I design frontend applications. The UI doesn't need to wait for every operation to finish.
Think about the applications we use every day.
- Instagram doesn't wait to upload every image before you continue browsing.
- YouTube lets you leave while your video is still processing.
- GitHub accepts your pull request while CI continues running.

These products feel fast because they separate user interaction from background work.
Yet many enterprise applications still do this:
- User clicks Save.
- Loading spinner...
- Loading spinner...
- Loading spinner...
- Finally... "Success."
Instead, ask a different question: Does the user really need to wait?
Often, the answer is no.
- Background synchronization.
- Report generation.
- Email notifications.
- Image processing.
- Search indexing.
These can happen after the user has already moved on.
As frontend engineers, our responsibility isn't just rendering components. It's designing interactions that make applications feel responsive.
One lesson I've learned over time: Users measure responsiveness, not implementation details.
They don't know whether you're using queues, workers, or event-driven architecture.
They simply remember whether the application felt fast. That's why great frontend architecture is as much about perception as it is about performance.
Keep reading
Why Great UIs Don't Break When One API Fails
One failed request should not blank the page. Error boundaries, fallbacks and partial rendering that keep an interface usable when a service goes down.
Why Your Frontend Is Slow Even When React (or Angular) Is Fast?
Your framework is rarely the bottleneck. The real causes of slow UIs — request waterfalls, oversized bundles, and components that wait on the slowest API.
Your Frontend Shouldn't Trust a Single Click
Disabling the button is not enough. Why duplicate-submission protection has to exist on the client and the server, and what each layer is responsible for.