3 min read
Diskus

Diskus

Diskus is designed to be a fast, privacy-respecting alternative to Disqus and other bloated third-party commenting services.

đź“‹ Features

  • Ultra-lightweight Widget: The entire widget is bundled into a single lightweight script (embed.js), with a total footprint of ~27.5KB (gzipped), ensuring zero impact on your Core Web Vitals.
  • 100% CSS Isolation: Runs within a native Shadow DOM, ensuring your website’s CSS never conflicts with the widget’s design and vice-versa, without the heavy performance overhead of traditional iframes.
  • Multi-tenant Architecture: Manage comments across multiple domains and websites from a single centralized dashboard.
  • Built-in Anti-Spam: Native rate-limiting and invisible honeypot traps to prevent automated bot registrations without requiring intrusive CAPTCHAs.
  • Social Login: Seamless Google OAuth integration allowing commenters to sign in quickly and securely without managing additional passwords.
  • Server-side Sanitization: Strict HTML sanitization (isomorphic-dompurify) and Markdown parsing are offloaded to the server to maintain a minimal client bundle.
  • Data Portability: Full JSON-based import and export capabilities for threads and comments.
  • Email Notifications: Configurable email alerts for new comments powered by standard SMTP integration.

đź’» Tech Stack

ComponentTechnology
Backend APIHono on Bun
DatabaseSQLite via Drizzle ORM
Frontend (Dashboard & Widget)Preact
StylingTailwind CSS v4

🛠️ Architecture

Diskus operates as a monorepo containing three core packages:

  1. Backend (/backend): A REST API built with Hono and running on Bun. Uses SQLite via Drizzle ORM for data persistence.
  2. Dashboard (/dashboard): A Preact-based Single Page Application (SPA) for administrators to manage sites, moderate comments, and view users.
  3. Widget (/widget): A highly optimized Preact component. The lightweight embed script (embed.js) dynamically injects the widget using a native Shadow DOM, guaranteeing 100% CSS isolation and zero style bleeding with the host website, while maintaining a featherlight ~27.5KB (gzipped) footprint containing full Tailwind CSS v4 logic.