My2Cents is an embeddable commenting system written in JavaScript.
My2Cents is Licensed under the EUPL-1.2-or-later.
This means that a lot of the features have not been tested. Moreover, currently there is no automated testing implemented. Features with ✅ means "works on my machine"
-
Tiny: it takes only ~14 KB!!! to embed My2Cents.
-
Open source and self-hosted.
-
Ad-free: My2Cents will not disturb your users.
-
Tracking-free
-
Multiple databases supported:
- SQLite3 ✅
- Postgres ❌
- MySQL databases ✅
-
Moderation: with a minimal and slick UI a site administrator can allow/reject comments or trust/block users.
-
Notifications:
- Push the number of comments awaiting moderation, if any, for each slug
- webpush protocol currently requires copying sw.js to the website ✅
- pushover ❌
- Send a notification if a new comment is posted
- slack ✅
- mail ❌
- Push the number of comments awaiting moderation, if any, for each slug
-
Third party providers for authentication: users are not required to register a new account and you don't need to manage a user management system or bother about GDPR.
- Github ❌
- Twitter ❌
- Google ❌
- Facebook ❌
- Instagram ❌
- LinkedIn ❌
I was looking for an embeddable commenting solution with the features described above for my blog, and found Schnack. Unfortunately, it only offers support for SQLite, a personal no-go for production environments.
As a non JavaScript developer I found no better solution then trying to port schnackjs to Typescript and implement other database connections myself. I tried to stick to the original implementation, until I realized that the original solution severely suffered from Cross-site issues. So in the end My2Cents became a completely different product.
BTW: I am pretty new to TS, so don't expect this to be the best code you ever saw. Please let me know, if you find code issues by creating the appropriate issue. I'm eager to learn.
This is the fastest way to setup My2Cents on your local workstation and give it a try.
Requirements:
- Node.js (>= v6)
- npm (>= v5)
- [Optional] git
Clone (if you have git) or download My2Cents from Github:
git clone https://github.com/jbouduin/my2centsGo to the My2Cents directory:
cd my2centsInstall dependencies:
npm installRun the My2Cents server:
npm run devIn another terminal window, in the my2cents directory, run the Test web server:
npm run start-hosting-serverYou can now browse to http://localhost:8080.
My2Cents will never track who is using it, so I don't know! If you are a My2Cents user, let me know and I'll add your website here. So far My2Cents is being used on:
This is not a new idea, so there are a few projects that are doing almost the same thing: