Commit Graph

  • 3f48bdfd99 Traffic Desk: tag ad destinations so clicks are attributable martbost 2026-08-30 06:37:41 -05:00
  • 439c5885de Admin: give the wide tables the full width martbost 2026-08-30 06:23:50 -05:00
  • 7452490a78 Admin: group the fourteen panels into tabs martbost 2026-08-30 06:16:05 -05:00
  • ee87408dec Admin: move the bonus panel inside the admin view and collapse it martbost 2026-08-30 06:11:41 -05:00
  • 77dcda6a1a Admin: move the bonus panel script out of the page (CSP) martbost 2026-08-30 06:00:37 -05:00
  • e4b7d64605 Admin: load the bonus panel after login, not before martbost 2026-08-30 05:51:26 -05:00
  • 05afe5c5f6 Admin: award Suite capacity to any member as a team bonus martbost 2026-08-30 05:40:00 -05:00
  • 59bd4bd4ab Show recorded figures for closed campaigns, not the wiped counter martbost 2026-08-30 05:33:55 -05:00
  • 26f2c91684 Banners must stop when they have delivered what was bought martbost 2026-08-30 05:23:38 -05:00
  • 1b5ae64905 Traffic Desk: say "delivered" when a banner has served what was bought martbost 2026-08-30 05:18:31 -05:00
  • 37c9fc615c Traffic Desk: the network counts banners and text ads in OPPOSITE directions martbost 2026-08-30 04:56:51 -05:00
  • 86bba1b605 Actually fix the missing joiner alert — the org test, not the emit martbost 2026-08-29 09:03:18 -05:00
  • 4982897613 Fix missing "who joined / what they unlocked" alongside payout alerts martbost 2026-08-29 07:57:11 -05:00
  • caeaf56127 Suite overview video at the top of the tool wall martbost 2026-08-29 07:25:48 -05:00
  • 962f0c8892 Stop offering "Connect Telegram" to members who are already connected martbost 2026-08-29 07:05:26 -05:00
  • 8e7660a9a1 Load nav-dash on the two pages that were missing it martbost 2026-08-29 06:44:08 -05:00
  • 8262b382e6 Navigation audit fixes: duplicates, mobile invisibility, and two dead ends martbost 2026-08-29 06:39:42 -05:00
  • b5cb63f15c Add a Suite link to the member nav — it was unreachable martbost 2026-08-29 06:33:30 -05:00
  • bd42708fa4 Telegram bot: don't tell a linked member their code expired martbost 2026-08-29 06:29:23 -05:00
  • 9f3f28c4bf Connect Telegram: stop relying on window.open inside wallet browsers martbost 2026-08-29 06:22:43 -05:00
  • 8964dfcf97 Detect in-app browsers — the actual reason #34 could not connect martbost 2026-08-29 06:18:35 -05:00
  • a57af32f4a Co-Branded Pages: give Fastigium a change of kind, not a bigger number martbost 2026-08-29 06:14:28 -05:00
  • c8ae4d55b0 Page Builder: members can hold several pages, scaled by level martbost 2026-08-29 06:02:06 -05:00
  • 3620a72338 Wallet diagnostics: a check page, and an error that names the signer martbost 2026-08-29 05:53:34 -05:00
  • 36327abed2 Member pages: centre the hero block like every other page martbost 2026-08-29 05:47:03 -05:00
  • 90b03c16f9 Member pages: house heading treatment; clearer no-wallet message martbost 2026-08-29 05:42:58 -05:00
  • 6838ab3845 Member pages: send readers to the proof, not back to the same video martbost 2026-08-29 05:26:05 -05:00
  • e6b1151ace Traffic Desk: stop the network's counter drift showing as nonsense martbost 2026-08-29 05:08:04 -05:00
  • c5737053f3 Front page: updated Team Build Roadmap infographic martbost 2026-08-28 16:42:47 -05:00
  • 343f1edd57 Beta-tester safety: preview caps on the level override, and close a race in stop() martbost 2026-08-28 16:01:53 -05:00
  • d5385b0512 Poster frames for the walkthrough videos martbost 2026-08-28 14:43:17 -05:00
  • 1dbee99c49 Walkthroughs: stop autoplaying muted, and show the length martbost 2026-08-28 14:31:08 -05:00
  • 72529d0916 Answer HEAD on /tv/ videos martbost 2026-08-28 14:17:15 -05:00
  • 1896b707f8 Tool walkthrough videos: collapsible player + volume-served /tv/ route martbost 2026-08-28 14:14:21 -05:00
  • 6a7c5161ff Give the top of the ladder a real prize: Team Grants + Network Intelligence martbost 2026-08-28 12:26:39 -05:00
  • 1d52597c1c Fix missing QR on every member page — blocked by our own CSP martbost 2026-08-28 11:28:48 -05:00
  • 7ca89f25ee Fix tool wall ordering, and make suite-me use the one entitlement helper martbost 2026-08-28 11:18:08 -05:00
  • f05d5a2746 Founder Desk (L8): weekly campaign pack + Suite API martbost 2026-08-28 11:09:48 -05:00
  • 85261f2719 Admin-only Suite level preview for testing martbost 2026-08-28 10:55:26 -05:00
  • 77c287e953 Route /p/<id>/<slug> through the API dispatcher martbost 2026-08-28 10:52:21 -05:00
  • 3f8d23d66c Circle Suite: complete the ladder — every paid level now unlocks live software martbost 2026-08-28 10:49:36 -05:00
  • 8380696574 Traffic Desk: clamp refunds to what was actually bought martbost 2026-08-28 10:31:49 -05:00
  • 3b3423d15e Text ads: require self-contained lines martbost 2026-08-28 10:23:06 -05:00
  • d5c9e33e0e Traffic Desk: AI-written text ads alongside banners martbost 2026-08-28 10:19:36 -05:00
  • 931eb4336b Traffic Desk: stop-and-refund, plus never let a banner dead-end martbost 2026-08-28 10:03:38 -05:00
  • f7276589e9 Traffic Desk ships: signed NAS bridge client, monthly impression allowance by level (2.5k Scintilla -> 150k Corona), team-kit creative only (no member uploads = no moderation risk), local grant ledger, live serve stats; tile moved to L1 since credits are included at every paid level martbost 2026-08-28 09:50:03 -05:00
  • 6c73b5d9c5 Page Builder fixes from Marty's test: our own CSP frame-src blocked framing our member pages (preview showed broken) — add 'self'; /p/<id> now sends explicit permissive framing headers so member pages always render embedded; button label tracks whether a page exists; live progress line with step narration + elapsed seconds; stale preview hidden during rebuild and cache-busted after martbost 2026-08-28 08:56:32 -05:00
  • be2d2719e5 Video Maker: resolve the DejaVu bold font from real candidate paths (Alpine vs Debian) instead of relying on ffmpeg's fallback martbost 2026-08-28 08:42:33 -05:00
  • 44816571b6 Video Maker ships (L3): ffmpeg end-card composite over the team master videos (member name + link + server-generated QR as PPM), audio preserved, metered; ffmpeg+ttf-dejavu added to the image; tile live martbost 2026-08-28 08:37:59 -05:00
  • 7c3e98eaa9 Email Engine ships (L3): sequence generation (welcome/follow-up/re-engagement/broadcast) on the Suite engine with tolerant EMAIL/SUBJECT/BODY parsing, per-email copy buttons, metered; tile live martbost 2026-08-28 08:17:24 -05:00
  • 92f9a45382 Remove stray grep.exe.stackdump; ignore *.stackdump martbost 2026-08-28 08:02:07 -05:00
  • 3c21f9f615 Payout alerts highlight unlocked tools: shared suite-tools level map drives the Telegram team feed, recruiting feed, member DM on upgrade, and X posts; only announces LIVE tiers and gated behind config.suiteToolsInAlerts (off until Suite launch) martbost 2026-08-28 07:59:40 -05:00
  • f7d5c3f358 Syndicated network display advertising language: homepage toolkit card, how-pay-works toolkit section, Suite Traffic Desk tile, AI prompt martbost 2026-08-28 07:36:30 -05:00
  • 7f289bb495 Policies + tools angle: /privacy and /refunds pages (crypto payments are final, we never hold funds), footer links sitewide, toolkit section on How You Get Paid, toolkit line on Getting Started martbost 2026-08-28 07:32:51 -05:00
  • 8fb585246c Route /p/<id> into the API handler — member pages are dynamic HTML and were falling through to the static 404 martbost 2026-08-28 07:26:57 -05:00
  • a35da4fd46 Page Builder parser: tolerate label variants (missing colon, markdown emphasis) — first live build failed because the model wrote STORY without a colon martbost 2026-08-28 07:21:44 -05:00
  • 6a7867588d Page Builder ships: labelled-section AI output parsed deterministically, escaped renderer, one page per position at public /p/<id> with angle video + QR, rebuild keeps the same URL; L2 tile live martbost 2026-08-28 07:15:11 -05:00
  • 2a8b311a83 Copy Engine ships: Suite AI layer (own engine, RM facts + compliance in our system prompt, deterministic link injection), metered generate/meters APIs, /suite/copy tool page; L2 tile now live martbost 2026-08-28 06:51:16 -05:00
  • 323c86b750 L6 tile: 'webinar rooms' -> Replay Funnels (evergreen registration page around a recorded team webinar, timed CTA); AI prompt clarifies it is NOT live conferencing martbost 2026-08-28 06:44:16 -05:00
  • 35b3c07e74 Fix Suite org check: teamRootId is a comma-separated list, Number() made it NaN so every member read as outside the org (Marty hit this as #21); parse all roots + orgRootId fallback. Nav dedupe on /suite. Adds suite-meter module (per-position monthly quotas by level) martbost 2026-08-28 06:33:08 -05:00
  • 6f28e94abd Suite team-beta gate: config.suiteAllowlist restricts entitlements to listed IDs (others get an honest 'you're early' notice); homepage CTA + chatbot answer held until launch; AI prompt marked private-beta martbost 2026-08-28 05:22:50 -05:00
  • 0258b82a16 Circle Suite P0: /suite tool wall — wallet sign-in (existing challenge/verify flow), live level entitlements via /api/public/suite-me (org-gated to teamRootId), all tiles always visible (yours / unlocks-at / in-development), L1 = today's real tools; homepage CTA + chatbot + AI prompt synced martbost 2026-08-28 05:19:09 -05:00
  • 1259e5284a Confident product framing: 'every paid member gets a license to the toolkit' (drop the defensive what's-the-product line); hero weaves teach-forward-with-tools martbost 2026-08-28 04:51:41 -05:00
  • feb9dec0ac Product-centric homepage: hero leads with the marketing toolkit (config override updated to match); toolkit section reframed as the product; printables card covers handouts + Generation Pay chart martbost 2026-08-28 04:33:06 -05:00
  • ad5c5721aa Wallet-connect resilience: contract costs are immutable constants, so bake verified wei fallbacks for when the wallet's internal RPC fails (MetaMask iOS 'Load failed'); friendlier retry message on network hiccups martbost 2026-08-28 04:03:18 -05:00
  • 21e105b953 /generation-pay: printable generation-pay chart personalized from the live chain (level/tier/qualification -> catching vs needs-Level-N per generation); dashboard + how-pay-works links, chatbot + AI prompt synced; exact-costs card now states the exact one-catch identity martbost 2026-08-27 14:34:20 -05:00
  • 30a5c7237e Training Video 7 'Your level is your reach' (97s, script Marty-approved): catch eligibility + reach rule + pass-over + one-catch funding identity; how-pay-works first-catch line tightened to exact; chatbot + AI prompt synced martbost 2026-08-27 13:23:08 -05:00
  • 1029bdb3e2 Two hard-question objection cards from live member Q&A (catch-eligibility: level = reach; fixed counts vs quadrupling value) + chatbot + AI prompt synced martbost 2026-08-27 12:59:09 -05:00
  • 79282af325 Level-scale full-generation totals aligned to exact contract math (were computed from pre-rounded per-person values, drifting up to 31 POL at Vertex) martbost 2026-08-27 11:50:53 -05:00
  • b76a590714 Correct #exact-costs: entry exists ONLY at Scintilla (register() has no level param; upgrade() one rung per call) — levels cannot be skipped; table now shows upgrade path + cumulative totals; AI prompt synced martbost 2026-08-27 11:32:43 -05:00
  • bdfb40667e Contract-exact price table (#exact-costs on how-pay-works) + entry-vs-upgrade objection card; chatbot + AI prompt synced martbost 2026-08-27 11:08:07 -05:00
  • 8858470244 stopwaiting angle: squeeze page on the lander (combined overview video) + handout QR now carries ?v=stopwaiting martbost 2026-08-27 10:11:41 -05:00
  • 7fb7a6c0d1 Remove tear-off full-page flyers; /flyers is now the five artwork handouts only martbost 2026-08-27 09:25:17 -05:00
  • a8f3a1290e No trailing blank print page: cancel page-break-after on the last/only printed design martbost 2026-08-27 08:48:26 -05:00
  • e83f2543fd Print sizing in physical inches: 100vh broke print-to-PDF from mobile (design overflowed to 2 pages, split second copy) martbost 2026-08-27 08:42:21 -05:00
  • 792fa1d97b Phone handout art v2: no baked-in button (QR panel overlapped it), calm lower-right martbost 2026-08-27 08:31:16 -05:00
  • e03ccb479d Handout art as optimized JPEGs (~330KB each vs 3MB PNGs); new filenames bust stale caches martbost 2026-08-27 08:19:56 -05:00
  • c4cabb0a8f Handouts v2: kie.ai detailed artwork backgrounds + fixed DOM overlay (mobile layout repaired) martbost 2026-08-27 08:15:59 -05:00
  • b019becebe Image-based half-sheet handouts: vibrant gradient backgrounds with dynamic QR overlay martbost 2026-08-27 07:47:52 -05:00
  • 3761fab3c6 Half-sheet handouts on /flyers: 5 vibrant angle designs (pocket, two, phone, graveyard, stop-waiting), 2 per letter page with cut line, personalized QR + angle-matched links; chatbot + AI prompt + tools card synced martbost 2026-08-27 07:31:40 -05:00
  • 3a877add05 Host full banner set at /banners: colorful teambuild variants, graveyard, circle-method, stop-waiting, all ad sizes martbost 2026-08-27 05:38:18 -05:00
  • df5f94573e Printable flyers feature: 4 colorful personalized flyer designs with member QR + tear-off tabs for offline promotion; /flyers route, tools + dashboard links, chatbot + AI prompt synced martbost 2026-08-26 16:55:50 -05:00
  • 4b53dd5326 Direct link option: opt out of moving-link rotation to build personal spillover (Team link default, Direct link alternate) martbost 2026-08-26 14:24:32 -05:00
  • 6282e8c768 Triple Play: add the upgrade strategy (concentrate on the top position; pass-ups bubble up to it) martbost 2026-08-26 08:13:33 -05:00
  • 04a0ae1c6a Triple Play: correct the wallet guidance (separate addresses; MetaMask add-account switch gotcha -> already-registered) martbost 2026-08-26 08:02:21 -05:00
  • c3d28f17a8 The Triple Play: optional 3-position fast-start (how-pay-works section + objection card + chatbot + AI prompt) martbost 2026-08-26 07:50:58 -05:00
  • 76785288e4 Corona promo: add ElevenLabs-generated music bed under the VO martbost 2026-08-26 07:21:57 -05:00
  • 1ba525a643 Add Corona pass-up-flow motion promo (32s) to tools video clips martbost 2026-08-26 07:04:20 -05:00
  • ced4bec462 wallet-notice: show only once per page (was repeating under every gated training video) martbost 2026-08-26 06:21:37 -05:00
  • cffaf4ffc0 how-pay-works: Does it cap at 8 levels explainer (pass-ups bubble up; Corona catches all) + chatbot + AI prompt martbost 2026-08-26 06:17:07 -05:00
  • 1f5bcd688f how-pay-works: What each level opens up scaling table (illustration, not a promise) + dashboard link martbost 2026-08-26 06:00:31 -05:00
  • be129a46a4 Fix SIWE chain-mismatch: switch wallet to Polygon 137 before sign-in and members-area unlock martbost 2026-08-26 05:36:26 -05:00
  • b923bc18bc Dashboard level ladder: show POL upgrade cost under each level (live from contract, USD in tooltip) martbost 2026-08-26 05:22:30 -05:00
  • 6cf78a37b7 Wallet discovery: detect Phantom (window.phantom.ethereum) + legacy providers[] martbost 2026-08-26 05:14:57 -05:00
  • a3f88c3e33 wallet-notice: MutationObserver so it lands on async-injected connect buttons martbost 2026-08-25 18:44:15 -05:00
  • a413062c5c Config-driven wallet-connect notice (for the Blockaid false-positive window) martbost 2026-08-25 18:40:32 -05:00
  • 0ee7063a76 Wallet help: SafePal + any-wallet in-app-browser path (not just MetaMask/Trust) martbost 2026-08-25 18:18:46 -05:00
  • aba3db2938 Doctrine sweep: your link never retires — the moving link auto-routes martbost 2026-08-25 06:48:32 -05:00
  • 7eb467c07b Lesson 4 callout: link the coaches to the Objection bank (hash-preserving personalization) martbost 2026-08-25 06:16:15 -05:00
  • afe7173680 Objections bank: the what-is-the-product + members-area answer martbost 2026-08-25 06:07:49 -05:00