unsubbed.co

remark42

For communication & messaging, remark42 is a self-hosted solution that provides lightweight and simple comment engine.

Self-hosted commenting, honestly reviewed. What you actually get when you drop Disqus and run your own.

TL;DR

  • What it is: Self-hosted, MIT-licensed comment engine — think Disqus, but your server, your data, no ad tracking [README][1].
  • Who it’s for: Bloggers, indie developers, and small site owners who want commenting without handing user data to a third-party ad network. Particularly popular with static site generators (Hugo, Astro, Jekyll) [1][3][4].
  • Cost savings: Disqus Plus (ad-free) runs $9/mo; Disqus Pro runs $89/mo. Remark42 self-hosted runs on a small VPS with memory usage around 80MB — well within a $5–6/mo instance [README][2].
  • Key strength: No external database dependencies. Everything lives in a single embedded BoltDB file. The entire stack runs in one Docker container [2][README].
  • Key weakness: No managed cloud option exists — you must self-host. VentureGaps explicitly flags this as a primary reason users look for alternatives: “lacks a managed, cloud-hosted service option for non-technical users” [5].

What is remark42

Remark42 is a commenting system you embed into a website. Visitors log in (via Google, GitHub, email, or anonymously), leave comments, reply to others, vote, and get notified when someone responds. The owner gets admin controls, moderation tools, spam management, and notifications via Telegram, Slack, email, or webhook.

The differentiator isn’t the feature list — it’s the architecture. Remark42 stores everything in an embedded BoltDB key-value store, meaning no PostgreSQL, no MySQL, no Redis to provision and maintain [2][README]. The entire backend is a single statically-compiled Go binary with a Docker image under 200MB [README][2]. Production installations running for five years with regular activity consume under 200MB of disk and sit at ~80MB RAM with CPU usage typically under 0.1% [README]. You can run this on a Raspberry Pi, a shared VPS, or the cheapest tier Hetzner offers.

The project sits at 5,460 GitHub stars (MIT licensed) and is actively maintained under the umputun organization [merged profile]. It’s not a startup with a growth deck — it’s a small, focused tool built by engineers who wanted a better comment system for their own sites and then kept maintaining it.

Jeff Geerling — who runs one of the more widely-read technical blogs in the homelab/DevOps space — used Remark42 to migrate 13,189 comments across 1,119 Drupal posts when he moved to Hugo in early 2026. His description: he hadn’t heard of the system until he got serious about a static site migration [4]. That’s a fair description of where Remark42 sits in the awareness hierarchy — not a category leader, but the right answer once you go looking.


Why people choose it

The decision chain that leads to Remark42 is consistent across every review: Disqus, frustration with its privacy model, research into alternatives, landing here.

The deployn.de comparison [2] summarizes it cleanly: Disqus is easy to set up but treats your readers’ data as a product. The LaRomierre blog author [1] puts it more directly — after digging into Content Security Policy headers and what Disqus actually sends off-site, they set hard criteria: open-source, self-hosted, actively maintained. Remark42 cleared all three.

The privacy model is worth reading in detail because it’s unusually specific for a project README. Remark42 explicitly documents what it does and doesn’t store: it keeps user ID, username, and avatar link only; all three are hashed or proxied before storage [README][website]. There’s no cross-site tracking — a user’s behavior can’t be analyzed across different Remark42 installations [README]. Auth tokens are HttpOnly JWT cookies with a separate XSRF token to prevent CSRF [README]. Users can request a full export of their data or submit a “deleteme” request that removes everything [README]. That last part matters in a GDPR context.

The Go + BoltDB stack also comes up repeatedly as a reason people pick it over Python-based alternatives like Isso [2]. Isso is also lightweight and privacy-friendly, but uses SQLite and Python — Remark42’s Go binary is faster, simpler to deploy, and the single-file data store makes backups trivial [2]. The deployn.de comparison notes Isso has “no rich text editor” as a downside; Remark42 ships with a Markdown toolbar [2][README].

Static site generator users are the most natural audience. Hugo users specifically appear in three of the five source articles [1][3][4]. The reason is structural: Hugo, Astro, and similar generators don’t have a backend, so comments must come from an external service — and Disqus is the obvious first answer until you read the privacy fine print.


Features

Authentication:

  • Social login: Google, Facebook, Microsoft, GitHub, Apple, Yandex, Patreon, Discord, Telegram [README]
  • Email login [README]
  • Optional anonymous access — configurable per site [3][README]

Comment experience:

  • Multi-level nested comments with both tree and flat/plain view [README]
  • Markdown support with a formatter toolbar [README]
  • Voting, pinning, and comment verification [README]
  • Sortable comments [README]
  • Image upload with drag-and-drop [README]
  • RSS feeds per post and site-wide [README]

Moderation:

  • Comment removal and user blocking [README]
  • Admin UI for moderation [README docs link]

Notifications:

  • Admin notifications via Telegram, Slack, email, and webhook on every new comment [README]
  • User notifications via email and Telegram when someone replies [README]

Data:

  • Export to JSON with automatic scheduled backups [README]
  • Import from Disqus and WordPress — migration path exists [README][4]
  • No external database; BoltDB embedded in a single data file [2][README]

Infrastructure:

  • Single Docker container deployment [1][3][README]
  • Multi-site mode from one instance — useful if you run multiple blogs [README]
  • Automatic SSL integration (direct or via reproxy/nginx-le) [README]
  • Binary deployments for Linux, Windows, macOS without Docker [README]
  • Helm chart available for Kubernetes [README]
  • White and dark themes [README]

Pricing: SaaS vs self-hosted math

Remark42 has no SaaS tier. You self-host or you don’t use it — there’s no “pay us $X/mo and we’ll run it for you” option [5][merged profile]. This is both a feature (no vendor dependency, no subscription) and a blocker for genuinely non-technical users.

Disqus for comparison:

  • Basic (free): ad-supported, user data monetized, tracking across sites
  • Plus: $9/mo — removes ads
  • Pro: $89/mo — adds custom moderation, shadow banning, advanced analytics
  • Business: custom pricing

Remark42 self-hosted:

  • Software: $0 (MIT)
  • VPS to run it on: $5–6/mo on Hetzner or Contabo (the resource footprint is ~80MB RAM, so the cheapest tier works) [README]
  • Backup storage: negligible — a 5-year-old active installation stays under 200MB on disk [README]

Savings math:

If you’re paying Disqus Plus at $9/mo to remove ads, self-hosting Remark42 on a $5/mo VPS costs roughly the same — except you own the data. If you’re sharing the VPS with other services (which most bloggers already do), the incremental cost is close to zero.

If you’re at Disqus Pro ($89/mo), the comparison is stark: you’re spending $1,068/year for features that Remark42 covers in its free self-hosted version (moderation, notifications, admin controls).

The honest caveat: if you don’t already have a VPS and know how to use Docker, the “free” framing breaks down. There’s a setup cost in time and infrastructure knowledge. More on that below.


Deployment reality check

The installation path documented by multiple authors [1][3][README] is Docker Compose with a single docker-compose.yml. The official docs provide a template; you customize environment variables for your domain, OAuth credentials, SMTP config, and secrets. Then docker compose up -d.

What you actually need:

  • A VPS (Linux) with Docker installed — Raspberry Pi is sufficient given the resource requirements [1][README]
  • A subdomain pointing to the instance (e.g., comments.yourblog.com) — required for OAuth providers [1][3]
  • A reverse proxy for HTTPS (nginx or Caddy; reproxy ships as a companion) [1][3]
  • OAuth app credentials from any providers you want to enable (Google, GitHub, etc.) — each requires creating an OAuth app in that platform’s developer console [1][3]
  • An SMTP provider if you want email notifications and email-based login [1]

Where it gets fiddly:

The LaRomierre setup [1] breaks down 10+ environment variables that need correct values before the container starts correctly. The OAuth credential setup — creating apps in Google Cloud Console and GitHub Developer Settings, copying client IDs and secrets — is the step that trips non-technical users. This isn’t Remark42-specific friction; it’s the price of not handing your users’ auth to a third party.

The Altoplace author [3] ran into an additional constraint: their VPS provider didn’t allow root access, which means standard Docker doesn’t work. Remark42 runs fine in rootless Docker mode, but discovering that requires knowing rootless Docker is a thing. The support community answered the question quickly, but you have to know to ask [3].

The altoplace.com author also notes: “This was a big learning curve for me” in reference to Docker generally, not Remark42 specifically [3]. That’s the honest framing — if you’ve never managed a Docker container, Remark42 isn’t your on-ramp to self-hosting. If you have, the setup is roughly 30–90 minutes to a working instance.

For the Jeff Geerling migration [4] — 13,189 comments from Drupal — the import process worked but required custom scripting to convert Drupal’s comment format to a format Remark42 accepts. Remark42 officially imports from Disqus and WordPress [README]; anything else requires DIY conversion tooling.


Pros and Cons

Pros

  • Genuine privacy architecture. Not just a privacy marketing claim — the README specifies exactly what’s stored (hashed ID, username, proxied avatar), what isn’t (everything else), and what users can demand deleted [README]. This is auditable.
  • No external database. BoltDB embedded means one container, one data file, trivial backups [2][README]. The operational simplicity is real.
  • Tiny resource footprint. ~80MB RAM, under 0.1% CPU, under 200MB disk after years of activity [README]. Runs on the smallest VPS or a Raspberry Pi [1].
  • Comprehensive auth options. Nine social providers plus email plus anonymous — most use cases covered without building custom auth [README].
  • Multi-site from one instance. Run comments for multiple blogs from a single deployment [README].
  • Solid notification coverage. Telegram, Slack, email, and webhook notifications for admins; email and Telegram for users [README].
  • Import from Disqus and WordPress — migration path exists for the two most common sources [README].
  • Active maintenance. The project has CI, test coverage badges, and recent commits — not abandonware [README][GitHub].

Cons

  • No managed cloud option. You must self-host. VentureGaps cites this as the primary reason users look for alternatives [5]. If “fully-managed” matters, Remark42 is not your tool.
  • Requires technical knowledge to operate. OAuth credential setup, Docker, reverse proxy configuration, subdomain DNS — these are real prerequisites [5][1][3].
  • Non-Disqus/WordPress imports require custom work. Jeff Geerling had to write conversion scripts to migrate from Drupal [4]. If you’re coming from a different platform, plan for it.
  • Single-node architecture. BoltDB doesn’t scale horizontally. For very high-traffic sites with heavy concurrent comment loads, this could become a bottleneck — though most blogs won’t hit it [2].
  • No built-in spam filtering. Remark42 has moderation tools but no automated spam detection. Allowing anonymous comments without moderation queue requires trust in your audience [3].
  • UI is functional, not polished. The widget is clean and has dark/light themes, but it’s not going to be mistaken for a custom-designed comment section. Customization requires CSS overrides.

Who should use this / who shouldn’t

Use Remark42 if:

  • You’re running a blog on a static site generator (Hugo, Astro, Jekyll, Eleventy) and Disqus is your only realistic alternative.
  • You care about GDPR compliance and don’t want to explain to readers why their data goes to a third-party ad network.
  • You already have a VPS for other services and can add a Docker container to it.
  • You’re migrating from Disqus or WordPress and want the comment history to come with you.
  • You want notifications in Telegram or Slack without building custom integrations.

Don’t use Remark42 if:

  • You’ve never run a Docker container and don’t plan to learn. The setup isn’t hard, but it requires a baseline of server comfort that not everyone has.
  • You need a managed service — there is no “Remark42 Cloud.” Full stop [5].
  • Your site runs on a platform that doesn’t support embedding arbitrary JavaScript (some CMSes, newsletter tools, hosted website builders).
  • You need automated spam filtering — Remark42’s moderation is manual.
  • You’re building a high-traffic community forum. Use Discourse instead.

Alternatives worth considering

  • Disqus — the incumbent. Free tier exists but serves ads and tracks users across the web. Plus tier ($9/mo) removes ads but not the data collection concern. Only consider if you need zero setup friction.
  • Isso — Python/SQLite alternative. Also lightweight and privacy-focused. No rich text editor, no social login. Easier for Python shops [2].
  • Comentario — Go-based, PostgreSQL-backed, more recent than Remark42. Mentioned by the altoplace.com author as a system they tested alongside Remark42 [3]. More features, heavier dependencies.
  • Discourse — for communities, not comments. 2GB+ RAM minimum, Ruby on Rails stack, overkill for a blog [2].
  • Giscus / Utterances — GitHub Discussions or Issues as a comment backend. Zero infrastructure, free, but requires commenters to have a GitHub account. Works surprisingly well for developer-audience blogs.
  • Coral Talk — open-source, Node.js/MongoDB, built by Mozilla and used by newsrooms. Heavyweight for a personal blog but serious moderation tooling [2].

The realistic shortlist for a solo blogger moving off Disqus is Remark42 vs Isso vs Giscus. Giscus requires no server but GitHub-only auth. Isso is simpler to configure but has less functionality. Remark42 is the feature-complete option if you’re willing to manage Docker.


Bottom line

Remark42 is the right answer to a specific question: “I want comments on my static site without handing my readers’ data to Disqus, and I’m comfortable running a Docker container.” For that use case, it wins on every axis — resource efficiency, privacy architecture, auth coverage, and zero ongoing software cost. The 13,000-comment migration from Drupal [4] and the multiple Hugo adoption stories [1][3] aren’t accidents; it’s the tool people land on after they go looking.

The trade-off is real and worth naming plainly: there is no managed version of Remark42. You take on the infrastructure, the Docker updates, the OAuth credential rotation, the backup verification. For a non-technical founder who wants Zapier-simple setup, this is the wrong tool. For anyone who’s already running a VPS, it’s an afternoon of setup that eliminates a recurring privacy problem and an ad network from your site.


Sources

  1. LaRomierre Blog“How to Self-Host Remark42 Comments with Docker & Hugo”. https://blog.laromierre.com/posts/how-to-self-host-remark42-comments-with-docker-hugo
  2. deployn.de“The Best Self-Hosted Comment Systems in 2025”. https://deployn.de/en/blog/self-hosted-comment-systems/
  3. Altoplace“Add Comments to Your Hugo Site with Remark42” (Dec 2024, upd. Feb 2025). https://altoplace.com/hugo/add-comments-to-your-hugo-site-with-remark42/
  4. Jeff Geerling“Migrating 13,000 Comments from Drupal to Hugo” (Jan 2026). https://www.jeffgeerling.com/blog/2026/migrating-13000-comments-from-drupal-to-hugo/
  5. VentureGaps“Best remark42 Alternatives in 2026”. https://www.venturegaps.com/alternatives/remark42

Primary sources:

Features

Integrations & APIs

  • Webhooks