Website last updated: March 2026
Here are a selection of some of my personal projects and open source code from over the years.
iOS Link: https://apps.apple.com/gb/app/mpg-multi-vehicle/id6504755327
Android Link: https://play.google.com/store/apps/details?id=com.shortdarkapps.mpg_multi_vehicle
Flutter/Dart, Firebase Firestore
My second personal app. Re-worked the MPG tracking app concept, but this time created the app in a completely different way. Instead of each login being for one vehicle, a single login can track the MPG of multiple vehicles. As before, you enter the info every time you fill up your vehicle and can see graphs for each vehicle. The MPG of every vehicle can then be compared together in a combined MPG graph.
iOS Link: https://apps.apple.com/gb/app/uk-mpg-calculator/id1631513789
Android Link: https://play.google.com/store/apps/details?id=com.shortdark.tracksdemo20220611
React Native, NodeJS, MongoDB
My first personal app on the app stores. I wanted a way to calculate the MPG of my car as it did not have a reading for MPG on the dash. Other MPG apps exist but I wanted to make one myself. I did a course in React Native and modified one of the projects to create the MPG app. Every time you put fuel into the car you need to fill up to the top and note the odometer reading. The app makes graphs of the vehicle's MPG and other things.
Link: https://www.npmjs.com/package/halflife-array
JavaScript
I'd never made an NPM package so I thought I'd make one. This code is modified from something I was working on at the time. You specify the starting value, the half-life time, the interval you want between readings and the number to stop calculating at. The result is how the value changes over time.
Link: https://packagist.org/packages/shortdark/socket
PHP
In 2021, I took some old PHP code that made an SVG line graph out of an array. There are instructions on how to use it, it needs an array to be able to show a graph, and there are many variables that can be changed depending on the use case. The exercise was mainly for myself to have some public open source code out there. It's not perfect but I think it works pretty well and I've used the package in several PHP projects.
Link: https://wordpress.org/plugins/post-volume-stats/
PHP, jQuery, CSS
I've made a few WordPress plugins but this is the one I'm most proud of. The user installs the plugin and immediately get to see their own posting patterns. There is a main page that shows all the general stats in bar and pie charts, then there is also a page to make line graphs out of tags or categories used across the lifespan of the WordPress blog. It's been a while since I worked on these plugins but it looks like they still work. When creating the plugins I tried to make them work on any version of PHP and any version of WordPress.
Link: https://rsvpreader.com/
Now... VueJS, Tailwind, AWS S3 Previously... PHP (Laravel), javascript, MySQL, CSS, Nginx
RSVP is a way of reading where you don't have to move your eyes, you simply look at a fixed point and the words flash in front of you. The website allows you to choose one of the books available and press play to begin reading. It's a very simple web-based app, but like a lot of my projects it uses a few different technologies and has been transformed over the years. It was originally a Laravel project with a MySQL database and the reader itself was a Laravel View with plain JavaScript. At some point, I split it up with Laravel as an API and the Javascript converted into a Vue frontend hosted on AWS S3. Next, I deleted the database and the API worked directly with S3. But then, without a database it wasn't really worth keeping the API, so I converted the Vue frontend to work directly with S3. So, while it's very simple it has mimicked a more complex website and gone through various stages of development.
Link: https://shortdark.co.uk/
Now... NextJS, Tailwind, PostgreSQL, Algolia, Cloudinary, Google ReCaptcha Previously... React (Gatsby), PHP (Plain PHP and WordPress), MySQL, CSS, Apache/Nginx
Whether it be on it's current domain or previous domains, I've tried to have a "Shortdark" website for work. In terms of content, it's been a website where I've not known exactly how to use it. It's been a portfolio type blog, then a blog with articles, and now it's a discussion about what I do with a blog section. Currently, it's a NextJS website with a modern deployment method, but this hasn't always been the case. For years, these websites would have used shared hosting and been updated by FTP.