AI-Powered Photo Booth
A real-time AI-enabled photo booth with instant, branded photo printing.
An event-tech partner for ambitious experiential teams.
A real-time AI-enabled photo booth with instant, branded photo printing.
An internal loyalty & communication platform that allows bar staff to take part in regular competitions to win prizes.
A “power-meter” game at Wimbledon where users pressed a physical button to stop the meter and win a prize.
An event photo booth & selfie wall that transformed attendees into professional golfers via AI.
An event-tech installation for counting the number of people at a live event space.
A QR-code-powered photo and video booth brand activation for experiential and live events.
A bespoke landing page for a corporate weekend event with interactive agendas, seating plans and an activities tracker.
In this photo wall for an on-site corporated event, attendees snapped a selfie and were transformed via AI.
A coffee ordering & collection system with personalised image-gen made for a live Google event.
A multi-choice quiz feating physical arcade buttons that allow players to face-off against each other in an educational quiz.
A QR-powered Fan Cam video wall for participants and supporters at a mini-marathon event.
A small collection of simple utility views that I add to all my Django projects.
How to add a "from" and "to" date range to the Django Import/Export export form
How to set up Vercel to clone your private Git repo submodules when installing & building your app.
A live event corporate quiz where teams played along in real-time using their smartphones.
Four web-based educational games with fun, accessible and easy-to-play mechanics for school kids of every age.
A 2-player multi-choice gameshow quiz with physical arcade push buttons
This real-time smartphone quiz let multiple players face-off against each other to win prizes.
A compliance and buying SAAS for veterinary groups and their practices that I've helped co-found.
A podcast-like audio player required to work completely offline at a live event.
A construction management SAAS for pharmaceutical turover & commissioning that I've helped co-found.
A complex browser-based React.js equaliser app letting customers configure their products via WebUSB and serial.
A real-time coupon & redemption system for a coffee-stand barista brand activation.
A multi-choice, branded educational quiz where the fastest player to get the most correct answers wins.
A "who dares wins" bid trivia style game for a corporate event, using real-time web technology to give a "live" MC-led game-show experience to attendees.
A classic “spin-the-wheel” game was delivered on iPads throughout a festival venue and was paired with stock management and prize giveaway via unique coupon codes.
A "show down" live poll where the public choose their favourite product, with the leaderboard updated in real-time.
Paginating a Next.js app using the app directory has a few caveats, so this post goes through an example to make life easier.
Digital Ocean's App Platform documentation is awful. Here's a primer to help make life easier when deploying apps to their PAAS.
One of the most common errors in Django is the annoying host header mismatch error email. While easy to fix, it's also easy to miss the point.
Every so often I like to copy all of the WhatsApp media from my iPhone/iCloud to my Mac. This is sadly much trickier than it should be.
A great way to get an "almost-native" locked down app experience on iPads, perfect for using at live events where devices need to be unattended.
A live bottle artwork designer interface at music festival for Coca Cola.
An iPad-driven recruitment quiz and survey for employees attending an industry conference.
A bike challenge where 2-players pedal as fast as they can to move a character on-screen.
A touch-screen live-poll allowing attendees choose their preferred charity with results updating and reshuffling in realtime.
A real-time bingo draw and game run as part of an annual live corporate event video stream.
A frontend Vue.js build for an Irish health insurer, to help customers quickly find their nearest clinic.
An educational spin-the-wheel game with multiple questions for children to play in the classroom.
A quick guide on how to accidentally spend $2k in two clicks live on a client Zoom call.
A secure ordering platform for veterinary practices, integrating with numerous 3rd party wholesale systems.
Yesterday, [a post I had submitted to Hacker News](https://news.ycombinator.com/item?id=24867077) got pushed up to the front page. Outside of retiring and basking in my new-found internet fame, I wanted to show what a few hours on the front-page looks like.
One of my lockdown projects was to make my sit/stand controller smart. I used a Raspberry Pi to create a custom controller that could control the motor on my desk and allow me to rise and lower it over the network as well as via a touch-interface.
It only took 5 years. After years of dithering you can upload images with Django Pagedown.
x3 plugins for Craft CMS that I sell through the Craft plugin store.
Most of the time, deployment sucks. Using a continuous integration app can help automate your deployments so you can focus on writing code and buildings things. In this post I'll show you how to set up a basic Django project with CircleCI so that publishing your code is as simple as pushing to GitHub.
It can be tricky to properly configure `ember-ajax` to play nicely with `ember-simple-auth`. You will need to manually configure a service to mimic the authorisation functionality you get for free when using Ember Simple Auth with Ember Data. This post will show you how to get up and running properly.
_Data down, actions up_ is an often repeated mantra of the Ember community, and for good reason. Sometimes though, you need to call actions on components in a 'downward' direction. In this post I'll give you an approach for breaking this DDAU rule."
A SAAS platform for a financial transformation consultancy with Fortune 500 clients.
A cross platform mobile application to help refugees connect with the resources they need to create new lives in the US.