A bilingual adult-services directory with controlled publishing
The build joins crawlable location pages, operator moderation, translation, private media processing, geographic search, consent state, and controlled publication in English and Thai.
29 migrations · 254 Go test functions · bilingual public and operator surfaces
How the pieces connect
- Source or manual intake
- Identity and location review
- Consent and media state
- Translation
- Operator approval
- Bilingual public routes
The job
An adult-services directory has ordinary directory problems plus stricter identity, consent, source-rights, media, removal, and admin responsibilities.
The hard part
Build the public and operator sides without treating scraped profiles or sensitive media as automatically publishable.
How I built it
- Keep original media private and publish only generated public variants.
- Make consent, source, moderation, translation, and removal state visible to operators.
- Separate crawlable geography from private operator and user workflows.
- Do not launch until one unambiguous publication policy and the remaining operational gates are complete.
What I verified
- Astro public site, React administration, Go API and worker
- PostgreSQL, PostGIS, pgvector, private media, and job queues
- English and Thai location, listing, detail, and administrative surfaces
- 29 migrations and 254 Go test functions in the reviewed repository
Current state: The public and admin applications are substantial, but there is no recorded live release. Launch is blocked until one consent policy, deduplication, scheduled imports, dashboards, billing, and final legal/privacy review are complete.