Documents go phone to counter. Nothing is left behind.
The customer scans a QR, shoots a photo, and the file streams straight from their phone to the operator's computer over an encrypted direct link. No upload. No cloud folder. No copy on anyone's server — because there is no server in the file's path at all.
Four steps. About twenty seconds.
No account for the customer, no app to install, no file manager to hunt through. The operator's dashboard is the only thing anyone signs into.
Show the QR
The counter generates a time-boxed QR — printed on the desk or on the screen. A 6-digit fallback code covers the customer whose camera will not focus.
They see what they agree to
Before the camera opens, the customer reads exactly where the file goes and how long it is kept. Closing the page sends nothing.
Photograph and review
Photos are cleaned up and shrunk on their phone, then queued. Nothing transmits until they tap Send on a list they can see — and the counter's checklist ticks itself off as each one lands.
It lands, then it leaves
The file appears on the counter screen as it streams, carrying a countdown. Mark the customer done and it is erased on the spot.
Built for a counter with a queue at it.
Everything below runs in the operator's own browser, on documents that never left the shop. The jobs people normally solve with a free online converter — and a citizen's ID uploaded to a stranger.
Ask for exactly what you need
Push a checklist to their phone — Aadhaar front, Aadhaar back, passport photo, signature — and watch it tick itself off as each one arrives. Presets for PAN, Aadhaar update, income certificate, exam forms and bank CSP. No more shouting instructions across a desk.
Hit the portal's spec in one click
“200 × 230 px, under 50 KB.” Exact pixels, then a binary search for the highest JPEG quality that still fits — twelve encodes bracket the answer instead of an operator dragging a slider blind.
Merge, split, combine to PDF
Join four PDFs, pull page 3 out of one, or turn a stack of photos into a single A4 document — on this machine. The bytes never touch a converter website.
Print the way a shop prints
One-up, two-up, four-up, or true-size ID-card layout, so an Aadhaar photocopy comes out at 85.6 × 54 mm instead of filling a page.
Scan mode and compression
Adaptive thresholding turns a shadowed phone photo into crisp black-on-white, and a size window gets it under the 200 KB cap that government portals still enforce.
Talk to the phone in front of you
“Photo is blurry, retake” goes straight to their screen over the same encrypted link, with one-tap replies for the four things every operator says all day. Send the finished form or a receipt back the same way — it drops onto their phone with a Save button.
Fast at the keyboard, fine without the internet
⌘K opens every action by name. Ten walk-ins in a row are auto-numbered and auto-named, so two Rahuls never blur together. And when the 4G dongle blinks, everything already received still prints, crops and exports.
“Send it on WhatsApp” was never a filing system.
It leaves a citizen's Aadhaar in a chat that is backed up to a cloud account, forwarded by accident, and never deleted. This is what changes.
A breach of our server leaks zero documents, because it never has any.
The signaling server relays connection offers it never parses and logs numbers and ids only — no names, no filenames. Everything below is in the code, and the code is the proof.
- No upload endpoint exists. There is no route that could accept a file, and no multipart parser in the process.
- DTLS by construction. WebRTC has no unencrypted mode. Even the relay used on hostile networks forwards bytes it cannot read.
- Every file carries an expiry. One device holds a copy — the operator's browser — and a sweeper erases it when the clock runs out.
- Two content gates. A MIME allowlist plus magic-byte sniffing after reassembly, so a renamed executable is refused.
Every feature on every plan.
Start with 7 days of everything, no card. After that the counter keeps working — merge to PDF, print layouts, scan mode, checklists, chat — and only the number of new customers a month is capped.
Counted per customer connection, not per document. Documents travel phone → counter directly and the server never sees one, so a document limit is not something we could honestly enforce. Prices in INR, GST extra.
The ones counters actually ask.
Does the customer need to install anything?
No. It runs in whatever browser their phone already has. There is no account, no OTP, and nothing left behind when they close the tab.
What happens if the shop's internet drops mid-transfer?
The transfer fails cleanly and says so — no half-file lands. The dashboard itself keeps working offline for everything already received: print, crop, compress, export.
Both devices are on the same shop Wi-Fi. Does that make it faster?
Considerably. On a local network the two browsers connect directly and transfer at LAN speed, with the internet used only for the initial handshake.
Where exactly do the documents end up?
In IndexedDB in the operator's browser profile, on that one computer, each with an expiry timestamp. A background sweeper erases them when the clock runs out, and “mark as done” erases them immediately.
Can the operator send something back?
Yes — the finished form, a receipt, an acknowledgement slip. It travels the same direct encrypted link back to the customer's phone.
Is this compliant with the DPDP Act?
It is built around it: notice before capture, explicit consent, purpose limitation to one visit, storage limitation with a hard expiry, and erasure on request. The mapping is in the README and the privacy notice.
What does the 3D on this page have to do with privacy?
Nothing — and it is served from this site, not a third-party CDN, loads after the page is usable, and never loads on the dashboard or the customer's phone. Those stay under 60 KB of code so they work on a cheap counter PC and a slow connection.
Set up a counter in under a minute.
Create an operator account, hit Generate QR, and hand the first customer a phone camera. Seven days of everything, no card.