Commit Graph

237 Commits

Author SHA1 Message Date
martbost 48dcd71290 Founding week: /launch leader checklist (8 live-read items incl. the level-3 leader play), dashboard launch-ready mark, launchAt setting
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 07:16:54 -05:00
martbost bf5371ab20 Campaign scheduling (start/end, solo send-from), scheduled NAS push + end sweep, views-by-hour chart
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 06:53:53 -05:00
martbost 159e19dcdf Sign-up code guard: honeypot, form age, per-IP + global limits, progressive icon check, burst alert
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 06:30:03 -05:00
martbost f9b198a49b Your links: collapsed band per angle; Share button only where a share sheet exists
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 06:05:02 -05:00
martbost f7c840dee4 Training: Wallets and buying POL guide (/wallets), guide link on Buy packages, chatbot answers
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 17:20:31 -05:00
martbost 496133b99e Angle join pages are squeeze pages: hook, video, one capture card, three points; full page stays on the plain link
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 16:09:03 -05:00
martbost fe9661ec33 Join page: keep the Sign in link clear of the byline on narrow screens
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 16:04:16 -05:00
martbost 129e4d0946 Angle join pages: matching hook video + three angle points replace the worked example
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 16:02:25 -05:00
martbost 00f85fde08 README: sponsor attribution is last touch 2026-09-10 15:51:19 -05:00
martbost 04e42e94ff Sponsor attribution: last touch (30-day cookie), locked at account creation; 'Joining under' line at the code step; chatbot answer
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 15:49:40 -05:00
martbost 4addf7718e Your links: URLs are tappable, plus an Open button per angle
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 15:41:05 -05:00
martbost f5fb195927 Promo tools: 'Your links' block with the invite link + five angle links (who each is for, copy, share)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 15:30:10 -05:00
martbost b4b9ac8680 Promo tools: banner kit as collapsed accordions per size group
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 14:32:16 -05:00
martbost cac78133ca Never charge a campaign past its budget (on-site batches vs network reconcile overlap)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 11:42:46 -05:00
martbost 4487a90d16 Balances: one reservation rule (earned first) + purchased-grade credited pool
- balances(): live campaign budgets are set aside up front, earned pool first then
  purchased, so dashboard numbers never move per impression; new 'in campaigns' line
- earned pool gains a purchase_grade portion for refunds/comps: shows under Purchased
  as 'credited to you' and funds login ads (daily login charge draws on it first)
- viewing credits always spend before credited purchased money
- dashboard/donut/spend banner/earn pane/positions show purchased, credited, earned, in campaigns
- chatbot canned answer + AI prompt: the balance rule

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 11:16:40 -05:00
martbost af6d2db711 Burner: in-flight sends persisted to the volume and checked directly against contract logs before any resend
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 10:47:22 -05:00
martbost 38366e0beb Credits: Welcome label shows only the welcome amount; login ads explain they spend purchased credits only
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 10:42:16 -05:00
martbost 82269eccc8 NAS: syndicated ads click through our redirect so network clicks count and carry the source site
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 10:16:22 -05:00
martbost ecdee89be1 Traffic sources: referring domain on join-link visits and joins (per-member table), click sources per campaign (surface or outside host)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 10:12:13 -05:00
martbost 6e187c4f41 Campaigns: optional daily cap on banner/text paces spend on-site and hands Network Ad Space one day's allowance at a time
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 10:03:57 -05:00
martbost abf7415c83 Burner: on-chain ref = burn id; recognise already-mined burns from CreditsConsumed and hold in-flight sends, so a lost RPC response can never double-burn
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 09:49:20 -05:00
martbost 94910275c0 Positions policy: cap of five per account, refuse wallets registered under anything but the main member, admin members shows positions; Qualified Start card states the rule
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 09:42:06 -05:00
martbost f6490c9444 Promo tools: hook video cards (matched links, downloads, captions, share buttons)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 08:55:29 -05:00
martbost 276618dd73 Member ads everywhere they belong: text strip under every pane title, banner at the foot of each main pane, wall + plays slots; Network views as its own campaign column
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 08:35:31 -05:00
martbost 787963d605 Wall: larger InstantAdPay brand line
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 08:25:40 -05:00
martbost 7ae31f4b18 Join page: compact hero with InstantAdPay brand headline; opt-in and ledger example above the fold; chips and POL note below
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 08:23:59 -05:00
martbost 55b010d8c2 Admin burner line: balance is the gas fund, not a cost; show skipped burns
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 08:21:15 -05:00
martbost bcc895dc8d Member area: loading spinner instead of flashing the sign-in card
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 08:17:55 -05:00
martbost 7708e602ae Catalog: 20s cache so ladder pages stop waiting on five live quotes
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 08:13:27 -05:00
martbost 29e18aa48a Wall page: InstantAdPay headline + POL on Polygon; payouts-in-POL copy on join/home/Wallet/objections/chatbot
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 08:10:35 -05:00
martbost e0d4bbc2e1 Public /api/config never exposes credential-like site settings; join page spacing
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 08:04:19 -05:00
martbost b7f2b3ef3f Join page: How it works and The packages span full width below the fold; sign-up card sticks beside the ledger example
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 08:01:12 -05:00
martbost 7374dc8f1b Credits: reserve live campaign budgets so purchased credits can't be over-committed; burner dry-runs and skips reverting burns; coaching flags directs not bound to you on-chain
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 07:50:59 -05:00
martbost 9ebb9a86b2 Ledger/earnings rows show when; Earn credits: never your own ads; burner sets Polygon fees + rotates RPCs on node errors
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 07:43:24 -05:00
martbost 5652987675 Verified visits: budget derives from the pack count (form has no budget box)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 07:39:27 -05:00
martbost b824711ac5 Campaigns: gold available-to-spend banner + where-your-ads-run (incl. Network Ad Space); Wallet: live POL balances; Earn credits: done-for-today mark
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 07:36:24 -05:00
martbost 4156b1f815 Coaching layer + tools: coach your directs (rungs, stalled, one-click nudges), automatic member nudges + weekly sponsor digest, prospects list, per-angle link stats, broadcast templates, Qualified Start calculator, Telegram proof feed, send-failed alerts, admin P&L pane, automatic credit burner (ethers), username lock, home-page comparison, printable checklist, wall link in Promo tools
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 07:30:16 -05:00
martbost 0c30e831eb plays: scope box styles to direct children 2026-09-10 07:08:07 -05:00
martbost 16a9f76f50 Training: section pills; /plays member page (three plays + Qualified Start) with the member's own link in the scripts
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 07:06:19 -05:00
martbost f785016cb5 Training: section headers; byline 'Brought to you by the Crypto Team Build Network' under every logo
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 06:25:58 -05:00
martbost 15a881a72b Positions: force the wallet's account picker (wallet_requestPermissions) when adding a position or when the Buy-from wallet doesn't match; sign/send with the wallet's active account
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 06:11:38 -05:00
martbost 70b96bf862 Training: video posters (posterUrl from the list, else .jpg beside the .mp4) + preload=metadata
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 04:36:22 -05:00
martbost bd0f351c13 Plays doc: Qualified Start opening move
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 17:32:05 -05:00
martbost 046464b83e Linked positions (Qualified Start): extra wallets on one account, credits pooled, buy-from picker
- accounts/db: positions table + JSON store (add/list/owner/remove; main-wallet and cross-account guards)
- auth verify: asPosition links a second wallet without touching the session; position wallets can't mint a session
- /api/my/positions (chain-refreshed member ids, buyer counts, credits) + remove
- credits pooled across main + positions on /api/me, dashboard, campaigns; campaign charged to the best-funded position
- My line: own positions listed on level 1 as 'You · position N'
- Buy pane: Qualified Start card + Add a position flow + Buy-from picker with connected-wallet guard
- Wallet pane: Your positions card; chatbot answer updated

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 17:18:47 -05:00
martbost b86dbfd9e9 Admin: wall fallback ads editor (House ads pane) + /api/admin/wall-ads
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 15:45:49 -05:00
martbost 2ac6549171 Wall ownership ladder: positions 2 and 3 become the member's own at 2 / 5 qualifying buyers
- accounts.wall_offers (JSON, up to 2 offers: label, https link, banner) set from
  Profile > Your wall; upload supported; locks show the buyer threshold.
- /api/wall assembles: position 1 = own line banner; positions 2-3 = own offer
  when unlocked and set, else upline banners (only uplines with a live banner),
  else house ads. Response carries unlocked + buyerCount; wall labels show
  "this wall" / "their line" / "InstantAdPay".
- Chatbot canned answer + facts, follow-up email 7 mention the ladder.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 15:31:45 -05:00
martbost 8b25361eef QA harness: qa/run.sh + walk.mjs (public + member/admin) + earn.mjs (earning flows)
Headless Playwright checks that boot a throwaway local copy for anything that
signs in or writes; npm run qa / qa:public / qa:member / qa:earn.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 11:32:13 -05:00
martbost 26b98c65c5 Invite links answer HEAD too
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 11:05:02 -05:00
martbost fe217b897a QA fixes: HEAD on page routes, Shorts signed-out 401, invite-page onboarding handoff, viewer check buttons clear of the overlay close button
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 11:03:26 -05:00
martbost dc3a8e0464 Admin settings: graphical editors for follow-up emails, rates and site settings
Follow-ups: one card per email (hours, subject, body), placeholder chips,
add / reorder / remove / send-to-me. Rates: labeled fields with hints, tier
table, milestone sub-fields. Site settings: key/value rows. No more JSON.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 10:00:27 -05:00