Recommended preparation
Premium

Image Upload & Preview Component

By FrontendAtlas Editorial · Updated Aug 6, 2026

Try the prompt first

Mid-level15 min first pass

Design an image upload flow with local validation, object-URL previews, optional preprocessing, real transfer progress, cancellation, retry, and accessible errors.

Constraints

  • Keep client, server, and rendering ownership explicit.
  • Cover loading, failure, recovery, and accessible interaction states.

Challenge summary

Design an image selection, preview, and upload pipeline with decoded validation, real transfer progress, cancellation, retry, and bounded local resources.

What you'll practice

  • Separate a local preview from a server-confirmed durable asset.
  • Model validation, preprocessing, session creation, transfer, and finalization as one attempt.
  • Ignore stale callbacks during replace, cancel, retry, and lost-response races.
  • Build accessible progress and recovery without inventing percentages or blocking the main thread.

What Premium unlocks

Premium unlocks the replacement-race example, upload-session contracts, object-URL lifecycle, and finalization recovery.

Free related practice

Upgrade to FrontendAtlas Premium to access this system design scenario. Already upgraded? Sign in to continue.