Leaving Python for Swift, and deleting the thing that worked
The first working Jiva was Python. I threw most of it away and rebuilt the core natively. As a non-engineer, deleting the thing that already ran felt wrong. It was right.
The first working version of Jiva was written in Python. It proved the idea — capture audio, transcribe it locally, produce a markdown transcript — and then I threw most of it away and rebuilt the core as a native Swift app. As a non-engineer, deliberately deleting the thing that already worked felt wrong. It was the right call.
Here is why. The Python proof-of-concept leaned on extra pieces to capture system audio and route it around. That is fine for proving a point on my own machine. It is not fine for something a stranger installs and trusts to run quietly in the background of every meeting. Note that the primary driver for going native was not elegance, rather reliability and reach: a signed Mac app that taps both sides of a call through the operating system's own audio path, survives the audio route changing mid-meeting, and does not ask the user to assemble anything.
What a non-coder learns doing this is that the interesting decisions are not “which language.” They are things I did not know existed a few months ago — how a process audio tap works, what happens when someone switches to AirPods halfway through a call, why an overlay window can be made invisible to screen sharing. Each was a small research project, and each is the difference between a demo and a product.
The rule I took from it: a proof-of-concept exists to answer one question, and once it has answered it, keeping it is a liability, not an asset. The Python version answered “is this even possible on the device.” Once the answer was yes, the honest move was to rebuild it properly, even though rebuilding is slower and less satisfying than piling features onto something that already runs.
More soon.