40M
Migrating 40 million comments without losing one
A full migration of the comment platform behind a high-traffic publisher, with instant rollback.
- typescript
- nextjs
- kubernetes
- stripe
A stalled project is rarely stalled for the reason it is described. "The developer left" and "it is too slow" and "we cannot add anything without breaking something" are symptoms; the cause is usually that nobody can predict what a change will do, so every change becomes a negotiation.
The first step is an audit that produces facts rather than opinions: what runs in production today, what the deployment actually consists of, which parts have tests and which have none, where the data really lives, and which behaviour customers depend on that nobody wrote down. It is deliberately cheap and time-boxed, and it ends with a list of risks ordered by what they would cost if they happened.
Then behaviour is frozen. Before refactoring anything, the current behaviour is pinned down with tests — including the parts that are wrong, because customers have already built habits around them. Only then does the work proceed area by area, each one shippable on its own, so the project keeps delivering while it is being repaired.
A full rewrite is the last option, not the first. It is the right call when the platform can no longer be deployed, when the language or framework is out of support with no upgrade path, or when the cost of keeping it clearly exceeds the cost of replacing it. Rewrites started for any other reason tend to ship late and arrive missing the details that made the old system work.
A stalled project is rarely a purely technical problem, and treating it as one is how the second attempt fails the same way as the first. Usually part of the knowledge left with someone, part of the scope was never written down, and the remaining team is reluctant to touch anything because nobody can predict what a change will break. Restoring the ability to deploy safely comes before any feature work, because until that exists every estimate is a guess.
The specifics
40M
A full migration of the comment platform behind a high-traffic publisher, with instant rollback.
Level 8
An MIT-licensed cPanel and WHM plugin, multi-tenant, with per-user encrypted tokens and a systemd-supervised daemon. No cron.
30,000
A production training game preparing an entire workforce on a new product, 13 days before it went public.
Native
A native application for Windows, macOS and Linux from a single codebase, with the tax data on the user machine rather than on a server.
30,000
Search, communications and peer recognition inside a large employer internal platform.
24M
Frontend, performance and production reliability on a real-time pricing platform.
Stripe
A SaaS ticketing platform built end to end, with Stripe payments and seat allocation that holds under concurrency.
How we work
The same process on a three-week engagement and on a two-year platform.
One session to understand the business process, not to show templates. We leave with priorities and a phased price.
Data model, integrations and a performance budget before the first screen is written.
Weekly releases to an environment you can visit. What gets approved gets deployed, it does not pile up.
Monitoring, verified backups and deployments anyone on the team can run.
With an audit, not with code. What is deployed, on which versions, how a change reaches production today, and what breaks if nobody touches it for six months. That produces a written picture of the risk and the cost of each option, before anyone commits to a direction.
Yes. Behaviour is frozen first, then the code is refactored area by area so the system keeps working throughout. Rewriting is the last option, not the reflex, and calling the previous work bad is rarely accurate and never useful.
When the platform can no longer be deployed at all, when the language or framework is out of support with no upgrade path, or when the cost of keeping it clearly exceeds the cost of replacing it. Rewrites started for any other reason tend to ship late and arrive missing the details that made the old system work.
Next step
We reply within one business day with a phased scope proposal, or with the reason we are not the right studio for it.
We use one analytics cookie to see which pages get read. No advertising, no profiling, and nothing is set without your permission. Read the cookie policy