A decentralized wiki application built on Freenet.
⚠️ Under Development: This project is still in early development. APIs and features may change.
- Markdown-based wiki pages with
[[wiki links]]syntax - Real-time collaboration via revision + patches model
- Cryptographic authentication using Ed25519 signatures
- Decentralized - runs on the Freenet network without central servers
┌─────────────────────────────────────────────────────────────┐
│ Wiki Contract │
│ ┌───────────────┐ ┌──────────────┐ ┌─────────────────┐ │
│ │ Configuration │ │ Contributors │ │ Pages │ │
│ │ (owner-only) │ │ (invites) │ │ (revisions + │ │
│ │ │ │ │ │ patches) │ │
│ └───────────────┘ └──────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────┴───────────────────────────────┐
│ Wiki Delegate │
│ • Stores signing keys locally │
│ • Signs patches before submission │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────┴───────────────────────────────┐
│ Wiki UI │
│ • Markdown editor with preview │
│ • Page navigation with wiki links │
│ • Real-time updates via subscriptions │
└─────────────────────────────────────────────────────────────┘
freenet-wiki/
├── common/ # Shared types (state, pages, patches)
├── contracts/wiki-contract # Freenet contract implementation
├── delegates/wiki-delegate # Local key storage delegate
└── ui/ # Dioxus web UI
Requires cargo-make:
cargo install cargo-make
# Build all crates
cargo make build
# Run tests
cargo make test
# Lint
cargo make clippyEach wiki page has:
- A base revision - signed full content snapshot
- Pending patches - signed line-based operations
Patches use content-addressed operations (targeting lines by hash, not position) for commutative merging. Any contributor can commit patches to create a new revision.
The wiki owner can invite contributors, who can then invite others, creating a chain of trust. All edits must be signed by an authorized contributor.
This project was created using the freenet-dapp-builder skill, which provides guidance for building decentralized applications on Freenet.
LGPL-3.0