Four new tools, so no tier is a placeholder any more: L4 Voice Profile (/suite/voice) — five short answers that ride along with every Copy Engine and Email Engine generation. It sits BEFORE the compliance block in the prompt on purpose: a personal voice must never be able to talk the model out of the honesty rules. suite-email builds its own prompt, so the profile is threaded in there separately or email would keep sounding generic while the Copy Engine sounded like the member. L5 Split Tester (/suite/split) — 2-3 variants launched as one test with the impressions split evenly, then click counters compared. Deliberately conservative: it will not declare a winner until both arms have real volume AND the leader is clearly ahead, because a 3-click gap on 400 impressions is noise. A genuine tie is reported as a tie, which is useful information too. A failed arm rolls back the whole test rather than leaving half of it running. Apex is the right home for it — that is where impressions jump to 50,000. L6 Funnel Factory (/suite/funnel) — extra named pages at /p/<id>/<slug>, so a leader can run one page per audience and point different ads at each. Missing slugs fall back to the member's main page, same no-dead-ends rule as /p/<id>. L7 Leader Ops (/suite/leader) — the coaching radar already existed in chain.js and only admin could see it, which was backwards: the leaders running those legs need it more than anyone. Now scoped to the member's own organisation, with a written plan built on contract-read facts only. Follows the teach-forward rule — the digest gives the leader words to hand down, not just numbers to act on. Tile copy across the wall and the payout alerts now describes what actually exists rather than what was sketched. suite-tools.js was stale in both directions (it still had the Traffic Desk at L5 and L3 not live). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
RM Circle Premium — Crypto Team Build Sponsor Router
A small deployable Node/Express app with:
/— evergreen advertising/bridge page/start— dynamic onboarding page with the current team sponsor/admin— password-protected sponsor queue manager- JSON-file persistence suitable for a Docker volume
Core workflow
- Traffic lands on the evergreen bridge page.
- Visitors click Get Started.
/startreads the active sponsor from the server and builds the RM Circle referral link dynamically.- In
/admin, increment a sponsor's direct count as joins are verified. - When a sponsor reaches 2, click Qualified.
- The next waiting sponsor becomes active immediately—no HTML or ad changes required.
Default seeded queue
The seed data reflects the working Crypto Team Build priority list at build time:
- ID 30 — Orlando (active)
- ID 36 — Mad Dog
- ID 35 — Michael Camire
- ID 32 — Melissa
- ID 34 — Janie
You can change, reorder, add, or delete sponsors in /admin.
Local run
cp .env.example .env
# edit .env and set a strong ADMIN_PASSWORD + SESSION_SECRET
set -a && . ./.env && set +a
npm start
Open:
http://localhost:3000/http://localhost:3000/starthttp://localhost:3000/admin
Docker / Coolify
This project includes a zero-dependency Node server, Dockerfile, and docker-compose.yml. No npm package download is required.
Coolify recommendation
- Create a new application from this source/repository.
- Use the Dockerfile or Compose deployment.
- Add environment variables:
ADMIN_PASSWORD— strong unique passwordSESSION_SECRET— long random stringNODE_ENV=productionDATA_DIR=/app/data
- Persist
/app/datausing a volume. - Point your domain/subdomain at port
3000through Coolify's normal proxy/domain configuration. - Open
/admin, sign in, and verify the queue before sending traffic.
Sponsor referral URL
The default base is:
https://app.thermcircle.com?ref=
The app appends the current sponsor ID, for example:
https://app.thermcircle.com?ref=30
Change the base URL at any time in Admin → Public Page Settings without editing code.
Important operational behavior
The app intentionally does not auto-qualify sponsors based on clicks or blockchain activity. A team admin verifies the actual placement and clicks Qualified. This prevents an ad click or abandoned transaction from rotating the sponsor queue incorrectly.
Safety and compliance notes
The public pages include risk language, avoid guaranteed-income claims, and remind users never to disclose a MetaMask Secret Recovery Phrase. The onboarding page points to the official MetaMask website and identifies Polygon Mainnet as chain ID 137 with POL as the native gas token.
This app does not custody crypto, request wallet seed phrases, execute transactions, or store private keys.