Skip to content

jbouduin/my2cents

Repository files navigation

My2Cents

My2Cents is an embeddable commenting system written in JavaScript.

My2Cents is Licensed under the EUPL-1.2-or-later.

This is still a work in progress

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"

Features:

  • 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 ❌
  • 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 ❌

Why I started building my2cents

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.

Quickstart

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/my2cents

Go to the My2Cents directory:

cd my2cents

Install dependencies:

npm install

Run the My2Cents server:

npm run dev

In another terminal window, in the my2cents directory, run the Test web server:

npm run start-hosting-server

You can now browse to http://localhost:8080.


Documentation

Who is using My2Cents?

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:

Similar projects

This is not a new idea, so there are a few projects that are doing almost the same thing:

About

Embedable commenting system for websites

Topics

Resources

License

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors