How is this different from Disqus?
Disqus is a SaaS — your comments live on their servers, alongside their ad network and trackers. Garrul is something you deploy yourself. The comments live in your Cloudflare account, the embed loads from your domain, and there are no third-party scripts to block.
Is it GDPR-friendly?
Garrul does not log raw IP addresses (they're HMAC-hashed before storage), does not set ad-tracking cookies, and ships no advertising or analytics trackers in the embed. You remain the data controller, so GDPR obligations are yours, but Garrul gives you the levers — full export, full delete — to honour user requests. This site's own privacy policy is a worked example you can crib from.
What do reply notifications actually send?
Plain email, not a webhook. A reader ticks a box in the composer, or presses the 🔔 in the thread toolbar to follow a thread without commenting at all. They confirm by double opt-in — nothing is ever delivered to an unconfirmed address — and from then on receive a debounced digest rather than a message per comment. A reader signed in with a provider-verified address is confirmed on the spot, since the provider already proved they control the inbox. It needs a Resend API key and nothing else.
Worth being precise about the scope: subscriptions are post-scoped. You get every new comment on a thread you subscribed to, not only the direct replies to your own comment. Per-parent-author scoping is on the backlog, not shipped. Moderators are separate — they can opt into their own digest of whatever is queued or reported, off by default.
Getting out takes four routes, and three of them need no account: the Unsubscribe button your mail client shows next to the sender, because digests carry RFC 8058 List-Unsubscribe headers; the link at the bottom of every digest; that link's landing page, which lists every other thread the address follows with a per-row unsubscribe and an unsubscribe-from-all; and, for a reader signed in with a verified address, a Manage subscriptions panel in the widget itself.
What gets stored about commenters?
For OAuth users: provider, provider user ID, display name, avatar URL, and the email address if the provider reports it as verified. For anonymous: display name and a hashed IP. Every comment also carries a hashed IP and the browser user-agent string for spam triage. Comment bodies are stored as markdown plus rendered HTML. Rate-limit counters live in KV with short TTLs; sign-in sessions expire after 30 days. Full detail in the privacy policy.
Can I migrate away later?
Yes. D1 is SQLite — you can dump the database to a file at any time. The schema is documented in the repository. Getting in is covered too — Garrul imports from Disqus, Remark42, Comentario, Commento, isso, and Cusdis, so you can bring your existing threads with you. Out is covered too: the admin panel downloads every post, comment, and user as JSON or CSV.
Who maintains Garrul?
One person: KingPin. Garrul started as a replacement for Disqus on my own site — the ads were embarrassing, and every alternative wanted a server I didn't want to run. It has been developed in the open on GitHub ever since. Issues and pull requests get read; you can also reach me at [email protected]. If it's useful to you, GitHub Sponsors and Ko-fi keep it going.
What can't Garrul do?
The thread doesn't update itself — there are no live updates, so a reader sees new comments on refresh rather than as they land. There are no image uploads, no @mentions, and no search within a comment thread.
One Worker serves one site; running several sites means several deploys, and proper multi-tenancy is a v2 question rather than a setting. The widget your readers see is translated and handles right-to-left layouts, but the admin UI and the Telegram bot are English-only by design.
None of these are secret — they're just easier to hear now than after you've deployed.
Is it production-ready?
It has been in steady development since the first tagged release in May 2026, with new releases landing most weeks — the release history is the honest record of the pace. The deployment path is documented end-to-end (Workers, D1, KV, OAuth, Turnstile, custom domain), and the live comment section further up this page runs the same code you would deploy. Two things worth being straight about: it is maintained by one person, and it is young. Production use is encouraged; please open issues for anything that bites.
Do I need Cloudflare? Can I run Garrul on Docker or a VPS?
You need Cloudflare. Garrul isn't a Node app that happens to deploy to Workers — it's built on Workers directly, with comments in D1, sessions and rate limits in KV, and wrangler as the deploy tool. There's no Docker image and no VPS install path, and adding one would mean rewriting the storage layer. If you specifically want comments on a box you own outright, Commento, Isso, and Remark42 are the honest recommendations. If Cloudflare is fine by you, that same constraint is what keeps the bill near zero and the ops work near nil.
Talk to us
This is a live Garrul instance — the same code you'd deploy, running on one Worker. Post something and see for yourself. Yes, really.