How to Build a Digital Third Place That's Actually Yours
August 2, 2026
You’ve read about digital third places. You understand the problem — Discord isn’t yours, Slack is for work, X is a firehose, Reddit sold your API access. You want a community space you actually own.
Here’s how to build one.
What a real third place needs
Before the how, the what. A digital third place needs five things:
- Persistence. The space exists whether you’re there or not. Messages stay. History builds. The community has memory.
- Ownership. You control the server, the data, the rules. No platform can change the deal.
- Low friction. People can join without downloading an app, verifying a phone number, or accepting a 47-page terms of service.
- Regulars. People who come back, know each other, and notice when someone’s missing.
- Conversation first. The main activity is talking to people — not scrolling a feed, not playing an algorithm.
If your community platform fails any of these, it’s not a third place. It’s a product you’re using until the company that owns it decides otherwise.
The old way: why people used Discord instead
Running a community server used to be hard. You needed:
- A dedicated server or VPS with a static IP
- A domain name and DNS configuration
- An SSL certificate (back when those cost money)
- A database to install and configure
- A web server to set up
- Security patches to maintain
- A weekend of reading documentation
That’s why people used Discord. The convenience was worth the loss of ownership. You gave up control so you didn’t have to sysadmin a community platform on top of your actual life.
What changed
The barrier collapsed. Here’s what running a community server looks like now:
Hardware: A $5/month VPS from any provider. Or a Raspberry Pi in your closet. Or the machine you already have. No data center, no rack, no cooling.
Database: Postgres if you want production-grade. Or H2 — embedded, zero-setup, auto-detected. You don’t install anything. It just runs.
Configuration: Write .phos files in a readable language. Save. The BBS updates instantly. No recompile, no restart, no build pipeline. It’s like editing a config file, except the config file is a programming language.
Access: SSH for the terminal experience. Web browser for the same BBS without a client. Telnet if you’re running vintage hardware. No app to download, no app store, no permissions to grant.
Security: SSH handles encryption. Your data stays on your server — not in a data center owned by a public company, not in a breach target, not in an ad-targeting pipeline.
The convenience gap between “use Discord” and “own your server” has collapsed. What remains is the ownership gap — and it runs in your favor.
Step 1: Get a server
Any Linux machine works. Options, from cheapest to most robust:
- Raspberry Pi ($35-75 one-time) — a Pi 4 or 5 runs Phosphor fine. Lives in your closet, draws 5 watts, costs $0/month after the initial purchase. Perfect for a small community.
- $5/month VPS — DigitalOcean, Hetzner, Linode, any provider. A basic instance runs the BBS and gives you a public IP. No hardware to manage.
- Your existing machine — if you have a server or desktop that’s always on, you can run Phosphor on it. Just open a port.
The point: you don’t need infrastructure. You need a computer and an internet connection.
Step 2: Install Phosphor
One command. The BBS downloads, extracts, and starts. The embedded H2 database initializes automatically. No database setup, no Docker compose, no Kubernetes YAML.
# Download and start
./bbsctl.sh start
That’s it. The BBS is running. H2 is your database (zero-setup). If you want Postgres later (for larger communities, federation scale, or backups), switch the config and restart — the BBS auto-detects which database is available.
Step 3: Configure your community
Write a .phos file. This is your BBS — menus, boards, chat channels, walls, themes, everything. The language is readable. Save the file, and the BBS updates instantly. No recompile, no restart.
bbs "My Community" {
board "General" {
description = "Open discussion — anything goes"
federated = true
}
board "Projects" {
description = "Show what you're building"
federated = true
}
board "Internal" {
description = "Local only — not federated"
federated = false
}
channel "lounge" {
description = "General chat, always open"
}
channel "help" {
description = "Newcomers ask questions here"
}
wall "Public" {
description = "Short posts, visible to everyone"
federated = true
max_length = 500
}
theme "default" {
colors = "green-on-black"
banner = "art/welcome.ans"
}
}
Three boards (two federated, one local). Two chat channels. One broadcast wall. A theme. That’s a community server. The whole thing is maybe 30 lines of readable config. Save it, and it’s live.
Step 4: Set the boundary
This is where federation matters. Every board, every wall, every resource has a federated flag. true means it syncs with peer nodes — a post on your server appears on federated servers in real time. false means it stays on your server, never leaves, never replicates.
You decide what crosses the wire and what stays home. Not a platform. Not a company. You.
board "General" {
federated = true // part of the wider community
}
board "Family Office" {
federated = false // stays local — private to your node
}
wall "Public" {
federated = true // broadcasts go out
}
wall "Local Only" {
federated = false // internal announcements, not exported
}
The tension every community feels — “I want to be part of something bigger, but I also want my own space” — is solved by a flag. Global and local on the same server, same sysop, same community.
Step 5: Invite people
Your BBS is accessible three ways:
- SSH:
ssh yourdomain.net -p 2222— the terminal experience. ANSI art, animated backgrounds, keyboard-driven navigation. - Web: Point a browser at
https://yourdomain.net— the same BBS in a terminal emulator. No client needed. - Telnet: For retro hardware, or environments where SSH isn’t available.
Share the SSH command. Share the URL. People connect, create an account, and they’re in. No app download, no email verification, no phone number. Low barrier — the way a third place should be.
Step 6: Connect to other nodes
Federation is peer-to-peer. You configure a peer, and your nodes start syncing:
peers {
peer "ohio" {
host = "ohio.example.net"
port = 2222
}
peer "florida" {
host = "florida.example.net"
port = 2222
}
}
Now your federated boards and walls sync across all three nodes. A post in Bronxville appears in Ohio and Florida in real time. A user on the Florida node sees the same board posts as a user in Bronxville. Your community is connected to a wider community — but your local boards stay local.
With LoRa radio support, you can even federate without the internet. Two nodes with LoRa modules sync over radio — no ISP, no cloud, no infrastructure. Off-grid communities, disaster resilience, maximum privacy.
What you get
At the end of this, you have:
- A community server that you own, running on hardware you control, with data that never leaves your server (unless you choose to federate it)
- Three communication modes — real-time chat, broadcast wall, topic discussion — in one place
- Integrated search across everything — boards, chat, wall, mail, files
- Federation — connect to other nodes or stay isolated
- A scripting language — customize everything, write your own rules, extend the BBS without writing Java
- Terminal-native access — SSH, web, or Telnet. No app required.
- Zero ongoing cost — a Raspberry Pi, or $5/month for a VPS
This is what self-hosting looks like when it’s done right. Not a hobby for Linux nerds — a practical way to own your community the way you own your home. You don’t rent your third place from a public company. You build it.
The difference
When Discord changes its terms, your community is affected. When Discord ships ads, your community sees them. When Discord has a data breach, your community’s data is exposed. When Discord goes public, your community becomes ad inventory.
When you run your own server, none of that touches you. No terms-of-service update. No ads. No breach at the platform level. No IPO. No shareholder vote. No enshittification.
Because it’s yours.
ssh phosphorbbs.net -p 2222
Part of our series on digital third places. Read the hub: What Is a Digital Third Place? | Previous: One Platform for Three Things You’re Doing in Three Places
Tags: #digitalthirdplace #socialterminal #communityserver #selfhosted #federation