Projects

More than just coding, my real passion is taking a project from idea to launch and then growing it. I've planned, designed, built, and maintained a variety of projects with my longest one running for over a decade now. I love being involved in everything from big picture planning to building the individual features. Below are some of my favorite projects, but many I've built many that aren't listed here.

OldSchool.tools logo

OldSchool.tools

Launched 2016

PHP Laravel JavaScript Vue.js Craft CMS

OldSchool.tools is one of the largest fan-owned websites dedicated to Old School RuneScape. Over the past decade, I've had the pleasure of helping millions of visitors with tools, calculators, and resources for the game.

The project has evolved through several iterations: starting as a WordPress site with text content, transitioning to Laravel + React as interactive tools became the focus, then to Craft CMS, and finally settling on Laravel + Vue.js with a headless Craft CMS for content management. Each transition provided opportunities to explore new technologies and gain experience making fundamental architectural changes incrementally and without downtime.

Behind the scenes, I maintain a suite of microservices that monitor external APIs and websites for game data updates. These services automatically patch my item database, maintain change logs, and reduce manual maintenance work. The separation of concerns allows the main application to remain a simple monolith while delegating data processing to specialized services. Strategic static HTML caching ensures fast page loads.

GE Watch

Launched 2018, Public Since 2025

Laravel Vue.js Inertia.js Meilisearch

A full-stack web application for tracking Old School RuneScape Grand Exchange market data. Developed privately since 2018 to power the market data on OldSchool.tools, and now available as a standalone platform. The database contains tens of millions of data points of historical market data across thousands of items. OldSchool.tools uses this pricing data to power its calculators and tools.

My primary goal for this project was to design a system that could aggregate tens of millions of data points and make them available via an API to my other projects. In order to accomplish this, I manage a complex system of scrapers and tools for ingesting this data. I currently track about 10,000 items with each one having data points that are updated every minute. Historic data is stored indefinitely with varying levels of detail depending on the data point and time range.

Originally built as an API for internal use, I have recently expanded this project to include public accounts which can be used to track your own trading history, profit and loss, explore market trends, and more.

OsrsApi.com

Launched 2022

Laravel

OsrsApi.com is the unofficial Old School RuneScape API. This website aggregates all game data from many sources and standardizes it into a consistent API that powers both OldSchool.tools and GE Watch. This allows me to centralize and abstract very complex logic, leaving my other projects to consume a simple API without concern about the underlying data sources.

The core of this project is an enormous set of scripts designed to scrape very complex structureless sources and then normalize, deduplicate, and standardize that data into a consistent format that accurately represents the games current state. New content is automatically detected and pulled into this system and all changes to existing content are applied and then recorded into a historic log of changes.

Palpedia.com

Launched 2024

Laravel Vue.js Inertia.js Meilisearch

Palpedia is a comprehensive database and calculators website for the game Palworld. It offers extensive resources for the game in a variety of languages.

The center piece of this project is a large set of custom scripts that extract Unreal Engine game data and transform it into a neutral format which can then be version controlled. The websites custom admin panel allows me to review all changes that take place in the game and apply those updates to the website. This system provides a nice balance between automating the updates as the game is patched while protecting the stability of the website with a semi-manual review process.

One of my main goals for this project was to gain an in-depth understanding of building and running a multi-language website. Originally developed in English only, I completely restructured the database and all code to support a dozen different languages to accomodate the very large international audience built around Palworld. This process involves a combination of extracting translations files from the game data and manually creating translation files for website content & UI.

More projects coming soon...