Projects

I'm a serial builder of side projects and actively maintain numerous applications. Some are listed below, others are still works in progress.

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.

Palpedia

Launched 2024

Laravel Vue.js Inertia.js Meilisearch Filament

A comprehensive database and tooling platform for Palworld that I designed and built from the ground up. The architecture demonstrates patterns critical to scalable data-driven applications.

At its core is a custom ETL pipeline that extracts raw game data files and transforms them into a normalized relational schema across 20+ Eloquent models with complex many-to-many relationships. To handle game patches, I built specialized change detection services that perform field-by-field diffing between source files and database state, generating detailed change reports for admin review before atomic application. An override system allows manually specifying data for entries missing from game files—extensibility through configuration rather than code changes.

The platform features federated full-text search via Meilisearch across multiple indexes, interactive tools (Pal Builder with real-time stat calculations, Breeding Calculator, Catch Rate Calculator) with shareable URL-based state persistence, and a Filament admin panel for content management. The frontend is built with Vue 3 and Inertia v2, featuring complex components that parse effect text via regex to calculate stat bonuses in real-time.

GE Watch

Launched 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.

The application implements a sophisticated real-time data pipeline polling the official Grand Exchange API, fetching live RuneLite crowdsourced pricing, and scraping historical data—aggregating tens of thousands of data points daily.

Features include tools for tracking market trends, identifying profitable flips, various calculators for alchemy and trading, and deep exploration of historical price data with interactive charts.

More projects coming soon...