martbost 07ab4cec79 Members choose how their link places people
Terry asked how a referral of his would be set up as "Direct with
spillover", and whether his team could follow suit. Two settings, on the
member's own dashboard:

  Team rotation — the join goes to the next position IN THEIR OWN TEAM
                  that still needs its 2
  Direct        — every join lands directly under them, as depth

A new position starts on whatever its SPONSOR was using at the moment it
joined, so a team duplicates its leader by default. That is a one-time
copy, not a live link: a sponsor changing their mind later never moves
anyone already in their team, and an explicit choice is never overwritten
from above. The panel says where an inherited setting came from, so nobody
discovers months later that their link was doing something they did not
pick.

Also closed the hole behind Terry's original complaint: a member's
personal link no longer falls through to the COMPANY rotation when their
leg is fully qualified. Team rotation means rotation inside their own
downline and nothing else — handing someone's referral to a position they
have never met was never the intent, and it is what offered Terry's
prospects #148.

The five positions already on directDefaultIds (21, 137, 139, 30, 840)
read as explicit Direct, so nothing changes for them. Everyone else stays
on Team rotation, which is what they have today.

qa/placement.mjs, 17 checks: defaults, choosing, inheritance from the
sponsor, explicit choices surviving a re-run, a sponsor switching not
moving their existing team, and persistence across a restart.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-18 13:54:14 -05:00

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

  1. Traffic lands on the evergreen bridge page.
  2. Visitors click Get Started.
  3. /start reads the active sponsor from the server and builds the RM Circle referral link dynamically.
  4. In /admin, increment a sponsor's direct count as joins are verified.
  5. When a sponsor reaches 2, click Qualified.
  6. 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:

  1. ID 30 — Orlando (active)
  2. ID 36 — Mad Dog
  3. ID 35 — Michael Camire
  4. ID 32 — Melissa
  5. 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/start
  • http://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

  1. Create a new application from this source/repository.
  2. Use the Dockerfile or Compose deployment.
  3. Add environment variables:
    • ADMIN_PASSWORD — strong unique password
    • SESSION_SECRET — long random string
    • NODE_ENV=production
    • DATA_DIR=/app/data
  4. Persist /app/data using a volume.
  5. Point your domain/subdomain at port 3000 through Coolify's normal proxy/domain configuration.
  6. 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.

S
Description
RM Circle Premium - evergreen bridge page + dynamic Crypto Team Build sponsor router
Readme 715 MiB
Languages
JavaScript 65.9%
HTML 33.9%
Shell 0.2%