<ryan webb />

Back

Comment System

Comment system for pages at the bottom

Remark42 Comment System#

Comments are provided by Remark42 — a privacy-focused, self-hosted comment engine. Unlike feed-backed systems, it stores no third-party trackers and runs entirely on your own server.

Server setup#

Remark42 is a single Go binary, distributed as a Docker image. It needs a persistent host (a VPS or container platform — not serverless) and a real domain for OAuth callbacks.

  1. Run the Remark42 Docker image with a persistent volume for its BoltDB store.
  2. Set the SITE env var to match integ.remark42.siteId (currently webb.dev).
  3. Set REMARK_URL to the server’s public URL and configure at least one auth provider.

Configuration#

src/site.config.ts
export const integ: IntegrationUserConfig = {
  // ...
  remark42: {
    enable: true,
    // The URL of your Remark42 server. Override locally via PUBLIC_REMARK42_HOST.
    host: import.meta.env.PUBLIC_REMARK42_HOST || 'https://remark42.webb.dev',
    // Must match the SITE env var on your Remark42 server.
    siteId: 'webb.dev',
    locale: 'en'
  }
}
ts

Set enable to false to turn comments off site-wide.

Usage#

You can call it manually in .astro or .mdx files. The component handles theme syncing with the site’s dark/light toggle automatically.

import { Comment } from '@/components/comments'

// biome-ignore format
<Comment />
jsx