---
id: server-architecture/018
title: Register spellgrove.com and set it up for the site and email
epic: server-architecture
state: needs-input
priority: 2
blocked_by: []
estimate: M
created: 2026-08-13
updated: 2026-08-13
claimed_by: null
claimed_at: null
delivers: []
review_artifact: null
---

## What this is

Kris's call, 2026-08-13: register **`spellgrove.com`** — the current working
title (see [`brand/naming.md`](../../../brand/naming.md), which already lists
securing this domain as an outstanding step) — and set it up **simply and
clearly for our actual needs**: wrapping the public site, and carrying email.
DNS to be managed with an API key so an agent can do the work, rather than by
hand in a slow panel.

This is the deliberate correction to a day spent discovering how bad the
current arrangement is, and the reasoning is worth keeping:

- `cocreations.com.au`'s DNS is at iFastNet/Byethost, which has **no DNS API**.
  A day's work on Resend email verification died there ([012](012-resend-real-email-setup.md)).
- That domain also can't hold a mailbox: its MX points at the free-hosting web
  server, which `250 Accepted`s mail for *every* address — real and fake alike
  — with nothing behind it to deliver into ([017](017-manual-password-reset.md)).
- The registrar is not the DNS host. A Namecheap API key could not have edited
  those records even had it been valid, because Namecheap's DNS API only serves
  zones on Namecheap's own nameservers. **Whatever is chosen here must be
  verified on that specific point, not assumed.**
- `ai-task-runner.com` was floated purely because its DNS has a working API and
  is **explicitly rejected** by Kris — it's the task-runner platform's domain
  and shouldn't carry game traffic or mail.

## What this needs to end up doing

1. **The public site** — currently `lor.kris.ai-task-runner.com`, built by the
   host cron deploy-watch (see the workspace README's Deployment section).
   `spellgrove.com` should front it. Note the knock-on: `LINK_CODE_BASE_URL` in
   `game/director/game.env` points at the current host and must move with it
   ([016](016-split-public-base-url.md) is why that's a single, isolated line).
2. **Email** — at minimum a receiving address for `SUPPORT_EMAIL`
   ([017](017-manual-password-reset.md)), so password resets have somewhere to
   arrive. Sending (verify-email, [012](012-resend-real-email-setup.md)) becomes
   possible again too, since DKIM/SPF records would finally be settable by API.
3. **The game server** — `lor-server.cocreations.com.au` could move under
   spellgrove.com as well. **Not** a given: it's live, it works, and moving it
   means new TLS and a client-visible URL change. Worth deciding explicitly
   rather than by momentum.

## Open, and genuinely Kris's to decide

- **Where to register, and where DNS lives.** These can be the same provider or
  not. The hard requirement is a DNS API that actually controls the zone.
  Cloudflare is the obvious candidate — registrar at cost, free DNS with a
  first-class API, and **Email Routing that forwards `support@spellgrove.com`
  to any inbox for free**, which solves the mailbox problem without hosting a
  mail server. Not a decision to take unilaterally: it puts a third party in
  front of the site, so it's Kris's call.
- **Which names move now vs later** — site first is the low-risk order; the
  game server can follow once the rest is proven.
- **The API key.** Whatever provider is chosen, the key belongs in the
  workspace `.secrets/` alongside `do_api_token`, gitignored, per
  `../../CLAUDE.md`.

Filed `needs-input` because the first step — registering a domain — costs money
and is Kris's to do; everything after it is agent work.

## Definition of done

- `spellgrove.com` registered, with DNS on a provider whose API an agent can
  drive, and the key stored in `.secrets/`.
- The public site served from it.
- A working receiving address, and `SUPPORT_EMAIL` set to it on the droplet.
- Whatever moved is recorded — this is the domain layout the project keeps.

> **Update 2026-09-03:** spellgrove.com is live — DNS, TLS and the site itself (`building-the-game/001`). What remains of this task is moving the game client's base URL onto it.

> **Update 2026-09-03:** spellgrove.com is live — DNS, TLS and the site itself (`building-the-game/001`). What remains of this task is moving the game client's base URL onto it.