Back to dashboard
production finishblocked2 owner actions

Owner actions

These are the remaining account-level steps that the website cannot safely do by itself. They do not ask contributors for AI keys or private files; they only finish production storage and canonical domain readiness.

Production finish
blocked
Canonical
https://www.m23isgalois.com
Apex
https://m23isgalois.com

Generated 6/4/2026, 12:48:27 PM

blocked
Durable storage

Needed before real community contribution records are durable.

blocked
Apex HTTPS

Needed before m23isgalois.com redirects safely to www.

strict
Strict check

npm run m23:prod:strict

JSON
Machine plan

/api/m23/owner-actions

blockeddurable-storage

Connect durable production storage

Production is still using demo storage. Real community submissions should wait for Blob or Postgres.

The public queue can demonstrate the workflow without durable storage, but real contribution records must survive redeploys and server restarts.

Do this

  1. 1
    Choose the simplest durable backend

    For the MVP, Vercel Blob is enough. Use Postgres later if you need heavier concurrent review workflows.

  2. 2
    Create or connect Vercel Blob

    Create a private production Blob store from the Vercel dashboard, or use the Vercel CLI from this repository.

    npx vercel blob create-store m23-galois-state --access private --environment production
  3. 3
    Confirm production env

    Vercel should set BLOB_READ_WRITE_TOKEN for production. If you choose Postgres instead, set DATABASE_URL for production.

  4. 4
    Redeploy production

    Deploy again so the production site reads the new storage env.

    npx vercel deploy --prod --yes

Then verify

  1. 1
    Check storage status API

    The progress API should stop saying Demo storage and should report durable storage.

    curl -fsS https://www.m23isgalois.com/api/m23/progress | grep -i storage
  2. 2
    Run strict production monitor

    Strict mode should no longer fail the durable-storage gate once storage is connected.

    npm run m23:prod:strict
blockedapex-domain

Finish apex HTTPS and redirect

The www site works, but the apex domain is not assigned to this Vercel project/team.

Visitors should have one safe canonical URL. Until apex HTTPS is complete, use https://www.m23isgalois.com as the public link.

Do this

  1. 1
    Remove the old apex binding

    Vercel CLI reports that this team cannot access m23isgalois.com. In the Vercel account that currently owns the apex binding, remove m23isgalois.com or move it into shaowuzs-projects.

  2. 2
    Keep www pointed at Vercel

    In Porkbun, keep the www CNAME that Vercel asks for. Do not use URL forwarding for the production site.

  3. 3
    Set the apex record

    In Porkbun DNS, set the apex A record to Vercel's IP unless Vercel shows a different target.

    A @ 76.76.21.21
  4. 4
    Add every _vercel TXT value

    If Vercel says the domain is linked to another account, copy each TXT value it shows into Porkbun at _vercel.m23isgalois.com. It may ask for separate values for apex and www.

  5. 5
    Refresh Vercel Domains

    Open Vercel project settings, refresh both m23isgalois.com and www.m23isgalois.com until verification and certificate generation finish.

  6. 6
    Let the project redirect apex to www

    The current project already has a host-based redirect from m23isgalois.com to https://www.m23isgalois.com. It will take effect once the apex domain reaches this deployment.

Then verify

  1. 1
    Check apex redirect

    The apex should eventually redirect to the canonical www URL with a valid HTTPS certificate.

    curl -I https://m23isgalois.com
  2. 2
    Run production monitor

    The non-strict monitor should stop warning about apex, and strict mode should pass once storage is also durable.

    npm run m23:prod
  3. 3
    Confirm Vercel can access apex

    This command should stop returning the current no-access error once the domain is in the correct Vercel team.

    npx vercel alias set <latest-deployment>.vercel.app m23isgalois.com