Build · Intermediate · A weekend
Build a self-hosted team workspace with open-source software
Projects, docs, chat and calls for a small team, replacing four subscriptions.
Instead of paying for Jira, Linear, Notion, Confluence, Slack or Zoom Workplace Pro.
What you'll build
Everything a small team needs to work together, on servers you control: a project tracker, a shared wiki, team chat and video calls. It replaces Jira or Linear, Notion, Slack and Zoom, which together cost a lot per person each month and hold your company's knowledge on someone else's servers. It suits startups, agencies, clubs and non-profits that want predictable costs and their own data.
Blueprint
Plane holds the work, AFFiNE holds the docs, Rocket.Chat is where people talk, and a Jitsi link starts a call.
- You Projects, tasks and sprints Plane
- Plane Task updates posted to a channel Rocket.Chat
- Rocket.Chat A call link when talking is quicker Jitsi Meet
- AFFiNE Specs and notes linked from tasks Plane
The repos
- 01 · Projects and tasks Plane
Self-hostable project management with work items (issues), cycles (sprints), modules, saved views, pages and analytics; also sold as Plane Cloud.
- Setup
- Medium; install script with Docker Compose, or Kubernetes source
- Hardware
- 2 CPU cores, 4 GB RAM (8 GB recommended for production) source
- Paid extras
- None required; paid licence keys and Plane Cloud are optional
- 02 · Docs and wiki AFFiNE
Local-first workspace merging docs, whiteboard canvas and multi-view databases, with real-time sync and a self-hostable server.
- Setup
- Easy desktop installers; server via Docker Compose source
- Hardware
- Not documented in the repo
- Paid extras
- None required; AFFiNE Cloud Pro/Team and Self-Hosted Team are optional
- 03 · Team chat Rocket.Chat
Open core, self-hosted team chat with channels, threads, DMs, apps and federation; free Starter (50 users) and MIT Community editions.
- Setup
- Medium; Docker or Kubernetes plus a separately maintained MongoDB source
- Hardware
- Up to 500 concurrent users - Rocket.Chat 2 vCPU, 4 GiB RAM, 20 GiB disk; plus MongoDB 8.0+ (2 vCPU, 4 GiB per replica) source
- Paid extras
- None required within the free caps; Commercial, Government and Defense plans remove limits and add support
- 04 · Video calls Jitsi Meet
Apache-2.0 browser video conferencing with screen sharing, in-call chat and polls; self-host it for calls alongside a team chat.
- Setup
- Medium; apt packages on Debian/Ubuntu or Docker Compose, plus a domain and open UDP ports source
- Hardware
- 8 GB RAM suggested (4 GB for small meetings, 2 GB for tests); 4 dedicated cores for a basic server; 20 GB disk; 1 Gbit/s network for small use source
- Paid extras
- None required
Step by step
Install commands change, so each step links to the repo's own docs for the exact commands.
-
Pick one server and a domain
Plan for one server with enough memory for all four apps (Plane alone asks for 4 GB, 8 GB in production) and a subdomain for each, such as tasks., docs., chat. and meet.
-
Open the chat
Install Rocket.Chat with its MongoDB database, create channels that match your projects, and invite the team.
Uses Rocket.Chat · its docs
-
Add calls
Install Jitsi Meet on its own server if you can; video needs open UDP ports and good bandwidth. Share one permanent meeting link per team.
Uses Jitsi Meet · its docs
Watch out
AFFiNE and Rocket.Chat keep some enterprise code under separate licences. Rocket.Chat's free Starter plan caps users at 50.
Take it further
- Post Plane updates into the matching Rocket.Chat channel with a webhook.
- Use single sign-on so people log in once for all four.
- Back up all four databases nightly to a second location.
Questions
How many people can this handle?
Dozens easily on one decent server. Rocket.Chat's free Starter plan caps users at 50; Jitsi needs more bandwidth as calls grow.
Can we try it before switching?
Yes. Run it alongside your current tools with one team for a month, then move the rest.
What about mobile apps?
Plane, AFFiNE, Rocket.Chat and Jitsi all have phone apps or work in the phone browser.
Every repo here is open source, still maintained and checked against its own documentation. How we check →