SaaS Web App Development — Paywall, Subscription Billing & Deployment

Job ID: 40268256

Budget: $750 – $1,500 USD

FIGHT COMPANION — Web App Deployment & Paywall Integration
We have a fully built, single-file HTML/JavaScript UFC fight analysis and DFS optimization app called Fight Companion. The app is complete. Your job is to deploy it behind a subscription paywall with user auth, Stripe billing, and per-user data persistence.
This is infrastructure work — not a build from scratch. Do not rewrite the front end.

THE APP (Already Built)
7 modules, all functional:
∙ Bet Tracker — bankroll management, P&L, ROI, Kelly Criterion unit sizing
∙ Fight Intel — fighter profiles, ELO, axR% metric, matchup analysis
∙ Card View — full fight card with win probabilities and CSV import
∙ DFS Simulator — Monte Carlo simulation, 10,000 runs per fighter
∙ DFS Projections — median/ceiling/floor, OPT%, ownership projections
∙ DFS Core Plays — auto-ranked cash and GPP lineup recommendations
∙ Lineup Optimizer — 25 unique DraftKings lineups, $50K salary cap
A completed HTML landing/marketing page is also provided.


SUBSCRIPTION TIERS (Stripe)
Three recurring plans — exact pricing TBD by client, must be configurable without code changes:
BASIC — Bet Tracker, Fight Intel, Card View
PRO — All Basic + DFS Simulator, DFS Projections, DFS Core Plays
ELITE — All 7 modules including Lineup Optimizer
Access enforced server-side. Locked modules show an upgrade prompt, not a blank screen.


SCOPE OF WORK
1. User Authentication
∙ Email/password registration and login (Google OAuth a bonus)
∙ Password reset via email
∙ JWT or session-based auth
∙ User dashboard: tier, billing status, next renewal, cancel option
2. Stripe Billing
∙ 3 recurring plans (Basic, Pro, Elite) in Stripe
∙ Stripe Checkout or Elements payment flow
∙ Webhooks: payment success/failure, cancellation, upgrade/downgrade
∙ Proration for mid-cycle plan changes
∙ Failed payment retry via Stripe dunning
3. Access Control
∙ Server-side tier enforcement — not just UI hiding
∙ Upgrade prompt UI for locked modules
∙ Session persistence so in-app data survives page refresh
4. Landing Page
∙ Provided HTML page deployed as public homepage
∙ CTA buttons wired to Stripe Checkout / signup
∙ SEO basics: meta title, description, og:image
5. Admin
∙ View active subscribers and tier breakdown (Stripe Dashboard sufficient)
∙ Manual tier override for comps/refunds
∙ Email list export
6. Hosting & Infrastructure
∙ Deploy to Vercel, Railway, Render, or VPS
∙ Custom domain + SSL
∙ Automated daily database backups
∙ Basic uptime monitoring
7. Data Persistence
∙ Per-user fighter profiles, bets, and bankroll data
∙ Data isolated between users
∙ Sync across sessions and devices
∙ User data export (JSON or CSV)

TIMELINE — 4 PHASES OVER 4–8 WEEKS
Phase 1 (Weeks 1–2): Auth, scaffolding, app served behind login on staging URL
Phase 2 (Weeks 3–4): Stripe billing, webhooks, tier gating, admin panel
Phase 3 (Weeks 5–6): Data persistence, user dashboard, landing page live
Phase 4 (Weeks 7–8): Production deploy, custom domain, security review, handoff docs
Milestone-based payment. No upfront lump sum.


TECH PREFERENCES
∙ Backend: Node.js (Express or Next.js) preferred. Python/FastAPI acceptable.
∙ Database: PostgreSQL preferred. MongoDB acceptable.
∙ Auth: NextAuth, Supabase Auth, or Firebase Auth. No custom crypto.
∙ Payments: Stripe required. No alternatives.
∙ Hosting: Vercel, Railway, or Render preferred.
∙ Source control: GitHub. Full repo access on handoff.

YOUR PROPOSAL MUST INCLUDE
1. Portfolio links to previous SaaS/subscription/paywall projects (live sites preferred)
2. Your Stripe experience — describe a project with recurring billing and webhook handling
3. Proposed tech stack with brief justification
4. Milestone breakdown with deliverables and payment amounts per phase
5. Fixed-price quote OR hourly rate with hours estimated per phase
6. Confirmed availability to start within 7 days of award
7. Post-launch bug-fix support period included
Incomplete proposals will not be reviewed.

DO NOT APPLY IF
∙ You plan to rewrite the existing front end
∙ You cannot provide live portfolio examples of Stripe billing implementations
∙ You cannot commit to starting within 7 days or completing within 8 weeks
∙ Your bid is a generic template that ignores these specifics
Source file provided to shortlisted candidates under NDA. Do not request it before shortlisting.