A detailed comparison of three Xanadu-lineage systems: the 1998 open-sourced codebase, the 2014 web demo, and the 2026 independent implementation.
Timeline of major events in the Xanadu lineage. Labels alternate above and below the line to avoid overlap. Gold marks the open-sourced code; blue marks the web demo; green marks Xudanu.
| Udanax-Gold 1998 | OpenXanadu 2014 | Xudanu 2026 | |
|---|---|---|---|
| Creator | Xanadu Operating Company (Gregory, Miller, et al.) | Ted Nelson (solo / small team) | Independent developer (Jones D.) |
| License | Xanadu X11 (source-visible, proprietary) | Not open source — "you can see all the parts" | Apache 2.0 |
| Language | C/C++ (Smalltalk cross-compiled, period toolchain) | JavaScript (static web page) | Rust + React/TypeScript |
| Status | Archived (~1999) | Static demo at xanadu.com | Active development (v1.0.1) |
| Buildable? | Buildable with effort — period C++ toolchain, complex deps, minimal build docs | Loads in browser, but "takes a while" | cargo build + npm install |
| Backend | Custom server with enfilade storage | None (static files) | Async Rust (tokio + axum + WebSocket) |
| Database | Custom enfilade-based backend | N/A | Content-addressed chunk store + WAL + manifest |
| Concurrency | Lock-based (work grabbing) | None | Real-time CRDT (O-tree) with live presence |
| Crypto | Session auth, access controls | None | Ed25519, Argon2, BLAKE3, ChaCha20-Poly1305, TLS |
| Cross-server | Theoretical (custom protocol) | None | Domain tumblers + HTTP + hash verification |
In 1998, facing the irrelevance brought by the Web's dominance, the Xanadu team released their source code as Project Udanax — two codebases:
This document focuses on Gold, which contains the advanced algorithms (enfilades, intercomparison, royalties) that influenced Xudanu's design. The release was under the Xanadu X11 license, which is source-visible but not open source by modern definitions (OSI-incompatible due to restrictions on derivative works).
The release had a dual purpose: to establish prior art against software patents, and to let the world see what Xanadu actually was after 38 years of vaporware accusations.
Udanax-Gold architecture: monolithic C++ server with enfilade-based storage and the full Xanadu algorithm suite.
In 2014, Ted Nelson released OpenXanadu as a web page at xanadu.com. Despite the name, it was explicitly not open source — the site stated it was "open" in the sense that "you can see all the parts." It was described as "a working deliverable," the first in 54 years of Project Xanadu's history.
The demo showed parallel documents — multiple source documents displayed side-by-side with visible transclusion connections between them. A user could see how a passage in one document was quoted or derived from another, with the connections drawn as visible lines.
| Aspect | Detail |
|---|---|
| Format | Static web page with pre-built documents |
| Content | Sample documents (e.g., "Origins" by Moe Juste) with visible transclusion links |
| Large downloads required ("takes a while to open because it's downloading a lot") | |
| Interaction | View only — no editing, no creating new documents, no linking |
| Transclusion display | Parallel documents with visible connections between matching passages |
| Source code | Not released; client-side JavaScript is visible but not licensed for reuse |
Xudanu began as a direct reading of the Udanax-Gold C++ source, migrating concepts into Rust. Early development followed Gold's design closely. The project then diverged significantly: the adoption of BLAKE3 for content hashing opened the door to verifiable cross-server content (impossible in Gold's trust model); React and WebSocket replaced the traditional client architecture; and most fundamentally, the O-tree CRDT with inline transclusion elements replaced the enfilade as the core data structure. Many components from Gold were dropped along the way — the FeBe protocol, the enfilade tree, the Smalltalk cross-compilation pipeline. What remains is the conceptual DNA: tumblers, transclusion, typed links, bidirectional connections, provenance tracing, and the principle that links are unbreakable.
Xudanu architecture: modern async Rust backend with CRDT editing, React frontend, and cross-server networking.
cargo build + npm install, no exotic toolchain| Feature | Udanax-Gold | OpenXanadu | Xudanu |
|---|---|---|---|
| Tumbler addressing | Full numeric tumblers (transfinite) | Display only | Domain-based ("server.com".w.r.e) |
| Transclusion | Enfilade span references | Static visual display | Inline O-tree elements, 32-level resolution |
| Typed links | Unidirectional links | N/A | 6 types (Comment, Reference, Disagreement, Quotation, See Also, Web) |
| Bidirectional links | Yes — visible from both ends | N/A | Yes — backlinks + cross-server backlinks |
| Version management | Deep versioning via enfilade | None | Revision timeline + ancestors/descendants |
| Provenance tracing | again() recursive walk |
None | again() equivalent + link chain + UI modal |
| Real-time editing | Lock-based (work grabbing) | None (view-only) | CRDT (O-tree) with live presence |
| Royalties / micropayments | Full system, built into protocol | None | Byte tracking + Transcopyright licensing (no payment mechanism) |
| Intercomparison | Side-by-side version comparison | None | Side-by-side + bezier connections + coverage metrics + AI narration |
| Cross-server content | Theoretical (custom protocol) | None | HTTP + BLAKE3 + Ed25519 TOFU |
| Content verification | Server-trusted | None | BLAKE3 hash on every cross-server fetch |
| Attribution signatures | None | None | Ed25519 per-author, verified on load |
| Annotations | Basic | None | Per-user, private/public, bold/italic, link descriptions |
| Span migration | Via enfilade positions | N/A | O-tree positions survive arbitrary edits |
| Audit trail | None | None | Chained security log (tamper-evident) |
| Search | Within-document | None | Within-doc + global text search |
| Trails | No | No | Curated document sequences with categories |
| Document graph | No | No | Force-directed work relationship graph |
| Identity | Session-based | None | Club-based + OAuth (GitHub, Google) |
| Access control | Publication + work grabbing | None | Owner / published / edit-open / read-club / edit-club |
| Archival | No | No | Ghost works (content retained, source hidden) |
| Test coverage | Unknown / minimal | None | 2,444 backend + 412 frontend tests |
The most fundamental architectural difference is the underlying data structure for storing document content.
A B-tree-like structure where each node stores a portion of the document with associated position information. Key operations include:
Enfilades provide efficient insert, delete, and lookup over arbitrarily large documents, and their tree structure naturally supports versioning (each revision is a new root).
A position-based CRDT using the space algebra (region/displacement). Each character has a position that is:
The O-tree supports inline transclusion elements, span migration (positions survive edits), and attribution tracking (each span knows who wrote it).
| Udanax-Gold | Xudanu | |
|---|---|---|
| Protocol | Custom binary protocol (postcard-like wire format) | HTTP/REST for API + WebSocket for real-time sync |
| Content addressing | Numeric tumblers (1.5.3.10.7) |
Domain tumblers ("alice.com".5.3.10.7) — DNS-routable |
| Cross-server | Theoretical — required all servers to speak Xanadu protocol | Pragmatic — servers expose /api/public/work/{id} over HTTP |
| Content verification | None — trusted the server | BLAKE3 hash on every fetch — forgery is cryptographically impossible |
| Trust model | Implicit (server-to-server trust) | Ed25519 TOFU (Trust On First Use) — like SSH known_hosts |
| Privacy | None (plaintext) | HTTPS preferred (supports_https field, refuse downgrade) |
| SSRF protection | N/A | is_ssrf_address() blocks loopback, private ranges, metadata endpoints |
Despite sharing no code, Xudanu draws heavily on the conceptual framework established by Udanax-Gold:
| Concept from Gold | How Xudanu implements it |
|---|---|
| Tumblers | Domain-based tumblers instead of pure numeric — "server.com".work_id.revision.edition. The domain prefix makes tumblers self-routing via DNS. |
| Transclusion | Inline RangeElement::Transclusion in the O-tree CRDT. 32-level recursive resolution with cycle detection. Span migration through arbitrary deltas. |
| Typed links | Extended to 6 visual types (Comment, Reference, Disagreement, Quotation, See Also, Web Link) with coloured markers, margin bars, and description boxes. |
Provenance (again()) |
work_transclusion_chain API walks the O-tree recursively, returning a numbered chain with author info and text excerpts. |
| Bidirectional links | Links are visible from both endpoints. Backlinks are tracked. Cross-server backlinks notify the origin server via HTTP POST. |
| Span migration | O-tree positions are immutable. Links store start_position / end_position which survive edits. Excerpt search is a fallback only. |
| Royalty concept | record_royalty tracks byte counts on every cross-server content fetch. No payment mechanism yet, but the accounting infrastructure exists. |
Gold used work grabbing — pessimistic locking where one user "grabs" a work, preventing all others from editing. Xudanu uses a CRDT — any number of users can edit simultaneously, with changes merged automatically. This is the single biggest user-facing difference.
Gold envisioned a native Xanadu network with all servers speaking the Xanadu protocol. Xudanu uses HTTP + domain tumblers — any web server can participate. BLAKE3 verification replaces trust.
Gold had no content verification — you trusted the server. Xudanu has Ed25519 attribution signatures (every span is signed), BLAKE3 content hashes (every cross-server fetch is verified), and a tamper-evident audit log.
Gold had transclusion markers but no margin annotation system. Xudanu adds coloured description boxes with dotted connecting lines (anchored to the underline of the source text, not the centre), lane separation for overlapping links, resolve/edit/delete lifecycle, and type filtering.
Gold's intercomparison (side-by-side visual document comparison) has no Xudanu equivalent yet. The royalty payment system is stubbed but not functional. Deep versioning (every revision as a parallel tree path) is replaced by snapshot-based revisions.
OpenXanadu showed what parallel documents with visible transclusion connections look like. This visualization is the eventual goal for Xudanu's compound document viewer — but interactive and live, not static.
Ted Nelson defined 17 requirements for a true Xanadu system. Here's how each implementation measures up:
| # | Rule | Udanax-Gold | OpenXanadu | Xudanu |
|---|---|---|---|---|
| 1 | Every server uniquely and securely identified | Partial | — | ✓ Ed25519 key |
| 2 | Server can operate independently or in a network | ✓ | — | ✓ |
| 3 | Every user uniquely and securely identified | Session | — | ✓ Club + OAuth |
| 4 | Users can search, retrieve, create, store documents | ✓ | View only | ✓ |
| 5 | Documents can contain any data type | ✓ | Text only | ✓ Text + images + blobs |
| 6 | Documents can contain links/transclusions to any other | ✓ | Display | ✓ |
| 7 | Links visible and followable from all endpoints | ✓ | — | ✓ Backlinks |
| 8 | Permission to link granted by act of publication | ✓ | — | ✓ Publish/unpublish |
| 9 | Royalty mechanism at any granularity | ✓ | — | Byte tracking + TCo license |
| 10 | Every document uniquely and securely identified | ✓ Tumblers | — | ✓ Tumblers + hash |
| 11 | Secure access controls on documents | ✓ | — | ✓ Read/edit clubs |
| 12 | Rapid search, store, retrieve without knowing location | ✓ | — | ✓ Global search |
| 13 | Documents moved to storage appropriate to access frequency | — | — | — |
| 14 | Documents stored redundantly for disaster recovery | — | — | ✓ Chunk store + WAL + offsite backup |
| 15 | Service providers can charge for storage/retrieval | ✓ | — | — |
| 16 | Transactions secure and auditable only by parties | — | — | ✓ Audit log |
| 17 | Client-server protocol is openly published | Source | — | ✓ Open source |
| Score (fully meets) | 10 / 17 | 0 / 17 | 13 / 17 | |
The reference implementation. Conceptually complete but technologically frozen. It contains the only working versions of several key algorithms (enfilade cranking, intercomparison, royalty system). Its value today is primarily as inspiration and prior art — a design document in code form. It cannot be built, deployed, or extended without significant archaeological effort.
The demo. It proves that Ted Nelson's visualization ideas work — parallel documents with visible transclusion connections are comprehensible and compelling. But it's a screenshot, not a system. No source code, no backend, no editing, no collaboration. Its anti-Web rhetoric and "not open source" status limit its influence.
The practical implementation. It takes the concepts that Gold proved and OpenXanadu visualized, and makes them buildable, deployable, and usable. The trade-offs are clear: enfilades replaced by CRDTs (concurrency over deep versioning), custom protocol replaced by HTTP (accessibility over purity), theoretical royalties replaced by byte tracking (accountability without payments).
Xudanu doesn't claim to be "true Xanadu" — it's an independent interpretation of the concepts, built with modern tools, released under a proper open-source license, and designed to be actually used rather than merely admired. The 17-rules scorecard shows it meeting 13 of 17 fully, with clear paths forward for the rest.
The biggest gaps — automatic storage tiering (Rule 13) and the royalty payment system (Rule 9) — are acknowledged limitations with planned roadmaps. The biggest advantages — real-time CRDT collaboration, modern cryptography, cross-server hash verification, intercomparison with bezier connections, and the visual link description system — are features that neither Gold nor OpenXanadu ever had.