Buttondown live-wiring preflight

Make the St Albans subscriber path testable before it goes live.

Use this page before enabling real Buttondown automation, referral scoring, welcome emails or public leaderboard refreshes. It keeps the newsletter Buttondown-first while preserving the approval boundary.

No Buttondown automation, live subscriber email, public leaderboard, sponsor contact, public post or paid action is enabled by this static page.

Account checks

Verify before touching live settings

Newsletter identity

Buttondown username goodmorningstalbans, public archive route and confirmation language match the St Albans site.

Signup metadata

The embed form preserves metadata__referral_source, metadata__reader_token, metadata__signup_market and tag=website-subscribe.

Credential boundary

API keys, raw exports and subscriber emails stay outside the public repo and outside generated HTML.

Internal tests

Run these before any public claim

Referral round-trip

Submit an internal-only address through /subscribe/?ref=test-preflight and verify Buttondown receives the referral metadata.

Leaderboard dry run

Generate a redacted placeholder projection with no emails, no raw subscriber IDs and no unconfirmed referral counts.

Rollback

If metadata, confirmation, analytics or dedupe fails, keep the site on static subscribe/share pages and do not publish rankings.

Live test matrix

Pass these before referral scoring moves

Buttondown form · Operator

metadata-round-trip

Submit an internal-only address through /subscribe/?ref=test-preflight and confirm Buttondown stores referral_source, reader_token, signup_market and website-subscribe tag.

Evidence

Private screenshot or export note stored outside the public repo; never commit raw subscriber email or API response.

Pass condition

Confirmed subscriber record contains all expected metadata fields with the test referral token intact.

Live blocker

Do not enable referral counts or welcome copy that claims referrals are tracked.

Private ledger · Operator

confirmed-only-counter

Build a local count from confirmed Buttondown subscribers only, excluding pending, unsubscribed, deleted and manually imported records.

Evidence

Redacted count summary with no emails, subscriber IDs or raw Buttondown payloads.

Pass condition

Every counted referral points to a confirmed subscriber and a non-empty referral_source.

Live blocker

Keep leaderboard rows empty and reward tiers as placeholders.

Private ledger · Operator

dedupe-and-abuse

Deduplicate by subscriber email and reader token, then flag same-token bursts, disposable domains, self-referrals and suspicious same-IP clusters if IP data exists.

Evidence

Manual review note containing counts only, not personal data.

Pass condition

Suspicious clusters are excluded or manually cleared before any public rank is generated.

Live blocker

Do not publish prize eligibility or sponsor-backed rewards.

Static artifact · Operator

redacted-public-json

Generate /leaderboard/leaderboard.json with only rank, displayName, area, confirmedReferrals and rewardTier.

Evidence

Committed static JSON diff showing no private email, subscriber ID, IP address, API token or raw metadata.

Pass condition

Public JSON passes privacy review and contains only the approved public columns.

Live blocker

Keep placeholder leaderboard JSON in place.

Launch approval · Editorial

approval-gate

Review referral copy, reward language, public leaderboard projection, fraud handling and any sponsor-backed prize terms.

Evidence

Fresh explicit approval recorded in Linear before live refresh, public announcement or reward fulfilment.

Pass condition

Approval is current, specific to Good Morning St Albans and covers the exact public action.

Live blocker

No public refresh, subscriber email, social post, sponsor prize or reward fulfilment.

Public artifact contract

What may and may not leave the private ledger

Allowed public fields

Public field

rank

Public field

displayName

Public field

area

Public field

confirmedReferrals

Public field

rewardTier

Never publish

Private field

email

Private field

subscriber_id

Private field

ip_address

Private field

buttondown_api_response

Private field

raw_metadata

Private field

api_key

Open preflight.json

Linear proof

Track against MY-2571 and MY-2577

MY-2571

Buttondown referral/live leaderboard wiring: metadata contract, dry-run export path, redacted leaderboard JSON and fraud checks.

MY-2577

Newsletter empire build loop proof: generated static pages, validation gates, GitHub commit and no irreversible public action.

Approval gate

Confirm internally before live automation, subscriber email, public leaderboard refresh, paid ads, sponsor prize fulfilment or domain/payment action.