martbost
6e8f1ccf9d
Member updates: closing text after the notes (sign-off placement)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 14:21:13 -05:00
martbost
14868753c0
Member updates: saved draft (loads into the admin card, Save draft button)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 14:11:51 -05:00
martbost
024170e7f8
Member updates: audience defaults to newsletter opt-ins (Sendy list status), explicit 'everyone' option; sendy.status()
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 13:47:13 -05:00
martbost
7bb956e896
Admin > Releases: email an update to members (pick notes, intro, audience, preview, test, send; opt-outs honoured; send log)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 13:40:01 -05:00
martbost
119644d688
Line at a glance + My line: every level shows who made their $20+ buy and how many qualifying buyers of their own they have (Clinton); 60s member cache for line views
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 11:29:10 -05:00
martbost
0a19e77e7f
Badges count qualifying buyers across linked positions (never regress); line chips light on any of a member's positions; buyers tile notes linked-position buyers
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 10:44:36 -05:00
martbost
1fad5bdab2
No-payout positions (siteConfig.noPayoutIds, default 25): linkage only. Buy-from picker disables them, purchases from them refused, joins routed away from them and their upline chain
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 10:30:58 -05:00
martbost
e699513636
My line: show who sponsored each person on every row, all three levels
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 10:15:44 -05:00
martbost
f2c155a6d2
My line: sixth grid column so the Activity button sits on the row
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 09:58:47 -05:00
martbost
201d249738
My line: Activity drop-down on every row, all three levels (last seen, stage, ads today, campaigns, link views, line, wallet, badges, Working/Quiet); Video Maker font override for local runs
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 09:56:14 -05:00
martbost
32028b1e8e
Video Maker: live progress bar (stage labels + ffmpeg -progress percent, queue position), page polls every 2.5s
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 09:04:38 -05:00
martbost
d57fc40299
Toolkit: render the Spark/Circuit/Nexus sections for members below Surge too (early return skipped them); log toolkit errors
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 08:43:35 -05:00
martbost
9316dfc0db
Toolkit: ship the rest of the ladder (Spark templates + handout, Circuit Video Maker + split tester, Nexus Leader Ops, grants, co-brand, partner code)
...
- Spark: one-tap banner/text campaign templates aimed at the member's link (POST /api/my/toolkit/template); printable QR handout at /handout/<username>
- Circuit: videomaker.js renders every promo video/short with the member's end card + QR via ffmpeg (Dockerfile adds ffmpeg + ttf-dejavu), hosted in Spaces; split tester compares join angles
- Nexus: Leader Ops (three-level triage, stalled flags, one-click nudges), AI team broadcast kind + Send to my team, credit grants from the leader's earned pool, co-branded join page (sponsor bio for level-3 sponsors), member-funded partner code (promo_codes.funder; redemption charges the funder) + /partners?ref=<username>
- toolkit ladder all live; chatbot updated; my.js v20260914e, site.css v20260914c, join.js/partners.js v20260914a
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 07:15:43 -05:00
martbost
c1f58b2acf
Promo toolkit by badge + AI Copy Engine at Surge: posts, DMs, follow-ups, objection replies, emails, stories in the member's name; monthly free allowance by badge (20/60/150), then ad credits per generation; admin usage view
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 06:42:55 -05:00
martbost
b09e5dce8b
Overview: Getting-started stepper (username, link wallet, switch on payouts, first package) with one guided button per step; soft nudge, collapsible, never a gate
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 05:53:02 -05:00
martbost
825d0de6c3
Header: Leaderboard link
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 05:40:26 -05:00
martbost
6233d112e0
Leaderboard: company account excluded from rankings. Weekly member email: credits unspent, streak, contest rank, tank, line (sponsors by default; memberWeeklyEmail=1 for everyone)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 05:26:23 -05:00
martbost
b0ef3b3a58
Leaderboard + referral contest: /leaderboard (week/month/all, read from chain, own positions excluded), Overview card with own rank, weekly and monthly winners recorded at rollover with credit ladders granted automatically and announced to Telegram
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 05:22:39 -05:00
martbost
b3523e9dc4
Release notes + roadmap: /whats-new page, Overview What's new card, Admin > Releases editor
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 04:54:43 -05:00
martbost
f7b911bab6
Badge share sheet: Massifly option (copies the post, opens the feed composer)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-13 17:23:57 -05:00
martbost
8e415c3cf4
Badge share sheet: public badge page with preview image (/b/<user>/<badge>), X/Facebook/Telegram/WhatsApp/LinkedIn/native share, copy link, save image
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-13 17:13:18 -05:00
martbost
e63bc57a99
Badge posts: manual Post to Telegram is admin-only; members' badges still post automatically on unlock
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-13 17:09:59 -05:00
martbost
964a02a342
Achievement badges: personalised badge image auto-posted to the Telegram payments topic and main group on unlock (once per badge), Post to Telegram button, feed toast
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-13 16:55:43 -05:00
martbost
0c58b80184
Holding tank: no releasing an adoptee within 3 days of pickup, dropped adoptions count toward the two-adoption limit, releases posted to the feed and Telegram
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-13 13:50:28 -05:00
martbost
b9a70dba1a
Sponsor chat: composer grows with the message (up to 45% of the screen) and can be dragged taller
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-13 13:41:18 -05:00
martbost
34098e5565
Watch videos: green-check done screen when the day's videos are finished, like Watch ads
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-13 08:56:13 -05:00
martbost
6589930945
Join page names the owner of the link it was opened with, and tells a member when they are previewing their own page
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-13 07:54:29 -05:00
martbost
b5eb03456c
Wallet tab: Ad credits card counts earned credits too (promo credits looked like 0)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-13 07:29:24 -05:00
martbost
53f87f79ba
Blog syndication: publishing an article posts it to X and Instagram through Blotato (cover via media upload, once per article, retry button, status column)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-13 07:20:47 -05:00
martbost
0ad974ca59
Admin traffic: conversion columns (visit to signup, signup to registered, signup to buyer), stacked centered headers
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-13 07:03:04 -05:00
martbost
4efba20d4e
Earn: video stops when leaving the tab/pane, 'all watched today' message, open earn tokens survive a redeploy; admin member search matches as you type, clearer old-site line; QA earn harness follows the done screen
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-13 06:46:08 -05:00
martbost
0c7f957db4
Admin: member search + drilldown card (identity, chain, credits, line, purchases, payouts, campaigns) with username/sponsor/wallet/credits/delete actions; sortable + filterable admin tables; Earn tab zero-credit button wording
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-13 06:27:07 -05:00
martbost
1faa43780e
Wallet guide + chatbot: Phantom ships with Polygon switched off (Settings > Active Networks)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-13 05:07:54 -05:00
martbost
4caa0ef5a8
Sign-up guard: honeypot is read-only until a trusted focus and ignores browser autofill (own email); masked value logging
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-13 04:57:51 -05:00
martbost
2bd612d9ba
Admin blog: Save draft / Publish buttons keep the solid style (chips wrapper made them transparent)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 18:56:10 -05:00
martbost
49a98e7ee3
Blog: admin-written coaching articles, server-rendered public /blog with SEO metadata, sitemap, RSS, robots
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 18:42:56 -05:00
martbost
1a83f4f2ff
Earn tab: progress hint shows at every stage (the claim-ready hint was unreachable); member guide /earning
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 17:41:13 -05:00
martbost
a6dcd02999
Earn: claim streak (5/7/10, 25 every 7th day), after-set prompts for verified visits and launching a campaign
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 17:30:02 -05:00
martbost
9d14af0898
Top menu: 'How it works' and 'Ad packages' anchor to homepage sections (#how, #packages); sections clear the sticky nav
...
The Ad packages link pointed at /#ladder, an id that did not exist on the homepage.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 16:54:55 -05:00
martbost
5b4fe133eb
Homepage ticker: speed scales with text length (~70 px/s), pauses on hover/touch; CSS fallback 120 s
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 16:40:23 -05:00
martbost
99f6c1f8c6
Dialogs: Cancel used the site's giant .ghost display class by mistake; use the secondary button style
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 16:23:39 -05:00
martbost
6395ad3a7e
Dashboard: community toasts for joins, tank arrivals, adoptions, purchases, payouts and qualifications
...
A second, quieter toast (bottom-left, one per 4 s) shows site-wide activity from the
live feed for every signed-in member; personal payout toasts are unchanged. The server
pushes Joined (at first username, with tank flag) and Adopted events onto the feed.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 16:03:43 -05:00
martbost
a9f10f861d
Wallet tab: 'Wallet connected' with a green check next to the address; explicit 'No wallet connected yet' otherwise
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 15:39:46 -05:00
martbost
a385fbf4c2
Username is required: blocking first step on every sign-in until one is saved
...
showOnboard(required) has no skip and no dismiss; a suggestion from the email
prefix is prefilled (GET /api/my/username-suggest, made unique); the member
area does not render until the username exists. Welcome tour and login ad still
run once for invite arrivals afterwards. Wallet-only sessions are unaffected.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 15:32:42 -05:00
martbost
6996186061
Partner page + kit: 'I've been running ad sites for years' (present tense)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 14:19:27 -05:00
martbost
2a96403ffd
Site-owner partner page at /partners: kit content, the explainer video, ?name and ?promo personalisation, company placement CTA
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 13:32:03 -05:00
martbost
fb709ddde9
Join page: ?name=First greets the visitor; on /join/company it says the top spot is reserved for them
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 13:25:21 -05:00
martbost
fc55714757
Partner promo codes: reusable codes that add free ad credits, tracked per redemption
...
promos.js (promo_codes + promo_redemptions, JSON fallback): create/update codes with
credits, partner, optional cap and expiry, on/off. Redeemed once per account either
from a join link ?promo=CODE (cookie, applied at signup) or the Overview box
'Have a promo code?' (/api/my/promo/redeem). Admin > Traffic gets a Partner promo
codes card (create, toggle, uses, recent redemptions). Chatbot line added.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 10:53:17 -05:00
martbost
ebac2fcb32
Member area: in-page dialogs replace every browser prompt/confirm
...
Mobile Safari shows a red 'Suppress dialogs' option on the second native pop-up
in a row and, once tapped, swallows every later prompt on the site until reload
(Hugh, 2026-09-12, campaign top-up). IAP.ask / IAP.confirmBox in common.js render
a modal-card dialog (Enter/Escape, focus, backdrop cancel); all nine call sites in
my.js use them (top-up credits, link insert x2 with selection restore, pay it
forward, adopt note, release, unlink, add position, Trust Wallet check).
Version tags bumped on every page that loads common.js.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 09:31:43 -05:00
martbost
0cfbe67196
Admin: register the Traffic pane in the title map (the menu click was a no-op); bump script version tags
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 07:57:43 -05:00