[object Object]

← back to Nineoh Guide

auto-save: 2026-07-26T08:11:40 (4 files) — apps/web/app/layout.tsx apps/web/app/sitemap.ts db/recaps/s1.json apps/web/app/community/

71ac749389e1816aaff09eade8324296c0688067 · 2026-07-26 08:11:48 -0700 · Steve Abrams

Files touched

Diff

commit 71ac749389e1816aaff09eade8324296c0688067
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Sun Jul 26 08:11:48 2026 -0700

    auto-save: 2026-07-26T08:11:40 (4 files) — apps/web/app/layout.tsx apps/web/app/sitemap.ts db/recaps/s1.json apps/web/app/community/
---
 apps/web/app/community/page.tsx | 86 +++++++++++++++++++++++++++++++++++++++++
 apps/web/app/layout.tsx         |  1 +
 apps/web/app/sitemap.ts         |  1 +
 db/recaps/s1.json               |  8 ++--
 4 files changed, 92 insertions(+), 4 deletions(-)

diff --git a/apps/web/app/community/page.tsx b/apps/web/app/community/page.tsx
new file mode 100644
index 0000000..ed8e2ce
--- /dev/null
+++ b/apps/web/app/community/page.tsx
@@ -0,0 +1,86 @@
+export const metadata = {
+  title: "Community",
+  description:
+    "Where 90210 fans gather — Reddit, Discord discovery, and the 9021OMG rewatch podcast. Links out to independent fan communities.",
+};
+
+type Link = { name: string; desc: string; href: string; icon: string; verified: string };
+
+const REDDIT: Link[] = [
+  {
+    name: "r/90210",
+    desc: "The main 90210 subreddit — episode talk, cast news, and rewatch threads for the CW-era series and the wider franchise.",
+    href: "https://www.reddit.com/r/90210/",
+    icon: "👽",
+    verified: "active subreddit",
+  },
+  {
+    name: "Search all 90210 subreddits",
+    desc: "Reddit's own search for every 90210 community, including original-series and franchise subs.",
+    href: "https://www.reddit.com/search/?q=90210&type=sr",
+    icon: "🔎",
+    verified: "live search",
+  },
+];
+
+const DISCORD: Link[] = [
+  {
+    name: "Browse 90210 Discord servers",
+    desc: "There's no single official 90210 server, so this is an honest search of public listings — fan servers come and go, so we point you to discovery rather than a link that expires.",
+    href: "https://disboard.org/search?keyword=90210",
+    icon: "💬",
+    verified: "server directory",
+  },
+];
+
+const PODCASTS: Link[] = [
+  {
+    name: "9021OMG",
+    desc: "The official rewatch podcast — original stars Jennie Garth (Kelly) and Tori Spelling (Donna) revisit the series episode by episode.",
+    href: "https://www.google.com/search?q=9021OMG+podcast",
+    icon: "🎙️",
+    verified: "fan podcast",
+  },
+];
+
+function Group({ title, links }: { title: string; links: Link[] }) {
+  return (
+    <>
+      <h2>{title}</h2>
+      <div style={{ display: "grid", gap: 12, gridTemplateColumns: "repeat(auto-fill, minmax(260px, 1fr))" }}>
+        {links.map((l) => (
+          <a
+            key={l.href}
+            className="card"
+            href={l.href}
+            target="_blank"
+            rel="noopener noreferrer"
+            style={{ display: "flex", flexDirection: "column", gap: 6, color: "inherit" }}
+          >
+            <div style={{ fontSize: 26 }}>{l.icon}</div>
+            <strong style={{ fontFamily: "var(--font-display)", fontSize: 16 }}>
+              {l.name} ↗
+            </strong>
+            <span style={{ color: "var(--muted)", fontSize: 12.5, flex: 1 }}>{l.desc}</span>
+            <span className="pill" style={{ alignSelf: "flex-start" }}>{l.verified}</span>
+          </a>
+        ))}
+      </div>
+    </>
+  );
+}
+
+export default function Community() {
+  return (
+    <section>
+      <h1>Community</h1>
+      <p style={{ color: "var(--muted)", fontSize: 13 }}>
+        Where 90210 fans actually hang out. These are independent, fan-run
+        communities — we link out, we don't host or moderate them.
+      </p>
+      <Group title="Reddit" links={REDDIT} />
+      <Group title="Discord" links={DISCORD} />
+      <Group title="Rewatch podcast" links={PODCASTS} />
+    </section>
+  );
+}
diff --git a/apps/web/app/layout.tsx b/apps/web/app/layout.tsx
index 4b0a1b6..ddefa24 100644
--- a/apps/web/app/layout.tsx
+++ b/apps/web/app/layout.tsx
@@ -44,6 +44,7 @@ export default function RootLayout({ children }: { children: React.ReactNode })
               <a href="/cast">Cast</a>
               <a href="/news">News</a>
               <a href="/games">Games</a>
+              <a href="/community">Community</a>
               <a href="/search">Search</a>
             </nav>
           </div>
diff --git a/apps/web/app/sitemap.ts b/apps/web/app/sitemap.ts
index 7fb42a1..b34fece 100644
--- a/apps/web/app/sitemap.ts
+++ b/apps/web/app/sitemap.ts
@@ -12,6 +12,7 @@ export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
     "/cast",
     "/news",
     "/games",
+    "/community",
     "/search",
     "/legal/disclaimer",
     "/legal/dmca",
diff --git a/db/recaps/s1.json b/db/recaps/s1.json
index f3b3d24..3b1c62f 100644
--- a/db/recaps/s1.json
+++ b/db/recaps/s1.json
@@ -10,18 +10,18 @@
   "8": "As homecoming nears, Adrianna returns and tries to repair a fractured friendship that her ex-best-friend isn't ready to forgive — and an unexpected new connection quietly takes root.",
   "9": "A long-buried family secret finally surfaces for Annie and Dixon, while what starts as an easygoing girls' night takes a sharply tense turn.",
   "10": "Jealousy boils over around Annie's sweet-sixteen as old rivalries sharpen, and campus gossip swirls around a classmate's sudden change of fortune.",
-  "11": "Old friendships strain toward a breaking point, a houseguest moves in with the Wilsons, and shifting social alliances shake up the whole group.",
+  "11": "A newly-surfaced Wilson relative settles into the house, Naomi drifts toward a faster crowd, and Silver's jealousy flares when a cheerleader sets her sights on Dixon — all as a longtime friendship quietly curdles.",
   "12": "Life-changing news lands for one of the show's veterans as budding romances and buried secrets threaten to upend everyone's plans.",
   "13": "An extravagant gift sparks a clash between the Wilson women, long-held secrets inch toward the surface, and a day at the beach brings two friends closer.",
-  "14": "Hard decisions weigh on the group as play tryouts loom, and leaning on friends for support turns out to be more complicated than anyone expects.",
-  "15": "Difficult truths come out at home while a new friendship stokes insecurity inside an established couple.",
+  "14": "Adrianna leans on Naomi and Kelly through a wrenching personal decision, while Ethan coaches a nervous Annie through the school-play auditions.",
+  "15": "Adrianna finally says the hard words out loud to the people who need to hear them, while Annie bristles at how close Ethan is getting with a new friend, Rhonda.",
   "16": "A chance encounter intrigues Naomi, a Valentine's plan falls apart, and simmering jealousy starts to spill into the open.",
   "17": "Naomi is drawn to a magnetic, volatile newcomer even as an established relationship hits a fresh and painful snag.",
   "18": "When one couple tries to slow things down, a solo road trip to Kansas becomes an emotionally fraught detour.",
   "19": "A familiar face arrives in Beverly Hills as road trips, spring-break commitments, and old ties pull the group in very different directions.",
   "20": "The Wilsons close the door on Kansas with a Beverly Hills-style yard sale, while old friends navigate the start of new chapters.",
   "21": "The unexpected return of Naomi's older sister upends her world just as a double date and a big reveal come to a head.",
-  "22": "Bachelor and bachelorette celebrations split the group for a night out that goes nowhere near as planned.",
+  "22": "Navid and Adrianna's engagement means dueling send-offs — her warm bachelorette at the Wilsons', his boys' bachelor night that veers well off the rails.",
   "23": "Prom prep glams up the girls, and a decidedly mismatched pairing sets the stage for an eventful night.",
   "24": "The season builds to a prom night where long-held secrets, tangled feelings, and a dramatic turn all collide as summer arrives."
 }

← 7988044 cast: show info only (name/character/bio), drop headshot pho  ·  back to Nineoh Guide  ·  recaps: approve S1 (reviewed) + punch up 9 vaguest S2-S5 rec 259dc22 →