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
6ca287042f
Member labels: resolve a brand-new buyer by on-chain wallet so purchase emails name the username, not member #
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-13 07:49:08 -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
3c81df2167
Holding tank: adoption posts to the Telegram payments topic naming the sponsor
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 13:18:59 -05:00
martbost
65ef42fc24
Docs: partner kit: the top spot is claimed by activating with at least the $20 package
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 12:43:07 -05:00
martbost
d6b85f0ce9
Join alias: /join/company and /join/top place partners under member #1 (the company position)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 12:32:26 -05:00
martbost
c2402c4e0e
Docs: partner kit promises top placement under the company via the company link
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 12:30:42 -05:00
martbost
551b860c67
Docs: partner kit mentions the WalletConnect integration
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 12:19:52 -05:00
martbost
9898e3f47f
Docs: partner kit retoned for site owners who know Marty and already run a builder
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 11:49:49 -05:00
martbost
6498d85b20
Docs: partner kit links the explainer video
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 11:38:12 -05:00
martbost
eaaa87281f
Docs: site-owner partner kit (plain-text copy of the shareable page)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 11:21:32 -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
9b60e6414e
Referral purchase email names the buyer: @username in subject and body
...
memberLabel() resolves @username, or the owner's username for a linked
position, else member #id. Subject: '@name just bought a $20 ad package'.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 10:37:45 -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
261f90d843
QA: walk the Traffic and P&L admin panes too
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 07:59:40 -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
martbost
ef088601c3
Admin Traffic tab: referring domains, landing pages, angles, by day
...
traffic.js logs public page views by referring domain (30 s buffered; page_hits
table or traffic.json), coach exposes all join-page views, and
/api/admin/traffic merges page views, join-page views, signups, registrations
and $20+ buyers by first-touch source for 7/30/90/365-day ranges.
Also: line-tree chips no longer truncate own-position labels.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 07:51:01 -05:00
martbost
abc76c47c8
Line tree: gold outline follows the chain's BuyerCounted events, plus a legend
...
The Overview tree painted gold on the first N chips (N = buyer count) instead of
the members the contract actually counted, so a non-buyer listed first showed as
qualified (Hugh's line, 2026-09-12). /api/my/line now flags each member with
qualified from BuyerCounted events for the account's ids; the tree uses that flag
and shows a legend for gold / plain / open chips.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 07:42:24 -05:00
martbost
e46780f872
Legacy bridge: optional src tag (old-domain splash) recorded on the account source
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-12 07:33:36 -05:00