Recently, I had the chance to participate in the Legal Hackathon 2025 in Cologne.
Now, here’s the thing: I know nothing about legal stuff.
Like… zero.
Nada.
I’ve never been to court, never had a legal dispute, never even received a parking ticket that required a lawyer. So naturally, my first thought was: “Am I even allowed to be here? Or do I need a lawyer to participate in a legal hackathon?”
Anyway, I decided to roll with it. Luckily, the place was packed with legal experts. People could pitch their idea and I decided to join one.
Challenge
You’re a court clerk (Justizfachangestellte), the unsung hero of the German justice system.
Your desk is buried under files, the phone won’t stop ringing, and every five minutes someone asks you about an appointment.
Now, here’s the pain: You just found out that a court appointment isn’t going to take place, maybe the lawyer’s sick, maybe the witness can’t come, maybe someone’s cat had kittens (life happens).
So what do you do? You need to notify everyone involved by letter.
Yes, an actual physical letter.
And since the letter takes about two weeks to arrive, guess what happens? People still show up for the appointment that’s already been cancelled.
The lawyer’s there. The witness is there. Even the JFA might be there… wondering why everyone’s standing around like it’s a surprise party for a court hearing that never was.
Solution
To solve this chaos, we built Justi-Aid, a voice AI agent that finally gives the Justizfachangestellten a break.
No more writing letters, licking envelopes, or hoping Deutsche Post is in a good mood. Now, lawyers can simply ask the AI: "Hey Justi, is the hearing with Dr. Meier still happening?"
The AI responds instantly with the latest info.
Can’t make it to court? No problem. Just tell the AI, and it updates the database immediately.
No paper.
No delays.
No “oops, the letter got lost somewhere between Cologne and Düsseldorf.”
Here’s a short demo showing how the agent gives you information and directly changes the appointment status in the system:
But the chaos doesn’t stop there. There’s also Aktenverwaltung! Files scattered everywhere: email, notes, paper, maybe even under your coffee cup.
And here’s a funny nugget from our legal expert: Before the court even starts on your case, there’s a fee you must pay. If it’s not paid, the court won’t move a finger. So lawyers sometimes call multiple times just to check if the payment arrived.
Our solution fixes that too. It provides a central digital hub for managing files, notes, and fees. You can always see the latest status, and the timeline shows which step the case is currently at.


Aktenverwaltung
How we built it
The frontend is a straightforward React application using Shadcn components.
The more interesting part lies in the workflow of the voice agent:
-
User Interaction via Phone Call Users start by initiating a phone call.
-
Twilio for Telephony The incoming call is handled by Twilio, which forwards the request to our backend via a webhook. This ensures real-time capture of user input and proper routing to the AI processing layer.
-
Backend Processing and AI Integration The backend receives the request and streams the audio to the OpenAI Realtime API. The AI processes the conversation, understands the intent and triggers the necessary functions such as querying or updating appointment data.
-
Database Management via Supabase Once the backend determines the appropriate action, it updates the relevant records in Supabase. This includes changing the status of appointments, logging interactions, and updating case-related information.
-
Real-Time Updates to Frontend Supabase pushes updates to the frontend, allowing users to see the current status of appointments and case progress immediately. This ensures that the timeline accurately reflects which step each case is currently at.

Justi-Aid Architecture
Learnings
The OpenAI Realtime API just became generally available a few weeks ago and it is now far more stable and affordable than it was a year ago. At this pace, I truly believe Voice AI Agents will become the future soon.
It was my first time working with Figma Make, and it’s amazing. In my experience, it even outperforms Lovable. Though It’s still early days, features like GitHub integration or uploading custom files aren’t available yet.
I also tried Supabase Realtime for the first time. It’s easy to set up and works very reliably.
Beyond the tech, diving into the legal system gave me plenty of new insights. Exploring a completely different domain is always fun, and that’s exactly why I love hackathons.
In the end, we managed to secure first place. Huge thanks to our fantastic team for their collaboration, dedication, and countless laughs. I’m already looking forward to our next project together.

Our cool team
Techstack
- React
- Supabase
- Twilio
- OpenAI Realtime API