This repository has been archived on 2026-08-20. You can view files and clone it. You cannot open issues or pull requests or push a commit.
will.anderson d79a7a9708 Add static coming-soon placeholder for neurontechnologies.ai
Serve a single self-contained page from nginx while the marketing site is
rebuilt, so the domain shows the Neuron brand rather than a stale product
site. Inline the real wordmark and favicon as data URIs to keep the page
free of external requests and safe under a strict CSP.
2026-08-16 23:55:56 -05:00

coming-soon

Static placeholder page served at neurontechnologies.ai while the site is rebuilt.

What it is

A single self-contained index.html — inline CSS, no frameworks, no build step, and zero external network requests. The Neuron wordmark and favicon are inlined as data: URIs, so the page renders identically offline and under a strict CSP.

Brand assets are the real masters from neuron-technologies/assets:

Asset Source
Light wordmark branding/wordmarks/neuron-wordmark-on-light@2x.png
Dark wordmark branding/wordmarks/neuron-wordmark-on-dark@2x.png
Favicon branding/icons/neuron-icon-32.png

Brand blue is #2996F8, sampled from the icon master.

Regenerating index.html

index.html is committed and is the file that ships. To rebuild it from updated brand assets, re-inline the three images above as base64 data: URIs. There is no build tooling and none is wanted — keep it a single file.

Container

nginx:alpine. Cloud Run injects PORT (8080); the nginx entrypoint runs envsubst over /etc/nginx/templates/default.conf.template before starting, which is how listen ${PORT} resolves. /healthz returns 200 ok. Every other path falls through to index.html.

docker build --platform linux/amd64 -t coming-soon:local .
docker run --rm -p 8080:8080 -e PORT=8080 coming-soon:local
curl -sI http://localhost:8080/

Deploy

The image lives in Artifact Registry:

us-central1-docker.pkg.dev/neuron-785695/neuron-marketing/coming-soon:v1

neurontechnologies.ai is fronted by Cloudflare, then a GCP global load balancer (marketing-backend-prod) with serverless NEGs pointing at three Cloud Run services. Deploy to all three or the regions will serve different pages:

Service Region NEG
marketing-prod-us us-central1 marketing-neg-us
marketing-prod-eu europe-west1 marketing-neg-eu
marketing-prod-apac asia-northeast1 marketing-neg-apac
IMG=us-central1-docker.pkg.dev/neuron-785695/neuron-marketing/coming-soon:v1
for pair in us-central1:marketing-prod-us europe-west1:marketing-prod-eu asia-northeast1:marketing-prod-apac; do
  gcloud run deploy "${pair##*:}" --project=neuron-785695 --region="${pair%%:*}" \
    --image="$IMG" --platform=managed --port=8080 --allow-unauthenticated \
    --clear-env-vars --clear-secrets \
    --cpu=1 --memory=512Mi --min-instances=1 --max-instances=10
done

--clear-env-vars --clear-secrets is deliberate: a static nginx has no business holding live Stripe, Supabase, or Anthropic credentials. Memory must be at least 512Mi because these services run with CPU always allocated.

No DNS record or domain mapping was touched to put this page up, and none needs to be touched to take it down.

Rollback

Cloud Run revisions are immutable, so the previous application revisions still carry their own image, env vars, and secret bindings. Rolling back is a pure traffic change:

gcloud run services update-traffic marketing-prod-us --project=neuron-785695 \
  --region=us-central1 --to-revisions=marketing-prod-us-00101-98x=100
gcloud run services update-traffic marketing-prod-eu --project=neuron-785695 \
  --region=europe-west1 --to-revisions=marketing-prod-eu-00099-4tz=100
gcloud run services update-traffic marketing-prod-apac --project=neuron-785695 \
  --region=asia-northeast1 --to-revisions=marketing-prod-apac-00077-jp8=100

Those three revisions ran image marketing:ci-047be5ae and were serving 100% of traffic immediately before this placeholder went live.

S
Description
Static coming-soon placeholder for neurontechnologies.ai
Readme
83 KiB
Languages
HTML 99.4%
Dockerfile 0.6%