Betula
Betula lets you run federated personal link collection and bookmark manager entirely on your own server.
Self-hosted link curation, honestly reviewed. One binary, one file, no SaaS bill.
TL;DR
- What it is: Single-user self-hosted federated bookmark manager with Fediverse (ActivityPub) support and web page archiving [2].
- Who it’s for: Bloggers, link curators, and IndieWeb enthusiasts who want to publish a public linklog, follow other collectors across the Fediverse, and own every byte of their bookmarks.
- Cost savings: Raindrop.io Pro runs $3/mo ($36/year). Pinboard costs $11/year. Betula costs $0 in software, plus a small VPS if you don’t already run one [1].
- Key strength: Genuinely minimal — one Go binary, one SQLite file, zero dependencies to wrangle. Setup is faster than most tools reviewed on this site [2].
- Key weakness: Strictly single-user. No team features, no browser sync across devices the way commercial tools offer, and the Fediverse angle only matters if you’re building a public-facing linklog — it adds no value if you want a private bookmark store.
What is Betula
Betula is a self-hosted bookmark manager built around three ideas: personal ownership, public sharing via the Fediverse, and the smallest possible operational footprint.
You install one binary. Your entire bookmark collection lives in one SQLite file. Configuration happens through the web interface — no YAML, no environment files to manage [2][1]. That’s the pitch, and it delivers on it.
The Fediverse angle is the thing that makes Betula unusual in the bookmark category. ActivityPub — the protocol behind Mastodon — is baked in. You can follow other Betula instances and receive their public bookmarks in a timeline. Mastodon users can follow your Betula instance and see new bookmarks in their feed. You can like and repost bookmarks from other instances [2]. This turns a private bookmarking tool into something closer to a federated link-sharing network — what the early web blogosphere called a “linklog.”
The project is developed by Timur Ismagilov (alias bouncepaw), a solo developer based in Russia, and funded by NLnet through their Open Social Fund [2]. As of this review it sits at 131 GitHub stars with 5 forks. The canonical repository is on Codeberg; GitHub is a mirror [2][1]. The project is on version 1.6.0 with 14 releases and 560+ commits, which is a healthy cadence for a tool this focused.
License is AGPL-3.0 — which means you can self-host freely, but if you build a service on top of it and distribute it, you must open-source the modifications. For personal use, this distinction is irrelevant.
Why people choose it
There aren’t extensive third-party reviews of Betula in the way there are for larger tools — it’s a small project with a narrow, specific audience. What the AlternativeTo listing and Codeberg activity tell us is that people reach for it as an alternative to Raindrop.io, wallabag, Karakeep, and Floccus [1]. That’s an interesting shortlist: it includes both general-purpose bookmark managers and read-later tools, which reveals that Betula attracts people who are specifically looking for public link curation rather than private saved-article management.
The draw is almost always the combination of:
-
Fediverse integration — if you’re already on Mastodon and want to share links without maintaining a separate social account, Betula turns your bookmarks into a Fediverse-native feed.
-
Operational simplicity — one binary, one file. People who’ve burned time managing PostgreSQL for tools that don’t need it appreciate this.
-
IndieWeb alignment — Betula produces IndieWeb microformats. If you’re building a personal site and care about the semantic web, this matters [2][1].
-
No subscription — Raindrop.io Pro, Pinboard, and Pocket Premium all require ongoing payment. Betula doesn’t.
What people are not choosing Betula for: collaboration, mobile sync parity with commercial tools, or importing browser bookmarks with high fidelity (though a bookmarklet is provided). The AlternativeTo listing shows zero user reviews yet [1], which is consistent with a tool still finding its community.
Features
From the README and Codeberg source [2][1]:
Core bookmarking:
- Save bookmarks with optional title, description, and notes formatted in Mycomarkup (a lightweight markup language native to this developer’s ecosystem)
- Tag-based organization with JavaScript tag autocompletion (works without JS too)
- Public/private toggle per bookmark — share what you want, keep the rest local
- Search within your own collection
- Bookmarklet for saving from the browser
Fediverse / federation:
- Full ActivityPub support — your public bookmarks are Fediverse objects [2]
- Mastodon, Akkoma, Smithereen, and other ActivityPub clients can follow your instance [1]
- Follow other Betula instances; their public bookmarks appear in your timeline
- Like and repost from other instances [2]
- Cross-instance search within your followed instances
Archiving:
- Archive copies of web pages — relevant for link rot, which anyone maintaining a linklog eventually encounters [2][1]
Feed and integrations:
- RSS feed
- Miniflux integration (read later / feed reader) [2]
- IndieWeb microformats on all pages [2][1]
Technical:
- Single Go binary — no runtime dependencies
- SQLite database — entire collection is one file, trivially backed up [2]
- No JavaScript required for core functionality
- Built-in documentation
- Multiple binary targets via WASM SQLite cross-compilation (no CGO dependency) [2]
What’s missing vs. commercial tools:
- No native mobile apps
- No browser extension beyond the bookmarklet
- No full-text search of archived pages (archiving is storage, not indexing)
- No multi-user support — strictly single-user by design
- No import from browser’s native bookmarks format in a polished way
Pricing: SaaS vs self-hosted math
Betula itself is free. The question is what you’re replacing.
If your current tool is Raindrop.io:
- Raindrop.io Free: unlimited bookmarks, basic organization — functional for personal use
- Raindrop.io Pro: $3/month (~$28/year) — adds full-text search, nested collections, highlights
- Betula self-hosted on existing VPS: $0/month additional
If your current tool is Pinboard:
- Pinboard archival account: ~$25/year (pricing hasn’t changed in years)
- Betula: $0/year + archiving built-in [1]
If you’re running a dedicated VPS just for Betula:
- Hetzner CAX11 (ARM, 2 vCPU, 4GB RAM): ~€3.79/month
- DigitalOcean Droplet (1 vCPU, 1GB): $6/month
- Betula’s footprint is small enough to run comfortably alongside other self-hosted services on the same machine
Honest savings math: If you’re currently paying for Raindrop.io Pro or Pinboard archival, switching to Betula saves $25–35/year. That’s not the dramatic “$1,700/year saved” scenario of replacing Zapier — it’s a modest tool in a category where free-tier commercial options already exist. The argument for Betula isn’t primarily financial. It’s ownership, Fediverse integration, and IndieWeb alignment.
Deployment reality check
This is where Betula genuinely shines relative to most self-hosted tools reviewed on this site.
What you actually need:
- Any Linux server — even a $3/month VPS with 512MB RAM is enough
- No Docker required (though Docker works fine)
- No database server — SQLite is embedded
- A domain name if you want HTTPS and a public Fediverse presence
Installation: The README describes it as “one binary, one file, all configuration through the web interface” [2]. That’s accurate. Download the binary for your platform (pre-built releases on Codeberg cover Linux amd64, arm64, and more via the WASM SQLite build), make it executable, run it, configure through the browser. A reverse proxy (Caddy is the simplest choice) handles HTTPS. Realistically: 15–30 minutes for someone who has done basic VPS setup before. Under an hour including Caddy configuration for a first-timer following a guide.
Cross-compilation note: The project recently switched from CGO SQLite to WASM SQLite [2], which means pre-built binaries don’t require glibc gymnastics — the binary is genuinely portable. This is a meaningful quality-of-life improvement over tools that require exact libc version matching.
What can go sideways:
- Mycomarkup is a custom markup language specific to this developer’s projects. If you want Markdown formatting in bookmark notes, you’ll have to adapt — or just use plain text. This is a real friction point for anyone coming from standard tooling.
- Fediverse setup requires a public domain and correct reverse proxy configuration. Private instances work fine without it, but you lose the main differentiating feature.
- No Docker Compose file in the official repository [2] — you configure the binary directly. Some people prefer this; others find Docker Compose more familiar.
- 14 releases with 37 open issues on Codeberg [2] — a small project with a small issue backlog. Active enough, but if a bug hits you, the queue to fix it is a solo developer’s bandwidth.
Pros and Cons
Pros
- Absolute minimum footprint. One binary + one SQLite file. No database server, no container orchestration, no dependency hell. If you value operational simplicity, this is as clean as it gets [2].
- Fediverse-native. The only bookmark manager in this category with genuine ActivityPub integration. Public bookmarks appear in Mastodon timelines, you can follow other instances, cross-instance search works [2][1]. This is a unique feature, not a checkbox.
- Web page archiving included. Not a separate service — built in [2]. Useful for anyone curating links to content that might disappear.
- No JavaScript required for core use. The interface works without JS; autocompletion is an enhancement, not a requirement [2][1].
- IndieWeb microformats. If you care about machine-readable personal web content, it’s here by default [2][1].
- NLnet-funded. The project has received grant funding from a reputable European nonprofit [2]. This doesn’t guarantee longevity, but it signals the developer isn’t building on pure spare time alone.
- AGPL-3.0 — fully open, source is on Codeberg where it’s actually developed (GitHub is a mirror) [2].
Cons
- Strictly single-user. Not a limitation to work around — it’s a design decision. If you need shared bookmark collections with a team, this is the wrong tool [1].
- 131 GitHub stars, 5 forks. Small community. Fewer people means fewer integrations contributed, slower issue resolution, and higher bus-factor risk [1][2].
- Mycomarkup instead of Markdown. Every bookmark note uses a custom markup format that you’ll have to learn. Not complex, but it’s friction that doesn’t exist in tools that use standard Markdown.
- No dedicated mobile app. The web interface is functional on mobile, but there’s no native iOS/Android app for quick-save. The bookmarklet works, but it’s a second-class experience compared to Raindrop.io’s browser extension.
- Fediverse only valuable if public. If you want a private bookmark store with no public presence, the Fediverse integration provides zero value and adds minor complexity to your reverse proxy setup.
- No full-text search of archived pages. Archiving stores page copies, but you can’t search within the archived content — only the bookmark title, description, and tags [2].
- Zero user reviews on AlternativeTo as of this writing [1]. Not an indictment of the tool, but a signal that the user base is small and vocal community feedback is sparse.
Who should use this / who shouldn’t
Use Betula if:
- You maintain a public linklog or personal website and want bookmarks to appear in the Fediverse without running a separate Mastodon instance.
- You’re already on a VPS running other self-hosted services and want to add a dead-simple bookmark manager that won’t add operational overhead.
- You care about IndieWeb microformats and page archiving.
- You’re replacing Pinboard’s archival plan and want to stop paying $25/year for it.
- You want zero bookmarking data on any third-party server — no cloud sync, no vendor.
Skip it (stay on Raindrop.io free) if:
- You need bookmarks synced across multiple devices via native apps.
- You want a polished browser extension experience, not a bookmarklet.
- You don’t care about Fediverse or IndieWeb — you just want to save and search links.
Skip it (use wallabag instead) if:
- Your primary use case is saving articles to read later, with full-text archiving and search across saved content.
- You want proper Pocket/Instapaper replacement semantics.
Skip it (use Karakeep instead) if:
- You need multi-user support, mobile apps, and AI-powered tagging and categorization.
- The bookmark manager is a team tool, not a personal one [1].
Alternatives worth considering
From the AlternativeTo listing and the broader self-hosted bookmark category [1]:
- Raindrop.io — the polished commercial alternative. Better mobile apps, browser extension, nested collections, full-text search on Pro. $3/mo or free with limits. Closed source, your data on their servers.
- wallabag — self-hosted read-later tool. Better if you’re saving long articles to read later than curating links to share. Pairs well with Miniflux.
- Karakeep (formerly Hoarder) — newer self-hosted bookmark manager with AI tagging, mobile apps, and multi-user support. More complex to deploy but a more complete replacement for commercial tools.
- Floccus — browser extension for syncing browser bookmarks to a server (WebDAV/Nextcloud). Different use case: keeping browser bookmark bar in sync, not publishing a linklog.
- Pinboard — commercial, $11/year with archival at ~$25/year. Simple, fast, battle-tested. No Fediverse, no self-hosting.
- Linkding — self-hosted bookmark manager, more widely deployed than Betula, no Fediverse integration. Straightforward Docker deployment, tag-based, good browser extension.
The honest shortlist for someone choosing Betula’s category: Betula vs Linkding vs Karakeep. Betula wins on simplicity and Fediverse. Linkding wins on maturity and community size. Karakeep wins on feature completeness.
Bottom line
Betula is a focused, well-built tool for a specific use case: a solo operator who wants to publish a federated linklog, keep page archives, and do it with the minimum possible operational complexity. It is not trying to replace Raindrop.io for everyone — it’s trying to serve the part of the internet that thinks the Fediverse is worth participating in and that a single-file SQLite database is a feature, not a limitation. If that describes you, the 15-minute install will pay off immediately. If it doesn’t — if you need team sharing, mobile apps, or a polished browser extension — the tool will frustrate you with what it deliberately doesn’t do. The 131-star count is not a bug; it’s a signal that this tool has found its niche rather than chasing mass adoption. For that niche, it does its job cleanly.
Sources
- AlternativeTo — Betula listing (community-maintained, properties, alternatives). https://alternativeto.net/software/betula/about/
- Codeberg — bouncepaw/betula (primary repository, README, commit history, issue tracker). https://codeberg.org/bouncepaw/betula
- Codeberg — danilax86/betula (fork/mirror, README, additional metadata). https://codeberg.org/danilax86/betula
Primary sources:
- GitHub mirror: https://github.com/bouncepaw/betula (131 stars, AGPL-3.0)
- Official website: https://betula.mycorrhiza.wiki
- NLnet project page: https://nlnet.nl/project/Betula
Features
Search & Discovery
- Bookmarks / Favorites
- Tags / Labels
Category
Replaces
Related Documents & Knowledge Base Tools
View all 226 →Stirling-PDF
75KThe most popular self-hosted PDF platform — merge, split, convert, OCR, sign, and process documents with AI, all running on your own infrastructure.
AppFlowy
69KAn open-source Notion alternative with AI, wikis, projects, and databases — cross-platform (desktop, mobile, web) with offline-first architecture and full data ownership.
AFFiNE Community Edition
66KAn open-source workspace that merges docs, whiteboards, and databases into one platform — a privacy-focused alternative to Notion and Miro with AI built in.
Docusaurus
64KA static site generator built on React for documentation websites — write in Markdown/MDX, version your docs, and deploy anywhere. Created by Meta.
Crawl4AI
62KOpen-source LLM-friendly web crawler that generates clean markdown from any website, purpose-built for RAG pipelines, AI data extraction, and automated research.
Atom
61KGitHub's hackable text editor, officially sunset in December 2022. The codebase remains archived on GitHub as a reference for community forks like Pulsar.