An exercise in vibing – building my apps of yesteryear

An insight into using Claude to create some apps that i built a long while ago. Some tales of vibing and the issues it brings

Disclaimer – AI did not write one word of this article .

About 6 months ago, jan 2025, I documented an article about using an LLM to write some code in an unfamiliar domain. It was semi-vibing, copying and pasting prompt results from the browser to my IDE.

Since then a lot has changed. Claude Code arrived and I wanted to check it out. Why? The big difference now is that it runs in the terminal which means it can pretty much access and run anything on my machine or on a server, which is a pretty big deal!

This article will explore my first pass using the tool by creating some apps. The main aim is to not write even one line of code or have to look at the code – vibing. If it works then move on and continue the feature factory.

Apps of yesteryear

When i was starting out as an engineer, to learn new skills i’d simply start a side project around work on evenings and weekends. I even cranked out an app while travelling Asia. I was travelling solo in the sticks so had quiet evenings here and there, anyway thats another story.

I was keen to learn Angular as this was the new kid on the block. It could also be used to write mobile apps, which was also a new tech. Join these together using Cordova you have a single codebase and multiple native apps for Android, iOS and Windows.

My favourite was i-woz-ere a travelling inspired app. The user would get the gps location and tag it on a map, add a description and a photo if you like and it became a way to remember your journey without plastering it over Facebook or Instagram. Then the next feature ere-i-come where you’d speak to budding travellers who’d tell you amazing places they have been. The user would simple put the point on the map and add it to the travel itinerary. It was great the at the time but obviously Google maps already has this feature so it was never going anywhere.

There were several other apps such qr codes to custom fors, bill share calculators, todo list, meme creators all sort of utility apps.

So where am i going with all this nostalgia?

I wanted to test if this new LLM functionality can build all these apps that i built yesteryear.

Getting setup to vibe

As already mentioned, Claude is a CLI tool that runs in the terminal. I wanted to see what all the fuss is about and try for myself to see if it is hype or it really is a game-changer.

As a tight Yorkshire man i was dubious about parting ways with 20 quid but given you get larger limits on the Claude website it will help with the day-to-day as well so with the start of a rainy weekend i went ahead, making the purchase, placed a 30 day reminder in my calendar to cancel.

I wanted to the project to be in Angular as this is my go-to web preference. So i setup a new default project in IntelliJ using the latest Angular 20 version.

I installed the Claude cli and am ready to go.

My main intension was not to look or touch any code it produces. I would essentially be the QA and test the features as they arrive.

Now we be vibing

The first issue is that the app didn’t start up and run. The default dependancies has some compatibility issue. My prompt in the CLI was along the lines of app doesn't even start (i like to have a hint of passive-aggressiveness!) So it went off, i see a load of tokens incrementing up into the 1000’s. It came back with some dependancy isn’t up to date, it ran it locally and tried starting it up a couple of times, it checked the console for errors and after a couple of attempts it was up and eventually it was up and running! I was very impressed with this start.

When you do a claude init it creates a readme file and this is what i used to develop each feature.

Features

I create a heading for each section then a bullet point list for it to go away and process. It looked something like this:

I would provide my requirement described with intent to have it carry out the feature exactly eg.

Add a new dashboard app called 'I Woz Ere' and link to a new component with the path 'i-woz-ere'

Once the feature was competed it would re-word the instruction to a summary and place a tick there. I would assume if this was to be shared or done again it would create something slightly different due the generalisation?

After each feature was completed i would commit the changes to git so i had all the benefits of version control and have the ability to rollback any messes it got into. I never had to do this.

Fixes

A lot of the time it would complete a feature but it wouldn’t work as intended.

In the meme creator app, the user should be able to double click the added text to open the edit options, move the text around etc. but the area that handled the click was about 100px lower and to the right of the word.

Again i would add a new list item as a fix entry.

Always double check fixed is fixed!

There were lots of back and forth with this and i had to confidently tell it it didn’t work to overpower its confidence when telling me it does work.

Sometimes it was easier to just battle it out in the console especially when it was a groundhog-day issue that it just wouldn’t fix correctly

Deployment

All of the code is in GIT on my machine. I got the LLM to write me a script to build the code and deploy the prod build via FTP to my server.

This worked out nice and now i had a single npm deploy process that updated the app with any changes.

As time went by i needed extra files uploading.

I have a set of dedicated pages for this site to read (ie. the apps section below is an iframe that pulls content from the sub-domain for this site).

There is another page for each of the apps that this site references using a shortcode.

I also had to upload and tweak .htacess file to handle the SPA routing and dedicated pages.

The LLM made this work pretty well.

The Apps

Here are the apps it created. I pretty much completed these in a weekend and in the odd hour in the evening. I would write the features then come back in 5 to 10 mins keen to see what it had done.

Ta-da!

Nice to haves

I was able to go the extra miles with this. I got the LLM to create an info page for each app. Then the .htaccess file to have a wild card route that would enable this site to access the content. The content is then added to WordPress page.

This would normally be a tedious process but was made pretty easily with the LLM.

Final thoughts

The apps that took me months to write now were written effortlessly from a bullet point list and quickly in the space of a couple of hours.

I won’t try convince you these apps are complex. They are relatively trivial, but they do have some issues that are tricky. Getting your head around a new map api or managing text and controls on a html canvas do require experience if hand cranking.

Am i impressed? Absolutely. It can be used as a feature factory cranking out functionality.

Do i trust it? Not entirely. Without proper provisions in place there is a risk espcially being none-deterministic. Oh, just write some tests i hear you scream! But one also needs to test the tests now – if it claims the logic is working, then same can be said for its tests.

Would i use it again? For sure! It’s prefect for side projects and small utilities. Even for tech i’m not familiar with it can quickly spin up scripts.

I would like to use it at work but there is clear rule not to use it – we can not just let it loose on proprietary code bases. Or can we? Some of the big companies are fully invested in an array of AI tools.

After writing these apps back in the yesteryear I was ‘job ready’. Confident i could join a company and hit the ground running with this new technology.

After building the apps with Claude, what have i learned? Nothing! I have apps that do what i wanted.

It raises questions like:Do i care how it works? Do I need to know how it works?

For basic utilities and POC’s probably not.

When it’s mission critical systems, audited and business system then absolutely yes!

This may result in a divide between the viber and the engineer akin to the Sunday league and Premier league footballer, albeit both can score great goals and achievements but on very different stages.

Let’s see what the next 6 months brings!

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

More posts