🪸 Collaborative wiki on ATProto, your data lives on your PDS
TypeScript 100.0%
CSS 0.1%
14 1 0

Clone this repository

https://tangled.org/juprodh.bsky.social/atwiki https://tangled.org/did:plc:32womkhqqvdofazze5zoi7mo/atwiki
git@knot.tangled.wizardry.systems:juprodh.bsky.social/atwiki git@knot.tangled.wizardry.systems:did:plc:32womkhqqvdofazze5zoi7mo/atwiki

For self-hosted knots, clone URLs may differ based on your setup.

Download tar.gz
README.md

A wiki/knowledge base on ATProto. Sign in with your Bluesky account, create public or private wikis, write in plain markdown with [[wikilinks]]. Your data lives on your PDS — it outlives the app.

Obsidian-compatible. Non-dev friendly. Simple by design.

Getting Started#

bun install
bun run dev

Server starts at http://localhost:3000. The database auto-seeds with sample wikis and notes on first run.

Architecture#

Philosophy#

  • One account, many apps — ATProto identity as passport
  • Data outlives the app — records on PDSes forever
  • Self-hostable — clone, set env vars, run your own appview
  • Flat notes, not folders — fuzzy finder over hierarchy
  • Simple — minimal config, no unnecessary features in v1
  • Honest — transparent about what's stored where and why

Three layers#

PDSes — the permanent record. Each contributor writes their own revision records to their own PDS via OAuth. No one writes to anyone else's PDS.

AppView — our server. Ingests records from the firehose, materializes current state of each wiki, enforces access control, serves all reads.

App PDS — our own PDS instance for private wikis only. Private wiki records live here instead of users' public PDSes. Users still authenticate with their Bluesky identity.

Data model#

Portable vs. appview-local data#

Protocol data (on PDSes, visible via firehose) is portable across appviews. Local data is each appview's value-add.

Portable (ATProto records) Local (appview-only)
Wikis, notes, revisions View counts
Bookmarks Trending / popularity rankings
Memberships Curated themes / categories
Edit history Search index