Decentralized imageboard
I'm building a decentralized imageboard on Freenet (aka Hyphanet). Posts go through one of several "moderators" of your choosing, everything is stored in a decentralized fashion.
Why bother:
forced anonymity — there's literally no way to cave and start blocking anonymizers, since the whole thing runs on one
no network effect trap (
https://en.wikipedia.org/wiki/Network_effect ) — you know the situation: a few massive boards, a bunch of half-dead microboards that go dark every couple months
no mod power trips — a moderator just shares their opinion, and you decide whose opinion to apply, without the pressure of the network effect
Freesite:
http://127.0.0.1:8888/freenet:USK@fc5NZ5g6aBhN~aHvcR5QTYWVfsJO747vgY6cC7GZNuY,J~RkZx0JDpEhYwFWWvAA2IBVJCyxkNX9naul6qoKT2Y,AQACAAE/index/-1How to try it: download and install Freenet —
https://www.hyphanet.org/index.html. Then grab (or build) the binary and double-click it — a browser will open with the default board UI, pretty bare-bones. Differences from a normal board: post IDs are very long (they're Freenet keys), and there's a moderator selection feature. If the browser doesn't open on its own:
http://127.0.0.1:8891Heads up: Freenet is PAINFULLY SLOW. Loading and posting take tens of minutes. Everything loads and sends in the background of course, no need to sit staring at a loading screen — it's designed to run in the background while you go about your day, you come back when you feel like it and it's ready to present information immediately.
Posts with images currently go through pre-moderation, so a text-only post will show up to others much faster. This can change down the line; it's a per-moderator setting (and right now I'm the only moderator).
Spam control:
There's optional Argon2 PoW, but it's off for now. Different PoW/captcha options can be added later, the extension points are already there.
About 5k lines of Go+html (no js): ~2k of actual logic, the rest is glue. Builds easily:
go build -o freech
—–BEGIN PGP PUBLIC KEY BLOCK—–
mDMEakYEchYJKwYBBAHaRw8BAQdACM+ujbCRFCbNZD3enBbTKzXHM3NrfbQktrEa
IHEXdGm0FFBlcmRpeCA8cGVyZGl4QHZvaWQ+iJYEExYKAD4WIQTN+dIl96YWsoto
lRwwaMt9E3cMTwUCakYEcgIbAwUJBaOagAULCQgHAgYVCgkICwIEFgIDAQIeAQIX
gAAKCRAwaMt9E3cMT4W5AP9qeLJaxGDIC7kbJGyay91wZ1/DQJXIatZ1KUmP7oop
zgD/bRVngxbAm258LFdXxqZ+cdlvTZjAXV9XI26yZr02dQS4OARqRgRyEgorBgEE
AZdVAQUBAQdAtYVSXm+33uakOE2cOHBC19BPHD0JCWBNns8Kb+L2hTEDAQgHiH4E
GBYKACYWIQTN+dIl96YWsotolRwwaMt9E3cMTwUCakYEcgIbDAUJBaOagAAKCRAw
aMt9E3cMT5+zAQCuDoYpgULCGbWdseD5NDe3NBhmzWkuluy9gJLewfSHpwEAquPD
LMfUidKAuSdLcvBkA22aOBzZ1fXgfCb+bw/x2AU=
=NyV1
—–END PGP PUBLIC KEY BLOCK—–