Go / Astro / Adult-services directoryPrivate build · launch policy unresolved

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

The job

What needed to change

An adult-services directory has ordinary directory problems plus stricter identity, consent, source-rights, media, removal, and admin responsibilities.

The hard part

The constraint shaping the build

Build the public and operator sides without treating scraped profiles or sensitive media as automatically publishable.

System flow

How the pieces connect

  1. Source or manual intake
  2. Identity and location review
  3. Consent and media state
  4. Translation
  5. Operator approval
  6. Bilingual public routes
Build decisions

How I built it

  1. Keep original media private and publish only generated public variants.
  2. Make consent, source, moderation, translation, and removal state visible to operators.
  3. Separate crawlable geography from private operator and user workflows.
  4. Do not launch until one unambiguous publication policy and the remaining operational gates are complete.
Verification

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.