Garrul
Disqus alternative for static sites and blogs: threaded comments on one Worker with D1, KV and Turnstile
Garrul comment widget with page reactions, a markdown composer and a threaded discussion with votes
Garrul adds a comment section to any page through a small embedded widget. Readers write in markdown, react and vote, and either post anonymously behind Turnstile or sign in with GitHub, Google, Facebook, X or Discord. Importers bring in existing threads from Disqus, Remark42, Comentario, isso and Cusdis.
Two lines of HTML put Garrul on a page: a div carrying the post slug and a script tag that loads embed.js from your Worker. The widget renders inside a Shadow DOM so the host page's CSS cannot collide with it, is capped at 30 KB gzipped in CI, and is translated into eleven languages. Readers also get nested replies, reports, a newest, oldest or top sort, and a window to edit or delete their own comments. They can subscribe to reply notifications by email, confirmed by double opt-in, with a one-click unsubscribe. Spam handling starts with Turnstile, a sliding-window rate limit, a strict markdown sanitizer and a honeypot field. Four optional heuristics (minimum fill time, link count, holding an author's first comment, a muted-words list) and an optional Akismet or Workers AI classifier send anything suspicious to the moderation queue instead of dropping it. The admin UI covers that queue, users, webhooks to Slack, Discord or Telegram, a Telegram operator bot, settings that apply without a redeploy, and full-site exports as JSON or CSV. Per-user export and erase tools handle data-subject requests. After cloning the latest release and running npm install, npm run setup asks for the site that will embed the widget and for your Turnstile keys. It creates the D1 database and four KV namespaces, generates secrets, sets the workers.dev or custom hostname, applies migrations, deploys, and prints a single-use owner sign-in link. Later releases go in with npm run upgrade, which can print its plan first with --dry-run. IP addresses are stored only as HMAC hashes.
Built for: Bloggers, documentation owners and small publishers running static sites who want reader comments stored in their own Cloudflare account.
What you can use it for
- Replace Disqus on a Hugo, Jekyll, Astro or WordPress site and import the existing threads
- Add moderated comments to a documentation site or changelog
- Collect page reactions and votes without showing a full comment thread
- Moderate new comments from a phone through the Telegram operator bot
- Send readers reply notifications by email through Resend
Deploy
CLI
Branch main
Create a Turnstile widget for your blog's hostname when setup asks for the keys. Add OAuth providers and Resend later with npm run setup -- --secrets; webhooks are set up in the admin UI.
npx wrangler login git clone https://github.com/KingPin/Garrul.git cd Garrul git checkout "$(git describe --tags --abbrev=0)" npm install npm run setup
INSTALL.md puts a live workers.dev instance at a few minutes and a full production setup, with a custom domain and OAuth, at 20 to 30 minutes.
What it needs to run
- D1 databasesgarrul-db
- KV namespacesOAUTH_STATE, RATE_LIMITS, SESSIONS, TREE_CACHE
Also uses
- GitHub OAuth (optional): Lets readers sign in with GitHub
- Google OAuth (optional): Lets readers sign in with Google
- Resend (optional): Sends reply notifications and moderator digests by emailSource
Good to know
Installation runs from a local terminal with Node.js 24 or later; there is no deploy button. Each OAuth sign-in provider needs its own OAuth app, and email notifications need a Resend API key. The docs advise mapping a custom subdomain instead of workers.dev for production use. Young project: the repository was created in May 2026.
Cost on Cloudflare
Likely fits the free plan
The homepage says small blogs typically fit inside Cloudflare's free tiers and puts the Workers Free ceiling at roughly 50,000 page views a day, since mounting a thread takes two requests. KV on Workers Free accepts 1,000 writes a day.
The estimate is based on Cloudflare’s documented limits and the app’s configuration. What you pay depends on your usage and plan.
Where this comes from
- Repositoryhttps://github.com/KingPin/Garrul
- App websitehttps://garrul.com
- Demohttps://garrul.com/#comments
- Documentationhttps://github.com/KingPin/Garrul/blob/main/INSTALL.md
An alternative to Disqus, FastComments, Hyvor Talk.
Listing history
- Oct 3, 2026 · Garrul listed
Similar apps
All CMS & Publishing apps
Open-source Astro CMS from Cloudflare for blogs and marketing sites, with a WordPress-style admin and sandboxed plugins
- Deploy
- One-click
- License
- MIT
- GitHub stars
- 13.4k stars
- Last commit

Self-hosted CMS that publishes podcasts, posts, photos and links as a website, RSS feed and JSON Feed on Cloudflare
- Deploy
- CLI
- License
- AGPL-3.0
- GitHub stars
- 4.1k stars
- Last commit

Self-hosted blog with a browser editor, comments and RSS, deployed to your Cloudflare account by GitHub Actions
- Deploy
- Manual
- License
- MIT
- GitHub stars
- 3.1k stars
- Last commit