· Ed Dowding · Portfolio  · 2 min read

Panauricon (Limitless Elephant)

Continuous voice capture app with 30-minute auto-segmented recording, Google Gemini transcription, location tagging, and full-text search. Designed for capturing thoughts, conversations, and ideas without interruption.

Continuous voice capture app with 30-minute auto-segmented recording, Google Gemini transcription, location tagging, and full-text search. Designed for capturing thoughts, conversations, and ideas without interruption.

The Problem

Ideas and insights arrive at inconvenient moments: during walks, in conversations, while driving. Traditional voice memo apps are limited: short recordings, no transcription, no search. You end up with hours of audio you’ll never review. Result: valuable thoughts captured but never retrieved.

What I Built

Panauricon is a continuous voice diary designed for extended, hands-free capture:

  • 30-Minute Auto-Segmented Recording: Clock-aligned segments with seamless handoff—no gaps, no limits
  • Foreground Service: Keeps recording when app is backgrounded or phone is locked, auto-resumes after crashes
  • Google Gemini Transcription: Speech-to-text with speaker identification and timestamp formatting
  • Location Tagging: GPS capture with reverse geocoding (OpenStreetMap) adds context to each recording
  • Full-Text Search: Query across all transcripts with date range filtering and calendar view

Tech Stack

Mobile: Flutter with Provider state management, record package for audio, flutter_foreground_task for background service, SQLite for local caching.

Backend: Firebase Functions (Node.js/TypeScript), Firestore for metadata, Cloud Storage for audio files (64kbps, organised by user), Google Generative AI (Gemini 2.5 Flash/Pro) for transcription.

Infrastructure: Per-user data isolation via API key auth, signed URLs for secure audio access, retry logic with exponential backoff (5 attempts) for transcription failures.

Lessons Learned

Segment Handoff Is Everything: Continuous recording sounds simple—but handling the transition between 30-minute segments without dropping audio required careful lifecycle management. Clock-aligned boundaries with automatic stop/restart eliminated gaps. Lesson: “continuous” requires explicit engineering.

Location Adds Context You Didn’t Know You Needed: Adding reverse-geocoded location to transcripts (“Recorded at: Hampstead Heath, London”) transformed playback. Suddenly you remember why you recorded something. Lesson: metadata is content.

Transcription Retry Logic Is Essential: Google Cloud Functions cold starts caused transient failures. Implementing exponential backoff (up to 2-minute waits across 5 attempts) made transcription reliable without user intervention. Lesson: distributed systems fail—design for recovery.

Back to Blog

Related Posts

View All Posts »
Mother's Almanac

Mother's Almanac

AI-powered parenting encyclopedia that generates evidence-based guidance on-demand. Built with Next.js 15, Supabase, Claude AI, and a 3-layer caching system with RAG document upload and semantic search.

Moneypenny (WhatsApp AI Desktop Client)

Moneypenny (WhatsApp AI Desktop Client)

Native desktop WhatsApp client with AI-powered message summarisation, priority inbox, and keyboard-first navigation. Built with Tauri (Rust), React, and multi-provider LLM support.

PocketPoppins

PocketPoppins

AI parenting copilot combining effortless memory capture via WhatsApp with personalized developmental guidance and contextual Q&A against both family history and trusted frameworks.

PromptZero (AI Usage & Carbon Analytics)

PromptZero (AI Usage & Carbon Analytics)

Dashboard for monitoring OpenAI API usage, costs, carbon footprint, and project-level analytics. Track spend across multiple API keys with budget alerts, 5-year historical sync, and AES-256 encrypted credential storage.