← Insights

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.

This is a timing plus emotion product, not a data product.

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.