-
Sign Up Page
-
We collect more User Info.
-
What the app opens to once you are signed in
-
Sign In Page
-
Vault Tab: Securely store evidence. Everything is encrypted and hashed with metadata (GPS, timestamps) preserved for legal use.
-
Agent Tab: Set up automated calls to your trusted contacts.
-
Check-In Tab: Dead man's switch. Set a check-in frequency. If you miss one, tiered escalation kicks in.
-
Profile Tab that can be edited if user changes their appearance.
Inspiration
1 in 4 women and 1 in 9 men experience domestic violence in the US. Most never report it. The ones who do often lose their cases because they have no documentation, no timestamps, no photos taken the same day, no pattern of incidents a court can look at.
We kept coming back to one question: why isn't there a safe way to collect this evidence? And the answer is kind of obvious. A DV victim can't have a "Document My Abuse" app on their phone. Their abuser checks their phone. So, we built an app that doesn't look like one.
AMBER Alerts have helped recover over 1,200 abducted children. There's nothing like that for domestic violence victims. We wanted to change that.
What it does
Amber looks like a meditation timer. You open it, you see breathing exercises and a duration picker. That's all anyone sees. But if you set the timer to your specific secret duration, say, 4 minutes and 37 seconds, the app unlocks into a private evidence vault.
From there you can photograph injuries, record audio, take video, or write notes. Everything gets hashed (SHA-256), timestamped, and uploaded to an encrypted server immediately. Nothing stays only on the phone.
An AI agent reviews your evidence history and tells you what you've collected so far, what courts typically look for in DV cases, and what's missing from your file. It generates a PDF report you can hand to a lawyer or take to police. It never tells you your case is good or bad, just what you have and what you don't.
If you stop checking in, a dead man's switch activates. Day 1, your emergency contacts get a gentle text. Day 2, they get your name, photo, physical description, everything needed to file a missing person's report. Day 3, an AI voice agent calls them with a script you wrote and approved yourself.
How we built it
React Native with Expo for the mobile app. FastAPI on the backend. Everything lives in Supabase, Postgres for structured data, JSONB columns for flexible stuff like incident metadata and AI analysis, Supabase Storage for media files.
The AI pipeline runs on LangGraph with Groq. Four agents: Ingest (hashes and stores uploads), Analysis (runs Reka AI on photos and video, flags patterns across incidents), Legal (compiles everything into a gap analysis PDF), and Watchdog (cron job that monitors check-ins and fires escalation through Twilio and ElevenLabs).
The meditation disguise uses a scroll picker: hours, minutes, seconds. Right combination unlocks the vault. Wrong combination just runs a breathing timer. Dual-auth is handled in FastAPI with JWT, one path for the decoy, one for the real app.
We spent more time on the PDF than we expected. reportlab doesn't make it easy to produce something that looks professional, but the report is the thing a victim hands to a lawyer, so it couldn't look like a terminal dump. Section headers, incident timelines with alternating row colors, two-column gap analysis. It came out decent.
Challenges we ran into
The meditation-to-vault transition was harder than we thought. Someone watching over your shoulder can't notice the mode switch, but the user has to know they're in the vault. We went through a few rounds on the animation and timing before it felt right.
Reka AI response times were all over the place, some images came back in 2 seconds, others took 12. We pre-cached a result for the demo path and built a loading state so the app didn't feel broken during the slow ones. The ElevenLabs integration had similar issues. An AI voice agent reading a script, routed through Google Voice, triggered by a missed cron check-in, lots of moving parts, lots of places for things to fail quietly.
Accomplishments that we're proud of
We handed the phone to people at the hackathon and asked them to find the hidden app. Nobody could. A room full of CS students couldn't find it. That's the whole point, if they can't find it, an abuser scrolling through their partner's phone won't either.
The PDF report looks like something a real organization would produce. We're weirdly proud of a PDF.
Four LangGraph agents working end-to-end in under 24 hours. Ingest hands off to Analysis, Legal pulls from both, Watchdog runs on its own schedule. It all holds together.
What we learned
Designing for people in danger is different from anything we've done before. Every screen had a safety question attached to it. What if someone is watching? What if they're shaking? What if they forget their timer? We don't have great answers to all of these, but just asking the questions changed how we built everything.
Also, reportlab is miserable to work with. But it works.
What's next for Amber
The first real gap is recovery for forgotten timer durations. Right now if you forget, you're locked out. That's not okay for someone in crisis. We'd probably handle it through verification with a trusted emergency contact.
Beyond that: end-to-end encryption for media in transit (not just at rest), support for more evidence types like text message screenshots, and a way to export your full evidence history as a single encrypted package for a lawyer.
The dead man's switch needs more flexibility, variable escalation timing, the ability to pause without triggering alerts, maybe location sharing as a signal.
If this goes further, we'd want to work with DV advocacy organizations to check the legal gap analysis against real case outcomes. The tool has to actually be useful in court, not just feel useful.
Built With
- fastapi
- groq
- jwt
- postgresql
- react-native
- reka
- reportlab
- supabase
- twilio
- typescript




Log in or sign up for Devpost to join the conversation.