Transform your stream-of-consciousness audio recordings into structured, actionable insights.
Funnel is a SwiftUI app that captures spontaneous audio recordings and transforms them into multiple visual representations. Perfect for capturing ideas on-the-go when inspiration strikes.
π€ Record β π€ Process β π Visualize β β β β β βββ Bullet Points β β βββ Napkin Sketch β β βββ Full Transcript β β β βββ AI-powered transcription & summarization β βββ One-tap recording with AirPods support - Simple one-tap recording with real-time waveform visualization
- Background recording capability
- AirPods/headphone support
- Minimum duration check to ensure quality
- Automatic transcription via OpenAI Whisper
- Smart summarization using Anthropic Claude
- Visual diagram generation
- Fast processing with status updates
- Gradient backgrounds with vibrant colors
- Glassmorphic effects for modern aesthetics
- Smooth animations and transitions
- Dark mode optimized
- Chronological list of all recordings
- Search across transcripts and summaries
- Export options (coming soon)
- Archive and delete functionality
- SwiftUI - Modern declarative UI
- SwiftData - Local persistence
- AVAudioRecorder - Audio capture
- Combine - Reactive programming
- Deno - Modern TypeScript runtime
- OpenAI Whisper API - Audio transcription
- Anthropic Claude API - Content analysis
- RESTful API - Clean communication
- Xcode 15+
- iOS 17+
- Deno 1.40+
- API Keys for OpenAI and Anthropic
-
Clone the repository
git clone https://github.com/happybits/funnel.git cd funnel -
Set up the iOS app
make install # Install swiftformat make build # Build the app
-
Configure the backend
cd server cp .env.example .env # Add your API keys to .env
-
Start the server
deno task dev
-
Run the app
make run # Or open in Xcode and run
make help # Show all available commands make build # Build the app make run # Run on simulator make format # Format Swift code make test # Run tests make clean # Clean build artifactsfunnel/ βββ Funnel/ # iOS app β βββ Views/ # SwiftUI views β βββ Models/ # Data models β βββ Services/ # API and recording services β βββ Utils/ # Helpers and extensions βββ server/ # Deno backend β βββ routes/ # API endpoints β βββ services/ # External API integrations β βββ tests/ # Server tests βββ docs/ # Documentation Upload an audio file for processing.
Request:
- Multipart form data with audio file
- Supported formats: mp3, mp4, wav, m4a
Response:
{ "transcript": "Full transcription text...", "duration": 45.2, "bulletSummary": ["Key point 1", "Key point 2"], "diagram": { "title": "Concept Overview", "description": "Visual representation of the main idea", "content": "ASCII art or mermaid diagram" } }We welcome contributions! Please see our Contributing Guide for details.
- Follow the SwiftUI Layout Best Practices
- Review the Glassmorphism Implementation Guide for performance tips
- The project uses Xcode's new folder-based structure (files are automatically referenced)
- Run
make formatbefore committing - Write tests for new features
MIT License - see LICENSE for details.
- Design inspiration from modern iOS apps
- Built with β€οΈ using SwiftUI and Deno
- Powered by OpenAI and Anthropic APIs


