← All workCase study / 02

Public beta · v1.1.8 · Windows x64

EchoFlow

A local AI voice-dictation app for Windows.

Taken from an AI-assisted experiment to a public beta: designed, debugged, tested and shipped with a real installer, updater and product website.

Visit website Source is private

Film transcript: 27-second tour of EchoFlow on Windows: holding Win + Alt to dictate into Notion, the text being processed locally and inserted, the Writing Styles screen, a History entry switched between original speech and AI-refined text, and the local Whisper and Style Brain model settings.

Role
Solo project · AI-assisted
Year
2026
Platform
Windows x64
Status
Public beta
Stack

01At a glance

The 30‑second version.

Problem

Dictation usually means a separate app, or sending your voice to a cloud service.

Product

Hold a shortcut (Win + Alt by default), speak, release. Speech is transcribed on your PC, optionally refined by a local AI model, and typed where you were working.

Outcome

A public Windows beta with an 11.2 MB installer, tested auto-updates and a live product website.

11.2MB

Installer, down from 297.9 MB

5 + 4

Local speech models + local AI models, plus Auto Brain

308

Automated Playwright tests on the product website

9.3min

Website CI pipeline, down from 14.4 min

02Experience

Hold. Speak. Release.

One shortcut works in any Windows app. A floating status pill called Aurora shows each real stage, so the user always knows what the app is doing.

  1. 01
    Hold

    Press and hold Win + Alt in the app you're typing in. It's the default shortcut and can be changed in Settings.

  2. 02
    Speak

    The Aurora pill shows Recording and a timer. Audio stays on the PC.

  3. 03
    Release

    whisper.cpp transcribes; a local AI model can clean up the text.

  4. 04
    It lands at the cursor

    The finished text is inserted into the app that had focus.

A sentence inserted by EchoFlow into a Notion page, with the real Aurora pill shown in its four states: Recording, Transcribing, Cleaning and Inserting.
Genuine Aurora frames from one recorded dictation.
Exact

Direct Speech

Inserts the speech transcription without AI rewriting. Your words, as you said them.

Optional

AI refinement

A local model fixes grammar and tone. Writing Styles and Auto-Detect match chat, team tools, email or documents; Smart Filler removes filler words.

Automatic

Auto Brain

Not another model: it picks among the AI models you already installed, based on language, writing context, text length and GPU setting.

The same EchoFlow History entry in its two real states: the original transcript, and the AI-refined version after Restore AI.
History keeps both versions, so refinement can be undone.
EchoFlow's Writing Styles screen with AI Style Refinement active, Auto-Detect on, and style presets for chat, team tools, email and documents.
Writing Styles: one style per kind of app.

First-run setup

Recommends models for your hardware.

Instant Velocity

Speech
Whisper Base
AI
Gemma 2 2B

≈1.9 GBof models

Balanced Precision

Speech
Whisper Small
AI
Phi-3 Mini

≈2.9 GBof models

The rule

If an NVIDIA GPU and enough RAM are detected → Balanced Precision. Otherwise → Instant Velocity.

Users can still pick any of 5 Whisper models (Tiny → Large V3) and 4 AI models (Gemma 2 2B, Phi-3 Mini, Llama 3 8B, Mistral NeMo 12B).

EchoFlow settings showing the local Whisper transcription models and the local Style Brain language models, with Whisper Medium and Phi-3 Mini active.
Speech and AI models are downloaded once, then run on the PC.

03Architecture

Everything runs on your PC.

After the models are downloaded, speech recognition and AI refinement both work offline. Nothing is sent to a hosted transcription service.

Tauri v2 desktop app · Rust backend · React + TypeScript UIGPU via Vulkan · CPU fallback

  1. Input

    Global shortcutWin + Alt by default

  2. Capture

    Microphone audioRecorded locally

  3. Speech

    whisper.cpp5 Whisper models

  4. Choose

    ModeDirect or refined

  5. Direct Speech

    No rewritingTranscript as spoken

    AI refinement

    llama.cpp4 models · Auto Brain picks

  6. Output

    Insert at cursorBack into the focused app

  7. Saved

    History + statsStored on the PC

Windows integration
Global hotkey, focus recovery and text insertion back into the previous app.
Model management
Download, select and remove models in-app; licence acceptance where a model requires it.
Updates
Signed update archive, verified by the app before installing.

04Challenges

Four problems, solved by measuring.

Each one followed the same loop: notice the symptom, reproduce it, find the real cause, decide, then check the result.

Challenge 01 · Distribution

An installer 26× too big.

297.9 MB11.2MB
v1.1.7297.9 MB
v1.1.811.2 MB
Installed~750 MB
Installed~61 MB
symptom
The v1.1.7 installer was about 298 MB, and the installed app about 750 MB before any models.
investigation
Traced which files the runtime actually loads: about 726 MB of bundled CUDA files were never used.
decision
Benchmarked Vulkan against CUDA for EchoFlow's workload. Vulkan already gave effective NVIDIA acceleration; CUDA gave no meaningful transcription gain for its size. Removed the unused bundle.
result
11.2 MB installer, ~61 MB installed, same working GPU path. A decision for this app, not a claim that CUDA is bad.

Challenge 02 · Clean-PC compatibility

It worked on my PC. Only on my PC.

0extra installs
  • Install VC++ Redistributable
  • Install Vulkan loader
  • Run EchoFlow installer
symptom
The native speech and AI engines could fail on a fresh Windows machine.
investigation
They depended on Microsoft Visual C++ runtime DLLs that existed on development and test PCs, but were not shipped with EchoFlow.
decision
Bundle the required Visual C++ runtime DLLs next to the app, plus a Vulkan loader fallback.
result
Users no longer install the Visual C++ Redistributable or a Vulkan loader separately.

Challenge 03 · Debugging

Every dictation, twice.

2 → 1process

EchoFlowResponds to Win + Alt

EchoFlow (2nd)Also responded

symptom
Duplicate transcriptions and duplicate History entries.
investigation
Inspected History and running processes, then reproduced it: two EchoFlow processes could run at once and both answered the same shortcut.
decision
Added Tauri single-instance protection.
result
Launching EchoFlow again no longer starts a second processing instance.

Challenge 04 · Language testing

Punjabi that stays in Gurmukhi.

ਪੰਜਾਬੀ

  • English hint
  • Gurmukhi hint
  • No hint + Large V3
symptom
With Punjabi selected, output could drift into English or Devanagari.
investigation
The app was passing Whisper an English prompt even for Punjabi. A Gurmukhi prompt then exposed a Windows command-line encoding issue.
decision
Send no Punjabi prompt, and recommend Whisper Large V3 for Punjabi.
result
In synthetic and real-voice tests, Large V3 produced mostly Gurmukhi output. Remaining imperfections are tracked; it is usable in Beta, not perfect.

05Shipping

A real release, not a demo.

Installer, updater, website, privacy and tests: the work that turns an app on one PC into something other people can download.

Real update test

Upgraded end-to-end.

v1.1.7v1.1.8

  • History survived
  • Statistics survived
  • Settings survived
  • Downloaded models survived
  • Model-licence records survived
  • Old CUDA files removed
  • v1.1.8 launched correctly

Testing & CI · website

308 Playwright tests, faster CI.

Profiled the pipeline, enabled safe full parallelism and raised CI workers from 2 to 4. Same coverage.

Before14.4 min
After9.3 min
308passing tests

Download page

Honest install instructions.

System requirements, SmartScreen explanation and SHA-256 verification.

echoflow.uk/download

The EchoFlow website Download page, with the v1.1.8 Beta download button and system requirements.

Privacy-first analytics

Consent before anything.

No analytics script before consent · “No thanks” sends nothing · Global Privacy Control respected · no session replay, heatmaps or autocapture · country-level location only

Launch audit

No launch blockers.

Every link and download URL · 320–1920px widths · keyboard and focus · headings and alt text · reduced motion · release facts consistent

Licences & discovery

Ready to be found.

Terms, Privacy, third-party notices · licence gates for Gemma 2 and Llama 3 · sitemap, structured data, social cards · Search Console verified

06Status

A public beta, honestly.

It works and people can download it. It is not finished, and these are the things still on the list.

Working in v1.1.8

  • Local speech-to-text
  • Optional local AI refinement
  • Direct Speech
  • Auto Brain
  • Model downloads
  • History and statistics
  • Onboarding and setup
  • GPU (Vulkan) + CPU fallback
  • Automatic updates
  • Offline after setup

Tracked for later

  • Long dictations
  • More Punjabi refinement
  • Microphone level warning
  • History same-second edge cases
  • Help screenshots
  • More CI optimisation
  • Mac support
  • Mobile

The Windows installer is not Authenticode-signed yet, so SmartScreen may warn about an unknown publisher. Update archives are signed separately and verified by the app. Windows x64 only.

07My role

What I did, and how.

EchoFlow began as an experiment in AI-assisted software development. I drove the product direction, interaction model, feature decisions, testing and iteration while using AI coding tools extensively during implementation. As the project grew, I worked through the resulting Windows integration, local-model, state-management, testing and release problems rather than treating generated code as the finished product.

✦ Built with AI coding tools

Concept
Product concept and direction for making voice input feel native to Windows rather than a separate transcription tool.
Problem
Defined the need to capture speech, refine it when wanted, retain reversible history and return text to the application that already had focus.
Direction
Directed the interaction model, Aurora states, feature decisions and iterative product testing.
Technical decisions
Made the decisions on local speech recognition, optional local refinement, model management and Windows insertion behaviour.
Testing
Tested and iterated on the local dictation workflow, Windows integration, state handling and release progression.
AI-assisted implementation
Used AI coding tools extensively during implementation while retaining responsibility for product direction, testing and iteration.
Understanding / rework
Worked through the resulting Windows integration, local-model, state-management, testing and release problems rather than treating generated code as finished.

08Learned

Lessons I'll keep.

Measure first

The 287 MB saving came from tracing what actually loads, not from guessing.

Test on a clean PC

A developer machine hides missing dependencies.

Reproduce, then fix

The duplicate bug only made sense once I could make it happen on purpose.

Ship the honest version

Known issues are listed, not hidden.