Endless Forge-Run
A browser game where your hero fights automatically while you choose weapons and skills, climb tougher floors, and unlock equipment for future runs.

Images
About Endless Forge-Run
Endless Forge-Run is a small personal game built around automatic combat and increasingly difficult encounters. A knight battles through successive floors while the player chooses rewards, changes equipment, and shapes the hero’s abilities.
Weapons and skills affect how fights unfold. Attacks can hit multiple enemies, while abilities add healing, shields, damage bursts, or temporary bonuses. Experience increases the hero’s level, and completing floors brings new reward choices.
Seeded content generation creates combinations of enemies, weapons, skills, and visual themes. Progress also extends beyond an individual run: accumulated gold, equipment unlocks, and selected gear are saved in the browser.
The scenery, characters, weapons, and combat effects are drawn in code using the Canvas API. Layered backgrounds, animated enemies, hit flashes, and floating damage numbers give the arena movement and make attacks easier to follow.
Next.js and React handle the surrounding interface, including health bars, equipment details, reward choices, and run controls. Dedicated TypeScript modules handle combat, progression, content generation, and rendering. The layout places the game and status panels alongside each other on desktop and stacks them on smaller screens. It’s a compact experiment in bringing game logic, procedural graphics, and a responsive web interface together.
Release history
More software

wp-migrate-core
A command-line tool for getting a WordPress-to-Astro migration started. It reads a WordPress XML export, inventories content, images and links, and can generate an Astro project with a clear list of what still needs rebuilding.

TypeScript library / CLI
PicoWebPJS
A WebP encoder written in TypeScript for Node.js and browsers. Converts PNGs, baseline JPEGs, BMPs and raw pixels without native bindings or WebAssembly, while preserving transparency and embedded colour profiles.

Classifieds & Advertising Platform — Go Rebuild
An ongoing Go rebuild of my Laravel classifieds platform, with a React dashboard, incremental listing updates and background jobs handled through NATS JetStream. It preserves the existing platform’s behaviour while changing how the application processes and serves its data.

ChattyChat — a scripted character chat with memory
A playful character chat with authored replies, session memory and an optional peek at the rules behind the conversation. Built with Next.js, React and JavaScript.
routelint
A command-line tool for finding broken links, incorrect redirects and indexing conflicts on a live or preview website. It discovers URLs, checks what your server returns and gives you findings tied to specific pages, with the evidence behind them.


IndexLane Safe WebP Queue
A WordPress plugin that creates WebP copies of your images while keeping the originals. Convert on the server or use the optional browser mode when your host cannot write WebP, with progress reporting and checks before converted files are saved.
pgvector-filterbench
A command-line tool for checking how pgvector search behaves once you add filters. It measures speed, compares approximate results with exact search, and checks query plans to see whether PostgreSQL is using your HNSW index.

hueframe
A tool for turning a photo into a website color theme. Drop in an image, see its colors applied to a page, adjust the result and export it as CSS variables or JSON design tokens.

SSRWire
A command-line tool for inspecting the HTML your server sends, including content and metadata that arrive in a stream. It records when important elements appear and compares responses for different browser, search-crawler and social-preview user agents.
routeplay
A command-line tool for checking that a page delivers the right content and metadata however you reach it. It compares the HTML your server sends, a fresh browser load and the result of clicking through from another page.

ReachLog
ReachLog is a small outreach and contact manager for keeping track of who you’ve contacted, what you’ve discussed and when to follow up. It brings contacts, companies and email conversations together in a local application that works with your existing email account.

IndexLane Redirect & Internal Link Auditor
A WordPress plugin for finding broken internal links, redirects and old URLs left behind after a migration. It shows you where those links are used and takes you to the place where you can edit them.

Names Over Time
A searchable history of baby names in the US and England & Wales, with popularity charts, yearly rankings and official source data.
Data-Driven Publishing Platform
A publishing platform for running several websites from structured source data. It handles imports, page generation, scheduled updates and search monitoring through one administration panel. Four domains are live; getting traffic to them remains the unfinished part.

Internal Campaign Tracker
A private platform for routing campaign traffic, tracking clicks and conversions, and comparing performance across sources, offers, and devices.

Classifieds & Advertising Platform
A classifieds and advertising platform I’ve been building and maintaining for roughly two years. It combines location-based browsing, advertiser dashboards, paid listings, invoicing, live chat and an administration panel for running the site.

dayboard — a simple daily planner
A private daily planner with a ranked task queue, rollover for movable tasks and a separate activity log. Built for my phone as a PWA.

Private Organic Search & LLM Activity Tracker
A private analytics tool for tracking website traffic, organic search performance, and activity from search engines and LLM crawlers. It brings ordinary visitor statistics, crawler requests, Google Search Console and Bing Webmaster Tools into one dashboard.

ILCrawler
ILCrawler is the technical SEO crawler I use for my own websites and client audits. It brings page checks, links, screenshots, performance samples and reporting into one place. It’s also the project that repeatedly convinced me I was only one rewrite away from being happy with it.
crawlreplay
A command-line tool for testing robots.txt changes and new deployments against URLs found in your server logs. It helps you catch newly blocked pages, broken responses and unexpected indexing changes before putting those changes live.
Data-Driven Publishing Platform — Go Rebuild
An unlaunched Go rebuild of my publishing platform, using PostgreSQL for application data and background jobs, React for administration and Astro for public websites. It includes source processing, publishing checks and migration tools for the existing sites.

IndexLane Crawl Fetch Inspector
A WordPress plugin for checking redirects, indexing rules, sitemaps and structured data from your dashboard. Particularly handy when you’re launching a site or moving one.

IndexLane Asset Weight Snapshot
A WordPress plugin for checking the CSS and JavaScript your pages reference, measuring the files it can fetch, and comparing the results over time. Useful when you want to see what a plugin update or site change has added.

IndexLane Site Atlas
A WordPress plugin for figuring out how a site fits together before you start changing things. It looks at the connections between plugins, content and stored data, which is useful when you’re planning a cleanup, rebuild or handover.

Food Cost & Profit Tracker
A private app for tracking food costs, stock and estimated profit across direct sales and food delivery. It connects ingredient purchases, recipes, orders and platform fees, helping a seller understand what each dish costs and how much money is actually left.

Comfy Money - Private Multi-Currency Ledger
Comfy Money is a private money tracker I built for myself and my family. It handles wallets in different currencies, income, expenses, transfers, budgets and debts, with automatically updated exchange rates and a mobile interface that installs as a PWA.
crawlcontract
A command-line tool for catching crawl and indexing problems when a website changes. It checks built files or pages fetched from a live or preview site, and compares scans so you can spot problems before a release.
pgvector-index-manager
A command-line tool for keeping your pgvector indexes in line with a configuration you control. It checks what exists, shows you what needs changing, and can build and replace HNSW indexes when you apply those changes.

Seller Saga
A playful selling RPG where you attract buyers, pack orders, recruit helpers, and battle the monsters of online shopping — including Refundzilla.

Private setup for GitHub Actions runners
GHA is my private setup for running GitHub Actions runners for multiple repositories on one VDS. It handles runner registration, a shared job queue and resource limits, letting me run CI jobs on my own server while keeping the workflows in GitHub.

Website / image-processing workflow
PrintableLineArt
An archived colouring-page website with a Python workflow for generating printable PNGs and PDFs, and a Laravel application for importing, organising and publishing them.

Bug Squasher: DOM Defense
I was bored and wanted a break from client projects, so I made a little TypeScript game. Naturally, it ended up being about bugs taking down a server.

DG6 — Multilingual pSEO Publishing
A Laravel publishing application for my programmatic SEO projects. DG6 turns generated content into multilingual websites, with separate domains, themes and publishing schedules, all running from one codebase.

DG6 Swarm — AI Content & Media Pipeline
A Python pipeline that turns a domain and starting keyword into site copy, articles and visual assets. Specialized GPU workers handle each stage, starting and stopping according to queued work.

Client website
Multilingual Game Directory
A custom PHP directory built for a client, with multilingual content, responsive listing cards, title search and a small admin interface for managing display order and destination links.
