A few weeks ago I wrote a script that was supposed to save me eighteen minutes. Today it cost me about thirteen hours, and only about ninety minutes of that went to the work I’d planned.
I have a template (Spernakit) and six apps built on it, and when I change the template I have to copy that change into each app. By hand it’s maybe three minutes per app, times six, so I wrote a little tool to do it automatically.
It worked fine. Mostly. The problem was that it kept deciding that code I’d added to an app on purpose was “drift” from the template and quietly overwriting it. Every time that happened, I’d lose an hour or so picking up the pieces, and I kept telling myself I’d fix the classifier eventually.
Today I deleted the tool altogether.
The day actually started with another recovery effort, exactly the kind of mess the tool was supposed to prevent. One app had a custom helper function stripped out, another lost a bunch of app-specific fields from its data store, and a third ended up with a broken login flow. All three files were “safe” according to the tool’s classifier.
So rather than fixing it, I removed the choice entirely: deleted the script from all seven repositories (the template plus the six apps), stripped it from the docs, simplified the slash command that used to offer “auto or manual” down to just manual, and left a note for future-me: “the script is gone, don’t bring it back, the minuscule efficiency gain wasn’t worth it.”
With that done, I went back to what today was supposed to be about - testing each of the six apps end-to-end in a real browser and filing fixes for anything broken.
Testing caught exactly one bug, which honestly surprised me (the template’s been through a lot of audits lately and I guess it shows). When you visit any of these apps for the very first time - no cookies, no saved session - the URL briefly shows ?expired=1, a flag that’s supposed to mean “your old session just expired, please log back in.” Nothing expired, though; you just got there. It’s visual noise that makes the app look broken on first impression. I traced it to a single function deep in the authentication code that couldn’t tell “I had a session and it expired” from “I never had a session at all.” Three-line fix, and since the same file existed byte-for-byte in six of the seven repositories, it applied everywhere at once.
By the time everything was in, all seven repositories were passing the quality gate again.