Modernising an old Apache Cordova app using Claude

25 October 2026 · Case studies · 6 min read

I started building JavaScript games around 2018. I had grown up playing browser games at school and playing mobile games in my free time. I wanted to build on my JavaScript knowledge and build something that people would want to play. Nothing huge, just a small app or browser game that I could point to and say I made this. I had read about Apache Cordova and how you could use it to build JavaScript games and package them as Android apps.

Building Crunch

After making a few test games and finding my feet, I settled on a "black hole" type game where you'd start as a small black dot in the centre of the screen then the player could move the hole around and eat asteroids, planets and stars to get bigger. You'd grow until the hole was larger than the screen and you'd win. If you ate something larger than you then you'd choke and the game would be over.

I spent what feels like days working on the game. I drew the asteroids and stars myself using code - my coding skills outweigh my art skills so creating the graphics in JavaScript seemed easier. I'll admit I had to find a planet texture on the internet somewhere, my attempts at creating a planet did not end with anything I could use.

One tricky part was getting the ads to fit properly on the screen. I didn't want the ads to show in game so I went with a banner ad from AdMob that would only appear on the main menu. I wrote some code to hide the ad and unload it when starting a game then it would load it back in when finishing the game.

I got the game to a point where it was playable and named it "Crunch", after the big bang and big crunch theory. I'd say this work likely took around 3 months of me working maybe an hour in the evening and a few hours each weekend.

Crunch before AI

Launch

Launching the game was simple, I paid the $25 for the developer license on Google Play and uploaded all the listing information and some pictures. I even made a little trailer by filming the game in browser.

I was quite proud to have put a game on Google Play for the first time. I showed it to all my friends who installed it on their phones and tested it. There were a few bugs which I managed to iron out, including one that would cause the game to freeze up due to the way I had handled the banner ad being loaded and unloaded.

I checked on the analytics and the AdMob ad impression reports and was pleased to see 5k players downloading the app over the next few months. It got some decent reviews, finishing at about 4 stars on the Play Store which I was more than happy with.

Fast-forward 7 years

Leaving the game without much of an update was a mistake. I did push out an update a few months after the initial release to add a new game mode but as players started dwindling, I thought I may as well just let things go and work on other projects for a while.

I came back to the game code in late 2026. Not really understanding the code anymore, I thought I'd see if Claude would give me a hand in modernising the game and pushing out an update. I opened up Claude and pointed it at the files. I knew the target Android version was way too old and the Cordova version was likely old and unsupported too. This probably also meant that the Cordova plugins I had used were either no longer supported or didn't work on the new Cordova version.

I was expecting to have to update Cordova and find replacement plugins myself. I asked Claude and the AI responded with a question asking if it could go ahead and perform the work to update Cordova and update or find replacement plugins. I had nothing to lose here, Crunch had almost no active players and hadn't seen an update in years, I went ahead and allowed Claude access to do anything in the development folder.

Claude ran wild

After a while, Claude had almost single-handedly updated Cordova, installed new plugins for the ads and fixed Firebase Analytics. Initially planning to get back into some JavaScript coding, I thought, why don't I just get Claude to add the features I was planning?

I asked Claude to build a new accretion disk for the hole in the centre. It spent around 15 minutes designing and came back with a beautiful animated disk circling a black hole, with multiple layers and blended colours. I asked if it used an image model to make any of this and it replied that it didn't, it had used the game's HTML canvas element to draw everything.

Claude and I ran through some other visual changes I wanted to make. We rebuilt the textures and added more variation to the asteroids and stars. The planets were completely rebuilt to be randomly generated with land and sea being different on each planet. Moons and red planets also added further variation.

I pushed the update and felt like it needed more to get players back.

My usual model, Sonnet 5.5 was brilliant at drawing graphics but it tended to lack slightly on strategic thinking. I switched over to Opus 5.5 and asked if we could build a new game mode to make the gameplay longer and more interesting, with multiple "crunches" - the part where you eat so much you hit the edge of the screen - and more content like missions and powerups. Opus drew a plan up for Endless Mode - pretty much exactly what I had wanted to build. Claude went ahead and built the new endless mode and we deployed it as version 4.3.

Things I thought Claude would suck at

Deploying the new graphics and the new endless mode introduced another issue that I didn't think about, the images, video and app icons were all old and using the old graphics and referenced the old classic mode. Chatting with Claude, I gave it my negative thoughts about using AI generated slop images, we came to the agreement that the new game art could be generated using the game's own code and the HTML canvas.

Claude built some tools for itself to use so it could create images using the game's rendering engine. Admittedly there was some back and forth to get the look and feel right but in the end we had a full set of new marketing images to put on the listing.

Crunch version 4.3

We then took it a step further by creating a video to replace the old trailer I made years ago. Claude blew me away by how it approached this - it storyboarded the whole showcase trailer and built each segment as a JavaScript file. Each part was rendered on the game's canvas and stitched together with some music. It took a few iterations - Claude easily misses visual problems, so a human touch was definitely needed here.

Pennies per day

Crunch is not a commercially successful app by any stretch, it makes a penny or two each day. Money isn't why I do this. If it was then I'd be very disappointed! I enjoyed building the game originally and even with Claude finishing the game off, I still feel like a part of the game is mine.

Claude could easily build more games for me and they'd probably be better than anything I could hand-make, but they wouldn't be mine. They feel empty and without a soul.

I've adopted a new mindset when developing with AI, new projects must be a partnership between human and AI, not just AI slop churned out and shipped.

Read more about Crunch here

I write every post myself. AI only helps fix typos and tidy repetition.