Liftpatch

Drupal 10 security support ends December 9, 2026.

Find out what blocks your Drupal 11 upgrade, and what it costs to fix.

Paste your composer.lock. In about ten seconds you get every contrib module's Drupal 11 status, the exact versions to move to, and a fixed price for the whole upgrade, delivered as a tested patch set. Free, no sign-up, and it runs in your browser.

1. Your Composer file

Use composer.lock from your project root for exact versions (best). composer.json also works. Drop the file here, choose it, or paste it.

or drop composer.lock here

2. Custom code (optional, sharper quote)

Choose your project folder or web/modules/custom. Files are read on this page only and never uploaded. We count custom modules and themes and look for APIs that Drupal 11 removed.

3. Core modules leaving core in Drupal 11

Tick any that are enabled on your site. Each moves to a contrib module.

How it works

  1. Scan. This page reads your Composer file and checks each project against drupal.org's release data. It's free and anonymous.
  2. Order. You accept the fixed price and give read access to a branch of your repository: a GitHub, GitLab or Bitbucket invite, or a zip.
  3. We upgrade in an isolated sandbox. Core goes to 11, contrib to the versions above, and custom code gets the Drupal 11 API changes. Then Upgrade Status, PHPStan deprecation checks and your own tests run.
  4. You get a patch set. It arrives as a pull request or .patch files, usually in two releases (10.3+ first, then 11), with the full diff, the verification logs, a step-by-step deploy runbook and a rollback note. You merge and deploy, so nothing touches your production site. See a sample delivery.

How the work is done, plainly: AI agents make the changes. Every change is verified by automated checks, your test suite and a second, independent reviewer agent, and you get the full diff and test evidence. A named operator approves every delivery. We don't claim that a human reviews every line.

Pricing

The quote above is the price. It's built from these parts:

Typical small site (core + 20 to 40 contrib modules, 1 or 2 custom modules): about $1,500 to $2,500. Agencies pay 30% less on every line (details). Larger estates over $9,000 get a custom quote from the same scan.

Payment: under $3,000, paid in full on order. Larger jobs are paid 50% on order and 50% on delivery. If we can't deliver a green patch set, you get a full refund.

FAQ

Is my code uploaded anywhere when I scan?

No. The page reads your files in your browser. The only network requests are to packages.drupal.org for public release data about module names. You can check this in your browser's network tab, and the page's Content-Security-Policy blocks any other destination.

Is a specific module ready for Drupal 11?

See the Drupal 11 compatibility atlas for 200+ popular modules. Each one shows its minimum Drupal 11 version, the safe step to take while you're still on 10, and its Drupal 12 status.

What happens after December 9, 2026?

Drupal 10 gets no more security releases. Sites keep running, but new core vulnerabilities stay unpatched and contrib modules start dropping Drupal 10 support.

What do you need from us?

A branch we can read and push to (or a zip), and your PHP version. A sanitised database dump is optional: with one, we also run drush updatedb against your data. There are no calls or meetings. Everything happens by email and in the pull request.

Do you deploy to production?

No. You (or your host) merge and deploy. We include a runbook: PHP 8.3 on the server, composer install, drush updb, drush cr, and what to check afterwards.

What if a module has no Drupal 11 release?

We apply the community compatibility patch if it exists, write one if it doesn't (and offer it upstream), or move you to the maintained replacement. Each is priced as a line in your quote.

Server requirements for Drupal 11?

PHP 8.3 or newer, MySQL 8.0 or MariaDB 10.6 (or PostgreSQL 16 or SQLite 3.45), Drush 13 and Composer 2.7. Your site must be on Drupal 10.3 or later before it moves to 11. If it isn't, the scan adds that catch-up step.