28 Self-Hosted Apps That Run Entirely on Cloudflare Workers
Password managers, email clients, note-taking apps, analytics, link shorteners, and more — all running on Cloudflare Workers for free. No VPS, no Docker, no server maintenance.

Cloudflare Workers has quietly become a self-hosting platform. Not a VPS replacement in the traditional sense — there’s no SSH, no Docker, no persistent filesystem. But for apps that fit the serverless model (HTTP request in, response out, data in D1/R2/KV), it’s a compelling option: global edge network, generous free tier, zero server maintenance, and your data stays in your own Cloudflare account.
This article catalogs 28 open-source apps that run entirely on Cloudflare Workers. Every project listed here was verified against its README — no “also supports Cloudflare” footnotes, these are Cloudflare-native applications built around Workers, D1, R2, KV, Durable Objects, and other Cloudflare primitives.
Why self-host on Cloudflare Workers?
Before diving into the apps, here’s why this model works:
- $0–5/month — Cloudflare’s free tier covers most personal use: 100k requests/day, 5 GB D1 storage, 10 GB R2 storage, 1 GB KV storage
- No server to maintain — no OS patches, no Docker updates, no uptime monitoring, no disk space alerts
- Global edge network — your app runs in 300+ data centers worldwide, sub-50ms latency everywhere
- Your data, your account — everything lives in your Cloudflare account, not on someone else’s SaaS
- Free HTTPS and custom domains — automatic TLS certificates, bind any domain you own
- Scales to zero — no idle costs when nobody’s using your app
The tradeoff: no long-running processes, no WebSocket-heavy apps (Durable Objects help but have limits), and a 100 MB request body cap. Apps that need a persistent filesystem or heavy compute don’t fit. But for CRUD apps, email clients, note-taking, analytics, and link shorteners — it’s a sweet spot.
Email Clients (8 apps)
The biggest category. Cloudflare Email Routing handles inbound mail, Email Sending handles outbound, and the Worker does everything in between.
Agentic Inbox — 6,900 ⭐
cloudflare/agentic-inbox — Official Cloudflare project. A full email client with an AI agent that reads your inbox, searches conversations, and drafts replies. Each mailbox is isolated in its own Durable Object with SQLite storage. Attachments go to R2. Uses the Cloudflare Agents SDK and Workers AI (@cf/moonshotai/kimi-k2.5).
Stack: React 19, Hono, Durable Objects, R2, Email Routing, Workers AI License: Apache-2.0
HQBase — 271 ⭐
HQBase/hqbase — Shared email workspace for teams. Multi-domain setup, shared mailboxes, team access controls, drafts, audit history, and an OAuth-protected MCP server. Has a “Deploy to Cloudflare” button.
Stack: TypeScript, D1, R2, Better Auth License: AGPL-3.0
QuickMail — 258 ⭐
DivinPrince/quickmail — Self-hosted email for your own domain. Supports both Resend and Cloudflare Email Service as providers. Features include threading, attachments (R2), safe HTML rendering, multiple domains/users, delivery status tracking, REST API, CLI, and MCP server. Desktop notifications via Web Push.
Stack: SvelteKit, D1, R2, Hono License: MIT
SaaSMail — 241 ⭐
choyiny/saasmail — Centralized inbox for SaaS teams. One unified timeline per customer — marketing, notifications, and support emails collapsed into a single view. Features email sequencing (drip campaigns), templates with {{variable}} interpolation, suppressions/unsubscribe, per-inbox forwarding, and an MCP server. Supports Cloudflare Email Sending, Resend, Bavimail, and Postmark.
Stack: React, Hono, D1, R2, Queues, Durable Objects, Drizzle License: Apache-2.0
Email Explorer — 155 ⭐
G4brym/email-explorer — Full-stack email client with rich text editor, reply/forward, folder organization, contacts, full-text search, and multi-user support with RBAC. Each mailbox is its own Durable Object. Smart auth mode: first user becomes admin, registration closes after.
Stack: Vue.js 3, Hono, Durable Objects, R2, D1 License: MIT
Tempik — 86 ⭐
hirotomasato/tempik — Disposable temp email service. Uses Cloudflare Email Workers to receive inbound email, D1 for storage, and serves a clean web UI from the edge. Zero cost on the free tier. Good for sign-up verification, testing, and privacy.
Stack: Hono, D1, Workers Static Assets License: MIT
ni-mail — 85 ⭐
mskatoni/ni-mail — Minimal email receiver. A single Cloudflare Worker that receives emails via Email Routing and exposes an HTTP API to read them. Uses KV for storage (last 50 emails). No database, no frontend, no JWT — just curl /latest with an API key. Perfect for automation and scripts.
Stack: Workers + KV, postal-mime License: Apache-2.0
OmniMail — 58 ⭐
mibgb65-cloud/OmniMail — Multi-domain webmail with a full permission model (super admin, admin, user, temporary). Features include iCloud Hide My Email integration, Chrome extension for floating email panel, Resend/SendFlare for sending, D1 backup/restore, and Turnstile protection. Chinese-first but has English UI.
Stack: React, Hono, D1, R2, Queues, Workflows License: MIT
Notes & Knowledge Management (6 apps)
EdgeEver — 1,209 ⭐
tianma-if/edgeever — Open-source Evernote alternative. Classic three-pane layout, rich text + Markdown editor, MCP integration, native iOS/Android/Mac apps, PWA, web clipper (Chrome/Edge/Firefox), multi-account support, and ZIP backup/export. Runs within Cloudflare’s free quotas. Also supports Docker deployment.
Stack: React, TipTap, Hono, D1, R2, Electron (desktop), Expo (Android), SwiftUI (iOS) License: AGPL-3.0
Second Brain — 723 ⭐
rahilp/second-brain-cloudflare — One shared memory layer for Claude, ChatGPT, Cursor, and every other AI tool. Stores memories with semantic search (Vectorize), connects via MCP with OAuth, syncs from Notion, calendars, email, Obsidian, browser extension, and iOS shortcuts. Desktop app for Mac/Windows. Product Hunt #3 Product of the Day.
Stack: Workers, D1, Vectorize, KV, Workers AI License: MIT
YAOS — 980 ⭐
kavinsood/yaos — Real-time sync engine for Obsidian powered by CRDTs (Yjs). No terminal needed — click “Deploy to Cloudflare” and you’re syncing. Uses Durable Objects for live vault state, R2 for attachments and daily snapshots. Zero-config authentication. Replaces Obsidian Sync ($96/year) with a free, self-deployed alternative.
Stack: Workers, Durable Objects, R2, Yjs CRDT License: 0BSD
Inkstone — 337 ⭐
shuaiplus/inkstone — Self-hosted Markdown notebook with bidirectional links, backlinks, wiki links, block references, relationship graph, offline editing, multi-device sync, semantic search (Workers AI), public sharing, and WebDAV/S3 backups. Full-featured editor with CodeMirror 6, focus mode, typewriter mode, and Mermaid diagram rendering.
Stack: React, Hono, D1, R2, KV, Durable Objects, CodeMirror 6 License: LGPL-3.0
Memos Worker — 198 ⭐
souvenp/memos-worker — Cloudflare-powered notes and knowledge base inspired by Memos. Full Markdown support, file attachments (R2), public sharing, Telegram bot integration, full-text search, timeline/calendar views, contribution heatmap, and a knowledge base (docs) module. Highly customizable themes.
Stack: Workers, D1, R2, KV License: Not specified
FlareMo — 167 ⭐
realchendahuang/FlareMo — Cloudflare-native PKM with Memos-compatible API. Better Auth for authentication, PWA with offline support, MCP endpoint, and OpenAPI output. Designed to run on a free Cloudflare account: 5 GB D1 (2.5 million notes), 10 GB R2 (5,000–10,000 images). Chinese-first with English docs.
Stack: React, Vite, Hono, D1, R2, Drizzle, Better Auth License: MIT
Password Manager (1 app)
NodeWarden — 3,387 ⭐
shuaiplus/nodewarden — Bitwarden-compatible server on Cloudflare Workers. Works with all official Bitwarden clients (desktop, mobile, browser extension). Features include TOTP (with Steam support), PWA/offline mode, passkey login, real-time push sync, attachments (R2 or KV), import/export, cloud backup center (WebDAV/S3), device management, and multi-user support. One-click deploy via Cloudflare dashboard.
Stack: TypeScript, D1, R2 (or KV), Preact (web vault) License: LGPL-3.0
NodeWarden vs Vaultwarden
NodeWarden replaces Vaultwarden for the Cloudflare-native stack. Vaultwarden needs a VPS with Docker; NodeWarden runs on Workers with D1. Same Bitwarden clients, zero server maintenance.
Link Shorteners & Analytics (3 apps)
Sink — 7,034 ⭐
miantiao-me/Sink — The most starred project on this list. Link shortener with analytics, AI-powered slug generation (Workers AI), custom slugs, UTM builder, password protection, device/geo-based redirection, QR codes, real-time 3D globe analytics, and multi-language UI. Uses D1 as primary database with KV as read cache. Already covered in detail in our Sink installation guide.
Stack: Nuxt 4, D1, KV, R2, Workers Analytics Engine, Workers AI License: AGPL-3.0
Relay — 64 ⭐
YuriCrystal/relay — Link shortener focused on marketing attribution. Cookieless conversion tracking via /track postback, A/B split testing, device/geo routing, /suffix source tracking, FB Pixel/GA4/GTM retargeting interstitials, unique visitor counting, and CSV export. Single-file admin dashboard (zero build, zero dependencies). Privacy-first: no cookies, no IP stored, no raw User-Agent.
Stack: Workers, D1 (single worker.js + index.html)
License: MIT
Analytics — 19 ⭐
fayazara/analytics — Privacy-first, cookieless web analytics for personal projects. Single owner, unlimited sites. Uses D1 for storage, a Durable Object for live visitor count (WebSocket), and a Cron Trigger for daily rollups. Dashboard built with Kumo (@cloudflare/kumo). Tracks pages, referrers, UTM, devices, locations, and custom events. ~2KB tracking snippet.
Stack: TanStack Start, D1, Durable Objects, Drizzle ORM License: Not specified
Blog & CMS (1 app)
Monolith — 318 ⭐
one-ea/Monolith — Edge-native blog system on Cloudflare. Immersive Markdown editor, multi-platform import (WordPress/Ghost/Hexo/Hugo/Jekyll/Halo), dark/light themes, ⌘K search, reaction emojis, reading progress bar, RSS, sitemap, JSON-LD SEO. Storage adapters for D1/Turso/PostgreSQL and R2/S3. MCP companion for AI-assisted writing.
Stack: Hono, React, Drizzle ORM, D1, R2, Vite License: MIT
Backend as a Service (1 app)
Cloudflarebase — 203 ⭐
cloudflarebase/cloudflarebase — Open-source Firebase/Supabase alternative on Cloudflare. Each project gets its own Durable Objects for physical tenant isolation. Features: Better Auth (email/password, social sign-in, roles), JSON collections + typed SQL tables with live queries, remote config (feature flags), R2 file storage with signed URLs, and static site hosting. Use it hosted or self-host on your own Cloudflare account.
Stack: SvelteKit, Durable Objects, R2, Better Auth, Drizzle License: Apache-2.0
AI & Agents (2 apps)
Open Managed Agents — 243 ⭐
openma-ai/open-managed-agents — Open-source alternative to Claude Managed Agents. Drop-in compatible API, runs on Cloudflare Workers + Durable Objects or Docker. Features: sessions, sandboxes, tools, memory stores, encrypted vaults, MCP servers, Slack/GitHub/Linear integrations, and crash recovery. Write a harness, deploy, and the platform runs it.
Stack: Workers, Durable Objects, KV, R2, Hono License: Apache-2.0
Codra — 70 ⭐
devarshishimpi/codra — Self-hosted AI code review for GitHub pull requests. Listens to PR webhooks, runs AI-powered review jobs via Cloudflare Queues, posts inline findings back to the PR. Dashboard for inspecting jobs, repositories, model routing, and review history. Supports OpenAI, OpenRouter, Anthropic, Google, NVIDIA, and Cloudflare models.
Stack: Workers, Hono, React, Queues, Hyperdrive, KV, PostgreSQL License: AGPL-3.0
Dev Tools (3 apps)
ripgit — 164 ⭐
deathbyknowledge/ripgit — Self-hosted Git remote built with Durable Objects. One DO per repo, SQLite storage, FTS5 search, delta compression (5–20x). Standard git operations (push, clone, fetch), web UI with file browser, commit history, diffs, syntax highlighting, and code search. Built in Rust with workers-rs. Agent-first: browsable pages negotiate text/markdown for curl and scripts.
Stack: Rust, WASM, Durable Objects, KV License: AGPL-3.0
ShareHTML — 128 ⭐
jonesphillip/sharehtml — Deploy HTML, Markdown, or code files from the CLI, get a shareable URL with live comments, reactions, and presence. Re-deploy to update content at the same URL. Uses R2 for storage, Durable Objects for per-document collaboration (comments, reactions, real-time presence via WebSocket). Cloudflare Access optional.
Stack: Bun (CLI), Workers, Durable Objects, R2 License: Apache-2.0
Seeder — 78 ⭐
danielsyauqi/Seeder — Personal project manager with kanban tasks, client requests, a public client board, and a built-in MCP server. Features: rich text (TipTap), activity feed, roles/invites/notifications, white-labeling, and daily planner. Runs on Cloudflare Workers (D1 + R2) or a single Node VM.
Stack: Next.js, Drizzle ORM, Better Auth, D1, R2 License: MIT
Notifications (1 app)
Kukuroo — 117 ⭐
saiday/kukuroo — Self-hosted Web Push service on a Cloudflare Worker. iOS and macOS notifications via Declarative Web Push (Safari only — iOS 18.4+, macOS 18.5+). No server to keep alive, no notification vendor, no native app. One curl POST sends a notification. Can be mounted inside an existing Worker. Claude Code plugin available.
Stack: Workers, KV License: MIT
Feedback & Roadmap (1 app)
FeedLog — 88 ⭐
linkcraftstudio/feedlog — Open-source feedback and roadmap tool (Canny/Featurebase alternative). Feedback boards with voting, public roadmap, AI-assisted changelog drafting, similar-idea detection via vector embeddings, and notifications. Deploys to Cloudflare Workers, Vercel, or Docker. Requires PostgreSQL 17+ with pgvector (Neon or Supabase work out of the box).
Stack: Nuxt 4, Drizzle ORM, PostgreSQL + pgvector, R2, Better Auth License: MIT
Media (1 app)
CiviVideo — 60 ⭐
bitoceango/civideo — Self-hosted, ad-free kids video streaming player with parental controls. Parents upload videos to Cloudflare R2; kids watch in a closed player — no recommendations, ads, comments, or external links. Native apps for iOS/iPadOS/macOS (SwiftUI) and Windows/Android (Tauri). Features: daily time limits, allowed time periods, eye protection reminders, audiobook support (text-to-speech via Doubao), and a commercial-grade video player.
Stack: Workers, R2, D1, SwiftUI, Tauri v2 License: MIT
Quick Comparison Table
| App | Category | ⭐ | D1 | R2 | KV | DO | Deploy Button |
|---|---|---|---|---|---|---|---|
| Sink | Links | 7,034 | ✅ | ✅ | ✅ | — | ✅ |
| Agentic Inbox | 6,900 | — | ✅ | — | ✅ | ✅ | |
| NodeWarden | Passwords | 3,387 | ✅ | ✅ | ✅ | — | ✅ |
| YAOS | Sync | 980 | — | ✅ | — | ✅ | ✅ |
| EdgeEver | Notes | 1,209 | ✅ | ✅ | — | — | ✅ |
| Second Brain | AI Memory | 723 | ✅ | — | ✅ | — | ✅ |
| Inkstone | Notes | 337 | ✅ | ✅ | ✅ | ✅ | — |
| Monolith | Blog | 318 | ✅ | ✅ | — | — | — |
| HQBase | 271 | ✅ | ✅ | — | — | ✅ | |
| QuickMail | 258 | ✅ | ✅ | — | — | ✅ | |
| Open Managed Agents | AI | 243 | — | ✅ | ✅ | ✅ | — |
| SaaSMail | 241 | ✅ | ✅ | — | ✅ | — | |
| Cloudflarebase | BaaS | 203 | — | ✅ | — | ✅ | ✅ |
| Memos Worker | Notes | 198 | ✅ | ✅ | ✅ | — | — |
| Email Explorer | 155 | ✅ | ✅ | — | ✅ | ✅ | |
| ripgit | Git | 164 | — | — | ✅ | ✅ | — |
| FlareMo | Notes | 167 | ✅ | ✅ | — | — | ✅ |
| ShareHTML | Sharing | 128 | — | ✅ | — | ✅ | — |
| Kukuroo | Push | 117 | — | — | ✅ | — | — |
| FeedLog | Feedback | 88 | — | ✅ | — | — | ✅ |
| Tempik | 86 | ✅ | — | — | — | — | |
| ni-mail | 85 | — | — | ✅ | — | ✅ | |
| Seeder | Projects | 78 | ✅ | ✅ | — | — | — |
| Codra | Code Review | 70 | — | — | ✅ | — | — |
| Relay | Links | 64 | ✅ | — | — | — | ✅ |
| CiviVideo | Video | 60 | ✅ | ✅ | — | — | — |
| OmniMail | 58 | ✅ | ✅ | — | — | ✅ | |
| Analytics | Analytics | 19 | ✅ | — | — | ✅ | — |
What Cloudflare services these apps use
Understanding the building blocks helps you evaluate what fits your needs:
Cloudflare D1 — SQLite database
D1 is Cloudflare’s serverless SQLite database. Free tier: 5 GB storage, 5 million row reads/day, 100k row writes/day. Used by most apps on this list for structured data — user accounts, notes, links, email metadata, analytics rows. Think of it as the “Postgres of Cloudflare” for simple workloads.
Cloudflare R2 — Object storage
S3-compatible object storage with zero egress fees. Free tier: 10 GB storage, 1 million Class A operations/month, 10 million Class B operations/month. Used for file attachments, email bodies, images, video files, backups, and static assets. The zero egress fee is the killer feature — serving files to users costs nothing.
Cloudflare KV — Key-value store
Global, low-latency key-value store. Free tier: 1 GB storage, 100k reads/day, 1,000 writes/day. Best for read-heavy, eventually-consistent data: configuration, session tokens, redirect caches, subscription data. Not suitable for data that needs strong consistency.
Durable Objects — Stateful compute
The most powerful primitive on this list. Each Durable Object is a single-instance actor with its own SQLite database (up to 10 GB), WebSocket support, and hibernation. Used for per-user mailboxes, per-document collaboration, per-repo git storage, and live visitor counts. Free tier: 1 million requests/month, 400,000 GB-seconds of compute.
Cloudflare Queues — Message queues
Pub/sub message queues for async processing. Used by email apps (SaaSMail, OmniMail) for sequence email scheduling and inbound email parsing. Free tier: 100k operations/month.
How to deploy any of these apps
The deployment pattern is the same for almost every project on this list:
- Fork the repo to your GitHub account
- Connect to Cloudflare Workers & Pages — import the fork
- Create resources — D1 database, R2 bucket, KV namespace (the deploy button or setup script usually handles this)
- Set secrets — auth tokens, API keys via
wrangler secret put - Deploy —
wrangler deployor let Workers Builds handle it
Most projects have a “Deploy to Cloudflare” button that automates steps 1–4. The whole process takes 5–15 minutes.
Custom domains recommended
The default *.workers.dev domain is blocked in some regions. For production use, bind a custom domain you own. Cloudflare handles TLS automatically.
What doesn’t work on Cloudflare Workers
Not every self-hosted app fits the serverless model. Here’s what to avoid:
- Docker-based apps — no container runtime on Workers (use a VPS or Dokploy)
- Database-heavy apps needing Postgres/MySQL — D1 is SQLite-only; apps like FeedLog work around this with external Postgres via Hyperdrive
- Long-running processes — no background daemons, no cron longer than a few seconds (use Queues + Durable Objects for async work)
- Apps needing a filesystem — no persistent disk; use R2 for files
- Real-time collaboration at scale — Durable Objects have a 30-second timeout and memory limits; fine for small teams, not for Google Docs-scale editing
Final thoughts
The Cloudflare self-hosting ecosystem has matured fast. A year ago, Sink and a handful of experiments were all there was. Now there are production-quality email clients, password managers, note-taking apps, AI agent platforms, and even a Git remote — all running on Workers.
The common thread: these apps are built by developers who wanted to self-host something without running a server. The Cloudflare free tier is generous enough for personal use, and the paid plan ($5/month for Workers Paid) unlocks Durable Objects and higher limits for team use.
If you’re already running a Docker-based self-hosting stack, these apps complement it — they handle the lightweight, always-on services (email, notes, link shortening) while your VPS handles the heavy lifting (media servers, databases, CI/CD).
Star this article on GitHub

