3.8K WORDS · KOHTA KOUCHI
Replatforming a core service without stopping the business
Rebuilding a live product from Laravel/Vue to Next.js/Go while it kept serving real users every day.
The fear is the old stack, not the new one
The scary part of a replatform is never the new stack — it's that the old one is still earning the company's money while you tear it apart. At Simple I rebuilt a job-change information site from Laravel and Vue.js onto TypeScript, Next.js, Tailwind, Go and AWS, and the one rule that mattered was: the business never feels it.
Route by route, never big-bang
We moved route by route rather than big-bang. Each page got rebuilt behind the same URLs, shipped to a fraction of traffic, compared against the old output, then ramped. Boring on purpose. The interesting decisions were about where to draw the seam between old and new so the two could coexist for months without turning into a tangle.
The migration plan is the product
What I took away: the migration plan is a product in itself. If you can't explain the rollback in one sentence, you're not ready to ship the step.