import Link from "next/link"; import { Bell, Bookmark, Calendar, Clock, FileText, Heart, HelpCircle, Rss, Shield, Share2, Zap, } from "lucide-react"; function Section({ id, title, icon: Icon, children }: { id: string; title: string; icon: React.ElementType; children: React.ReactNode; }) { return (

{title}

{children}
); } function Item({ icon: Icon, color, title, children }: { icon: React.ElementType; color: string; title: string; children: React.ReactNode; }) { return (

{title}

{children}

); } export default function HowItWorksPage() { return (

How it works

A quick guide to PocketVeto's features.

{/* Jump links */}
{[ { href: "#follow", label: "Following" }, { href: "#collections", label: "Collections" }, { href: "#notifications", label: "Notifications" }, { href: "#briefs", label: "AI Briefs" }, { href: "#bills", label: "Bills" }, ].map(({ href, label }) => ( {label} ))}
{/* Following */}

Follow any bill to track it. PocketVeto checks for changes — new text, amendments, status updates — and notifies you through your configured channels. Three modes let you tune the signal to your interest level.

Alerts on all material changes: new text published, amendments filed, and status updates like floor votes or committee referrals. Alerts only when the bill advances toward becoming law — new official text, floor scheduling, or committee passage. Useful when you oppose a bill and only need to act if it gains traction. All the alerts of neutral mode, plus periodic reminders to contact your representative. Use this when you actively support a bill and want to stay engaged.

You can also follow members (get alerts when they sponsor new bills) and{" "} topics (get alerts when new bills matching that topic are briefed). Member and topic follows use the neutral mode only.

{/* Collections */}

A collection is a named, curated group of bills — like a playlist for legislation. Use collections to track a policy area, build a watchlist for an advocacy campaign, or share research with colleagues.

Give it a name (e.g. “Healthcare Watch”) and add bills from any bill detail page using the bookmark icon next to the Follow button. Every collection has a unique share link. Anyone with the link can view the collection — no account required. The link works whether the collection is public or private.

Public vs. private: Both have share links. Marking a collection public signals it may appear in a future public directory; private collections are invisible to anyone without your link.

{/* Notifications */}

PocketVeto delivers alerts through two independent channels — use either or both.

ntfy {" "}is a free, open-source push notification service. Configure a topic URL in{" "} Notifications{" "} and receive real-time alerts on any device with the ntfy app. Pause push notifications during set hours (e.g. 10 PM – 8 AM). Events that arrive during quiet hours are queued and sent as a batch when the window ends. Instead of one push per event, receive a single bundled summary on a daily or weekly schedule. Your RSS feed is always real-time regardless of this setting. A private, tokenized RSS feed of all your bill alerts. Subscribe in any RSS reader (Feedly, NetNewsWire, etc.). Completely independent of ntfy.
{/* AI Briefs */}

For bills with published official text, PocketVeto generates a plain-English AI brief.

A plain-English summary, key policy points with references to specific bill sections (§ chips), and a risks section that flags potential unintended consequences or contested provisions. Click the share icon in the brief panel to copy a public link. Anyone can read the brief at that URL — no login required. Use the Draft Letter panel (below the brief) to generate a personalised letter to your representative based on the brief's key points.

Briefs are only generated for bills where GovInfo has published official text. Bills without text show a “No text” badge on their card.

{/* Bills */}

The Bills page lists all tracked legislation. Use the filters to narrow your search.

Search — matches bill ID, title, and short title.

Chamber — House or Senate.

Topic — AI-tagged policy area (healthcare, defense, etc.).

Has text — show only bills with published official text available for AI briefing.

Clicking a topic tag on any bill or following page takes you directly to that filtered view on the Bills page.

); }