Back to all articles

Frontend craft b7 2024

Designing Resilient Frontends for Fast Backends

Thinking in states, not screens: skeletons, optimistic updates, and failure UIs that still feel calm.

When the backend is fast, the frontend has no excuse to feel slow. The UI should react immediately to user intent, even while requests are in flight.

Think in states, not pages

Every data fetch has at least four states: idle, loading, success, and error. I design for all of them explicitly using skeletons, optimistic UI, and clear retry affordances. This prevents the UI from ever feeling stuck or mysterious.

Optimistic updates with guardrails

I apply optimistic updates for actions that are easy to roll back: toggles, likes, small edits. A toast or inline message communicates if the server ultimately rejects the change, so the user is never surprised.