Public release notes. Commit hashes for every ship. Build-in-public is a choice we made on day one and we have stuck with it. If you want the firehose, watch our main branch.
/upgrade honesty pass + /upgrade-crypto producer
/upgrade stops advertising Elite like a buyable tier and surfaces the crypto path. New /upgrade-crypto command mints a NOWPayments invoice via the web API and returns a pay-with-crypto link. Elite stays locked until the 300-pick record threshold.
/upgrade/{pro,elite,success,cancel} landing pages
Four upgrade-flow pages that were 404 until now. Pro offers dual-path checkout (Whop card + Discord crypto command), Elite renders a live progress bar against the 300-settled-pick threshold, success and cancel close the NOWPayments redirect loop.
Sentry optional-dep wrapper + real /health data-plane probes
Bot and web both wire Sentry as an optional dep, no-op without SENTRY_DSN or the package. Bot /health now probes DB and Redis with 500ms timeouts and returns 503 when a configured dep is down so oncall gets paged on real outages, not just process liveness.
NOWPayments subscription tier upgrade IPN
Webhook parses order_id 'sub:<discord>:<tier>' on payment_status=finished and upserts users.tier plus fires the paid_pro funnel event. Fantasy escrow continues to route through /api/fantasy/ipn unchanged.
/status system status page
7 services, 5 SLA targets, recent-incident log. Pairs with /trust and /security.
Sports hubs: /soccer, /ncaab, /nfl, /mlb
Four dedicated sport pages. Each with markets we cover, what actually moves the needle, and cross-links to calculators.
Competitor comparisons: /compare/oddsjam + /compare/unabated
Two new deep-dive pages. /compare hub refreshed with card links and fixed stale 85/15 to 50/50 rev-share stat.
/trust + /security transparency pages
Public commitments (6 rules) + security posture (what we store, what we do not, controls, disclosure). Structured + accountable.
/tools hub with 4 calculators
Interactive CLV, no-vig, Kelly, and EV calculators. All client-side, all force-static for perf. No signup required.
Capper follow system
/follow-capper, /unfollow-capper, /my-cappers. Uses existing capper_follows schema. Handles null CLV gracefully until the cappers backfill lands.
/whatsnew + /learn slash commands
Discoverability commands. /whatsnew surfaces recent ships; /learn points to curated content + docs + Academy modules.
Academy modules 5-9
CLV, Bankroll + Kelly, Parlay Reality, Market Types, Line Movement. 25 new questions. Quarter-Kelly-first pedagogy.
Level badges auto-award
LEVEL_BADGES map in addXP. Rookie Sharp 5, Rising Sharp 10, Veteran 25, Elite Sharp 50, Legend 100.
DATA_STACK, ROADMAP, CAPPER_AGREEMENT, API
Four new reference docs. Which odds feeds we use and why. Tier 1-3 feature status with honest markers. Plain-English capper agreement. API scaffold.
Three new blog essays
What CLV is and why we publish it. Why NuroPicks splits affiliate revenue 50/50 with cappers. The 2026 AI sports betting landscape.
Brand-noun disambiguation
Surface copy across 29 files changed from nurobets.ai to NuroPicks. Domain-level references (canonical URLs, env vars, emails) preserved.
/daily streak-bonus cap
Capped streak bonus at 100 XP per claim. Kills a multi-week exploit that could generate 10,000+ XP single claims.
2026-04-16Infra
Neon Postgres wired to Railway bot
DATABASE_URL set on nurobets-bot. 12-table schema + bankroll migration applied. Bot now persists across restarts.