So, confession time. (This is one of those things I'm not going to shout from LinkedIn... like, my decades long habit of coding webapp solutions for my own problems and community projects really does make me a much stronger UI/UX engineer, but the gap between Enterprise toolsets and workflow and what I still find most expedient for side projects has gotten enormous.)
There's a through line to my current side project development style that goes all the way back to "throw index.html into your academic account's ~/public_html folder".
For too long I've been using a "gonzo / cave-man / script-kiddy " deployment style, everything edited in php files right in place. Even when I used sophisticated page flow management and using includes for shared function sets, I kept up that style -
There were some semi-defensible reasons for this for all my bespoke code. One was, it started in an age before git. It took me a while to realize that people would throw half-started WIP into public git folders as a matter of course - to me shared github projects were a hallmark of "this is forkable open source, potentially useful code" and often my code didn't feel that ready for public inspection.
Also - there was never a case of "it works on my machine!". When everything is live already, everything is known to work. No new file permissions or folder permissions or location issues when deploying to staging or whatever.
Another win was, I wanted to be able to edit quicky from any computer, and in a hurry. In fact I've done way too much work in a browser-based text editor I built from Ace. (I built a frame around it so i could do file upload/deletion, folder creation, etc all from the there) I enjoyed being able to make an emergency change from a work machine or in rare cases even a smartphone.
And there are serious, ongoing advantages to buildless/evergreen - for a one person shop, it makes code that years later you can pick up and bang on without worrying about breaking builds... and a tendency towards "build rather than buy" avoids npm hell.
But obviously, it kind of sucks when your main way of banging on a running server is to make a "index2.php" and rollback is from a "foldername.bak".
A lot of that no longer makes sense in an LLM-companion world. (And probably didn't make as much sense for as long even before LLM)
To incrementally improve, I've come up with a new system/paradigm: "Puckish". The key is having a CODE/ folder on my VPS, and another for DATA/. Each project has its own folder in each, and then a symlink into there from either under one of my main domains, or as the root of a new subdomain.
Code then gets deployed more or less normally via git after being locally developed and run (also I learned that github relaxed its policy that all free repos must be public.) In an emergency I can still hack "on the metal" either on my own or via Claude in a terminal.
As I build my first webapp in this paradigm (I realized it's been a mistake all these years trying to use my regular todo app for packlists - that packlists can have templates of stuff I always want to remember to check to prepolate the list, and there should be different types of packlist templates for different types of trips.
But of course a new paradigm deserves a new name... So I asked Claude to help come up with a name that captures this "manchild" approach - like I want to mature a bit, but keep the youthful speed and simplicity and flexibility. "Manchild" is too self deprecating, "Puer aeternus" is too hard to spell, "Peter Pan" is overused... It suggested "Sophomore" but then I realized the Shakespeare figure of "Puck" captures it, more or less, and has personal resonance - here's my deceased dad in his trademark moose-ears pose beneath a statue of Puck say "Lord What Fools These Mortals Be"


No comments:
Post a Comment