HomeTelecom & mediaCase study · P-072

Reelvault: video storage for people who shoot more than they can store.

A mobile video vault built with React Native and Django REST Framework, for users whose footage has outgrown local disks. It handles the unglamorous parts of video storage properly — large uploads over imperfect mobile connections, a library that stays navigable as it grows, and playback that starts quickly regardless of file size.

Selected clients
Power to LiveRBM GlobalDragonflySquiblerMOOSainsbury'sMPCX-LinkPower to LiveRBM GlobalDragonflySquiblerMOOSainsbury'sMPCX-LinkPower to LiveRBM GlobalDragonflySquiblerMOOSainsbury'sMPCX-Link

The challenge.

  • Video is heavy, and the people generating the most of it are the least likely to be on a stable connection when they upload.
  • An upload that fails at ninety percent and restarts from zero is the fastest way to lose a user, so resumability was a requirement rather than a refinement.
  • A media library becomes unusable through growth alone: at a few hundred items, browsing stops working as a way to find anything.
  • Storage and delivery costs scale with the library, so a naive approach makes the product more expensive to run precisely as it succeeds.

Our approach.

  • Built the client in React Native so capture, upload, browsing and playback share one codebase across platforms.
  • Made uploads chunked and resumable, so an interrupted transfer continues from where it stopped rather than starting again — the single most important behaviour in a mobile video product.
  • Modelled the library around metadata in Django REST Framework rather than filenames and folders, so content stays findable once browsing stops being viable.
  • Separated the metadata path from the media path: the API stays fast because it never handles the heavy bytes, which keeps browsing responsive no matter what is uploading.
  • Tuned storage tiering and delivery so infrequently-accessed footage costs less to keep than recent material, letting the library grow without the running cost tracking it linearly.

The outcome.

  • Uploads survive the connection dropping, which is the normal case on mobile rather than the exception.
  • The library stays navigable past the point where scrolling stops being a viable way to find content.
  • Browsing and playback stay responsive during uploads, because the two paths do not contend.
  • Running costs grow more slowly than the stored volume.

Questions about this build.

Still wondering something? Ask an engineer

  • Chunked, resumable uploads are the whole answer, and they need to be there from the first version rather than added later. The file is split, each part is uploaded and acknowledged independently, and an interruption resumes from the last confirmed chunk. On mobile connections a large upload will be interrupted — treating that as the expected case rather than an error is the difference between a product people trust with their footage and one they abandon.

Let's build from here.

Thirty minutes with an engineer who builds. No sales, no drip campaign. If we're the wrong fit we'll tell you and point you somewhere better.

Response
Within one working day
Minimum
Two-week discovery