Skip to content

0008 — aimstoreorg.com as the production domain

Status: accepted (2026-07-23)

Context

The platform previously ran on joinaimstore.com — the shipped mobile app's host allow-list (aim-store-app/src/config/env.ts) still contains api.joinaimstore.com and store.joinaimstore.com, and existing installs were built against those hosts. The rebuilt platform (backend, website, portal, docs, monitoring) needs one coherent set of hostnames on the new VPS (200.141.2.84).

Decision

Consolidate production on aimstoreorg.com:

Host Service
aimstoreorg.com, www.aimstoreorg.com website SPA + payment API
api.aimstoreorg.com Go backend API
admin.aimstoreorg.com admin portal
docs.aimstoreorg.com documentation
monitor.aimstoreorg.com Grafana

All are A records to the VPS; Caddy routes by hostname and obtains certificates automatically. The app's production defaults (EXPO_PUBLIC_* URLs) point at the new hosts.

Consequences

  • The app's host allow-list changes and a new app release is required — the allow-list is compiled into the bundle, so installed builds only trust what they shipped with.
  • The old joinaimstore.com hosts are kept in the allow-list for the transition, so builds made before the cutover keep working if the old DNS is pointed at the new box; they are removed once the migration is done.
  • Every config that names a host (Caddyfile, workflows' health checks, env templates, this documentation) uses aimstoreorg.com exclusively — the legacy domain appears nowhere except the app's transitional allow-list.