No description
Find a file
2026-06-05 00:55:23 +00:00
tests truly public forum: auto-discover other instances via RNS announce handler 2026-06-05 00:55:03 +00:00
tinyweb_forum update moderation page: note auto-discovery, bootstrap fallback 2026-06-05 00:55:23 +00:00
.gitignore initial: decentralized link-sharing forum for TinyWeb 2026-06-04 08:23:51 +00:00
pyproject.toml initial: decentralized link-sharing forum for TinyWeb 2026-06-04 08:23:51 +00:00
README.md fix README URLs, handler tests, sync improvements, block/retract gossip 2026-06-05 00:32:30 +00:00

tinyweb-forum

A decentralized link-sharing forum for TinyWeb. Share URLs and discuss them with other TinyWeb instances over the Reticulum mesh.

Install

pip install tinyweb-forum

Enable the forum in TinyWeb's customize page (/style).

Development

git clone https://git.derickphan.com/lichenblankie/tinyweb-forum
pip install -e .

How it works

  • Each TinyWeb instance stores forum threads and posts in its own forum.db
  • Instances sync content with each other over RNS every 5 minutes
  • Authors are identified by a short pseudonymous hash (no names, no accounts)
  • No global server, no algorithms, no tracking

Features

  • Threads — share a URL or start a discussion with text
  • Replies — reply to threads, with inline URL extraction and "+ save" links
  • Upvotes — toggle upvote/downvote, scores propagate via sync
  • Edit — edit your own threads (new version syncs to peers)
  • Retract — retract your own threads and posts (retraction signal gossips to peers)

Moderation

All moderation is local — you control your view:

  • Block author[block] link on posts and thread meta hides all content from that identity across your instance
  • Auto-block — when 3+ of your peers have blocked the same identity, it's auto-blocked for you too (configurable threshold)
  • Mute thread — hide a thread from the listing
  • Keyword filters — hide threads matching keywords
  • Instance sync — choose which peers to sync with; unsync at any time

Sync

  • Forum instances discover each other via Reticulum
  • Content is exchanged as JSON over RNS links every 5 minutes
  • Block lists and retractions are gossiped alongside content
  • Only new/updated content is transferred (timestamp-based)