Replacing an established marketplace's engine while it kept taking money

I moved a live adult-services classifieds platform onto a new stack — Go API and workers, an Astro public site, React account and admin surfaces — while billing, moderation, media and search kept working. The recorded release had not passed its final production gate.

A control loop diagram: published state, observed state and the checks between them.

The platform was already running and already earning when I rebuilt it. The constraint was never "write the new version"; it was "replace the engine while the site keeps taking money, taking listings and taking abuse".

What I built

  • A Go API and worker tier behind the same public contract the old platform served, with the workers owning the slow work: media processing, indexing, notifications and reconciliation.
  • An Astro public site that renders from precomputed data instead of querying on request, which is what makes an ad-heavy page survive a crawler.
  • React account and admin surfaces for advertisers and for the people who run the marketplace.
  • NATS, Meilisearch and PostgreSQL for messaging, search and storage, chosen because each one fails in a boring way.

The risky parts were the ones nobody sees: advertiser balances and invoices, paid placement, the moderation queue, media derivatives, and search parity. A rebuilt search that returns different results for the same query is a migration failure even if every page returns 200.

How I checked it

The recorded release carried three families of check: seventeen source-contract checks over the API the old site depended on, one hundred URL and SEO checks across the public routes, and seventeen live-reference scenarios rendered at 1440, 768 and 390 pixels.

Those are repository evidence, not production outcomes.

Where it stands

The recorded source release did not pass its final production gate, and the cutover was still open at that point. This page describes the implementation and the rehearsal, not a finished switch.

Images and profiles shown anywhere in this work are synthetic. Original media and anything that could identify somebody stay private.

Have a system like this?

Describe the workflow, the data or the system you need built. Scope and any quote are handled privately after the enquiry.

Discuss your project

Published