invocation.io

ArenaMaster.io · Gaming / Consumer

Modernizing an 8-year-old production app without stopping it

Legacy Modernization — My Own Product2018 – Presentarenamaster.io

8 yrs

in production

2018 → 2026

stack modernized, app never stopped

Own product

built, run, and modernized by me

The challenge

Every established company has one: the 2018-era app that works, makes money, and nobody dares touch. ArenaMaster — my own World of Warcraft arena and RBG rankings platform, live since 2018 with a public in-game addon feeding it data — was exactly that. Modernizing it meant:

  • A 2018-era Rails + react-on-rails monolith with years of accumulated dependencies
  • A live community expecting rankings and character profiles to keep updating daily
  • Rebuilding the frontend and API contract without breaking the public WoW addon
  • Migrating hosting providers while the platform stayed up

The approach

This one is my own product — which makes it the most honest case study on this site. It shows how I run a legacy modernization when I'm the one paying for the downtime: incrementally, verified at every step, with the app running throughout.

Stack modernization

  • Split the monolith into a Rails 8 / Ruby 3.3 JSON API and a Next.js 16 / React 19 / TypeScript / Tailwind v4 frontend, organized as a monorepo
  • Sidekiq workers for data ingestion and AnyCable websockets for live updates
  • PostgreSQL and Redis carried over with schema and job migrations, not rewrites
  • The public in-game addon kept its contract — players never had to update a thing

Hosting migration

  • API and websockets moved to Kamal 2 deploys on Hetzner
  • Frontend moved to Vercel with the Next.js rebuild
  • Staged cutover with the community online throughout

The results

  • 8 years in production and still serving its competitive community daily
  • 2018-era monolith replaced with a modern Rails 8 + Next.js 16 monorepo
  • Hosting re-platformed to Kamal 2 on Hetzner plus Vercel
  • The public WoW addon kept working through the entire rework

Stack

  • Ruby on Rails 8
  • Next.js 16
  • React 19
  • TypeScript
  • Sidekiq
  • AnyCable
  • Kamal 2
  • PostgreSQL

Facing something similar?

The first conversation costs nothing and usually saves months.

I reply within one business day. Currently booking for August 2026.