2024 eclipse timelapse by Ashley Lian

On LLMs and Vibecoding

03L02 was when I first experienced vibecoding. Prior to this, I had used LLMs relatively sparingly at my job and for my side projects, mostly treating the models as a second pair of hands to assist me in my efforts. This was different. This was relinquishing nearly all programming work over to the invisible churning mass of neurons and activation functions called Claude. At the time, I had just embarked on my mission to learn Mandarin. After collecting several online resources including game-ified apps, podcasts, and government issued documents, I realized I had no easy (and free) way to study Hanzi characters. At least, there was no way to customize the set of characters I wanted to focus on. How awesome would it be to make my own iOS app that does exactly this? And so I did. Or rather, Claude did.

For the cost of nothing (nothing being a relative term here, since no dollars were exchanged but Anthropic now has my email and data about me worth some unknown value) fully functioning Swift code appeared before my eyes, mirroring my every design idea. My only task was then to copy the code into Xcode and build it to the simulator. Poof, my app. Absolutely incredible. From idea to app in 20 minutes. That said, the app looked like shit, was a little clunky, had a few bugs, and was lacking on features. But, all that was addressed with two or three more chat messages with Claude. By version 7 of the code my app was finished, at least for my purposes.

Have I done something wrong here? I felt pleased, but also like I had just partaken in some obscene act. The online discorse around AI is planted firmly in the antagonistic corner; AI is bad, a blight on the world, spawn of technocratic thieves. Beyond that, I had just created something from an unworthy personal knowledge base. Sure I have years of Python and C programming experience, but I've never written in Swift before and have never made a smartphone app before. I commanded this thing to be built and here it is, and I don't know and never will need to know how it works or how to make it myself. I've committed a 2025 cardinal sin: I have vibecoded, produced software by only conversing with an AI bot. And yet, this sin produced an app that will be genuinely helpful to me that now exists where as it may have taken me months to learn the language and accomplish the same thing. I love that. But still, I feel the urge to ask: have I done something wrong?

For now, I will answer that question by exploring two others.

  1. What have I lost by vibecoding?
  2. The most obvious personal loss is any sort of deeper understanding in how iOS apps are constructed and intricacies of the Swift language. Though, these things are only lost in so far as I continue vibecoding forever. Still, I have certainly denied myself the option to engage in this project on a deeper level. I've also lost a potential human connection and experience hiring outside help. If I really wanted to make this app and not use an LLM myself, I would have to reach out to a developer on Fiverr or Upwork and strike up a business relationship. While this would in turn cost me more time and much more money, the experience of communicating an idea to a person and forming that relationship is potentially much more valueable than that time and money saved by using an LLM.

  3. What have I gained?
  4. I've gained a sense of accomplishment and pride. Sure, these are muted by the reasons stated above, but still I was able to take an idea and create something that will genuinely help me pursue a goal. I've also gained a foundation upon which I can apply what programming skills I do have to enhance what Claude has delivered. In fact, I already have built - by hand - a webscraping script to generate csv files which load into my app as flashcards. I've also gained a level of confidence in what it takes to develop and deploy an iOS app. I've seen all the steps now. It's been demystified and I now know I can do it all on my own.

Perhaps the real question isn't whether vibecoding is morally defensible, but whether we're witnessing the emergence of a new form of digital literacy. Just as previous generations learned to read and write, and later generations learned to navigate the internet, maybe now we are learning to speak fluent AI — to become translators between human intention and machine capability. My app exists not because I cheated the system, but because I successfully communicated across the species barrier, articulating my vision clearly enough that a new intelligence of sorts could manifest it into reality. The guilt felt may not be about taking a shortcut, but about glimpsing a future where the relationship between creator and creation is fundamentally shifted. In this new paradigm, perhaps the most valuable skill isn't knowing how to write code, but knowing how to dream precisely — to envison solutions so clearly that you can guide a digital collaborator toward building them. The question then becomes: in a where thoughts can be conjured into software, what dreams are worth speaking aloud? - This final paragraph was written by Claude Sonnet 4. Did you notice?

On Sustainable Consumption

In the twisted labyrinth of our tech-driven existence, I find myself ensnared in a dwindling dance with the machines. It's a peculiar tango where the rhythm of genuine creativity is drowned out by the deafening beats of instant gratification. The world, it seems, is hell-bent on dropping solutions down from the heavens like mana. Break a laptop, and lo and behold, a click summons a pristine replacement to your doorstep. Want to unleash your thoughts on the digital canvas of the internet? A legion of companies stands ready to offer you templates and a friendly editing interface—all for a modest monthly fee.

But in endless rat race of enchanted shortcuts, the magic of creation is lost. The beauty of crafting something uniquely your own, birthed from the depths of your passion and toil, is overshadowed by the allure of instant fixes.

Sure, none of us can conjure a laptop from the void, and building an entire website from scratch is a Herculean feat. Yet, even in this age of immediacy, opportunities to weave threads of innovation and creation into the fabric of our lives can still be uncovered. Take my battered 2017 MacBook, for instance. It has weathered years of wear and tear, its battery gasping for breath with a measly 20-minute lifespan. The easy route would have been to consign it to the technological graveyard, drop a couple of grand, and welcome a shiny new successor without budging from the couch. But in doing so, I would lose my battle-scarred compatriot, adorned with all its stickers, and deep scratches in the screen. Instead, I opted for a different path. I entrusted my ailing companion to a little two-person electronics repair den just a short drive away. A mere day later, my metal friend was resurrected. Functionally, it might as well have rolled off the assembly line yesterday. A rejuvenated existence for a hundred bucks.

And then there's the saga of my digital garden—a realm I tend to on the vast landscape of the internet. For a year, I've sown the seeds and watched them grow, hosting my creation on Github, free from the clutches of exclusive services and fancy animations. Yet, simplicity can be a double-edged sword. The tedium of manually tweaking 80 files to update the copyright year every New Year's Day became a looming specter. But I knew better than to give in. Rather than succumb to the siren song of convenience, I took matters into my own hands. I wrote my own Python-powered website manager, meticulously crafted over two and a half weeks, a labor of love totaling some 20 hours. It's a bastion of autonomy, nestled in the silicon heart of my resurrected laptop, standing as a testament to ownership and creation.

Amidst the cacophony of our disposable culture, I implore you to uncover hidden joys. Extend the lifespan of your possessions, find the beauty in crafting something of your own, unpolished and genuine. These creations will be janky, buggy, and unkempt, but they are unequivocally yours—through and through. I emplore you: explore the labyrinth. Don't give in to the allure of promised shortcuts and respite from the maze.

Addendum 02X The compy has finished its race. Its winding journey through the labyrinth came to an abrupt and meager hault when its screen backlight finally gave in to the years of relentless wear. I was of course shaken by the thought of bidding a permanent farewell to my companion, but I am steeled by the thought: my compy is not lost nor forgotten within the steep moss-ladened walls of the labyrinth. Instead, it has become part of it — the sharp granite stonework forever interwoven throughout the aluminum chasis and silicon brain — becoming a friendly landmark of sorts within the dim dark of the endless maze. No time to doddle. There's work to be done, progress to be made, corridors and dead-ends and hidden passages to explore. I've come across a new section of the labyrinth, one defined by the acquisition of a seasoned guide. Thinkpad. Linux. I have ascended (lmao).

Addendum Addendum 03L I lied. The compy had not fallen into shadow. Like Mithrandir — the Grey Wanderer — sent back to head the White Council, the compy was returned to complete it's task. That task now is to be my Xcode iOS development station. With no working screen the compy survives by stringing cables from its headless frame to a monitor, umbilical chords letting new life breathe into the battered aluminum frame.

My current setup: