Unplug friends from Signal with one link →New featured: Dark Forum →New listings: Kyun, Njalla, MyNymBox →

home / featured

Dark Forum

WIP
agnosticdecentralizedpermissionlessopen-sourceno accountno emailself-custodyopen ecosystemimmutable eventsnojspgp

Dark Forum is the most private nojs forum with self-custody, immutable events, censorship-resistance, and interoperability.

Features

Dark Forum has a modern architecture based on direct signing and is powered by PGP and Spasm, which means:

  • Self-custody
  • Censorship-resistance
  • Immutable events that cannot be tampered with
  • Federated network
  • Supports PGP
  • Optional support for Nostr, Ethereum
  • Highly customizable
  • No cookies
  • Administration/moderation via direct signing
  • Virtually unexploitable (read below)

Unexploitable

Slave tech forums rely on unsigned events, so changing records in the database can have catastrophic consequences. It's virtually imposable to keep a database protected forever, meaning that exploits are unavoidable.

Dark Forum relies on signed events and the database is public, so there is nothing to exploit. A blackhat agent can obviously crash a server or even get a root access by chaining a few zero-days, but he won't be able to inflict any significant damage since there are no accounts, passwords, etc.

In the worst case scenario, a bad actor can serve a malicious frontend, but since all actions are directly signed, users should recognize that they were served with malicious content. Besides, PGP and Nostr private keys are not used to manage funds, while modern Ethereum wallets have safety measures, which will warn a user if he tries to sign a malicious transaction.

Architecture

┌─────────────────────────────────────────────────────┐
│                     dark-forum                      │
│ ┌──────────┐ ┌───────────┐ ┌──────────┐ ┌─────────┐ │
│ │   Feed   │ │  Filters  │ │ Comments │ │  Admin  │ │
│ └──────────┘ └───────────┘ └──────────┘ └─────────┘ │
│  Receive events                    Submit events    │
│          │                               │          │
│          └─────────── wrapper ───────────┘          │
└─────────────────────────┬───────────────────────────┘
                          │
┌─────────────────────────▼───────────────────────────┐
│                     spasm.js                        │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ PGP      │ │ Nostr    │ │ Ethereum │ │ Events:  │ │
│ │ keys     │ │ keys     │ │ keys     │ │ - Spasm  │ │
│ └────┬─────┘ └────┬─────┘ └─────┬────┘ │ - PGP    │ │
│      │            │             │      │ - Nostr  │ │
│ ┌────▼────────────▼─────────────▼────┐ │ - DMP    │ │
│ │  SpasmEventV2 (universal wrapper)  │ │ - RSS    │ │
│ └────────────────────────────────────┘ └──────────┘ │
└─────────┬────────────────┬─────────────────┬────────┘
          │                │                 │
┌─────────▼──────┐ ┌───────▼───────┐ ┌───────▼────────┐
│ Local database │ │ Spasm Network │ │ Nostr Network  │
│ (postgres)     │ │ (federation)  │ │ (nostr relays) │
└────────────────┘ └───────────────┘ └────────────────┘

Status

A large chunk of the stack is ready, but the project requires adding support for PGP keys to spasm.js, adding new API for backend (spasm-forum-server), and rewriting the frontend from scratch. Spasm represents the most advanced generation of decentralized social media with different frontends and it has been in development for five years without any funding, so the developer is now looking for sponsors and donors to back the project.

Sponsorship

Dark Forum is looking for sponsors, read more here.

Donate

BTC: bc1ql42pcl509k5qzzdty8hlx8ul2d54d9h24mfnsg
ETH: 0xF5b56722Aa3347c2b7A333Ae781Ea42CF966B941
SOL: FyQJfREE3HyMhC7eiUebyJ4SLW52Tf5ww3Lo63oAtMF6
XMR: 87n1PSRxE52KZXRypNsq1tbAK2jHy1kBAcHLS437Yhuj3WHaboCPWuGNTk4Lvh1j6x23gN7tN7rpDanVTNu6Y5NM98nfif3