martbost
7701a29169
Sponsor to downline messaging: lineage view, daily broadcast (email+inbox), login modal
...
- Downline resolver (3 levels); email visible for directs only, username+ID deeper
- Broadcast composer (rich editor) to directs or full downline, 1/day cap, sends email + on-site inbox
- Upline messages inbox in My line; unmissable sign-in modal for unread, ack marks read
- messages.js dual-mode store; sponsor_messages table; sanitizeRich reused
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-06 08:39:06 -05:00
martbost
57bba0111a
NAS syndication adapter (feature-flagged off): push banner/text to Network Ad Space, reconcile delivery into unified credit pool
...
- nas.js: direct-MySQL writer mirroring CTB's proven payments+sponsorads path (approved:1, pid 1/2, catid 5, remaining counts DOWN)
- Create-time push for banner/text; pause/resume mirrors to NAS deactivate/topUp
- reconcileNas() 5-min loop: reads served, charges delta credits to the shared budget, stops NAS ad when budget dry
- Campaign row shows IAP + '+N net' network views (differentiated stats)
- Inert unless NAS_DB_* env is set; zero prod impact until enabled
- Also: rename Inbox sub-tab to 'Inbox Ads'
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-06 08:11:32 -05:00
martbost
860aedabf6
Video ads (watch-to-earn): duration-tiered pricing, escape-proof player, per-view charge
...
- New 'video' campaign type; MP4/WebM upload or direct https link + required-watch tier (10/30/60s → 3/7/12 cr per view; viewer earns 1/2/4)
- Composer: video fields, tier dropdown, live price hint
- Earn credits > Watch videos sub-tab: no-seek player, server-clock watch floor, daily cap, self-exclusion, single-use tokens
- media-src CSP for direct-link/hosted video; video skips frame-check
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-06 08:03:01 -05:00
martbost
49508c2a13
Banner ads: required IAB size picker (width/height stored, shown in row, maps to NAS)
...
Also lands dormant server-side scaffolding for video ads (type, tiers, validation) — not yet exposed in UI.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-06 07:51:28 -05:00
martbost
b3be71135d
Merge solo Inbox into Earn credits as a sub-tab; unread badge on Earn menu item
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-06 07:41:41 -05:00
martbost
1ee0b5626e
Viral welcome tour + line banner + wall, milestone stepper, rich solo editor, CTA-gated reads
...
- Welcome tour (3 levels x 10s) unlocks welcome credits; line banner in Profile; public /wall/<username>
- 'Your next move' redesigned as a milestone stepper
- Solo composer: BV-style rich editor (H2/H3, inline image+video, undo/redo, raw text)
- Solo read reward now requires clicking through to the advertiser, not just dwelling
- Sanitizer: inline media whitelist + script/style stripped whole
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-06 07:30:49 -05:00
martbost
718d7f2d0e
Built-in transaction viewer: every ledger row verifiable at /tx/<hash>, explorer link when configured
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-06 05:37:29 -05:00
martbost
1c31679b6c
Login ads as post-signin interstitials: Open Ad in new tab, timer here, Go to Dashboard
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-05 16:28:57 -05:00
martbost
2cc2855488
Rich solo composer: WYSIWYG editor, sanitized HTML bodies, media uploads, CTA labels
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-05 15:38:46 -05:00
martbost
f6a3befe09
Onsite solo ads: inbox delivery with read rewards, composer, homepage format live
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-05 15:25:00 -05:00
martbost
15b036b940
Earn viewer v2: full-screen URL visits with countdown, human check, explicit return
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-05 07:23:30 -05:00