Humble beginnings
Nucleate is the product of months of building, tuning, testing—and re-inventing.
Is a transcription and summarization app all that hard to make? Not really.
Did I manage to make it hard anyway? Oh yeah.
All told, Nucleate has been written (or rewritten) three times.
The first version was a backend-only set of scripts and a simple pipeline that transcribed audio into short summaries. It worked—but only for me. No UI, no flexibility, no goals beyond just helping document early projects.
The second version was a Tkinter-based tray app and is where Nucleate started to feel like a product. Very early customization appeared with a few different user modes. Early “special notes” were introduced (the early version of today’s Insights). Tagging, config management, and basic AI engine flexibility followed.
This phase forced a lot of “responsible developer” growth—cleaner data handling, better config management, avoiding stale data, etc. At the time, I genuinely thought this version (then called Echo) might ship as a small, focused devlog and journaling-only tool. I brought it to the point of customizing animations, Tkinter dark mode (which was very painful, by the way), and individual styling of every single modal toplevel.
And yet, scope creep…
The third version was a full reset. I’d way outgrown Tkinter and decided that I’d short changed the app by stopping at “devlog tool.” I migrated to PySide6 and rebranded the project from Echo to Nucleate. Migration require rework of every panel and quickly revealed that my “finished” app was just trenchcoat spaghetti code.
Only after this third iteration did the app really start to mature. Deep customization, a full suite of Insights, diarization, cross-platform support, automated setup flows, proper error handling, state management, in-app recording, Windows + macOS support, and far more flexibility than the original vision allowed. Content and customization blossomed.
It wasn’t really the intent, but Nucleate became the product of “completionist” compulsion and gamified code. I wanted it done and to feel like I pushed it all the way to the endpoint.
And now, here we are. Nucleate is entering beta—and for the first time, it feels ready to be shared.
Development stats
I like data! See the stats that went into Nucleate pre-release.
Milestone events:
- April 16th: Repo established for “LLM Scribe”
- June 28th: Development for general release begins under the “Echo” project name
- September 1st: Addition of multiple user modes and supporting system prompts
- October 26th: Rebranding under a product name, “Nucleate”
- November 16th: Branch for tkinker => PySide6 conversion
- December 21st: Removed tkinker legacy code from repo, consolidation
- January 1st: macOS (x86) first development round complete
- February 16th: macOS (Apple Silicon) first development round complete
- February 25th: Windows w/ CUDA, Windows w/ CPU, macOS w/ Apple Silicon, and macOS w/ Intel packaged successfully
