Ruby on Rails upgrades and long-term maintenance

Many businesses run on a Rails application that was built years ago and has not kept up. We bring those applications up to date without disrupting the people who use them every day, then keep them that way.

Overview

Your app still works. That is exactly why it gets neglected.

An application that quietly does its job is easy to leave alone. Then a few years pass, the Ruby and Rails versions it depends on stop receiving security fixes, hosting providers retire the old stack, and every small change takes longer than it should because nothing around it is current.

Upgrading is the most reliable way out, and it is one of the things we do most often. We have maintained and modernized Rails applications for well over a decade, including a client application we first built in 2012 and most recently brought up to Rails 8 on Ruby 4.

We upgrade in small, tested steps, one version at a time, so your team keeps working the whole way through and there is never a risky all-at-once cutover.

Sound familiar?

When clients usually call us

  • You are several major versions behind

    Rails 4, 5, or 6 applications that feel too far gone to upgrade are usually very recoverable with a methodical plan.

  • Security warnings keep piling up

    Dependency alerts, end-of-life notices, or a failed security review are telling you the stack needs attention.

  • Your hosting platform is retiring your stack

    Old Ruby versions and legacy hosting platforms eventually stop being supported, often on a deadline you do not control.

  • The original developer has moved on

    We regularly adopt applications that someone else built and become the team that knows them inside and out.

What's included

Everything it takes to get current and stay current.

  • Upgrade assessment that reviews your code, dependencies, and test coverage, then lays out a realistic plan and estimate.
  • Ruby and Rails version upgrades, including multi-version jumps from older releases all the way to Rails 8.
  • Dependency cleanup that replaces abandoned gems and removes code the application no longer needs.
  • Test coverage where it counts, added before risky changes so upgrades are verified rather than hoped for.
  • Security patches and updates applied on a regular, predictable schedule instead of in emergencies.
  • Performance tuning for slow pages, heavy database queries, and background jobs.
  • Hosting migrations to modern platforms like Render, with careful planning to keep downtime minimal.
  • Error monitoring and uptime alerts so problems are caught before your customers notice them.
  • Continuous integration that runs your test suite on every change and blocks broken code from shipping.
  • Ongoing maintenance retainers for continuous improvements, quick fixes, and someone to call when you need help.

How it works

A careful, step-by-step upgrade.

  1. Assess

    We review the codebase, dependencies, tests, and hosting, and identify the risks before touching anything.

  2. Stabilize

    We add tests around critical paths and set up continuous integration so every step is verified.

  3. Upgrade

    We move through Ruby and Rails versions one at a time, shipping each step to production as it is ready.

  4. Maintain

    We keep dependencies current and security patches applied so you never fall this far behind again.

Experience

Where we have done this before.

Client work · 2012 to today

Fire protection contractor

We built this company's web application in 2012 and have maintained it ever since, carrying it through many Ruby and Rails releases to Rails 8 on Ruby 4. It includes a public website, content management, an online hiring application, and support ticketing.

Open source · Since 2009

auto-session-timeout

We maintain this Rails gem, which signs out idle users automatically, and have kept it compatible with every major Rails release through Rails 8.

auto-session-timeout on GitHub

Questions

Frequently asked questions.

Have a question that is not answered here? Get in touch and we will give you a straight answer.

How long does a Rails upgrade take?

It depends on how far behind the application is, how large it is, and how much test coverage it has. A single minor version jump can take days, while moving across several major versions is usually a project measured in weeks. Our assessment gives you a specific estimate before any upgrade work begins.

Will our application be down during the upgrade?

No. We upgrade in small steps and release each one to production separately, so your team keeps using the application normally throughout. Any planned maintenance windows, such as for a database migration, are scheduled with you in advance.

Our app has few or no tests. Can it still be upgraded?

Yes. We start by adding tests around the most important parts of the application, like sign-in, payments, and core workflows, so we can confirm each upgrade step keeps them working.

Should we upgrade or rebuild from scratch?

Upgrading is almost always cheaper and less risky than a rewrite, because it preserves years of business logic and bug fixes. We will tell you honestly if we think a rebuild makes more sense for your situation.

Do you offer ongoing maintenance after the upgrade?

Yes. Most upgrade clients move to a monthly maintenance retainer that covers security updates, dependency upgrades, monitoring, and small improvements.

Find out what it will take to get current.

Tell us which versions of Ruby and Rails you are running today. We will follow up with next steps for an upgrade assessment.