Rebuilding an established adult-services classifieds platform without breaking its operations
Working replacement slices span public discovery, accounts, listings, advertiser billing, paid placement, messaging, media, moderation, search, and admin work while the established live platform remains the behavioral reference.
17 source-contract tests passed · 100 URL and SEO parity checks passed · 17 live-reference scenarios captured at 1440, 768, and 390 pixels
What needed to change
An established classifieds business cannot pause while its replacement is built. Public routes, search, account behavior, admin actions, advertiser balances, invoices, paid placement, and media all have to move without inventing a new business mid-migration.
The constraint shaping the build
Reproduce the behavior that matters, improve the internals, and prove parity without exposing real profiles or explicit media in the public case.
How the pieces connect
- Legacy product state
- Versioned read models
- Workers and search
- Astro public pages
- Account and operator surfaces
- Parity gates
See whether this starting point fits your workflow
The matching system explains who it is for, what a first release includes, and the rough cost. Supporting links show the implementation evidence.
How I built it
- Turn legacy behavior into explicit source contracts before replacing it.
- Separate public rendering, account workflows, operator administration, workers, search, and realtime support.
- Build search, route, sitemap, and structured-data agreement into the release gate.
- Use synthetic profiles and neutral media for demonstrations; real people and bundled explicit imagery stay private.
What I verified
- Go API and workers, Astro public site, React admin and dashboard
- Advertiser billing, token balances, invoices, paid placement, moderation, media, search, messaging, and realtime support slices
- All 17 source-contract tests and all 100 URL/SEO parity checks passed in the recorded release
- All 17 live-reference scenarios passed at desktop, tablet, and mobile widths
Current state: The replacement slices and parity checks are substantial, but the recorded release did not pass its final production gate. Cutover is still open.