
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
| Component | Technology |
|---|---|
| Backend API | Hono on Bun |
| Database | SQLite via Drizzle ORM |
| Frontend (Dashboard & Widget) | Preact |
| Styling | Tailwind CSS v4 |
🛠️ Architecture
Diskus operates as a monorepo containing three core packages:
- Backend (
/backend): A REST API built with Hono and running on Bun. Uses SQLite via Drizzle ORM for data persistence. - Dashboard (
/dashboard): A Preact-based Single Page Application (SPA) for administrators to manage sites, moderate comments, and view users. - 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.