C.W.K.
Stream
Lesson 03 of 04 · published

Two Lists: Clone and Leave

~11 min · what-to-clone, scope, privacy, cloud

Level 0Unlit
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"Every closed product is two products stacked: the interaction you love and the business you don't. Clone one, leave the other."

The Clone List

These are the behaviors that make a dictation tool feel good. They're pure interaction — none of them are proprietary secrets — and Firekeeper reproduces every one:

  • System-wide push-to-talk and a hands-free toggle.
  • Insert everywhere — into whatever field has focus.
  • Smart cleanup — filler removal, punctuation, list formatting, "actually…" corrections.
  • Personalization — a custom dictionary, snippets, per-app style profiles.
  • Context awareness — use the active app and nearby text to improve output (opt-in).
  • Command / transform mode — rewrite selected text from a spoken instruction.
  • Copy/paste fallback when insertion can't be performed, and undo-friendly replace.

The Leave List

These are the business and architecture choices that serve the vendor, not you. Firekeeper deliberately drops them:

  • Account / subscription gating — no login to speak into your own Mac.
  • Cloud transcription as the baseline — the single most important rejection.
  • Cross-device cloud sync — your voice data doesn't need a fleet.
  • Branding, UI, and exact prompts — write your own; they're not yours to take.
  • Any hidden data collection — the whole point is that nothing is hidden.

Why the Split Is Clean

The two lists never conflict, and that's the tell that you scoped correctly. Every item on the clone list is a thing the user feels; every item on the leave list is a thing the vendor needs. When you can sort a competitor's features into 'user experience' and 'vendor business model' with no overlap, you know exactly what you're building — the experience without the business.

Clone the user's list; drop the vendor's list. A closed product bundles UX you'd pay for with business decisions you'd never choose. The clone is disciplined subtraction: keep every interaction that serves the user, drop every mechanism that serves only the seller.
Cloud STT is the load-bearing rejection. Most 'leave' items are mild preferences. Cloud transcription is not — it's the one that, if you kept it, would quietly turn your privacy-first clone back into the thing you were trying to escape. Reject it first, and the rest of the architecture falls into place around on-device STT.

Code

Sort the competitor's features into two columns·text
CLONE (user experience)          LEAVE (vendor business)
-----------------------          -----------------------
system-wide push-to-talk         account / subscription gating
insert-everywhere                cloud transcription baseline
smart cleanup                    cross-device cloud sync
dictionary / snippets / styles   branding / UI / exact prompts
context awareness (opt-in)       hidden data collection
command / transform mode
copy-paste fallback + undo

# The test of good scoping: no row belongs in both columns.
# If it does, you haven't separated experience from business yet.

External links

Exercise

Pick any subscription app and sort ten of its features into 'clone (user experience)' and 'leave (vendor business)'. Find the one 'leave' item that, if you accidentally kept it, would undermine your whole reason for rebuilding. That's your load-bearing rejection.
Hint
The load-bearing rejection is usually an architecture choice disguised as a feature — cloud-by-default, always-online, telemetry-on. It's the one that quietly re-imports the very problem you set out to solve, so it has to be the first thing you design out.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.