Vibecode Shade

track this build4 phases, 12 steps, beginner friendly
KINDA · weekend project
price $35/moyou'd save $420/yrbuild time multi-daycategory 🎬 audio & videoreplaced by 0 people

The search half is real and rebuildable. Extract keyframes with ffmpeg, embed them with CLIP, transcribe the audio with whisper, put the vectors in SQLite, and 'the drone shot over the bridge at golden hour' finds the clip on your own drives. The open-source stack for that is mature and the result is genuinely good. What does not survive the port is what Shade has grown into: cloud streaming so an editor opens full-res without waiting on a download, per-link permissions and guest access, review and approval, and a model pipeline that keeps improving without you retraining anything. Solo, on local storage, the DIY version wins outright. On a team, you are rebuilding a platform and calling it a script.

the project pack5 files · written for this build, step by step
README.md
# Shade · indie build

A local footage search index whose hard problems are identifying files that move between drives, keeping the frame index from drowning in near-identical stills, and combining picture search with speech search when the two live in different vector spaces.

Estimated effort: **multi-day**. Work `BUILD_PLAN.md` top to bottom · every phase ends in a check that has to pass before the next one starts.

## Stack

| Part | Choice | Why |
| --- | --- | --- |
| Runtime | A Python CLI for indexing plus a small local web page for searching | indexing runs overnight and searching happens at a keyboard, and those want different interfaces |
| Index | SQLite with a vector extension, one file per library | one file you can copy, back up and delete, rather than a service to operate |
| Frames | ffmpeg keyframes at a fixed interval plus scene cut detection, deduplicated before embedding | an interview locked off for ten minutes should not become a hundred vectors |
| Speech | A local transcriber producing word timestamps, chunked on sentence boundaries | a chunk that starts mid-sentence embeds as nonsense |
| Retrieval | Two separate indexes combined by rank position, never by comparing scores across them | picture vectors and sentence vectors live in different spaces and their numbers are not comparable |

## Before you start

Have every one of these ready. The plan assumes them from step one.

- [ ] **ffmpeg with scene detection available** · free
  - Why: Every frame in this index comes out of it, and the scene filter is what makes the sampling worth anything.
  - Get it: Your package manager, or a static build.
  - Verify: ffmpeg -version prints and a scene filter run produces frames
- [ ] **Python 3.11 or newer with a vector-capable SQLite build** · free
  - Why: Runs the indexer and holds the vectors in the same file as the metadata.
  - Get it: python.org or your package manager, plus a SQLite vector extension.
  - Verify: A vector query returns results against a test table
- [ ] **A picture and text embedding model and a local speech model, downloaded** · free; disk space is the cost
  - Why: First-run downloads are large and slow, and discovering that at the start of an overnight index wastes the night.
  - Get it: Download the weights before your first real run and note their sizes.
  - Verify: Both models load and embed a test input offline with the network disabled
- [ ] **A GPU, or an honest estimate of how many nights you are prepared to spend** (optional) · free if you own one
  - Why: The difference between hardware here is the difference between a weekend and a fortnight, and it is better known before you start than after.
  - Get it: Whatever you have. Run the rate measurement on one hour of footage first.
  - Verify: A measured rate exists for one hour of your own footage
- [ ] **One hour of your real footage including a static interview and a clip with speech** · free
  - Why: Those two clips expose the frame explosion and the chunking problems respectively, and a synthetic test will not.
  - Get it: Pick them from the library you intend to index.
  - Verify: Both index without the frame cap or the segment count looking absurd

## Quick start

Follow Phase 1 in `BUILD_PLAN.md`; it creates the project.

Then copy `.env.example` to `.env` and fill in the values it documents.

## Honest limits

This build deliberately does not replace:

- Face recognition and person tagging.
- Sharing links and guest access.
- Review, comments and approval.
- Cloud proxies and streaming.
- cloud streaming of full-res files without downloading them first
- guest links with per-link permissions and roles
- built-in review, approval, and commenting
- face recognition and shot-type tagging that improves without your involvement
- team sync, so everyone searches the same index
- the NLE plugins and Slack integration

If one of those is essential to you, that is the reason to keep paying for Shade, and the README should say so rather than pretend.

$ choose a build depth, inspect the files, then open the complete pack in your agent

why people still pay

They pay because the search only matters if the whole team gets it. A local index that only lives on the editor's machine solves the editor's problem and nobody else's, and the person who most needs to find the clip is usually the one furthest from the storage. Shade sells the index plus the delivery of what the index found, and the second half is the expensive one.

what you lose

xcloud streaming of full-res files without downloading them first

xguest links with per-link permissions and roles

xbuilt-in review, approval, and commenting

xface recognition and shot-type tagging that improves without your involvement

xteam sync, so everyone searches the same index

xthe NLE plugins and Slack integration

share on X ↗"I just replaced Shade ($35/mo) with one prompt"
the escape hatch

Don't feel like building it? These folks already made it free.

ResourceSpaceFaces, sentence search and local transcripts in an old-school DAM; installation has not discovered joy.58aug 2026open source↗

no votes, no pay-to-list · just what's real

the numbers

Shade pricing

planmonthlyannual (per mo)what you get
growth$35/user$29.75/user1 workspace; up to 15 paid seats; 150 guests; 500 GB active storage/seat
enterprisecustom—Unlimited workspaces and seats; 250 guests; 1 TB active storage/seat; 1 TB bring-your-own S3 storage/seat

free tierno free tier; trial length and numeric trial caps are not publicly disclosed

billingmonthly + annual (15% lower)

hidden costsGrowth is capped at one workspace and 15 paid seats; storage expansion and enterprise bring-your-own-storage workflows require a higher plan or add-on.

verified 2026-08-14 · source ↗

questions
Vibecode Shade

Kinda. The core of Shade is buildable in a weekend with the prompt on this page, but there are real gaps: cloud streaming of full-res files without downloading them first, guest links with per-link permissions and roles. Read the honest list above before committing.

How much does Shade cost?

Shade costs about $35/month (Growth, checked 2026-07-30), which is $420 per year.

What do I lose by replacing Shade?

Honestly: cloud streaming of full-res files without downloading them first; guest links with per-link permissions and roles; built-in review, approval, and commenting; face recognition and shot-type tagging that improves without your involvement; team sync, so everyone searches the same index; the NLE plugins and Slack integration. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to Shade?

Yes: ResourceSpace (Faces, sentence search and local transcripts in an old-school DAM; installation has not discovered joy.) The prompt is for when you want it exactly your way.