MCPSERV.CLUB
Remark42

Remark42

Self-Hosted

Privacy‑focused lightweight comment engine

Active(87)
5.3kstars
2views
Updated 23 days ago
Remark42 screenshot

Overview

Discover what makes Remark42 powerful

Remark42 is a **privacy‑first, self‑hosted comment engine** written in Go. It exposes a lightweight HTTP API that can be embedded into any web page via a small JavaScript snippet. The engine stores all data in an **embedded key‑value store** (BoltDB/Badger) packed into a single file, eliminating the need for external databases while still providing ACID guarantees and efficient querying. This design makes deployment trivial—one binary or a single Docker image suffices—and allows the service to run on Linux, Windows, macOS, or within a Kubernetes pod.

Backend

Data layer

Frontend

Containerization

Overview

Remark42 is a privacy‑first, self‑hosted comment engine written in Go. It exposes a lightweight HTTP API that can be embedded into any web page via a small JavaScript snippet. The engine stores all data in an embedded key‑value store (BoltDB/Badger) packed into a single file, eliminating the need for external databases while still providing ACID guarantees and efficient querying. This design makes deployment trivial—one binary or a single Docker image suffices—and allows the service to run on Linux, Windows, macOS, or within a Kubernetes pod.

Architecture

  • Backend: Pure Go (1.20+), using the standard library plus a few well‑maintained packages (gorilla/mux, golang.org/x/oauth2). The API follows RESTful principles with JSON payloads and supports WebSocket for real‑time updates.
  • Data layer: Embedded DB (BoltDB or Badger) with optional SQLite for more advanced queries. All comment threads, user accounts, and site configurations live in this file; backups are just snapshots of the same file.
  • Frontend: A single‑page React app (or Vue in the fork) compiled to static assets. The UI is themeable via CSS variables and supports dark mode out of the box.
  • Containerization: Official Docker image (umputun/remark42) is built from the Go binary and includes all static assets. Helm charts are available for Kubernetes, and a companion Nginx‑LE image handles automatic TLS.

Core Capabilities

  • Social & Email Authentication: OAuth 2.0 providers (Google, Facebook, GitHub, etc.) plus email magic‑link login; optional anonymous mode.
  • Nested Commenting: Multi‑level threads rendered as either a tree or flat list; supports editing, voting, pinning, and moderation actions via REST endpoints.
  • Import/Export: Built‑in converters for Disqus and WordPress XML, and a JSON export API with automatic daily backups.
  • Notifications: Webhook, Slack, Telegram, and email hooks for both admins (new comment alerts) and users (reply notifications).
  • Media: Drag‑and‑drop image uploads stored in the embedded DB or an external S3 bucket (via a simple config flag).
  • RSS & Atom: Feed endpoints per post and globally, useful for aggregators or SEO.

Deployment & Infrastructure

  • Zero‑config Docker: docker run -d --name remark42 -p 8080:80 umputun/remark42 is enough for a quick demo. For production, mount a persistent volume to /data/remark42 and set environment variables for OAuth secrets or S3 credentials.
  • Scalability: The single‑file DB scales well for up to a few million comments. For higher traffic, run multiple replicas behind a load balancer; the DB file can be shared via NFS or an object store, but note that concurrent writes may require a more robust storage backend.
  • Infrastructure: Works on bare metal, VMs, Docker Swarm, Kubernetes (via Helm), or serverless platforms that support Go binaries.

Integration & Extensibility

  • API: Full CRUD endpoints for comments, users, and sites. The API is documented in OpenAPI format (auto‑generated from code comments).
  • Webhooks: Custom payloads can be sent to any URL; developers can build integrations with CI/CD pipelines, issue trackers, or chat ops.
  • Plugins: The frontend is modular; custom widgets can be injected by overriding the React component tree or adding CSS overrides. For backend logic, developers can fork the repo and add new handlers, then rebuild the binary.
  • Custom Auth: Replace or extend the OAuth flow by plugging in a new provider; the codebase exposes an interface for authentication backends.

Developer Experience

  • Documentation: Comprehensive online docs (getting started, API reference, admin UI guide) plus inline code comments. The README provides a clear roadmap for contributors.
  • Community: Active GitHub issues and PRs, with a dedicated discussion board for feature requests. The project’s license is permissive (MIT), encouraging internal use or commercial deployment.
  • Testing: High test coverage (>90%) with unit and integration tests; CI runs on GitHub Actions, ensuring any change is validated against the embedded DB and API contracts.

Use Cases

  1. Blog Platforms: Embed via a snippet on WordPress, Hugo, or Jekyll sites; use the import tool to migrate from Disqus.
  2. Documentation Sites: Add comment threads to MkDocs or Docusaurus pages for community feedback.
  3. Enterprise Portals: Host a single instance with multi‑site mode, providing a consistent comment experience across internal knowledge bases.
  4. Open Source Projects: Offer an open‑source commenting layer for issue discussions or PR reviews, with email/Telegram notifications.

Advantages Over Alternatives

  • No External DB: Eliminates deployment complexity and cost; the single file can be backed up with simple cp or integrated into CI pipelines.
  • Privacy‑First: No user tracking; all data stays on your servers. This is attractive for GDPR‑compliant sites.
  • Performance: Go’s concurrency model and the embedded DB provide low latency even under moderate load, with minimal memory footprint.
  • Extensibility: Full source access allows deep customization—whether you need a custom auth provider, new moderation workflows, or

Open SourceReady to get started?

Join the community and start self-hosting Remark42 today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
apis-services
License
MIT
Stars
5.3k
Technical Specs
Pricing
Open Source
Database
None
Docker
Official
Supported OS
LinuxWindowsmacOSDocker
Author
umputun
umputun
Last Updated
23 days ago