← Docs

NuroBets Production Launch Checklist

Everything David needs to do (with assist from Kai) to go from "site + bot built" to "real users, real money, real picks." Ordered by dependency. Costs in USD.

0. Pre-launch (David blockers)

Hold points - nothing I build further depends on these, but money flow does.

  • nurobets.ai purchased at Porkbun. ~$70/year.
  • nurobets.com purchased at Porkbun. ~$11/year.
  • nurobets.gg purchased at Porkbun. ~$70/year.
  • Wyoming LLC filed at wyobiz.wyo.gov. $100.
  • Registered agent year 1 (Northwest Registered Agent or ZenBusiness). ~$125.
  • EIN from IRS.gov (free, 10 min, requires LLC first).
  • Google Workspace for hello@nurobets.ai. $7/user/mo after domain routes.
  • The Odds API key at the-odds-api.com. $59/mo starter plan.
  • Railway bot token rotated (old one exposed in terminal 2026-04-17).

Subtotal: ~$400 one-time + ~$70/mo recurring so far.

1. Domains routing

Once domains are purchased:

  • Point nurobets.ai DNS at Vercel (CNAME to cname.vercel-dns.com or Vercel's aliased A records)
  • Claim nurobets.ai as a production domain on the Vercel project (vercel domains add nurobets.ai from web/)
  • 301 redirect nurobets.com and nurobets.gg to nurobets.ai (Porkbun handles this free)
  • Update metadataBase in web/src/app/layout.tsx from nurobets.ai (already correct)
  • Update sitemap.ts baseURL (already nurobets.ai)
  • Request Google Search Console + Bing Webmaster Tools verification

2. Email routing

  • Google Workspace primary account: hello@nurobets.ai
  • Set up DKIM + SPF + DMARC DNS records
  • Aliases: capper-apply@, support@, security@ all forward to hello@
  • Test inbound + outbound flow with a real send

3. Bot deployment (Railway)

Project already provisioned by Kai on 2026-04-18:

When ready to deploy:

  • Railway account exists + CLI authed as david@moderngrindtech.com
  • Project nurobets-bot created
  • Repo linked locally
  • Rotate the exposed DISCORD_BOT_TOKEN in the Discord Developer Portal (the old one leaked in terminal output 2026-04-17)
  • From C:\Users\Mgtda\Projects\nurobets:
    railway variables --set DISCORD_BOT_TOKEN=<rotated>
    railway variables --set NUROBETS_GUILD_ID=1493431898049876140
    railway variables --set ANTHROPIC_API_KEY=<separate key for NuroBets>
    railway variables --set DATABASE_URL=<Neon postgres URL>     # after step 5
    railway variables --set REDIS_URL=<Upstash URL>              # after step 5
    railway variables --set ODDS_API_KEY=<from step 0>           # after step 0
    railway variables --set SENTRY_DSN=<from step 4>             # after step 4
    railway up
    
  • Verify GET https://nurobets-bot-production.up.railway.app/health returns 200
  • Verify bot comes online in Discord, responds to /about

4. Error tracking (Sentry)

  • Sign up at sentry.io (free tier, 5k errors/mo is plenty at launch)
  • Create 2 projects: "nurobets-web" (Next.js SDK) and "nurobets-bot" (Node SDK)
  • Copy DSN for each, add to Vercel + Railway env vars
  • Code integration already prepared in web/src/instrumentation.ts + src/bot/services/sentry.js

5. Database (Neon + Upstash)

  • Neon: sign in, create "nurobets-prod" project, get pooled + direct connection strings
  • Run scripts/migrate.sh against the direct connection to apply schema
  • Upstash: sign in, create Redis DB "nurobets-prod", get connection URL
  • Add both URLs to Railway env vars (step 3)
  • Re-deploy bot, verify GET /health returns {db: "ok", redis: "ok"}

6. Real AI picks (replacing stubs)

Current state: src/bot/commands/picks.js has 6 hardcoded picks.

  • The Odds API key added (step 0)
  • src/bot/services/picks-pipeline.js live (scaffolded 2026-04-18)
    • Claude API narrative layer wired
    • XGBoost scorer stub returning random confidence 1-5 (replace week 2)
    • Kelly sizing already works off stored bankroll
  • Historical odds + results ingestion script (weeks 2-3)
  • XGBoost training pipeline (weeks 3-4)
  • Flip feature flag PICKS_MODE=hybrid once XGBoost trained

7. Payment rails

Hold until domain + LLC + email are live.

  • Whop signup with hello@nurobets.ai
  • Create products: Pro ($29.99/mo) + Elite ($79.99/mo) + Elite founding (discount)
  • Webhook endpoint: POST /api/whop/webhook (to be built)
  • NOWPayments signup, verify LLC docs
  • Create IPN endpoint: POST /api/nowpayments/webhook
  • Test both flows with a $1 plan + refund

8. Age verification hardening

  • Discord application add "Age Gate" via Discord's built-in age verification (requires Discord app review)
  • Fallback: existing #age-verify channel + role flow (already in bot)
  • Log age-gate acceptance with timestamp + Discord user ID for compliance

9. Legal review

  • Share /terms + /privacy with a sports-betting-adjacent attorney (ask in relevant subreddits or cold email a firm)
  • Budget: $500-1500 one-time review
  • Revise based on feedback before pay-tier launch

10. First-wave cappers

  • Glizzy + Mar (biqnh) onboarded as first verified cappers (internal test)
  • /apply/capper form wired to a real inbox via CAPPER_APPLY_WEBHOOK_URL env (Discord webhook into a private mod channel)
  • 5 public cappers onboarded before pay-tier launch

11. Compliance audit (self-run, week before launch)

  • Every /pick embed has "Not financial advice / 1-800-GAMBLER / 18+" footer
  • Every web page has the same footer
  • No guaranteed-win language anywhere
  • No bonus-stacking tout language
  • /self-exclude tested - lock works, no way to reverse early
  • Bankroll caps enforced
  • Session limits honored
  • Data export request flow (one-shot script for now, automate later)

12. Soft launch

  • 10 beta users in the Discord
  • 7-day free trial bug hunt
  • Fix critical issues
  • Expand to 50 beta
  • Expand to public

13. Monitoring + on-call

Cron loops already handle most of this:

  • Phase-13 dev loop (15 min cadence) auto-commits + auto-deploys
  • Research publisher (2 hr cadence) drains knowledge queue
  • Silent-failure alerts into _alerts.md surfaced to Discord next tick
  • Log rotation 7-day retention
  • Sentry alert routing to David's email + Discord webhook (after step 4)
  • Uptime monitor hitting /health every 2 min (UptimeRobot free tier)

Total spend at launch

One-time: $550-850 (LLC + registered agent + domains yr1 + possible legal review) Monthly recurring: $200-400/mo (APIs + hosting + workspace) Scale-up recurring: $600-1000/mo at 1k+ users (Claude API usage grows)

When Kai keeps building autonomously

Between task batches, the phase-13 dev loop + research publisher + auto-deploy handle code iteration, content production, and publication. David can check the Discord channel 1493431898049876140 for a running changelog.

18+ only. Not financial advice. 1-800-GAMBLER.