Planet Romance
A complete redesign and technical overhaul of an established dating agency - migrating sixteen years of data from three legacy systems into one modern platform.


// Starting point
Sixteen years of data across three different systems
The agency has run for sixteen years and went through three different apps in that time. Client data, their profiles and photos were scattered across systems that never really talked to each other - different formats, inconsistent records, duplicates. The brief was a complete redesign, a new UI and above all unifying this history into one modern platform without losing anything.
// Migration
Unify the history without losing a single profile
The hardest part wasn't visible: moving data from three legacy systems into a new schema. I dealt with inconsistencies, merging duplicate clients and archiving fields that didn't fit the new model but couldn't disappear.
Photos were a chapter of their own - I ran the entire photo bank through a compression pipeline (resizing, WebP conversion) and moved it to object storage. Old passwords are migrated lazily: on first login they're silently rehashed to a modern format, so nobody had to reset anything.
- Migrating data from 3 systems, handling duplicates and inconsistencies
- Converting the whole photo bank to WebP and object storage
- Lazy migration of old passwords - no reset needed for users
// Architecture
Two domains, one app
The platform runs as one codebase across two domains - the men's and women's versions differ in the profiles shown and the language, but share the same codebase and admin. A client fills a wishlist of profiles and sends it to the agency as expressed interest; the agency then handles it in its own internal admin. Paid membership via Stripe unlocks a higher tier of service.
- One codebase serving two separate domains (men / women)
- Wishlist → expressed interest → agency's internal workflow
- Membership and payments via Stripe
- Page caching, photo optimization and observability via Sentry
// Stack
// More projects
Chytron
A psychometric testing platform with age-normed results, sharing with experts and a gamified approach.
OpenBěh Adventáka
A set of three charity running sites - unifying and fully typing an inherited project, GP WebPay payments and Strava leaderboards.
OpenManufacturing ERP
An internal ERP for a manufacturing company - inquiries, quotes, orders, bills of materials and warehouse. From design to on-premise operation on the client's server.
Open