SAAS_PLAN.md B5/B6, narrowed: no Stripe/pricing/tier work of any kind this pass (a mid-build correction from the business side landed while this was in progress - the commercial model, SAAS_PLAN.md section 6.1, is still undecided), so app/pricing and lib/billing.ts's PLANS are untouched here. What's left of B5/B6 without that - real legal pages and a working waitlist - still ships. app/terms/page.tsx and app/privacy/page.tsx are section scaffolding, not legal text. Every section is a TODO(legal) note describing what that section needs to cover, and the page leads with a "Draft - not yet in force" banner. This isn't caution for its own sake: DRB records, stores, and transcribes public-safety radio traffic, and recording/rebroadcast legality varies by state (SAAS_PLAN.md section 6.3) - an agent-generated draft here would be actively wrong to publish, not just unpolished. Both were pre-added to middleware.ts's PUBLIC_PATHS and ChromeSwitcher's MARKETING_PATHS two commits ago; MarketingFooter now links both. app/waitlist/page.tsx is a real, working form against the already-shipped POST /waitlist - email + optional org name/note, no plan or price mentioned anywhere on it, matching the backend route's own scope (rate limited by source IP, not coupled to any tier). Linked from MarketingFooter as "Request access," not from the pricing page - pricing CTAs stay exactly as they were. Typecheck: clean (tsc --noEmit via the WSL-native ~/drb-frontend copy). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
27 lines
1.4 KiB
TypeScript
27 lines
1.4 KiB
TypeScript
import Link from "next/link";
|
|
|
|
export function MarketingFooter() {
|
|
return (
|
|
<footer className="border-t border-gray-800 mt-24">
|
|
<div className="max-w-screen-xl mx-auto px-4 md:px-6 py-10 flex flex-col md:flex-row items-start md:items-center justify-between gap-6">
|
|
<div className="flex items-center gap-2 font-mono font-bold text-white">
|
|
<span className="inline-flex items-center justify-center w-6 h-6 rounded-lg bg-indigo-600 text-white text-xs">D</span>
|
|
DRB
|
|
</div>
|
|
|
|
<nav className="flex flex-wrap items-center gap-x-6 gap-y-2 text-sm font-mono text-gray-500">
|
|
<Link href="/features" className="hover:text-gray-300 transition-colors">Features</Link>
|
|
<Link href="/pricing" className="hover:text-gray-300 transition-colors">Pricing</Link>
|
|
<Link href="/faq" className="hover:text-gray-300 transition-colors">FAQ</Link>
|
|
<Link href="/waitlist" className="hover:text-gray-300 transition-colors">Request access</Link>
|
|
<Link href="/terms" className="hover:text-gray-300 transition-colors">Terms</Link>
|
|
<Link href="/privacy" className="hover:text-gray-300 transition-colors">Privacy</Link>
|
|
<Link href="/login" className="hover:text-gray-300 transition-colors">Sign in</Link>
|
|
</nav>
|
|
|
|
<p className="text-xs font-mono text-gray-600">© {new Date().getFullYear()} DRB. All rights reserved.</p>
|
|
</div>
|
|
</footer>
|
|
);
|
|
}
|