Frontend
HANDOFF: Give the Appliance. Pass on the Know-How.
Michael Neang DEV Community
3 views
This is a submission for Weekend Challenge: Generosity Edition
A donated washer can reach its next home with everything it needs — except the one thing a manufacturer manual cannot contain:
what happened to this specific machine.
The person who repaired it knows what was replaced, what was tested, how this unit should be started, and what was packed with it.
The recipient usually does not.
That gap is what HANDOFF carries.
Give the appliance. Pass on the know-how.
HANDOFF lets a refurbisher speak once, then turns that short, item-specific explanation into a bilingual voice-and-text handoff that stays with the appliance through one durable QR tag.
The volunteer already has the knowledge in their head. Speaking for 20 seconds is cheaper and more natural than writing custom instructions, translating them, formatting them, and printing them.
And the recipient should not need an account, an app, or an English-first interface just to understand the thing they were given.
What I Built
HANDOFF is an object-specific knowledge handoff for donated and refurbished equipment.
A refurbisher records a short voice note about the actual appliance in front of them.
HANDOFF then:
cleans the real recording with ElevenLabs Voice Isolation
creates an English ↔ Spanish voice handoff with ElevenLabs Dubbing v2
retrieves readable source and translated text
persists the completed media
gives the handoff one durable ID
generates a printable QR tag that travels with the appliance
What the recipient gets
The recipient sees their language first.
For the verified English → Spanish sample:
Español — Recipient
English — Original
They can play the recipient-language voice, read the same handoff as text, and switch both audio and text back to the original together.
If the audio cannot load, the readable handoff remains available.
Scan. Listen or read.
The technician workflow is deliberately small:
record → clean + dub → attach
No recipient profile.
No manual translation step.
No long form.
Why this belongs in a generosity challenge
Generosity does not end when an object changes hands.
A volunteer may spend time repairing, testing, cleaning, and preparing an appliance. Helping the next person understand that specific object is part of the gift too.
A real nonprofit workflow made this problem concrete for me. Tech Aid for Refugees repairs donated household appliances for refugee families, and its volunteer program also recruits translators for intake and deliveries.
HANDOFF is not affiliated with or endorsed by Tech Aid for Refugees. Their workflow simply made the design gap tangible:
the appliance and language support can be part of the same act of giving.
The distinction that shaped the product
A manual is model-specific.
HANDOFF is object-specific.
A general translator can translate words.
HANDOFF captures the knowledge of the person who prepared this appliance, turns that real spoken handoff into a clearer recipient-language voice plus readable text, and attaches the result to the object itself.
Most translation tools end at a screen.
HANDOFF's output has somewhere physical to go.
The donated object becomes the index: scan this washer, and you get the knowledge for this washer — not a handbook collection, search result, or generic model response.
Demo
Live app: https://handoff-gszdzr3pf-michael-neangs-projects.vercel.app
Verified completed HANDOFF: https://handoff-gszdzr3pf-michael-neangs-projects.vercel.app/sample
Printable sample tag: https://handoff-gszdzr3pf-michael-neangs-projects.vercel.app/sample/tag
50-second demo
The verified sample was genuinely processed through the ElevenLabs pipeline during development.
It remains available at /sample so judges can reliably experience the complete recipient flow even if the live API workspace is temporarily out of generation quota.
A real quota failure during testing also changed the product: HANDOFF now preserves the creator's recording, avoids a useless retry loop, and routes evaluators to a verified ElevenLabs-generated handoff and printable tag instead of presenting a dead end.
Code
mneang
/
handoff
HANDOFF
Give the appliance. Pass on the know-how.
HANDOFF turns a refurbisher's short spoken explanation into an item-specific, bilingual voice-and-text handoff that travels with a donated appliance through a QR tag.
Built for the DEV Weekend Challenge: Generosity Edition
Prize category: Best Use of ElevenLabs
A manufacturer manual knows the model.
HANDOFF knows this specific repaired object.
Demo
Live app: https://handoff-gszdzr3pf-michael-neangs-projects.vercel.app/
Verified recipient experience: https://handoff-gszdzr3pf-michael-neangs-projects.vercel.app/sample
Verified printable tag: https://handoff-gszdzr3pf-michael-neangs-projects.vercel.app/sample/tag
50-second demo: https://youtu.be/WfHnvo8pUgk
The verified sample was genuinely processed through the ElevenLabs pipeline and remains available for reliable evaluation if live API quota is temporarily unavailable.
Why HANDOFF
When a donated or refurbished appliance changes hands, the appliance travels — but the repairer's knowledge often does not.
The person who prepared the item may know what was replaced, what was tested, how this particular unit should be started, or what accessories are packed with it. That information can disappear at delivery…
View on GitHub
How I Built It
I used Next.js 16, React 19, TypeScript, Tailwind CSS, ElevenLabs, Vercel, Vercel Blob, and QRCode.
The most important technical constraint was not an API constraint.
It was a physical-world constraint:
A QR tag may stay with an appliance long after the AI request that created it is finished.
That requirement shaped the architecture.
ElevenLabs is the transformation layer
ElevenLabs is not an ornamental AI button in HANDOFF.
It does not simply read HANDOFF aloud. It transforms the volunteer's original handoff itself.
Voice Isolation cleans the real recording. Dubbing v2 carries that spoken handoff into the recipient's language. The language-target transcript creates its readable counterpart.
Only after those outputs exist does HANDOFF persist them and create the QR that travels with the appliance.
Voice Isolation → clearer workshop recordings
A repair volunteer may record beside tools, fans, loading areas, or other background noise.
HANDOFF sends the browser recording server-side through ElevenLabs Voice Isolation before further processing.
The API key stays server-side.
The result is a cleaner source recording for the handoff.
Dubbing v2 → a recipient-language voice, not just translated text
The enhanced recording is sent to ElevenLabs Dubbing v2.
The prototype supports:
English → Spanish
Spanish → English
HANDOFF polls the target language until the dub is complete, then retrieves the completed recipient-language audio.
The point is not merely to generate translated words. The recipient gets a voice handoff derived from the actual explanation the refurbisher recorded.
Transcript → the same handoff remains readable
HANDOFF also retrieves the language-target transcript and extracts both source and translated text.
So one short act of speaking becomes:
cleaner source voice → recipient-language voice + readable bilingual handoff
That is the accessibility decision I wanted to make structural rather than decorative.
The language controls expose their selected state to assistive technology, the active content carries the active language, keyboard focus remains visible, and an audio failure leaves the readable handoff available instead of blocking access.
I do not claim this solves every accessibility need.
It simply avoids forcing the handoff into one sensory modality.
The durable QR problem
The first version of this idea could have ended with a QR code pointing directly at generated media.
That would have been fragile.
A physical tag should not depend on a temporary AI output URL.
So HANDOFF persists both the enhanced source audio and completed translated audio in Vercel Blob.
It then creates one manifest that binds the appliance, both languages, both audio files, and both readable versions to one UUID.
From there:
/h/<HANDOFF_ID> → recipient experience
/tag/<HANDOFF_ID> → printable physical tag
The QR identifies one durable HANDOFF, rather than exposing temporary media URLs or packing the whole state into a giant query string.
The physical handoff
The printable tag says:
Prepared for its next home.
Scan to listen or read.
This is the creative center of HANDOFF for me.
The AI output does not stay trapped in a dashboard.
It becomes part of the object being given.
Design Choices That Matter
Object-specific, not recipient-specific
HANDOFF attaches knowledge to the appliance rather than creating a profile about the person receiving it.
The prototype does not require a recipient name, email, address, phone number, or account.
Recipient language first
The translated language is the default experience.
The recipient should not have to navigate an English-first interface to find content that was made for them.
Voice and text move together
One language control switches both the audio and readable text.
If audio fails, the readable version remains available.
Narrow on purpose
This is a weekend prototype.
It supports English and Spanish instead of pretending to solve every language, every accessibility need, and every donated-item workflow.
Limitations
The current prototype has real boundaries:
live ElevenLabs generation requires available API quota
prototype media uses public Vercel Blob URLs
production should add private/tokenized access plus retention and deletion controls
HANDOFF is not a safety-certified technical translator
users should avoid sensitive personal information and safety-critical repair instructions
the prototype focuses on short handoffs, not full manuals
What I Learned
The biggest product improvement came from changing one sentence in my own head.
I stopped thinking:
"I am building a translator for appliance notes."
and started thinking:
"I am building an item-specific knowledge handoff for donated equipment."
That change clarified everything.
It led to the durable HANDOFF ID.
It made the QR tag more than a shortcut.
It made recipient-language-first design obvious.
It made voice + readable text feel necessary.
And it made the generosity theme concrete:
The appliance carries the knowledge.
Prize Categories
Best Use of ElevenLabs
I am submitting HANDOFF for Best Use of ElevenLabs.
ElevenLabs is directly in the critical path:
Voice Isolation makes a volunteer's source recording more usable
Dubbing v2 creates the recipient-language voice handoff
language-target transcripts make the same handoff readable
Remove ElevenLabs and HANDOFF loses its central multilingual voice-transfer workflow.
That is why I wanted ElevenLabs here:
not to add AI for its own sake,
but to let one small act of speaking become a bilingual, multimodal handoff that travels with the gift.
A donated appliance gets a second home.
The repairer's knowledge should get there too.
Give the appliance. Pass on the know-how.
Read original: https://dev.to/mneang/handoff-give-the-appliance-pass-on-the-know-how-1aep
← Previous
Domain Watchlists Aren't Drop-Catchers (and WHOIS Refresh Isn't Monitoring)
Next →
Kernel prepatch 7.3-rc2
Related
🗺️ The Complete Limn Engine Learning Roadmap: From Zero to Game Developer
Frontend
0
Dev.to (EN Zone)
Understanding Key Web APIs: Fetch API, WebSockets, and Service Workers
Frontend
0
Dev.to (EN Zone)
I Built a Real-Time Train Tracker for Pakistan Railways
Frontend
0
Dev.to (EN Zone)
I got tired of re-recording broken tests, so I built my own testing tool
Frontend
0
Dev.to (EN Zone)
Comments0
No comments yet — be the first