Top Related Projects
Quick Overview
Commento is an open-source, privacy-focused commenting platform designed as a lightweight alternative to Disqus. It offers a fast, simple, and ad-free commenting system that can be easily embedded into websites, prioritizing user privacy and data ownership.
Pros
- Privacy-focused: Does not track users or sell data
- Lightweight and fast: Minimal impact on page load times
- Self-hostable: Gives full control over data and customization
- Open-source: Allows for community contributions and auditing
Cons
- Less feature-rich compared to some commercial alternatives
- Requires self-hosting, which may be challenging for non-technical users
- Smaller ecosystem and community compared to more established platforms
- Limited built-in moderation tools
Getting Started
To get started with Commento, follow these steps:
- Download the latest release from the GitHub repository.
- Set up a PostgreSQL database.
- Configure Commento by creating a
config.env
file with necessary settings. - Run the Commento binary:
./commento
- Add the Commento script to your website:
<script defer
src="https://your-commento-instance.com/js/commento.js">
</script>
<div id="commento"></div>
Replace https://your-commento-instance.com
with the URL of your Commento instance.
For more detailed instructions and configuration options, refer to the project's documentation on GitHub.
Competitor Comparisons
A platform for community discussion. Free, open, simple.
Pros of Discourse
- More feature-rich and comprehensive forum software
- Larger community and ecosystem for support and plugins
- Advanced moderation and user management tools
Cons of Discourse
- Heavier resource requirements and more complex setup
- Steeper learning curve for administrators and users
- May be overkill for simple commenting needs
Code Comparison
Commento (JavaScript):
function renderComments(comments) {
comments.forEach(function(comment) {
var html = markdown(comment.markdown);
document.getElementById("comments").innerHTML += html;
});
}
Discourse (Ruby):
def render_comments(comments)
comments.each do |comment|
html = markdown(comment.raw)
@output_buffer.safe_concat(html)
end
end
Both projects use different languages and frameworks, making direct code comparison challenging. Commento focuses on simplicity and lightweight implementation, while Discourse offers more extensive features and customization options.
Commento is better suited for basic commenting systems on static websites, blogs, or small projects. Discourse is ideal for building full-fledged community forums with advanced features and scalability.
Choose Commento for a quick, easy-to-implement commenting solution. Opt for Discourse when you need a robust, feature-rich forum platform with long-term community growth potential.
comment engine
Pros of remark42
- More active development with frequent updates and bug fixes
- Supports multiple authentication methods (OAuth, email, anonymous)
- Includes features like voting, pinning comments, and moderation tools
Cons of remark42
- More complex setup and configuration process
- Requires more server resources due to additional features
Code comparison
remark42:
func (s *DataStore) Create(comment Comment) (Comment, error) {
comment.ID = uuid.New().String()
comment.Timestamp = time.Now()
comment.Score = 0
comment.Votes = make(map[string]bool)
return comment, s.Save(comment)
}
Commento:
func (d *database) CreateComment(c Comment) error {
c.CreationDate = time.Now()
_, err := d.db.Exec(`INSERT INTO comments ...`)
return err
}
The code snippets show that remark42 uses a more structured approach with a dedicated DataStore
type and includes additional fields like Score
and Votes
. Commento's implementation is simpler, focusing on database insertion.
Both projects aim to provide commenting systems for websites, but remark42 offers more features and active development at the cost of increased complexity. Commento is simpler and easier to set up but has fewer features and less frequent updates.
a Disqus alternative
Pros of isso
- Written in Python, which may be more familiar to some developers
- Supports multiple languages and translations out of the box
- Offers a more extensive API for integration and customization
Cons of isso
- Less active development compared to Commento
- May require more setup and configuration for advanced features
- Lacks some modern features like real-time updates
Code Comparison
Isso (Python):
from isso import Isso, config
app = Isso(config.load("/path/to/isso.cfg"))
app.run(host="localhost", port=8080)
Commento (Go):
package main
import "gitlab.com/commento/commento/api"
func main() {
api.Serve()
}
Both projects aim to provide self-hosted commenting systems as alternatives to third-party services. Isso is written in Python and offers more language support, while Commento is written in Go and focuses on simplicity and performance. Isso provides a more extensive API but may require more setup, whereas Commento offers a more streamlined experience with modern features like real-time updates. The code examples show the basic setup for each project, with Isso requiring more configuration and Commento having a simpler initialization process.
A better commenting experience from Vox Media
Pros of Talk
- More robust and feature-rich commenting system with advanced moderation tools
- Active development with frequent updates and a larger community
- Supports multiple languages and localization out of the box
Cons of Talk
- More complex setup and configuration process
- Heavier resource requirements due to its extensive feature set
- Steeper learning curve for customization and integration
Code Comparison
Talk (JavaScript):
const { createServer } = require("./server");
const port = process.env.PORT || 3000;
createServer().listen(port, () => {
console.log(`Server listening on ${port}`);
});
Commento (Go):
func main() {
router := mux.NewRouter()
router.HandleFunc("/api/comment/new", commentNew).Methods("POST")
router.HandleFunc("/api/comment/list", commentList).Methods("GET")
http.ListenAndServe(":8080", router)
}
Both projects use different languages and approaches, but the core functionality of setting up a server and handling routes is evident in both snippets. Talk uses a more modular approach with a separate server creation function, while Commento directly sets up routes in the main function.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Commento
Homepage – Demo – Documentation – Contributing – #commento on Freenode
Commento is a platform that you can embed in your website to allow your readers to add comments. It's reasonably fast lightweight. Supports markdown, import from Disqus, voting, automated spam detection, moderation tools, sticky comments, thread locking, OAuth login, single sign-on, and email notifications.
How is this different from Disqus, Facebook Comments, and the rest?
Most other products in this space do not respect your privacy; showing ads is their primary business model and that nearly always comes at the users' cost. Commento has no ads; you're the customer, not the product. While Commento is free software, in order to keep the service sustainable, the hosted cloud version is not offered free of cost. Commento is also orders of magnitude lighter than alternatives.
Why should I care about my readers' privacy?
For starters, your readers value their privacy. Not caring about them is disrespectful and you will end up alienating your audience; they won't come back. Disqus still isn't GDPR-compliant (according to their privacy policy). Disqus adds megabytes to your page size; what happens when a random third-party script that is injected into your website turns malicious?
Installation
Read the documentation to get started.
Contributing
If this is your first contribution to Commento, please go through the contribution guidelines before you begin. If you have any questions, join #commento on Freenode.
Top Related Projects
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot