Backblaze Generative Media Hackathon
Salvo
One ad is a guess. A salvo is a decision.
Live · OFFLINE demo, zero credentials
Genblaze · Backblaze B2
Python · FastAPI
Say Salvo turns one creative brief into a batch of scored ad variants. The whole thing runs with zero credentials, so I can show it live right now — no setup, no API keys.
The hook
Six shots.One decision.
A brief fans out into N ad variants, each scored on transparent signals — and the top three ship with the reason attached.
Say Nobody ships their first draft of anything. Salvo makes that batch-and-choose loop the product — and every score comes with a receipt.
The problem
One-shot generation is a gamble .
It's 11pm before a launch. Maya asks a model for an ad and gets one image. No batch to compare, no score, no reason why — so she ships a guess and hopes it converts.
// the usual output
prompt → 1 image
comparison → none
score → none
"why this one?" → vibes
audit trail → ✗
Say The real pain isn't generation quality — it's that you get one option with no way to compare or justify it. That's a gamble on every launch.
The solution
Brief in.Best three out.
Real fan-out — N variants through one Genblaze pipeline
Stored with provenance — every variant lands in Backblaze B2
Ranked, explained — deterministic scores + a plain-English reason
api.salvo.edycu.dev/console
Say This is the whole product: type a brief, fire a batch, get N scored variants back with the top three ringed. That's the real console, not a mockup.
How it works — four real SDK moves
Genblaze fans out. B2 holds the truth.
01 · INPUT
brief
one line of intent
→
02 · GENBLAZE
Pipeline.astream
N-way parallel fan-out (mc=N)
→
03 · BACKBLAZE B2
ObjectStorageSink
campaigns/{date}/{run}/…
→
04 · VERIFY
read_manifest
verify=True · hash-checked
→
05 · DECIDE
rank → top 3
explainable scores
OFFLINE=1 runs the whole path on a local StorageBackend · B2_KEY_ID flips storage to a real bucket — same code.
Say Four moves, all real SDK calls: fan out with astream, store through the B2 sink, read the manifest back with verify, then rank. The sponsor SDK is the engine, not a sticker.
Live demo — one brief, six scored variants
api.salvo.edycu.dev/console
1
brief + presets
2
manifest verified ✓
3
top 3 — magenta ring
4
score + reasons
Show Type a brief, hit Fire. Six variants pop in, the scan ranks them, the top three get the ring — and every score expands into the exact reasons. Same brief always lands the same way.
Every score ships its receipt
Three transparent signals.
0.45
Brief coverage
keywords the headline actually uses
0.25
Headline length
closeness to the 22–42 char sweet spot
0.30
Engagement index
deterministic, seeded from the content hash
Honesty note: the engagement index is not real CTR data — it's a reproducible stand-in, and every reason string says so.
Say Weights are fixed and visible, and the engagement signal is honestly labeled as a deterministic stand-in — we never present a fabricated metric as real. That honesty is a feature for judges.
Why it works
Narrow flow,devastatingly done.
SDK depth — real astream fan-out, sink, and manifest verify
Determinism — same brief, same board, every time
Provenance — every variant is stored and hash-verifiable
$ OFFLINE=1 pytest -q
19 passed in 3.1s
coverage 100%
manifest verified ✓
creds needed 0
Say We went deep on one flow instead of wide on many. The result is reproducible, fully tested, and demoable anywhere with zero setup.
Shipped, live, reproducible
What's already running .
19
pytest tests, green offline end-to-end
100%
line coverage · app + engine
2
live surfaces — landing + real API console
CI
7-stage pipeline, deploy on green
salvo.edycu.dev · api.salvo.edycu.dev/console · github.com/edycutjong/salvo
Say This isn't a slideware prototype — landing, real API console, CI/CD, and full test coverage are all live right now. Everything on this slide is verifiable.
The ask
Fire one yourself.
Open the console, type any brief, and watch six scored variants land — no signup, no keys. Then tell us which three you'd ship.
scan → api.salvo.edycu.dev/console
Sponsored by
Close The best proof is your own brief. Scan the code, fire a salvo, and pick your top three — the console will already be waiting.