Just a moment

EchoNote

Independent product exploration
Designing a trustworthy workflow to verify, correct, and reuse AI-generated transcripts
Summary
Overview
Busy professionals and students often record voice memos, but struggle to extract key information and organize it for action.
Technical Stack
Frontend: React with TypeScript
Styling: Tailwind CSS
Backend: Vercel, Supabase
AI Integration:Assembly AI
Deployment: Vercel, GIT
Tools: GPT, Claude
Key Tools
v0
API
Supabase
PRODUCT DECISIONS
Discovery
Inspirations
Define
Scope Solution, Define MVP
Design
Build Prototype
Deliver
Working MVP · Audio transcription deployed on Vercel

DELIVERABLES

EchoNote App

Deliverables (live at v0)

Click here to link to the project
#1. Direct Recording / Upload audio file
#2. Edit and highlight transcript

background

The real risk was unverified information

Recording was easy. Finding, verifying, and reusing what mattered was not.

Product risk

A fast summary has limited value if users cannot verify its source or correct errors before reuse.

Design opportunity

Move from audio to reviewed, structured information without losing source context.

DISCOVERY RESEARCH

Research pointed to retrieval and reuse

Target Users: Startup founders, students, busy professionals (UX Researchers, Reporters)
Methods: 4 interviews, 12 survey responses

83%
prefer searchable text over audio replay
75%
want summaries or highlights
67%
use Notion or Google Docs regularly

Five requirements guided the MVP

Make processing status visibleKeep AI output connected to timestampsSupport correction before reuseProvide clear recovery pathsFit existing knowledge workflows

Process

I narrowed the build to one trustworthy end-to-end workflow

Framing the workflow

Started in Figma: Created low-fidelity wireframes with mobile-first layouts
Research & Planning: API to use for transcribing. (If no money limitations I will choose Whisper instead)
Flow Mapping: Defined user flows for uploading, transcribing, editing, summarizing, and exporting
v0 Prototype: Started with Lovable, Bolt, and then v0. Built an interactive click-through prototype to visualize the user journey
Local API Mocking: Simulated transcription responses using local JSON files
UI Iteration: Refined layout and interactions based on early feedback and usability patterns

Decision 1 — Keep the transcript as the source of truth


Supabase Storage: Integrated for uploading and storing audio files and built upload success/error handling to confirm files are saved.
Speech-to-Text API Integration: Ultimately choose Assembly AI API (non-GPT) for converting audio to text
(Google speech to text API at first , then found out only accepting GS not supporting summary...)
Speaker Labeling: Parsed transcript to apply basic speaker separation (e.g., Speaker 1, Speaker 2)
Transcript Interface
Editable Transcripts: Built inline editing system with autosave support
Highlight System: Added tap-to-highlight functionality with badge tagging (e.g., Important, Action)
Mobile Responsiveness: Tailwind CSS used to ensure smooth experience on mobile and tablet
Cached transcripts and metadata in Supabase Database: for persistence and quick retrieval.

Decision 2 — Make AI insights verifiable

Lightweight Summary Logic: Used simple heuristics or transcript structure (e.g., paragraph segmentation, keyword detection) to generate summaries
Timestamped Highlights: Associated key points with their corresponding audio timestamps
Speaker Insights: Displayed talk-time distribution per speaker as basic insights

Decision 3 — Review content before export

Export Modal: Built modal interface with selectable export options (Google Docs, Notion, PDF, Local Save)
(only implement opening the save to ...screen modal)

Validation, recovery, and limitations

User Testing: Conducted quick feedback sessions with early users to test core flows
UI Enhancements
: Improved visual spacing, font hierarchy, and transitions
Error States: Added fallback messaging and error recovery for failed transcriptions or exports
Rate Limiting: Limited export operations per user to prevent abuse during MVP
Cross-Device Testing: Verified usability across breakpoints and devices
Edit Notes, Summary, Action Items & Transcript: According to user needs (Added function)

Exploring collaboration without overstating what shipped

Found the entry point: the Share and Comment icons already existed in the shipped UI with no logic behind them — the natural surface to design into rather than invent from scratch.
Permission model: designed Owner, Can edit, Can comment, and Can view roles, each rendering a different, consistent version of the same note so collaborators only see the controls their role allows.
Threaded comments: anchored replies to specific highlighted transcript spans, reusing the tap-to-highlight system built in Phase 2.
Thoughtful states: designed pending-invite, active-access, invalid-email, and empty states so the feature reads clearly at every stage, not just the happy path.
Accessibility: kept modal focus order logical, made the role dropdown keyboard-operable, and checked contrast on every status badge.
Status: designed and prototyped end-to-end (see mockups below); not yet wired into the app's single-user data model — that's the next build phase.

thank you🫰

Hoping you have a good one 💐

Thank you for reading this case study! If you’re interested, feel free to check out my other projects in "WORKS"

Back to top