
building a voice ai startup
i had just come back to portugal after living in medellín, colombia for a few months. i was at a birthday party and got talking to a friend i had met at programming school (42). he had started working on voice ai agents, and had asked his dentist whether he'd use something like that for his clinic — to which the dentist said yes.
since at that point i was only working around 2 hours a day, he asked me if i wanted to join. i did. that was about 12 months ago.
we called the company voena, and the agent ana — our ai receptionist for dental clinics. in a typical dental clinic around 30% of calls go unanswered. that means lost new patients, frustrated existing ones, and more stress for the team. ana picks up after hours and on weekends, books appointments, and answers questions in multiple languages. no more voicemail piling up.
below i'll share what we built, what worked, what didn't, and what i'm taking with me.
the arc
a rough timeline of how it actually unfolded:
- built the product next to my agency for the first ~8 months
- got our first pilot client, where we went live
- raised our first angel investor
- hired our first engineer
- raised ~50k of the 100k pre-seed, were in the final rounds with two of the biggest angel funds in portugal
- …and then i decided to stop
the tech
backend
in the backend we have a pipecat fastapi app running that orchestrates an stt (speech to text) model, an llm (large language model), and a tts (text to speech) model. it also handles transcription, audio streaming, prompt strategy and more. this is where the agent lives.
it's quite simple to set pipecat up and have your first agent running. while that makes it look like getting to a production-ready agent is easy, it turns out it's actually much more complicated.
making sure it can handle most scenarios (e.g. a mother calling for her son), accurately do what the patient needs, and do all of that in multiple languages — is not that easy.
frontend
a dashboard / cockpit for the dental clinic to see the calls that were made, control settings like the doctor's schedules or vacations, and see all the appointments booked by the agent. we built it in next.js 15 with shadcn and tailwind.
database
we went for supabase. it takes some of the work off for authentication, has great data security with things like rls (row level security), and a great sdk for both python and typescript. over time it became quite big, with many tables, direct database functions, triggers, webhooks etc. it's the main connector between our backend and frontend.
sync engine
to sync the locally running database of the dentist's booking system with our supabase, we built a sync engine that uses a job queue to write appointments made by the agent to the local database, and also polls for changes on the local database to sync them back to the agent. it establishes a secure connection using wireguard and a mesh network.
getting clients
we walked around lisbon for a whole day, went into clinics, and asked if we could talk to the owners and show a demo. it actually worked. that's how we got our first pilot live.
later we built a distribution partnership to reach 800 clinics, and were in conversations with one of the biggest software providers in our space in portugal.
building a team
we hired iuri, a frontend designer and sound engineer we'd also met at 42 lisbon. his first mission was to revamp our frontend so that every receptionist using voena would have a great experience.
what surprised me about hiring is that it's not as straightforward as i thought to know what a new person should do on day one. the things i had to get better at quickly:
- being clear myself about which tasks need to be done and how to prioritize them, so i can communicate clearly what needs to get done
- writing good readmes — it actually helps a lot
what i wanted to do more of (and didn't do enough):
- regular team check-ins
- supporting each other emotionally, not just on the work
- doing things together outside the work, like cold baths
culture & values
a few months in, we did a session with our coach jakob about our values and how we wanted to communicate inside the company. honestly, working on culture and team development turned out to be one of the parts i liked most about founding a company.
we started by thinking about what made past team experiences good or bad for us, and what values were underneath. from there we landed on these principles:
- we operate in integrity — we are honest with ourselves and our customers. we say the truth, even when it's not convenient. e.g. we won't promise outcomes the product can't deliver.
- we trust each other to speak honestly — giving candid feedback because we want each other to grow.
- we care — we make an effort to understand what's really going on for each other and hold space for that. often, below an attack or a judgement, there's a fear. we commit to uncovering that.
- we build a product we're proud of — we want to actually make the life of the patient, the receptionist, and the clinic owner better. sometimes a simple design change can take a product from annoying to satisfying. we want to feel proud showing it to our friends.
freedom was the other piece. one of the reasons we wanted to do this in the first place was the freedom of having our own business — in time, location, and finances. instead of postponing that freedom to some future point that for many founders never comes, we decided to live it from day one. we built the company remotely. we can both decide pretty freely when we take off, when we work, and what we work on. obviously we check in with each other to make sure it makes sense, but it was very important to both of us to feel that freedom from the start.
tools we used as a founder team
a few practical things that made a real difference in how we worked together:
- 3-word check-ins at the start of meetings — three words for how you're feeling, what's going on. cheap, fast, surfaces a lot.
- be super honest — saying what we actually think, even when uncomfortable.
- coaching sessions together — having an external person hold space for us as a team.
- voice messages — sometimes it's easier to express and also to react when one has some time.
what i learned
after a year, the main things i'm taking with me:
- founder market fit > product market fit. if the founder isn't deeply tied to the problem, the product won't matter — you'll burn out before you find it.
- mission has to fit. i underestimated how much this would matter over months of pressure. eventually it broke.
- i would have raised money much earlier. so i could pay myself and build things faster. bootstrapping for too long slowed us down.
- my cofounder was great. clear, honest, kind. having the right person is at least half of it.
- it's exhausting as hell, especially because the pressure is always on. i'm not sure that level of constant pressure is what i want for the next thing.
- everything is possible. we ended up talking to some of the best dentists in the world. doors that would have seemed completely closed turned out to just need a knock.
- i felt fully used. all my skills mattered — social, intelligence, organization, discipline, communication, coding. that part i loved.
- having an investor who's a friend can be heavy. when i decided to stop, the responsibility i felt toward him was much more present than what i'd feel toward a fund.
there were also weeks where i had very boring tasks and didn't see the light at the end of the tunnel — couldn't tell if this would really work or not. i lost my excitement in those weeks and was debating whether i should give it up. then on a random day the excitement came back. an interesting experience: the lesson i pulled from that was that pushing through pays off, the excitement returns by itself. that turned out to be true some of the time, and not all of the time. eventually it stopped coming back, and that meant something.
and then i stopped
a few weeks ago i decided to stop, even though the business was in a good place — live client, more clients ready to start, distribution partnership, half the round closed, the other half close. i wrote about that decision in why i walked away from my startup right when it was about to lift off.
this post is the other side of that one. what i built. what i learned. who i did it with.
i'm grateful for all of it. and i'm figuring out what's next — with a much clearer sense of what i actually want from the next thing.