Harden onion boot flow and deepen site surfaces

Add persistent onion key backup and restore, improve startup resilience, and flesh out the major site verticals with richer navigation, search coverage, and operator documentation.

Made-with: Cursor
This commit is contained in:
drjones
2026-04-07 21:35:52 -07:00
parent 52432dccfa
commit 78a071ba02
162 changed files with 21692 additions and 39 deletions

View File

@@ -0,0 +1,33 @@
import Link from "next/link";
import { SYNDICATE_NODES } from "@/lib/syndicateNetwork";
export default function SyndicateTopologyPage() {
return (
<article className="space-y-8">
<header>
<h2 className="text-xl font-bold text-white md:text-2xl">Topology</h2>
<p className="mt-2 max-w-2xl text-sm text-zinc-400">
Three conceptual layers sit above the raw node list. Each <Link href="/syndicate" className="text-fuchsia-400 underline">shell</Link> inherits hub auth and cart paths; only chrome and copy diverge.
</p>
</header>
<ol className="list-decimal space-y-6 pl-5 text-sm text-zinc-300">
<li>
<strong className="text-fuchsia-200">Ingress</strong> Tor hostname maps to a dedicated root via proxy config; the browser still loads the same Next build.
</li>
<li>
<strong className="text-fuchsia-200">Presentation</strong> <code className="text-fuchsia-400/90">/w/[slug]</code> picks a skin;{" "}
<span className="font-mono text-fuchsia-300/80">{SYNDICATE_NODES.length} nodes</span> are registered in{" "}
<code className="text-zinc-500">syndicateNetwork</code>.
</li>
<li>
<strong className="text-fuchsia-200">Persistence</strong> forum posts, exchange rows, and cart JSON remain namespaced by origin in the usual browser model; operators document mirror bundles so users know which hostname they attached to.
</li>
</ol>
<p className="text-xs text-zinc-500">
<Link href="/syndicate/routing" className="text-fuchsia-400 hover:underline">
Routing lore
</Link>
</p>
</article>
);
}