Design: put the map on its own site (phase one) #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "design/celilo-hosting"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The map is a blob of HTML someone pastes into Squarespace by hand. In 2025 that left the repo with two divergent copies of the page six days apart and no way to tell which was live. Squarespace has no content API and no SSH, so nothing can ever push into it.
Solution
Give the map its own address at
bna-yard-sale.org, served by a celilo module living in this repo, and have Squarespace link to it once.This is a design proposal. Nothing is implemented.
Two changes, because the second one is not decided yet
add-celilo-hosting— phase one, ready to implement. The celilo module (public_web+dns_registrar, no container), the Astro page, the Squarespace link, the snippet generator kept as contingency, and design mocks before any component.The data stays manual in phase one: export the CSV, run the pipeline, deploy. That is deliberate scope, not an oversight, and it is stated in the proposal and named in the risks.
add-data-refresh— phase two, parked with its decision open. Getting the site up first means this gets designed against something real rather than guessed at. D1 (where the refresh runs and how it gets a credential) and D2 (how a merge reaches the fleet) are written as OPEN, with the candidates recorded and none chosen.What the research found, kept so it does not get redone
A celilo hook cannot open a pull request.
source_forgeexposesissue_runner_tokenandregisterRepoand nothing else. Neither yields a token that can push a branch. Scheduling was never the hard part — the dispatcher already emitstimer.tick.1m/5m/15m/1hand three production modules subscribe to it. The credential is the hard part, and it is what phase two has to settle.The build bus is a shipped recipe.
celilo/reference/APP_CI_REFERENCE.mdcovers merge → build →.netapp→ registry → poll → deploy, and lunacycle is the first app on it. Four things worth keeping from reading it:auto_upgrade, notauto_update, and it is operator configuration, not a manifest declaration. The spec is explicit that a module author must not be able to opt their module into unattended upgrades on someone else's fleet. Defaults to false when unset.registerRepoapplies branch protection tomain, so a PR flow becomes required rather than preferred.release.ymlgates publish behind e2e on a Docker builder that is not deployed. The reference names its own workaround: dropneeds: [e2e]and publish on the light runner.--allow-staleunconditionally, disabling both publish safeguards. celilo#548 tracks 21 of 21 modules with stale manifests.There is no per-file grant for Google Forms. Its API scopes are account-wide, and every Google Forms MCP server is a community project wanting a Cloud project and a refresh token. Publishing a public-columns-only sheet tab as CSV gives exactly the per-file scope, with no OAuth and nothing to store.
Also in here
docs/one-time-setup.md— click-by-click for the form, publishing responses as CSV without leaking names and emails, the domain, and the forge. The address-validation regex was run against all 34 real 2025 addresses: it rejects none of them, and does reject "I don't know yet" and a bare street name with no number.Status
bna-yard-sale.orgis registered at Namecheap. Hourly cadence agreed. Freeya sponsor block stays. CDN-serving-stale accepted as a stretch goal.Both changes pass
openspec validate.tscclean, 10 tests pass.🤖 Generated with Claude Code
https://claude.ai/code/session_01PyCzDSqUNGDS5W3bznaQW5
Design: host the map on celilo, refresh on a timer, keep the reviewto Design: put the map on its own site (phase one)