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
34 lines
1.7 KiB
TypeScript
34 lines
1.7 KiB
TypeScript
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>
|
|
);
|
|
}
|