Platform control
folo.link owns no platform state — but it ACTS. Every switch on this page changes right here: the change flow runs in place and the write routes via the owning platform’s admin API — one write path, one audit trail, in that platform’s log. The deep-links to the product admins are a convenience, never the only path.

The current state of every platform — modes, flags, capabilities and grants. Each value names its owner; every change runs through the platform that holds the pen.
Live · FG scopeDemo data

Platform × mode
Why a matrix, not a switch: site mode and payment mode are PER-PLATFORM state — there is no global mode to flip. Each cell is a read of the current value, named to its owner and write path. Any skin — folo.link included — changes any row through the same confirmed flow: the write always routes via the owning platform’s admin API, one path, audited there. Owning no state never means owning no action.

These values are read a hundred times for every time one changes — so they render as values. The option set lives in the change flow: open Change on any cell, and the confirm names where the write routes.
Folofolo.co · consumer
Site modePRODUCT · Folo
Effect of a flip: Gated puts folo.co behind invite approval — visitors hit the gate within the ~15s edge cache; signed-in users keep their sessions. Signup queues new accounts only. If the config read breaks, the mode fails safe to the env flag — never to open.
Live
Everyone in · flips via Folo admin API · audited there · ~15s edge cache
Payment modeno owner yethonest absent
Why this cell is empty: Folo records nothing sale-side (Mav ruling ③ — one ledger, locked). Its module tile is consumption: fan pays, wallet shows. When a rail lands, this cell gains a ladder and an owner — not before.
No fan-payment rail on Folo yet — fan money runs via knky rails during the migration.
Not a disabled switch — there is nothing to switch.
Fanogramfanogram.co · creator CRM
Site modePRODUCT · FG
Effect of a flip: in Signup (current), new accounts land in the Access queue for approval; existing users are untouched. A flip is visible to users within the ~15s edge cache. An unreadable mode resolves to the env flag — never to open.
Signup
New accounts queue for approval · flips via FG admin API · audited there · ~15s edge cache
Payment modePRODUCT · FG
Effect of a flip: the ladder climbs one rung at a time — never skipped. Moving up changes which rail a fan’s next payment attempt uses. An unreadable or absent value resolves to Sandbox: a failed config read can never charge real money.
Spire Sandbox
rung 2 of 4
Processor test rail, no real money · one rung at a time, never skipped · unreadable resolves to Sandbox
Receiptstaging · attribution
Site modePRODUCT · Receipt
Why there is no control here: Receipt runs open on staging — one state, no ladder to climb. A gate arrives with its public launch; until then this cell is a read, not a control.
Staging · open
No gate configured · no mode API yet — arrives with public launch
Payment modePRODUCT · Receipt
Why there is no control here: Receipt bills its own subscriptions on plain Stripe — one mode, no ladder, and it never joins the Spire rail. Nothing here touches creator or fan money.
Plain Stripe
One mode · never on Spire · keys via Receipt env — no runtime switch exists
Audited, effective within the cache window. Every mode flip lands actor, from-state and to-state in the owning platform’s audit log before the edge cache flushes. folo.link owns no platform state but it acts: every change made here runs through the owning platform’s admin API — one write path, one audit trail. The deep-links are a convenience, never the only way.