March 2026
Nektar Rival Alerts
A product requirements document for a timing-and-emotion sports app: fast rival-loss alerts, instant roast generation, and private sharing that stays in the user's control.
Overview
Nektar Rival Alerts is an MVP built around one emotional moment: your rival loses, you find out immediately, and your message is already written.
The product is not trying to be a full sports data platform. It only needs to do three things exceptionally well: detect a rival loss fast, generate usable copy instantly, and let the user share it wherever they already talk.
Core Value
Instant awareness of rival losses.
One-tap message generation across clean, funny, and savage tones.
Private, compliant, user-controlled sharing instead of posting on the user’s behalf.
MVP Goals
Deliver alerts within 60 to 90 seconds of a game going final.
Keep sharing friction low enough that copy is the dominant user action.
Monetize at signup with a paid subscription path instead of waiting to prove value later.
Target User
Primary users are college football fans with real emotional investment in a specific rivalry.
Secondary users include alumni group chats, friend groups, and other high-engagement sports fans who want to react quickly without composing a message from scratch.
Scope
Included in v1: roughly ten major rivalries, loss detection only, private alerts, message generation, copy-to-share UX, and paid plans at launch.
Excluded from v1: auto-posting to X or Instagram, direct messaging third parties, multi-sport support, and play-by-play notifications.
User Flow
Onboarding: sign up, pick a rivalry, choose tone preference, hit the paywall, and activate a plan.
Alert moment: the rival loses, the user receives an email or web notification, and sees three ready-to-copy variants immediately.
Sharing: the user copies a message and pastes it into iMessage, X, Discord, or a group chat.
Functional Requirements
Rivalry tracking stores the selected team, rival pairing, and user subscription state.
A polling worker checks an external sports source, waits for `FINAL`, confirms a loss, and emits a deduplicated alert event.
A template engine injects team and score variables into curated clean, funny, and savage variants while reducing repetition.
Notifications ship through email and web push first, with deduplication, delivery logging, and preference controls.
Billing uses Stripe for plan status, gating, and subscription enforcement.
Architecture
Frontend: lightweight web app focused on alert display and copy UX.
Backend: FastAPI API plus a polling worker.
Database: Neon Postgres for users, teams, games, subscriptions, templates, and send logs.
External services: ESPN scrape as the initial sports data source, SendGrid or Postmark for email, and Stripe for payments.
Data Model
Users: identity, contact info, creation timestamp, and plan type.
Teams: canonical team records by sport.
Games: schedule and final result snapshots for tracked teams.
Subscriptions: per-user rivalry tracking state.
Templates: tone-tagged message templates.
Send Log: alert delivery history and deduplication source of truth.
Risks
Legal and compliance risk stays low by never messaging third parties directly. The app only notifies the subscribed user.
Sports data reliability needs retries and fallback logic because scraping can break.
Deliverability and spam risk are reduced by curated templates, frequency controls, and deduplicated sending.
Seasonality is real, so expansion into more rivalries, more sports, or user-generated templates is likely required after MVP validation.
Blocking Decisions
Choose the MVP notification channel set: email only, or email plus SMS.
Decide whether the rivalry list is a strict top ten or a flexible curated set.
Keep templates curated at launch unless there is a strong reason to accept user-generated copy immediately.
Lock the monthly subscription price.
Definition Of Done
A user can sign up, choose a rivalry, and receive a real alert when that rival loses.
The alert arrives within the latency target and exposes at least three copy-ready variants.
Payments work, access control works, and the product does not message anyone except the subscribed user.
Next Build Step
The next practical step is turning this PRD into three concrete deliverables: a Neon SQL schema, a FastAPI worker for final-score polling and alert fanout, and a thin web app flow for signup, rivalry selection, and copy-ready notifications.