
Should I self-host Evernote?
KINDAworth it if…
Trilium's tree-of-notes beats Evernote for structured thinkers on desktop. The mobile story is a synced web app and the OCR-of-photos job doesn't exist — worth it if your notes live on a keyboard.
The math (nothing hidden, including your time)
| Evernote (Starter) | $14.99/mo |
| VPS share + storage | −$0.80/mo |
| Your maintenance: 10 min/mo at $20/h | −$3.33/mo |
| Net saving | $10.86/mo |
| Setup: 40 min measured (one-time) | $13.33 |
| Break-even | 1.2 months |
| Markup Index (price ÷ real self-host cost) | 3.6× |
Price: source, checked 2026-08-06. Inputs are stored in git; every number above is derived, never hand-written.
What you lose
- Native mobile apps with offline + camera capture — Trilium mobile is a web view
- Evernote's OCR on photos and scans
- 10GB of someone else's storage
What you're paying Evernote for
- notes with hierarchy/links
- web clipping
- search
- mobile capture
- OCR of images/handwriting

Ranked alternatives
A personal knowledge base with a note tree, relations and scripting, keeping every note in one SQLite file you can copy.
Hardware
Runs comfortably on Raspberry Pi.
The tested compose file (our evidence, CI-booted)
# Trilium Notes (TriliumNext) — hierarchical personal knowledge base (replaces Evernote's
# desktop half; the mobile + OCR gap is the KINDA)
services:
trilium:
image: triliumnext/notes:latest
container_name: trilium
restart: unless-stopped
environment:
TRILIUM_DATA_DIR: /home/node/trilium-data
ports:
- "8091:8080"
volumes:
- trilium-data:/home/node/trilium-data
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://localhost:8080/api/health-check >/dev/null || wget -qO- http://localhost:8080 >/dev/null || exit 1"]
interval: 5s
timeout: 5s
retries: 24
start_period: 20s
volumes:
trilium-data:
Want a guided install instead? caniselfhostit.com/evernote has AI-agent prompts that assume a bare machine — that's their half of the stool, and it's good.
Verification
Protocol v1 · verified by zernonia on 2026-08-10 · setup measured at 40 min · AI assistant: claude-code (allowed & stated)
What broke
- Project moved: zadam/trilium is archived, TriliumNext is the maintained fork — star counts and docker tags split across the two confuses every comparison
Full timed log
# Timed setup log: Evernote → trilium **Protocol:** v1 · **Verified by:** zernonia · **Date:** 2026-08-10 **Assistant:** claude-code · **Environment:** containerized runner, 2 vCPU class, Docker 29.3 / Compose v5.1 ## Timeline | Step | Time | |---|---| | Read upstream docs, draft compose with healthcheck | ~13 min | | **Boot: all services healthy in 26 s (measured, `compose up --wait`)** | — | | Endpoint-level workflow check (login/health/API serve) + re-run from clean volumes | ~13 min | | **Total: ~40 min** | | Boot and endpoint checks are machine-verified; `setup_min` is the wall-clock total for this session including authoring, diagnosis and re-runs. Endpoint-level ≠ full human UI workflow — dispute anything that doesn't reproduce (CONTRIBUTING.md). ## What broke - Project moved: zadam/trilium is archived, TriliumNext is the maintained fork — star counts and docker tags split across the two confuses every comparison ## Verdict-relevant notes - Web clipper extension works against self-hosted instances.
Verdict history
- 2026-08-10: unscored → KINDA — Initial verdict: Trilium's tree-of-notes beats Evernote for structured thinkers on desktop. The mobile story is a synced web app and the OCR-of-photos job doesn't exist.