Send a file. Keep the key.
Maya sends forty photos to Hugo, who has no account; the server keeps bytes it cannot read; Hugo scans a code on his phone. 9 panels.
How send.sgit.ai works, drawn: for everyone, the four things a person does (send a file, say a token aloud, keep files in a vault, keep the keys); under the hood, what the bytes look like, the two kinds of API, how an agent hands a result over, and what can go wrong. Each board links to the page where you can do it for real.
8 storyboards, 69 panels, drawn in your browser by api.storyboards.sgit.ai v0.1.0. Every one is data: every panel on one page · the model sheet · storyboards.sgit.ai, where the technique comes from.
Start here
Maya sends forty photos to Hugo, who has no account; the server keeps bytes it cannot read; Hugo scans a code on his phone. 9 panels.
No cryptography required: what you do, what the other person sees, and what the server never sees.
Maya sends forty photos to Hugo, who has no account; the server keeps bytes it cannot read; Hugo scans a code on his phone. 9 panels.
river-cloud-3847 is the whole key: Maya says it on a call, Hugo types it, Eve hears it a week too late. 8 panels.
Ravi gets a new version every week; Maya puts the files in a vault, shares the read key once, and every version stays. 9 panels.
The thing that was missing before: a keyring on the device, what it is, what it is not, and the one rule about which key may travel. 8 panels.
For the engineer and the agent: the bytes, the two APIs, a hand-over by an agent, and the six ways it fails.
What the bytes look like, which of them the server sees, and where each of the two secrets goes. 9 panels.
The code a page runs is a release that never changes; the server it talks to is a deployment. Inês pins one and runs the other. 8 panels.
Pip finishes a job, sends the result once with an expiry, keeps the work in a vault, and never logs a key. 9 panels.
Six ways a hand-over fails: a link in a public channel, expired, the wrong key, a vault key in a link, and what revocation does and does not do. 9 panels.
The cast of send.sgit.ai's storyboards, v0.1, proposed by the site's build agent on 20 October 2026 for Dinis to accept, change or replace. Drawn by the storyboard kit at api.storyboards.sgit.ai from 'look'; nothing here is an image. Fictional people and agents, each standing for a part a person or an agent plays when a file is handed over: the sender, the recipient on a phone, the client who asks who else can see it, the engineer who embeds the code and runs her own server, the listener on the wire, the server that holds bytes it cannot read, and a session agent that hands over a result. Names chosen not to clash with the gen-z-developers or the pki casts. Eve is the name cryptography has long given a passive eavesdropper.
The model sheet: every mood and pose →the sender: a consultant who sends reports and photos to people who have no account anywhere
anyone with a file to hand over who should not have to learn cryptography to do it
Wants to send it and know that only the person she sent it to can open it. Fears a long key she has to read out over the phone.
“Scan this.”
the recipient: on the newest phone he has ever owned, with no account and no wish for one
everyone a link is sent to who did not choose the site
Wants to open what he was sent and nothing more. Fears links.
“Do I need an account?”
the client: a finance director who receives a new version every week and asks who else can see it
the person who needs the latest version and an answer about who can read it
Wants the current version, and to know that it is only his. Fears report-v2-final-FINAL.pdf.
“Who else can see this?”
the engineer: embeds the send code in her company's product and runs a server of their own
anyone who builds on this and must know exactly which code their readers run
Wants the code pinned to a release, and a server she operates. Fears a dependency that changes under her readers.
“Which release is this page running?”
the listener: on the wire, in the chat, by the laptop; reads whatever passes and never gets the key
every channel a link travels by, and every reason the key must not travel with it
Wants to read what passes. Fears a fragment.
“Everything after the # is yours, not mine.”
the server: a capability-checked store of ciphertext, at send.sgraph.ai or wherever it is deployed
what a zero-knowledge service is: it holds the bytes, checks hashes, and cannot read anything
Wants to hold bytes and compare hashes. Fears nothing: it has nothing to lose.
“I keep the bytes. I cannot read them.”
a session agent: a Claude session that finishes a job, hands the result over once, and keeps the work in a vault
every agent that must hand something to a person or another agent without an account and without pasting a key
Wants to be done, and to hand it over once. Fears a key in its own transcript.
“Report ready. One link, seven days.”
Every line a character says is the storyboard's, not a quote, and is marked not_a_quote; evidence panels quote this site's pages word for word, which the build checks against the page sources. The data is cast.json and one JSON file per board, in the repository under website/storyboards/.