I Have a Confession: I Built This Site with AI – Please Forgive Me
I Have a Confession: I Built This Site with AI - Please Forgive Me To be clear, none of the content, but the site engine itself is all AI built. It is a long and somewhat sad story. By the end, I hope you'll forgive me. The Backstory I was a scientist. I have a Ph.D. in Instrumentation Physics. I loved doing science. But for many reasons, some of them beyond my control, I ended up in software development instead. I had learned software on my own; partially to support the science but partially because I loved it. I loved solving problems and learning new skills. I never took a software class, instead I read everything I could, talked to everyone who would talk to me. I joined open source projects like Mojolicious. I went to conferences. I got pretty good. I specialized in low level protocols and async patterns. I programmed in Perl, PHP, Python, Node, Java and more. I rarely even used an IDE, preferring to code in Vim. Recently I began doing Kubernetes. I loved helping people online and mentoring my younger coworkers. This was fun for me! I enjoyed the journey, the destination really didn't matter so much. And then it all changed. A few years ago people began talking about AI programming. What little filtered down to me usually was a friend saying "hey look, I generated a Mojolicious webapp using ChatGPT" and when I'd look at the code I could see by eye that it wasn't even syntactically correct Perl let alone a functioning webapp. That changed quickly. This spring I started noticing my coworkers were taking on challenges that (for all their talents) I was worried were beyond their abilities. To my surprise and initial delight they were able to turn those tasks around and very quickly. But of course I soon figured out why. Someone reading this will know what version of Claude it was that caused this change, to be honest I don't really care that much, but it was spring of 2026 and all of a sudden I was no longer ahead; if anything I was suddenly behind. But I still assumed that AI coding was as flawed as before, just maybe faster than it had been. Then came "the meeting". A coworker showed us how using several agents they could specify the desired change, then one agent would build it, another agent would test it, another agent would review the changes and the tests and ensure that it satisfied the initial request. My eyes opened wide. The problem for software development is that it is testable. Coding would never be the same again. AI Slop vs Agentic Software Development We've all seen AI Slop. Hallucinations, fabrications, implausibilities. These happen because fundamentally AI doesn't think, it just synthesizes text, making more text that it hopes you want. The problem for most requests is that the result is open ended. It can't KNOW that it has satisfied your request, it has to try and then wait for your feedback. Of course most slop happens when the requestor doesn't know any better and assumes the first draft is good enough. Software is different. You ask for something concrete and testable. For a set of inputs it needs to have these outputs. Make code that solves that. Iterate until it does. The result isn't open ended, it is very precise. In a scenario like this, AI can do some pretty incredible things. But it is actually more than that. Another of the challenges in software is knowing all the details. It is hard to know everything in a codebase, hard to know how to use any given library let alone all of them, hard to know the right patterns to use or protocols to employ. But AI knows about all these things. It might be a little out of date sometimes, and it might go the wrong direction sometimes - there is still a place for a knowledgeable developer - but give it a little prod and it will go the right way again. It isn't limited by how much it can hold in its "head" (mostly). The Creation of This Site Why I Built My Website and FigureShift For the first post in my blog here, I'd like to tell you why I built this site and the tooling around it, including FigureShift, which I hope you'll consider trying for your own collection. It will also lead into how I did it in a later post. Returning to typewriters, I have wanted a website for my collection for a while. I had been keeping a spreadsheet from when the collection was mid teens in size. By 60 or so even that was feeling clunky. You can read more in the article I made about that. The problem was time. Oh I could have built this whole thing myself, but I just didn't have the time. I could learn each of the tools, lovingly hand craft every line of code and know each of the api calls used to coordinate all of the data. But between work, parenting, and the typewriters themselves, I just didn't have the time. And so building the site was an opportunity to learn to use AI for coding. As a personal project I could learn to trust it to do what I asked. I gave myself the goal of taking a hands-off approach to the code. I haven't opened Vim, I have barely looked at the code. This isn't business critical code, it isn't secret sauce, its a website for a typewriter collection. I wanted to see how well it could do on its own. I have guided it, I have specified all of the features, I have changed my mind on things, I have found bugs, but each time I let it do all the work. Just throw it into auto mode and let it cook. And it turns out the proof is in the pudding. Impressions Chicago No. 1 typesleeve w/ keyboard Merritt Linear index, steel type I've learned a lot about using a tool like this but the biggest result is that development has lost its joy. There were no challenges, there were no puzzles, no hurdles to overcome. The biggest lesson is that software development is now about the destination not the journey, the journey is for the agent. If that's the case then the joy now has to be thinking about what is possible. I have built features into this site that I never would have on my own. The tag engine has a query language that lets you request single-element+!index to see The Chicago and the Blicks (try it), or index+!single-element to see the Merritt (try it). And the Timeline is so much fun to explore. In this era, the destination is what you enjoy, and I have more features planned. It does still need a human involved. It needs to be kept on task and to provide alternatives when it goes down a rabbit hole. It also needs the ideas. Sure it can suggest things but none have been as good as the ideas I've had for showcasing these lovely machines. That spark still comes from the human mind ... for now. The Ethics of It All And yet I still hate it. Not just for the loss of the journey, not just that it is expensive and wasteful. It is unearned. I didn't learn these libraries. Hell I barely know which libraries I've built on top of! Open source development used to run on attribution, how can I attribute what I barely know I've consumed?! Why would those developers continue to work on these projects when they now go even more unappreciated than they used to be?! I assume many have stopped. And those are just the libraries. The code it is generating is synthesized from being trained on code they have sucked out of the public (and perhaps not so public) internet. Code like my own from my own Github page and many many others, all without attribution or compensation. I could have paid someone to build it, freelance software development used to be a thing, but I didn't. I bet that market is pretty dry these days. I wouldn't be using this if I could avoid it really. I don't use the "gig economy" at all. I don't use crypto either. But in this case, I couldn't beat them, so I had to join them. I'm still rather hoping that the AI companies get sued out of existence by rights holders, or they can't figure out how to become profitable after all this. But until then, just to keep up, I have now learned to make a website using AI. I love the results, I hate the process. I guess that's what we have now. Please forgive me.