Inspiration

The idea behind ToiletGPT (aka Throne Talks) was to create a voice-based AI app that turns your most private moments into unexpectedly meaningful conversations. In a world full of serious tools, we asked:

"What if the AI that truly understands you... only talks to you on the toilet?"

And so, ToiletGPT was born — a cheerful, slightly philosophical, and very bathroom-aware AI that listens while you vent, laugh, reflect, or just pass the time.

We jokingly call it “ToiletGPT,” but behind the scenes, we used Gemini Flash for speed, humor, and smarts.

How we built it

We used the following stack:

Bolt.new for rapid prototyping and seamless Netlify deployment

Next.js + TypeScript for a modern, reactive web app

Tailwind CSS + ShadCN UI for styling

Web Speech API for:

Speech-to-text (voice input)

Text-to-speech (Elevanlabs)

Genkit to connect with Gemini Flash, simulating ToiletGPT’s voice and personality

A custom persona prompt to ensure the AI is always in character: funny, supportive, and a bit wise (in a bathroom-y way)

The user:

Picks a mood (Dumping Thoughts, Toilet Comedy, Deep Flush, or Sewer Support)

Talks to the AI using a mic

Gets a voice and text response with Toilet Wisdom™ and can select one of AI response to generate a motivational quote image.

Challenges we ran into

💡 Mobile Mic Doesn't Work for Voice Input One big issue was the Web Speech API for speech recognition. It works well on desktop browsers, but not on most mobile browsers. Users on phones can still use the app, but the microphone won’t work for speech input — a browser limitation beyond our control.

Staying in Character ToiletGPT had to be funny, philosophical, and never weird. Crafting the right system prompt and adjusting tone across moods was a balancing act.

Accomplishments that we're proud of

Built a fully speech-based AI experience with voice input and output — all in the browser with no paid APIs.

Created a custom AI persona (ToiletGPT) that stays in character and adapts based on mood — funny, philosophical, or supportive.

Made an app that runs smoothly on desktop and mobile (even though mobile mic input has limitations).

Kept the concept weird and technically sound enough to be demo-worthy.

Used Genkit + Gemini Flash to power real-time AI conversation, despite it being our first time working with these tools.

Turned a bathroom joke into a legit usable app with mood-aware emotional support and real-time voice interactions.

What we learned

Voice UX is hard — especially when browser APIs behave differently across platforms.

Prompt design = personality design — we fine-tuned ToiletGPT’s behavior through clever system prompts and mood modifiers.

Humor needs structure — building a funny app still requires careful flow control, error handling, and design polish.

Free tools can go far — with the right stack (Bolt.new, Netlify, Genkit, Web APIs), you can build great things without spending a cent.

Building something weird can be way more memorable than building something safe.

What's next for Thronetalks( ToiletGPT) - Bathroom companion.

🔧 Fix mobile mic support: Explore workarounds or fallbacks to improve the experience on phones.

🧠 Train a custom model: Eventually fine-tune a smaller LLM just for ToiletGPT’s tone and humor.

🎙️ Custom voices: Integrate a unique TTS voice (once funded) that perfectly matches the vibe of ToiletGPT.

💬 Add journaling mode: Let users save thoughts they vented during “Dumping Thoughts” sessions.

🧻 Release it to the public: Launch a real version on a .fun or .toilet domain for the world to try.

🧠 Add context memory: Make ToiletGPT remember past conversations for continuity and fun callbacks.

Built With

  • browser
  • elevenlabs-api
  • gemini-flash
  • javascript
  • languages:-typescript
  • lucide-react-ai-&-voice:-genkit
  • markdown-frameworks-&-libraries:-next.js
  • netlify-other-tools:-.env
  • react
  • shadcn-ui
  • tailwind-css
  • toast-notifications
  • web-speech-api-platforms-&-hosting:-bolt.new
  • zod
Share this project:

Updates