All projects
SampleSample · unsupportedUnsupported · no SLA

Roboflow Frame Archive

A full-stack sample (Next.js 16 + FastAPI) that runs Roboflow Inference on-device over a source clip and archives every flagged frame — the JPEG, its prediction JSON, and a per-run Parquet summary — to Backblaze B2 over the S3-compatible API.

Built for: Edge computer-vision teams who want a working reference for archiving detection output — flagged frames, predictions, and summaries — to durable object storage over the S3-compatible API.

MIT licensed

Dashboard with frames archived, detections, ingest volume, active cameras, an ingest chart, and a detection breakdown by class
Archive metrics — frames archived, detections, ingest volume, active cameras — with a per-day ingest chart and a detections-by-class breakdown from the Parquet roll-ups.

What it's built with

Each piece of the stack, and the job it does in this project.

Next.js 16 + React 19
Frontend — Tailwind v4, shadcn/ui, Recharts, TanStack Query
FastAPI (Python 3.12+)
Backend API — boto3, Pydantic v2, layered architecture
Roboflow Inference + onnxruntime
On-device detection engine (opencv-python-headless, pyarrow)
Backblaze B2
S3-compatible object storage — the single durable sink for every stream
pnpm workspaces
Monorepo tooling for the web + API packages

Core capabilities

What the project does out of the box, before you write any code of your own.

  • Configure edge cameras

    Full create / read / edit / delete / run lifecycle for edge cameras — set the detection model, confidence threshold, and source clip.

  • Local Roboflow Inference runs

    Run a detection pass over a source clip on-device (CUDA → CPU auto-detect) with live run status; no cloud inference and no Roboflow account required.

  • Detections gallery

    A sample-scoped gallery of flagged frames with bounding boxes overlaid, filterable by camera, class, and date.

  • Archive dashboard

    Frames archived, detections by class, ingest volume, and active cameras — read from the per-run Parquet roll-ups.

  • Reusable B2 scaffolding

    A full-bucket Files explorer and direct-to-B2 Upload for bringing your own footage.

A closer look

More screens from the running project.

Cameras grid of edge cameras, each card showing model, confidence threshold, source, and run/edit/delete controls
The edge-camera fleet — each card shows its detection model, confidence threshold, and source clip alongside run, edit, and delete controls.
Camera detail view with latest-run stats and an inline gallery of flagged frames with detection boxes
One camera's latest-run stats (frames processed, flagged, detections, bytes archived) and its inline archive of flagged frames with bounding boxes overlaid.
Detections gallery of flagged frames with bounding boxes, each labeled with class, confidence, and source camera
The sample-scoped gallery of every flagged frame with detection boxes drawn on-device, filterable by camera, class, and date.

Choose it for the right job

Roboflow Frame Archive is a head start for a specific shape of project, not a supported, general-purpose product.

Use it when

  • You want a working reference for archiving edge computer-vision output — frames, predictions, and summaries — to object storage over the S3-compatible API.
  • You want a UI to configure cameras, run local Roboflow Inference detection passes, and browse the resulting frame archive with bounding boxes overlaid.
  • You want a dependable scaffold with strict architecture, contract checks, and tests rather than a blank prototype.

Choose another path when

  • You need a complete hosted product, a managed camera fleet, or a production surveillance system — this ships none of those.
  • You need user accounts, authentication, or tenant isolation — the sample is single-tenant and unauthenticated by default.
  • You need GPU-accelerated or Apple-MPS inference — onnxruntime has no Apple-MPS execution provider, so detection runs on CPU on Apple Silicon.
Sample · unsupported

Project status and support

Report defects through the repository's GitHub Issues; this sample is maintained on a best-effort basis and is not covered by any Backblaze service level agreement.