Skip to content

Team wiki tooling — Notion now, self-hosted Outline deferred

Date: 2026-05-07 Status: Decided — Notion thin layer for now; self-hosted Outline as a weekend hardware project for later. Context: Need a co-founder collaboration surface for ARCIVE roadmap, alignment docs, and decisions. Three collaborators (Sujith, partner, Daniel). /docs/ in repo is engineering source of truth; this is the partner-facing layer.


What we picked

Notion Free workspace + official Notion MCP server at mcp.notion.com/mcp.

Structure:

  • Home (~10 blocks) — landing
  • CTO Task List Alignment (~140 blocks, full content port) — the inline-editing collab surface
  • Roadmap (~30 blocks, thin) — status table + GitHub link to docs/03_PROGRESS.md
  • Decisions (~25 blocks, thin) — index of ADRs with links to docs/decisions/
  • Total initial: ~210 blocks. Free-tier ceiling: 1000 blocks once 2+ members.
  • Headroom: ~12 months of partner discussion before approaching cap.

Why this over the alternatives

We did real research across the field. Hard constraints: free, online (browser), private, wiki-shape, multi-user, and Claude can edit programmatically.

OptionVerdict
Notion Free + MCP ✅ PickedInline block editor (page = editor), official MCP for Claude edit access, zero infra, ~12 mo of free-tier runway with thin-layer pages
GitHub Wiki on private repoPaywalled at $4/mo personal Pro; rejected as recurring cost
Astro Starlight + GitHubBeautiful read site, but partner edits via GitHub pencil (CMS-form-feel) — rejected as not inline
Pages CMS / Decap CMS / TinaCMSAll form-style editors — rejected as blog-flavoured, not Notion-flavoured
Mintlify Hobby”Single dashboard member” cap on free tier — only Sujith would get the editor, partner stuck on GitHub. Rejected.
AppFlowy Cloud Free2-member cap — fails 3-collaborator team
AFFiNE Cloud Free3-collaborator cap, ambiguous on whether owner counts. Risky for a 3-person team
AnytypeStill no web client in 2026
Confluence FreeNo per-page privacy granularity
Slab / Slite / Tettra / Mem.ai / Coda / etc.All paid-only or trial-only on private team tier in 2026
Nuclino FreeReal find — unlimited users + real inline block editor, but 50-page cap and no MCP for Claude edit access
Self-hosted OutlineBest long-term answer; deferred to weekend project (see below)

Deferred — self-hosted Outline on Raspberry Pi (weekend hardware project)

Trigger to revisit: Either we hit the Notion 1000-block cap (~12 months out at current pace), or there’s a free weekend and we want better permanence.

Why Outline self-hosted is the right durable answer

  • True inline block editor (Notion-grade UX, page = editor)
  • Multiple mature MCP servers (mcp-outline (Vortiago), outline-mcp-server (mmmeff)) — Claude keeps direct edit access
  • Unlimited pages, blocks, users
  • Open source (BSL license), no vendor lock-in
  • One-time hardware cost; ~$10/year electricity after that

Hardware shopping list (one-time ~$145)

ItemCost
Raspberry Pi 5 (8 GB)~$80
Active cooler / case with fan~$15
27W USB-C power supply (5A — Pi 5 needs the full draw)~$15
256 GB SATA SSD + USB3 enclosure (NOT microSD — Pis corrupt SD cards under load)~$30
Mini UPS for power-flicker protection (CyberPower CP425SLG or similar)~$40 (optional but recommended)
Total~$145–185 one-time, ~$10/year electricity

Software stack

  • Pi OS Lite (no desktop)
  • Docker + Docker Compose for service orchestration
  • Outline + Postgres + Redis via the official docker-compose.yml
  • Cloudflare Tunnel to expose wiki.arcive.io publicly without opening ports on home network
  • Cloudflare Access to gate the wiki to allowlisted emails (free for ≤50 users)
  • Resend for SMTP magic-link auth (already configured for ARCIVE)

Reliability checklist for the weekend build

🔴 Must do (otherwise don’t bother)

  • Use USB SSD, not microSD card
  • Quality 5A USB-C PSU (cheap ones cause undervoltage crashes)
  • restart: always on every Docker service
  • Daily pg_dump cron job
  • Push backups off-Pi (GitHub private repo, Backblaze B2, or rclone to Hetzner Storage Box)
  • External uptime monitoring (UptimeRobot / healthchecks.io / Better Uptime — free)
  • Cloudflare Tunnel for exposure (no open ports)
  • Cloudflare Access policy with allowlisted emails

🟡 Should do (within first month)

  • UPS battery backup ($40)
  • Memory limits on each container (mem_limit: 1g etc.)
  • Log rotation (Docker’s max-size, journalctl --vacuum-time=7d)
  • Restore-test the backup — actually pg_restore onto a test instance; do this once at setup, then quarterly
  • Pin Outline version in docker-compose.yml (not :latest)
  • Document setup as a runbook in /docs/

🟢 Nice to have

  • Tailscale on the Pi + your laptop for private SSH access
  • Vaultwarden or 1Password for credential storage
  • ZRAM swap (extends SSD life)

Realistic effort

  • Initial setup: 6–8 hours of focused work over a weekend
  • First restore-test: 1 hour
  • First Outline update: 30 min when triggered
  • Ongoing: ~10 min/month skimming logs, occasional update

Migration path Notion → Outline

When triggered:

  1. Export each Notion page as markdown
  2. Import into Outline collections via the import UI or API
  3. Update Claude’s MCP config from Notion MCP → Outline MCP (mcp-outline)
  4. Send partner + Daniel the new Outline URL
  5. Archive (don’t delete) the Notion workspace as a backup for 1 month, then close

Estimated migration time: ~2 hours assuming Notion has ~5–10 pages by then.

Open questions (resolve when triggered)

  • Pi 5 (8 GB) vs Pi 4 (8 GB) — Pi 5 has 2-3× faster CPU, ~$5 more. Probably Pi 5.
  • Hetzner CPX11 (~€5/mo) vs Pi — Hetzner is less ops work and ~$60/year. Pi pays for itself by year 3 and is owned hardware. Pi wins long-term unless ops time is the binding constraint.
  • Oracle Cloud Always Free Tier (4 ARM cores, 24 GB RAM, free forever) — viable alternative if Pi hardware cost is prohibitive. Setup pain at signup, but $0/forever.
  • AppFlowy Cloud self-hosted — same idea, different tool. Decide between Outline and AppFlowy when triggered.

References