Projects

TeamWeb

I run the company TeamWeb, where we build web based tools for teams.

Usermesh

Our current focus is Usermesh, a tool for club and group leaders to keep their members up to date with resorting to WhatsApp or Facebook.

Tour Amigo

We provided the technology stack, hosting and development team to Tour Amigo for 5 years before they brought the team in-house. I still provide technical leadership for them. If you're a multi-day tour operator looking or an agent looking to book multi-day tours - contact them.

AI Experiments

I build these while sitting on the couch watching TV instead of playing videogames. If I type in the right instructions, the robot dance good.

Bob's Word Search Game

A word search game for iOS. In the app store. I wrote more about this project. Mostly Claude Sonnet 3.5.

Bob's Copy Cats Game

A memory game for iOS. My kids wanted a game with proper graphics, but I'm not the best at that. So this was an experiment to see how far I could go with generating everything with AI. ChatGPT did the art, Suno did the music, and Claude Sonnet 4 wrote the code. Not yet released, mostly due to lack of time since the game is complete.

Webdog

A website that pulls down RSS feeds from sites covering things I'm interested in, clusters them based on topic, and generates static category pages for each of them. On the Internet at webdog.org. It gives a nice overview of what's happening in the world. Mostly Claude Sonnet 4 with a little sprinkling of Codex.

Note Bucket

I wanted something to put notes, todos and watchlist items into, but just wanted a single box that could take any of them. I didn't want to organise anything, I wanted the software to organise them for me using tags. You can do things like "The Matrix #movie" and it adds it to your watchlist, pulling metadata from TMDB. Or "Dune #book !reading" or just "Pick up milk #todo". Web based, Python, Docker. Not released yet...

Clipper

I ran Parakeet transcription from Nvidia on every item I have in my Plex library. Then use Claude Sonnet 4 to write a bash script that indexes them all, then has a clipping option where you can give it a quote or line from a movie and it will use ffmpeg to create a clip. Great for supercuts, as you can also ask it to give you a supercut of every Friends episode where they say "Oh my god!" and it merges and converts all the clips for you. Not released yet...

Book Tracker

We were moving books around our house and buying new book cases and I was delighted to find all the books we had that I had forgotten buying. So I used Claude Sonnet 4 and created a book tracking app. Biggest surprise here was an existing Javascript library for scanning bar codes from your camera and that the Open Library seemed to be missing so many books. Docker, Python, not released...

Brian and Paul

Celebrate! An album. It's on Spotify, Apple Music, etc. I wrote lyrics, or used ChatGPT to write lyrics based on my instructions on what they should about, or the initial lines I had. I edited those lyrics. Suno generated the music. It was all based around the idea that this was an album from 1985, what would they sing about, what would it sound like. Think Wham! crossed with Hall and Oates. It was probably the most fun I had with AI last year.

Radio Server

My favourite is an AI powered radio station that I now listen to every day while working. Real music, AI DJs.

Spotify just gives me the same music recommendations over and over, and it's DJ X always wants to play the same 20 tracks. And then I found the rips of all my CDs on a hard disk from 20 years ago. So I wrote my own my radio station, with the aim of trying to make it sound as much like real radio as I could. Steve Wright in the Afternoon is still the gold standard I'm aiming for. Not yet released, but I do keep working on it with the hope of getting this onto GitHub as something others can use.

It has:

  • Multiple DJs, who have scheduled shows throughout the day. Each with their own personality, voice, music folders.
  • ChatGPT or Elevenlabs powered voices. ChatGPT is cheaper. Elevenlabs is better.
  • DJ speech is randomly picked. Could be the weather (weather API integration), trivia, the time, station ident etc. The app decides the type, then asks ChatGPT to generate the text, giving it context like the time of day or the songs that just played or are about to play, then it passes that text to the TTS system.
  • Jingles generated using Suno.
  • Music beds for behind the DJ speech from Suno.
  • Sponsor reads, with made up sponsors based on movies. Cyberdyne Systems for example.
  • RSS integration, so pulls techmeme and Webdog RSS feeds and reads the news.
  • Songs are picked in lots of different ways - randomly, groups together blocks of same artist, same decade etc.
  • Songs are intro'd or outro'd or just played. Crossfades them together. Ducks the music audio under the DJ talk.
  • Streams HLS audio and video versions. Video does pop up video facts about the songs, as well as visualisation of the audio. Turns out ffmpeg is crazy what it can do, and only an AI can understand it's command line.
  • Web interface that tells you what's up next etc and let's me listen or watch the video.

Thanks to Home Assistant, I have an automation that starts the station every morning on my kids Google Home devices to wake them up. Morning Mike is there to tell them to get out of bed.