Top Related Projects
A platform for community discussion. Free, open, simple.
The code that powers voten.co
For empowering community 🌱
HumHub is an Open Source Enterprise Social Network. Easy to install, intuitive to use and extendable with countless freely available modules.
Vanilla is a powerfully simple discussion forum you can easily customize to make as unique as your community.
Quick Overview
Talk is an open-source commenting platform developed by The Coral Project. It aims to create better conversations on news sites by providing a flexible, customizable commenting system that can be easily integrated into existing websites.
Pros
- Highly customizable and extensible
- Focuses on creating healthy online communities
- Includes moderation tools and spam prevention features
- Supports multiple languages and localization
Cons
- Requires technical knowledge to set up and maintain
- May have a steeper learning curve compared to some commercial solutions
- Limited built-in analytics capabilities
- Requires self-hosting, which may increase operational costs
Code Examples
- Rendering a comment stream:
import { Coral } from '@coralproject/coral-framework/lib/client';
const CommentStream = () => (
<Coral
storyID="unique-story-id"
storyURL="https://example.com/article"
containerClassName="coral-comments"
/>
);
- Customizing the comment count:
import { CommentCount } from '@coralproject/coral-framework/lib/client';
const CustomCommentCount = () => (
<CommentCount storyID="unique-story-id">
{({ count }) => (
<span>{count} {count === 1 ? 'comment' : 'comments'}</span>
)}
</CommentCount>
);
- Implementing a custom plugin:
import { gql } from 'coral-framework/lib/client';
export default {
mutations: {
CustomAction: ({ variables }) => ({
mutation: gql`
mutation CustomAction($input: CustomActionInput!) {
customAction(input: $input)
}
`,
variables,
}),
},
};
Getting Started
To get started with Talk:
-
Clone the repository:
git clone https://github.com/coralproject/talk.git
-
Install dependencies:
cd talk yarn install
-
Set up environment variables:
cp .env.example .env
-
Start the development server:
yarn dev
-
Access the admin panel at
http://localhost:3000/admin
to complete setup.
Competitor Comparisons
A platform for community discussion. Free, open, simple.
Pros of Discourse
- More comprehensive forum software with advanced features like categories, tags, and user groups
- Larger and more active community, leading to frequent updates and extensive plugin ecosystem
- Built-in support for email notifications and digests
Cons of Discourse
- Heavier and more complex, requiring more resources to run
- Steeper learning curve for customization and development
- Less focused on real-time commenting, primarily designed for forum-style discussions
Code Comparison
Talk (JavaScript):
const createComment = async (input, context) => {
const { body, asset_id, parent_id } = input;
const comment = await Comment.create({ body, asset_id, parent_id });
return comment;
};
Discourse (Ruby):
def create_post(user, params)
post = PostCreator.new(user, params).create
post.trigger_post_process
post
end
Both examples show simplified methods for creating comments/posts, but Discourse's implementation is more tightly integrated with its broader forum functionality.
The code that powers voten.co
Pros of Voten
- More modern tech stack (Vue.js, Laravel) for full-stack development
- Designed as a complete social platform, not just a commenting system
- Active community engagement and feature development
Cons of Voten
- Less focus on moderation tools compared to Talk
- Smaller community and fewer enterprise-level deployments
- Less documentation and support resources available
Code Comparison
Talk (JavaScript):
const { graphql } = require("graphql");
const schema = require("./schema");
const Context = require("./context");
const executeQuery = async (query, variables, user) => {
const context = new Context({ user });
return graphql(schema, query, null, context, variables);
};
Voten (PHP/Laravel):
public function store(Request $request)
{
$this->validate($request, [
'title' => 'required|max:150',
'type' => 'required|in:link,text,img',
'category_name' => 'required|exists:categories,name',
]);
$submission = Submission::create([
'title' => $request->title,
'url' => $request->url,
'type' => $request->type,
'category_id' => Category::where('name', $request->category_name)->value('id'),
'user_id' => Auth::id(),
]);
return new SubmissionResource($submission);
}
For empowering community 🌱
Pros of Forem
- More comprehensive platform, offering a full-featured community and blogging solution
- Larger and more active community, with more frequent updates and contributions
- Supports multiple programming languages and frameworks, making it more versatile
Cons of Forem
- Higher complexity and steeper learning curve due to its broader feature set
- Requires more resources to set up and maintain compared to Talk's focused commenting system
- May be overkill for projects that only need a commenting solution
Code Comparison
Talk (JavaScript):
const { createApp } = require("./app");
const port = process.env.PORT || 3000;
createApp().then((app) => {
app.listen(port, () => console.log(`Listening on ${port}`));
});
Forem (Ruby):
Rails.application.configure do
config.cache_classes = true
config.eager_load = true
config.consider_all_requests_local = false
config.public_file_server.enabled = ENV["RAILS_SERVE_STATIC_FILES"].present?
end
Both projects use different languages and frameworks, reflecting their distinct purposes. Talk focuses on a lightweight commenting system, while Forem provides a more comprehensive community platform built on Ruby on Rails.
HumHub is an Open Source Enterprise Social Network. Easy to install, intuitive to use and extendable with countless freely available modules.
Pros of HumHub
- More comprehensive social networking platform with features like user profiles, spaces, and content sharing
- Highly customizable with a modular architecture and extensive plugin system
- Active community with regular updates and contributions
Cons of HumHub
- Steeper learning curve due to its complexity and extensive feature set
- May be overkill for simple commenting or discussion needs
- Requires more server resources to run compared to Talk
Code Comparison
HumHub (PHP):
public function actionIndex()
{
$searchModel = new ContentSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'dataProvider' => $dataProvider,
'searchModel' => $searchModel
]);
}
Talk (JavaScript):
const Comment = ({ comment, settings }) => (
<div>
<AuthorName author={comment.author} />
<PublishedDate date={comment.createdAt} />
<Content body={comment.body} />
<ReplyButton onClick={() => replyTo(comment.id)} />
</div>
);
While both projects serve different purposes, HumHub offers a more comprehensive social networking solution, whereas Talk focuses specifically on comment management and moderation for websites and applications.
Vanilla is a powerfully simple discussion forum you can easily customize to make as unique as your community.
Pros of Vanilla
- More versatile as a general-purpose forum software
- Larger community and ecosystem of plugins/themes
- Longer development history and established codebase
Cons of Vanilla
- Less focused on modern commenting systems
- May require more setup and configuration
- Potentially heavier resource usage for simple commenting needs
Code Comparison
Talk (JavaScript):
const Comment = require('./comment');
const User = require('./user');
class CommentService {
async createComment(user, text) {
const comment = new Comment({ user, text });
await comment.save();
return comment;
}
}
Vanilla (PHP):
class CommentModel extends Gdn_Model {
public function add($fields) {
$this->addInsertFields($fields);
return $this->insert($fields);
}
}
Summary
Talk is a modern, focused commenting system designed for news organizations and other websites needing a robust discussion platform. Vanilla is a more traditional, full-featured forum software with a broader scope. Talk excels in simplicity and modern features for commenting, while Vanilla offers more flexibility for various community-building needs. The code comparison shows Talk using a more modern JavaScript approach, while Vanilla uses a traditional PHP structure.
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
A better commenting experience from Vox Media.
Description
Online comments are broken. Our open-source commenting platform, Coral, rethinks how moderation, comment display, and conversation function, creating the opportunity for safer, smarter discussions around your work.
Documentation
If you're new to Coral, the Coral documentation is a great place to start running and developing with Coral.
Youâve installed Coral, and youâre preparing to launch it on your site. The real community work starts now, before you go live. You have a unique opportunity pre-launch to set your community up for success. Read our Community Guides to learn more.
Support
We can help you set up Coral, migrate your comments from another system, integrate your registration platform, pair with your programmers, and help you with bespoke installs. To learn more, contact us.
Contributing
Coral is a Apache-2.0 licensed open-source project built with <3 by the Coral team, a part of Vox Media.
If you are interested in contributing to Coral, check out our Contributor's Guide.
License
Coral is Apache-2.0 licensed.
Versioning
If you're packaging a release of Coral, there is a convenient script to update the version numbers for all the child projects in the mono-repo.
The below script will run npm version x.y.z
against all the child repositories so you don't have to manually update them by hand!
sh scripts/version.sh MAJOR.MINOR.VERSION // i.e. 8.5.0
Top Related Projects
A platform for community discussion. Free, open, simple.
The code that powers voten.co
For empowering community 🌱
HumHub is an Open Source Enterprise Social Network. Easy to install, intuitive to use and extendable with countless freely available modules.
Vanilla is a powerfully simple discussion forum you can easily customize to make as unique as your community.
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