From Monologue to Dialogue
The ultimate guide to setting up Giscus for your GitHub-hosted Hugo blog

Why Invite the Conversation?
Static sites are fast, secure, and minimal—but they can also feel a bit lonely. When you hit git push on a new post, you’re essentially sending a message in a bottle. Adding a discussion layer changes that, turning your site from a one-way broadcast into a two-way street.
Why go through the effort of enabling comments on a perfectly clean static site? It boils down to three key values:
-
Crowdsourced Quality: No matter how much you proofread, readers will find the edge cases. Comments act as a live peer-review system, helping you catch bugs in code snippets or update outdated info.
-
Building a Knowledge Hub: Often, the most valuable part of a technical post is the “How do I do X?” question in the footer. These interactions turn a simple article into a long-term community resource.
-
Feedback Loop: Your readers are your best editors. Their questions and insights highlight what*s resonating and, more importantly, what topics you should tackle in your next post.
In short: your content starts the conversation, but the comments keep it alive.
Overview of Commenting Options
The LoveIt theme comes “batteries included,” supporting nearly every major static-site commenting engine. While I won’t dive into the weeds for every single one, here is the high-level landscape:
-
Disqus (Freemium): The veteran player; feature-rich and supports social logins, but carries a heavy load of tracking and potential ads. Ad-free plans start around $18/month.
-
Gitalk (Free): A developer-centric tool using GitHub Issues and Preact. Requires setting up a GitHub OAuth app.
-
Valine (Free): A fast, lean system based on as it seems Chinese, LeanCloud; GitHub repo seems to be stale since two years.
-
Facebook (Free): Great for reach and “real identity” verification, though at the cost of giving Meta more tracking data on your readers.
-
Telegram (Free): Uses the
comments.appwidget; a unique, lightweight option if your community primarily lives on Telegram. -
Commento (Paid): A privacy-focused, paid alternative to Disqus; very clean but requires a subscription or self-hosting. Plans start at $10/month.
-
Utterances (Free): The original “GitHub-native” solution that stores comments as Issues in your repository.
-
Giscus (Free): The evolution of Utterances; it leverages GitHub Discussions for better threading and a more modern UI.
-
Waline (Free): A “next-generation” evolution of Valine; it’s highly customizable but requires deploying a small backend (e.g., on Vercel).
Overview and Comparison of Options
Since I host on GitHub Pages, I have a unique advantage: I can leverage GitHub’s own infrastructure to host my discussions for free. While the LoveIt theme supports a “buffet” of options, here is how I categorize them:
| Engine | Storage / Backend | Cost | Best For… |
|---|---|---|---|
| Giscus | GitHub Discussions | Free | Developers wanting modern, threaded replies. |
| Utterances | GitHub Issues | Free | Minimalists who want simple, “Issue-style” comments. |
| Disqus | Disqus Servers | Freemium | Reaching a broad audience (allows Guest/Social login). |
| Waline | Vercel + Database | Free* | Users needing advanced features and anonymous posting. |
| Gitalk | GitHub Issues | Free | Fans of the classic Preact-based GitHub UI. |
| Valine | LeanCloud | Free | High-speed performance with a simple, clean UI. |
| Commento | Hosted / Self-host | Paid | Privacy enthusiasts who want zero tracking/ads. |
| Meta Infrastructure | Free | Non-tech blogs where readers already use Facebook. | |
| Telegram | Telegram App | Free | Linking your blog directly to your Telegram channel. |
*Waline is free to use but requires you to set up a free-tier database and server (e.g., Vercel).
My Recommendation: If you’re on GitHub, I suggest Giscus. In contrast to using Utterances, it keeps your “Issues” tab clean by using Discussions instead, and it supports modern features like emoji reactions.
Setting Up Giscus for your site
If you want to use Giscus, you’ll need to connect your GitHub repository to the Giscus engine. It’s a straightforward process that turns your “Discussions” tab into a high-powered commenting system.
Prepare the GitHub Repository
Before touching any code, you need to “unlock” the backend for Giscus:
- Public Access: Ensure your blog repository is set to Public (Giscus cannot access private repos for your visitors).
- Enable Discussions: In your repository Settings > General > Features, check the box for Discussions.
- Install the Giscus App: Visit giscus.app and follow the link to install the GitHub App for your specific repository. This gives the engine permission to create and manage discussion posts.

Grant Giscus access to your repo
Generate Your Unique IDs
Go to the giscus.app homepage and scroll to the Configuration section.
- Enter your
username/repo-name. - Scroll down to the Discussion Category section and select where you want comments to live, select “Announcements”.
- Announcements limits creating new discussions to the repo owner and the Giscus application.
- Giscus will automatically generate a configuration script. Scroll further down until you see it, then Copy the following values from that script:
data-repo-iddata-category-id
Update hugo.toml
In your hugo.toml, look for params.page.comment, and update it accordingly as shown in the example below:
[params.page.comment]
enable = true
[params.page.comment.giscus]
# You can refer to the official documentation of giscus to use the following configuration.
enable = true
repo = "buzzdeee/buzzdeee.github.io"
repoId = "THE DATA-REPO-ID"
category = "Announcements"
categoryId = "THE DATA-CATEGORY-ID"
# automatically adapt the current theme i18n configuration when empty
lang = ""
mapping = "pathname"
reactionsEnabled = "1"
emitMetadata = "0"
inputPosition = "bottom"
lazyLoading = true
lightTheme = "light"
darkTheme = "dark"Note: Also ensure, that all other comment options are disabled and have: “enable = false” set.
Managing Your Giscus Community
Setting up the widget is just the first step. To keep your blog’s comment section healthy and engaging, you need to stay informed and protected against spam.
Notifications: Never Miss a Discussion
Since Giscus is powered by GitHub Discussions, you get the full benefit of GitHub’s notification system. You don’t need to check your blog manually for new activity.
- Automatic Alerts: By default, as the repository owner, you will receive notifications (email or web) whenever someone starts a new discussion or replies to an existing one.
- Granular Control: You can manage these settings by clicking the “Watch” button at the top of your GitHub repository. Select “Custom” and ensure “Discussions” is checked.
- Mobile Access: If you have the GitHub mobile app installed, you’ll get push notifications for new comments just like you would for a Pull Request.
Moderation & Fighting Spam
One of the biggest advantages of Giscus is that it inherits GitHub’s robust security and moderation tools.
- GitHub’s Spam Filters: GitHub has world-class automated systems to detect and shadow-ban spam accounts. Since users must log in with a GitHub account to comment, the barrier for entry for low-quality bots is very high.
- Manually Deleting Content: If an unwanted comment slips through, you can delete it directly on the GitHub Discussions page. It will instantly disappear from your blog.
- Locking Discussions: For sensitive posts, you can “Lock” the discussion thread via the GitHub UI. This keeps existing comments visible but prevents new ones from being added.
- Reporting Users: You can report abusive users directly to GitHub, which helps protect the entire ecosystem.
- Restricting Interaction: In your repository settings under “Moderation settings”, you can limit interactions to users who have been on GitHub for a certain amount of time or have contributed to your projects before.
Conclusion: The Perfect Synergy for Static Sites
If your Hugo blog is already calling GitHub Pages home, choosing Giscus is a “no-brainer.” You are leveraging existing infrastructure, skipping the headache of managing an external database, and providing your readers with a familiar, Markdown-powered environment for discussion.
The combination of the LoveIt theme and Giscus gives you a powerful, lightweight toolkit:
- Privacy-First: No trackers, no ads, and full ownership of the data within your repository.
- Engagement: Real-time reactions that make your content feel alive and interactive.
- Performance: An extremely lean tech stack that won’t bloat your page load times.
While Giscus does require readers to have a GitHub account, for a tech-focused blog, this isn’t just a minor hurdle, it’s an effective filter that keeps the quality of discussion high and the spam levels low.