Inspiration
Small business owners like barbers, dentists, and salon owners spend hours answering phone calls, booking appointments, and managing leads instead of focusing on their craft. We wanted to build a platform that gives any non-technical business owner their own AI-powered receptionist without writing a single line of code.
What it does
Bookd lets business owners sign up, configure a custom AI voice agent with their own personality and greeting, get a real provisioned phone number, and have that agent answer calls, extract customer info, and sync everything into a live dashboard with a calendar, inbox, leads view, and analytics.
How we built it
We built it with Next.js 14 (App Router), Supabase for auth and the database, and Teli AI for the voice agent and phone provisioning. The onboarding flow walks users through setting up their business, picking an area code, choosing a voice, writing an agent prompt, and defining custom extraction fields, all stored in Supabase and sent to Teli's API. Calls sync in real-time from Teli into our customers table, and the dashboard uses lazy-loaded tab components with URL-based
Challenges we ran into
Integrating with Teli AI was our biggest hurdle. As a newer API, the documentation didn't always match the actual behavior, so we had to reverse-engineer things through trial and error, discovering the correct endpoint, auth format, and query parameters one failed request at a time. The production domain wasn't resolving yet, so we connected directly to the Modal deployment. Once we got calls flowing, we still had to map Teli's response fields to our Supabase schema, debugging column mismatches and data formatting issues until the full pipeline from live phone call to dashboard entry finally worked end to end.
Accomplishments that we're proud of
We're proud that a non-technical user can go from zero to having a fully functional AI receptionist with a real phone number in under two minutes. The multi-step onboarding flow, live call syncing from Teli to Supabase, custom extraction fields that adapt to any business type, and the clean dashboard with real-time new-call notifications all came together into a polished product.
What we learned
We learned how to work with voice AI APIs in production, how tricky phone provisioning and call data pipelines can be, and how important it is to build flexible schemas, our JSONB custom fields approach lets a barbershop track hair styles while a dentist tracks insurance providers using the same table structure. We also learned a lot about Supabase Auth with SSR cookie handling in Next.js.
What's next for Booked
Next steps are Google Calendar integration so appointments sync both ways, SMS follow-ups and reminders triggered automatically after calls, a mobile-friendly experience for business owners on the go, and expanding the analytics dashboard with real call sentiment data and conversion tracking from Teli.
Built With
- next.js
- react
- supabase
- teliai
- typescript

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