← back to Nineoh Guide

BRIEF.md

43 lines

# Unofficial 90210 Guide — Build Brief

**Owner:** Steve · **Started:** 2026-07-25 · **Repo:** ~/Projects/nineoh-guide

## Goal
Ship an **unofficial** fan guide for the 90210 TV series as an **Expo (React Native)
iOS app + Vercel-hosted Next.js web app** sharing one backend. Forward goal:
**Apple App Store**, via **TestFlight first**.

## Two committed decisions (2026-07-25)
1. **Ship target = TestFlight-ready, STOP before App Store submit.**
   Build + EAS-package the signed iOS build; do NOT submit to Apple review.
   The submit step needs Steve's interactive Apple ID + 2FA and is a GATED
   approval → draft a `pending-approval` memo, never auto-submit.
2. **Content posture = original text + licensed pro imagery.**
   - 100% ORIGINAL summaries/bios/news blurbs written for this app.
   - Only public-domain / Creative-Commons / explicitly-licensed images.
   - Buying image licenses = SPEND = GATED → draft each purchase to
     `pending-approval`; ship a pending-image placeholder pipeline meanwhile.

## Hard rails (from the pasted feasibility report + Steve's standing rules)
- Branding clearly **"Unofficial"** + disclaimer; NO official logos/title cards/key art.
- NO scraping IMDb/CW; APIs/licensed feeds only (TVmaze/Wikidata OK w/ attribution + rate limits).
- NO verbatim network synopses; original expression only.
- Publicity rights: celebrity imagery is EDITORIAL placement only, never in ads/icon/paywall.
- Formal DMCA page + repeat-infringer policy; UGC (if any) needs report/block/moderation.
- App must NOT be a thin aggregator/webview (Apple 4.2 / Play) — native value:
  saved watchlist, spoiler-state, push, offline reading, moderated discussion.
- Ads (later): AdSense/AdMob only on content-rich screens; app-ads.txt/ads.txt; declare ads.

## Architecture (target)
- `web/`   Next.js (SSR/ISR) on Vercel — SEO editorial pages + shared API routes.
- `mobile/` Expo + EAS — iOS app consuming the same API.
- `packages/core/` shared TS types + data model.
- Postgres (episodes, seasons, cast_people, characters, credits, news_items,
  assets[rights ledger], ugc_posts, dmca_cases).

## Definition of "done" for this loop
Web MVP runs locally + on Vercel; Expo app runs in simulator; EAS build config
valid and TestFlight-ready; rights ledger + placeholder pipeline in place;
DMCA + privacy + disclaimer pages present. Everything past the Apple submit
line and every $ spend is drafted to pending-approval.