NetDoc
Date: 2025 Oct 30
Words: 684
Draft: 1 (Most recent)
AS YOU MAY BE ABLE TO TELL BY THE MARKDOWN STYLE, THIS WAS GENERATED BY CLAUDE. WAS A SUMMARY OF A BRAINSTORMING SESH. I AM CAPABLE OF MAKING MY OWN SPECIFICATIONS (SEE ENTS). THIS IS A Q-A-D (“QUICK AND DIRTY”. EVERYONE SHOULD KNOW WHAT THAT STANDS FOR) SPEC
Vision
NetDoc reimagines social platforms around documents instead of posts. It’s “Plan 9 for the internet” - everything is a document - combined with Project Xanadu’s vision of transclusion and bidirectional linking.
Core Philosophy
Profiles as Curated Wikis: Instead of activity streams showing “posted 3 hours ago,” profiles are enduring intellectual landscapes. Your profile is a wiki of “favorite things of all time” - what you think matters, what you’ve annotated, how you organize knowledge.
Friction as Feature: Like Tor’s slowness encourages intentional browsing, NetDoc’s wiki-centric design encourages thoughtful engagement. Making a wiki requires investment, filtering out low-effort content. You don’t doomscroll wikis, you navigate them.
No Likes, Only Substance: Without reactions, engagement must be substantial - write a reply document, fork and improve, annotate with commentary. Discovery becomes “whose canon do I trust?” rather than “what’s trending?”
Live Feed Megawiki: All personal wikis interconnect through a graph. The feed shows “what changed recently in people’s wikis” rather than being primary. You’re maintaining your corner of a knowledge commons.
Technical Architecture
Hybrid Database Strategy
- Postgres: User accounts, authentication, permissions, simple CRUD operations, full-text search
- Neo4j: Document relationships, version history, fork trees, transclusion tracking, backreferences
Document Model
+ status
- draft
- working
+ privacy
- private @perms @forkability
- unlisted @perms @forkability
- public @perms(@view) @forkability(@forkable)
+ &perms (per-users and groups)
- &view
- edit
+ &forkability
- forkable
- unforkable
+ relationships
- forked_from (new branch)
- reply_to (child document)
- references (bidirectional links)
- inherits_from (version chain)
+ content
- body
- references (links and transclusion)
+ metadata
- tags (ENTS hierarchical)
- author
- created_at
- backreferences (computed from graph)
Key Concepts
Version History
- Content-Addressed Storage: Documents identified by hash (like Git), enabling permanent links even as human-readable labels change.
- Version Chains: Each document version has
inherits_fromrelationship to previous version. Linear history until forking. - Fork Trees: Users can fork documents to create
divergent branches. Forks maintain relationship to original via
forked_from.
Xanadu Features
- Transclusion: Embed live content from other documents. When source changes, transclusions can update or remain version-pinned.
- Bidirectional Links: When Document A references Document B, B automatically knows via backreferences. Enables “what depends on this?” queries.
- Stable Addressing: Documents have permanent IDs (hashes) separate from human-readable labels that can change.
Organization (ENTS)
Hierarchical nested tagging system:
essays/
philosophy/
- Meditations on Moloch (annotated)
technology/
databases/
graph-databases/
- Neo4j comparison
Documents can exist in multiple taxonomy branches. Users create personal taxonomies; shared taxonomies emerge organically.
Collaboration
- Suggest Mode: Like Google Docs suggestions - propose changes that author approves/rejects.
- Edit Mode: Direct modification rights. Multiple editors can work simultaneously.
- Live Multiplayer: Real-time cursor presence and updates using OT or CRDTs.
- Checkpoints: Automatic version snapshots every N minutes, user can mark significant versions later.
Discovery
- Tag-Based Feeds: Browse documents by ENTS taxonomy paths.
- Curated Collections: Profile wikis as reading lists with commentary.
- Network Traversal: Follow references, explore fork trees, see who annotated what.
- Recent Changes: Wikipedia-style feed of recent wiki updates.
Profile Structure
Profiles are special wiki documents with curated sections:
# My Canon
## Essays I Return To
- Meditations on Moloch [annotated fork]
- A Formalist Manifesto [original + my commentary]
## Active Projects
- NetDoc design docs
- EXRPT spec notes
## Research Interests
technology/databases/graph/
philosophy/political-theory/The social graph emerges from who you reference in your wiki, not explicit “following.”
Web4 Context
NetDoc is one application within a broader Web4 vision:
- Standardized Protocols: Open standards for feeds, notifications, identity (public key cryptography).
- ** Extensions System**: NetDoc as one “social modality” among many (chat, video, blogs) in a unified browser.
- Decentralized Communities: Communities set their own member lists and moderation policies.
- Interoperability: Any Web4 app can reference NetDoc documents; NetDoc can transclude from other apps.
Related Concepts & Inspirations
- Git: Forking, commits, content-addressed storage, merge strategies
- Obsidian/Roam: Networked notes, bidirectional links, local-first
- Project Xanadu: Transclusion, stable addressing, bidirectional links
- Wikipedia: Collaborative editing, version history, recent changes feed
- Google Docs: Suggest mode, real-time collaboration, presence
- Tor Network: Friction as intentional design (slow = careful)
- Academic Citations: Trust through curation, building on others’ work
Technical Stack
- Backend: Node.js
- Databases: Postgres (relational) + Neo4j (graph)
- Client: Electron (cross-platform desktop)
- Query Languages: SQL + Cypher
- Real-time: WebSockets for live collaboration
- Version IDs: Content hashes (SHA-256 or similar)
Open Questions
- How to handle transclusion when source document changes/deletes?
- Optimal checkpoint frequency for version history?
- Should backreferences be hideable by authors (harassment concerns)?
- Fork tree pruning strategies (prevent infinite branching)?
- Annotation format - keep EXRPT XML or simplify?
This document itself will be written and maintained in NetDoc, dogfooding the platform from day one.