e03dbbffcf
Audit: ignore history already refunded and campaigns older than the hourly log; login daily fee capped at remaining budget
martbost
2026-09-15 05:45:57 -05:00
84a9063bbe
Admin > Reports: counters audit (views vs delivery logs, login days charged vs shown, featured views, clicks vs views, spend vs budget), daily with Telegram alert
martbost
2026-09-15 05:32:13 -05:00
86a7f83874
Login ads: charge the daily fee only on days the ad was actually shown (last_shown_day); featured views counted
martbost
2026-09-15 05:26:16 -05:00
7423347c95
Featured strip: count impressions (one per viewer per campaign per hour) so featured advertisers see views and the by-hour chart
martbost
2026-09-15 05:21:58 -05:00
a19a3fc31e
Campaigns list: stacked cards on phones with the buttons at the bottom, no sideways scroll (Jim, 2026-09-15)
martbost
2026-09-15 04:37:43 -05:00
f155a8cc24
Sponsor hold: a named sponsor that cannot be paid (payouts off, chain lookup failed, unknown) blocks the first purchase and activation with a message and alerts the admin, instead of silently crediting the company
martbost
2026-09-14 21:00:27 -05:00
1533d377cc
Member updates: paced + retried Sendy opt-in checks (unknowns never cached as declines), explicit recipient list for repairs, recipients recorded on the send log
martbost
2026-09-14 14:24:27 -05:00
6e8f1ccf9d
Member updates: closing text after the notes (sign-off placement)
martbost
2026-09-14 14:21:13 -05:00
14868753c0
Member updates: saved draft (loads into the admin card, Save draft button)
martbost
2026-09-14 14:11:51 -05:00
024170e7f8
Member updates: audience defaults to newsletter opt-ins (Sendy list status), explicit 'everyone' option; sendy.status()
martbost
2026-09-14 13:47:13 -05:00
7bb956e896
Admin > Releases: email an update to members (pick notes, intro, audience, preview, test, send; opt-outs honoured; send log)
martbost
2026-09-14 13:40:01 -05:00
203ebdb4bf
Dashboard payload carries lineBannerUrl so the Overview launch mark counts the banner item (was 7 of 8 vs 8 of 8 on /launch)
martbost
2026-09-14 12:17:12 -05:00
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
martbost
2026-09-14 11:29:10 -05:00
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
martbost
2026-09-14 10:44:36 -05:00
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
martbost
2026-09-14 10:30:58 -05:00
e699513636
My line: show who sponsored each person on every row, all three levels
martbost
2026-09-14 10:15:44 -05:00
f2c155a6d2
My line: sixth grid column so the Activity button sits on the row
martbost
2026-09-14 09:58:47 -05:00
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
martbost
2026-09-14 09:56:14 -05:00
32028b1e8e
Video Maker: live progress bar (stage labels + ffmpeg -progress percent, queue position), page polls every 2.5s
martbost
2026-09-14 09:04:38 -05:00
d57fc40299
Toolkit: render the Spark/Circuit/Nexus sections for members below Surge too (early return skipped them); log toolkit errors
martbost
2026-09-14 08:43:35 -05:00
96760158df
Video Maker: size every end-card line to the frame width; two-line headline and footer in portrait
martbost
2026-09-14 07:18:51 -05:00
9316dfc0db
Toolkit: ship the rest of the ladder (Spark templates + handout, Circuit Video Maker + split tester, Nexus Leader Ops, grants, co-brand, partner code)
martbost
2026-09-14 07:15:43 -05:00
0f030a4943
Copy Engine: scrub en dashes too
martbost
2026-09-14 06:44:11 -05:00
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
martbost
2026-09-14 06:42:55 -05:00
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
martbost
2026-09-14 05:53:02 -05:00
825d0de6c3
Header: Leaderboard link
martbost
2026-09-14 05:40:26 -05:00
6233d112e0
Leaderboard: company account excluded from rankings. Weekly member email: credits unspent, streak, contest rank, tank, line (sponsors by default; memberWeeklyEmail=1 for everyone)
martbost
2026-09-14 05:26:23 -05:00
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
martbost
2026-09-14 05:22:39 -05:00
f7b911bab6
Badge share sheet: Massifly option (copies the post, opens the feed composer)
martbost
2026-09-13 17:23:57 -05:00
8e415c3cf4
Badge share sheet: public badge page with preview image (/b/<user>/<badge>), X/Facebook/Telegram/WhatsApp/LinkedIn/native share, copy link, save image
martbost
2026-09-13 17:13:18 -05:00
e63bc57a99
Badge posts: manual Post to Telegram is admin-only; members' badges still post automatically on unlock
martbost
2026-09-13 17:09:59 -05:00
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
martbost
2026-09-13 16:55:43 -05:00
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
martbost
2026-09-13 13:50:28 -05:00
b9a70dba1a
Sponsor chat: composer grows with the message (up to 45% of the screen) and can be dragged taller
martbost
2026-09-13 13:41:18 -05:00
34098e5565
Watch videos: green-check done screen when the day's videos are finished, like Watch ads
martbost
2026-09-13 08:56:13 -05:00
6589930945
Join page names the owner of the link it was opened with, and tells a member when they are previewing their own page
martbost
2026-09-13 07:54:29 -05:00
6ca287042f
Member labels: resolve a brand-new buyer by on-chain wallet so purchase emails name the username, not member #
martbost
2026-09-13 07:49:08 -05:00
b5eb03456c
Wallet tab: Ad credits card counts earned credits too (promo credits looked like 0)
martbost
2026-09-13 07:29:24 -05:00
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)
martbost
2026-09-13 07:20:47 -05:00
0ad974ca59
Admin traffic: conversion columns (visit to signup, signup to registered, signup to buyer), stacked centered headers
martbost
2026-09-13 07:03:04 -05:00
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
martbost
2026-09-13 06:46:08 -05:00
1faa43780e
Wallet guide + chatbot: Phantom ships with Polygon switched off (Settings > Active Networks)
martbost
2026-09-13 05:07:54 -05:00
4caa0ef5a8
Sign-up guard: honeypot is read-only until a trusted focus and ignores browser autofill (own email); masked value logging
martbost
2026-09-13 04:57:51 -05:00
2bd612d9ba
Admin blog: Save draft / Publish buttons keep the solid style (chips wrapper made them transparent)
martbost
2026-09-12 18:56:10 -05:00
49a98e7ee3
Blog: admin-written coaching articles, server-rendered public /blog with SEO metadata, sitemap, RSS, robots
martbost
2026-09-12 18:42:56 -05:00
1a83f4f2ff
Earn tab: progress hint shows at every stage (the claim-ready hint was unreachable); member guide /earning
martbost
2026-09-12 17:41:13 -05:00
a6dcd02999
Earn: claim streak (5/7/10, 25 every 7th day), after-set prompts for verified visits and launching a campaign
martbost
2026-09-12 17:30:02 -05:00
9d14af0898
Top menu: 'How it works' and 'Ad packages' anchor to homepage sections (#how, #packages); sections clear the sticky nav
martbost
2026-09-12 16:54:55 -05:00
5b4fe133eb
Homepage ticker: speed scales with text length (~70 px/s), pauses on hover/touch; CSS fallback 120 s
martbost
2026-09-12 16:40:23 -05:00
99f6c1f8c6
Dialogs: Cancel used the site's giant .ghost display class by mistake; use the secondary button style
martbost
2026-09-12 16:23:39 -05:00
6395ad3a7e
Dashboard: community toasts for joins, tank arrivals, adoptions, purchases, payouts and qualifications
martbost
2026-09-12 16:03:43 -05:00
a9f10f861d
Wallet tab: 'Wallet connected' with a green check next to the address; explicit 'No wallet connected yet' otherwise
martbost
2026-09-12 15:39:46 -05:00
a385fbf4c2
Username is required: blocking first step on every sign-in until one is saved
martbost
2026-09-12 15:32:42 -05:00
6996186061
Partner page + kit: 'I've been running ad sites for years' (present tense)
martbost
2026-09-12 14:19:27 -05:00
2a96403ffd
Site-owner partner page at /partners: kit content, the explainer video, ?name and ?promo personalisation, company placement CTA
martbost
2026-09-12 13:32:03 -05:00
fb709ddde9
Join page: ?name=First greets the visitor; on /join/company it says the top spot is reserved for them
martbost
2026-09-12 13:25:21 -05:00
3c81df2167
Holding tank: adoption posts to the Telegram payments topic naming the sponsor
martbost
2026-09-12 13:18:59 -05:00
65ef42fc24
Docs: partner kit: the top spot is claimed by activating with at least the $20 package
martbost
2026-09-12 12:43:07 -05:00
d6b85f0ce9
Join alias: /join/company and /join/top place partners under member #1 (the company position)
martbost
2026-09-12 12:32:26 -05:00
c2402c4e0e
Docs: partner kit promises top placement under the company via the company link
martbost
2026-09-12 12:30:42 -05:00
9898e3f47f
Docs: partner kit retoned for site owners who know Marty and already run a builder
martbost
2026-09-12 11:49:49 -05:00
6498d85b20
Docs: partner kit links the explainer video
martbost
2026-09-12 11:38:12 -05:00
eaaa87281f
Docs: site-owner partner kit (plain-text copy of the shareable page)
martbost
2026-09-12 11:21:32 -05:00
fc55714757
Partner promo codes: reusable codes that add free ad credits, tracked per redemption
martbost
2026-09-12 10:53:17 -05:00
9b60e6414e
Referral purchase email names the buyer: @username in subject and body
martbost
2026-09-12 10:37:45 -05:00
ebac2fcb32
Member area: in-page dialogs replace every browser prompt/confirm
martbost
2026-09-12 09:31:43 -05:00
261f90d843
QA: walk the Traffic and P&L admin panes too
martbost
2026-09-12 07:59:40 -05:00
0cfbe67196
Admin: register the Traffic pane in the title map (the menu click was a no-op); bump script version tags
martbost
2026-09-12 07:57:43 -05:00
ef088601c3
Admin Traffic tab: referring domains, landing pages, angles, by day
martbost
2026-09-12 07:51:01 -05:00
abc76c47c8
Line tree: gold outline follows the chain's BuyerCounted events, plus a legend
martbost
2026-09-12 07:42:24 -05:00
e46780f872
Legacy bridge: optional src tag (old-domain splash) recorded on the account source
martbost
2026-09-12 07:33:36 -05:00
b844a227d3
My line: show payouts from an email-only session and across all owned positions
martbost
2026-09-12 04:46:22 -05:00
1fd61eca56
Telegram: echo payouts into a shared cross-program topic
martbost
2026-09-11 18:51:03 -05:00
024027a2da
Campaign form: show the banner size and image rows at load (banner is the default type), not only after a type change
martbost
2026-09-11 15:25:46 -05:00
63bedddc94
Sign-up guard: a filled honeypot triggers the icon check instead of a silent drop (form-filler extensions fill hidden fields)
martbost
2026-09-11 14:17:29 -05:00
cd26161db5
Country-tier targeting for campaigns: DB-IP lite lookup, tier lists in Settings, Show-to tiers on every format, geo-restricted ads kept off the network, per-country serve stats
martbost
2026-09-11 12:02:40 -05:00
0f855292f5
Sign-up guard: honeypot field renamed so browser autofill cannot trip it; log every guard rejection; clearer stale-page message
martbost
2026-09-11 10:30:11 -05:00
fbd83bf933
Wall: center the sponsor block on phones
martbost
2026-09-11 09:25:28 -05:00
78e4c76a89
Wall: optional intro video (YouTube, Vimeo or .mp4) from Profile, embedded under the bio
martbost
2026-09-11 09:24:10 -05:00
c9f7a50b30
Admin Members: show the sponsor's username, note share-code joins, flag dead sponsor links
martbost
2026-09-11 09:06:13 -05:00
ab306937e1
MoonPay fallback: use the working /buy/matic page (the /buy/pol slug 404s)
martbost
2026-09-11 09:01:17 -05:00
8b16d52ca6
Wallets guide: website, App Store, Google Play and extension links per wallet; MoonPay button
martbost
2026-09-11 08:47:30 -05:00
fe1edd945c
Banner kit: 17 new member banners by angle (1200x630 set, leaderboards, rectangles)
martbost
2026-09-11 08:40:06 -05:00
b97e139ef8
Hotfix: quote reserved column name lead in lead_marks (MySQL 8 boot failure)
martbost
2026-09-11 08:10:19 -05:00
09dc6ed368
Dormant-lead rescue: 10-day warning, 14-day move to the holding tank, Contacted-them reset, dead sponsor links to the tank
martbost
2026-09-11 08:06:40 -05:00
9709ce782d
Holding tank: unsponsored free members, first-come adoption (own $20 buy required, 2 open, 7-day window, twice max), release to tank, admin view; PIF wallet-to-wallet POL gift with logging
martbost
2026-09-11 07:57:44 -05:00
9939c0487f
Admin tables: action column keeps its width, email wraps, shorter dates; no sideways scroll needed
martbost
2026-09-11 07:41:50 -05:00
6a21b4dc62
Admin tables: scroll instead of clipping the last column; Joined stays on one line
martbost
2026-09-11 07:32:29 -05:00
cdb580c1f4
Launch checklist: read buyer count and referrals from the dashboard endpoint
martbost
2026-09-11 07:29:01 -05:00
bf5371ab20
Campaign scheduling (start/end, solo send-from), scheduled NAS push + end sweep, views-by-hour chart
martbost
2026-09-11 06:53:53 -05:00
159e19dcdf
Sign-up code guard: honeypot, form age, per-IP + global limits, progressive icon check, burst alert
martbost
2026-09-11 06:30:03 -05:00
f9b198a49b
Your links: collapsed band per angle; Share button only where a share sheet exists
martbost
2026-09-11 06:05:02 -05:00
f7c840dee4
Training: Wallets and buying POL guide (/wallets), guide link on Buy packages, chatbot answers
martbost
2026-09-10 17:20:31 -05:00
496133b99e
Angle join pages are squeeze pages: hook, video, one capture card, three points; full page stays on the plain link
martbost
2026-09-10 16:09:03 -05:00
fe9661ec33
Join page: keep the Sign in link clear of the byline on narrow screens
martbost
2026-09-10 16:04:16 -05:00