Skip to content

happybits/funnel

Repository files navigation

Funnel πŸŽ™οΈ

Transform your stream-of-consciousness audio recordings into structured, actionable insights.

Funnel Empty State Funnel Recording Funnel Transcript

Overview

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 

Features

πŸŽ™οΈ Audio Recording

  • Simple one-tap recording with real-time waveform visualization
  • Background recording capability
  • AirPods/headphone support
  • Minimum duration check to ensure quality

πŸ€– AI Processing

  • Automatic transcription via OpenAI Whisper
  • Smart summarization using Anthropic Claude
  • Visual diagram generation
  • Fast processing with status updates

πŸ“± Beautiful UI

  • Gradient backgrounds with vibrant colors
  • Glassmorphic effects for modern aesthetics
  • Smooth animations and transitions
  • Dark mode optimized

πŸ—‚οΈ Note Management

  • Chronological list of all recordings
  • Search across transcripts and summaries
  • Export options (coming soon)
  • Archive and delete functionality

Tech Stack

iOS App

  • SwiftUI - Modern declarative UI
  • SwiftData - Local persistence
  • AVAudioRecorder - Audio capture
  • Combine - Reactive programming

Backend

  • Deno - Modern TypeScript runtime
  • OpenAI Whisper API - Audio transcription
  • Anthropic Claude API - Content analysis
  • RESTful API - Clean communication

Getting Started

Prerequisites

  • Xcode 15+
  • iOS 17+
  • Deno 1.40+
  • API Keys for OpenAI and Anthropic

Installation

  1. Clone the repository

    git clone https://github.com/happybits/funnel.git cd funnel
  2. Set up the iOS app

    make install # Install swiftformat make build # Build the app
  3. Configure the backend

    cd server cp .env.example .env # Add your API keys to .env
  4. Start the server

    deno task dev
  5. Run the app

    make run # Or open in Xcode and run

Development

Available Commands

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 artifacts

Project Structure

funnel/ β”œβ”€β”€ 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 

API Reference

POST /api/new-recording

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" } }

Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Best Practices

License

MIT License - see LICENSE for details.

Acknowledgments

  • Design inspiration from modern iOS apps
  • Built with ❀️ using SwiftUI and Deno
  • Powered by OpenAI and Anthropic APIs

Turn your thoughts into action.

About

Audio note summarizer that transforms stream-of-consciousness recordings into structured insights

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors