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/remark42is enough for a quick demo. For production, mount a persistent volume to/data/remark42and 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
- Blog Platforms: Embed via a snippet on WordPress, Hugo, or Jekyll sites; use the import tool to migrate from Disqus.
- Documentation Sites: Add comment threads to MkDocs or Docusaurus pages for community feedback.
- Enterprise Portals: Host a single instance with multi‑site mode, providing a consistent comment experience across internal knowledge bases.
- 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
cpor 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
Related Apps in apis-services
Mastodon
Decentralized, real‑time social networking
Discourse
Open‑source community forum platform with real‑time chat and AI
Rocket.Chat
Secure, open‑source team communication platform
Novu
Unified notification platform for multi‑channel delivery
Mattermost
Secure, self‑hosted team collaboration with chat, voice, and AI
Jitsi Meet
Free, encrypted video conferencing for everyone
Weekly Views
Repository Health
Information
Tags
Explore More Apps
Static Web Server
Fast, lightweight static file server powered by Rust
Indico
Web‑based event and conference management platform
Databag
Federated, end‑to‑end encrypted messenger for self‑hosting
Seafile
Smart, AI‑powered file organization and collaboration
Drop
Open‑source DRM‑free game distribution platform
Plainpad
Secure, self‑hosted note taking for any device
