Code Monkey home page Code Monkey logo

Comments (5)

maddovr avatar maddovr commented on August 26, 2024 2

I'm still busy with my exams, which should finish around next week. Personally speaking I think a plugin system is another layer of complexity which would be a mess to both maintain and develop overtime, let alone this feature basically requires 2-3 html files with some Liquid, no reason to go as far as creating another superset on top of Jekyll. So about commenting systems:

Disqus

Pros

  • Easy to install(literally 5 mins setup time)
  • Okay-ish spam detection(it mostly works)
  • No ads on no-profit websites
  • Free* (paid plans offer some nice features)
  • Allows Login through many services(Facebook, Twitter, etc...)

Cons

  • 3rd party host(Comments are owned by Disqus, there goes your privacy)
  • Bad performance(although it's lazy loaded, Disqus is still a snail compared to the whole website, which is the whole point about static websites)
  • Ads(if you have even a donation button on your website, you will get them)
  • Threads are *#@!(good luck keeping up with a nestled discussion on Disqus, it sucks, it's evil)
  • No theming(on free plans, you can't style Disqus to fit your theme/tastes)
  • Guest comments tend to be recognized as spam even when they're not

Staticman

Pros

  • Free and open source
  • Comments can be themed however you wish
  • Comments are static files, thus no need for javascript madness and loading from 3rd parties. It's fast
  • No login required(that's a big pro imho, because not everyone might want to register only for commenting something on a single website)
  • Fully integrated with Github(in manual moderation, comments are PRs to the site basically)
  • Comments can be styled using markdown(another big pro imho)

Cons

  • Setup is a bit involved(you have to set permission rights to staticbot in your repo, and you have to edit some stuff)
  • Moderation can be a problem(you can choose to approve every single comment manually, or let akimset recognize the spam, it generally works)
  • Notification emails need to be forwarded through third party services like Mailgun(which is capped at 10k emails per month on free plan, not a big issue for me tho)
  • As comments are static files linked to your repo, this can take its toll on building time, not by much however since they are basically text only files
  • Github only, at the time of writing Bitbucket and Gitlab are not supported

I think that's about it, more or less. Gitalk requires you to have a Github account to post a comment, which is fine for developer oriented websites, but many aren't and the login barrier is always a bad thing imho for the general audience. Opinions? Or an alternative to staticman?

from jekyll-text-theme.

kitian616 avatar kitian616 commented on August 26, 2024

Looking forward to your pull request : )

With so many features, maybe I should work out a plugin system.

from jekyll-text-theme.

kitian616 avatar kitian616 commented on August 26, 2024

So no plugin system🙃( too complex for a theme ), but I change the _includes's directory structure. now the commenting systems are placed under the _include/comment-providers directory.

And also the next version would add a provider setting entry to comment, analytics and pageview settings in config.yml. That means the new settings is not compatibility to the former version...

from jekyll-text-theme.

kitian616 avatar kitian616 commented on August 26, 2024

thx for the long analysis about commenting systems.

It's necessary to add support for a commenting system like "staticman".

from jekyll-text-theme.

VincentTam avatar VincentTam commented on August 26, 2024

I'm still busy with my exams, which should finish around next week. Personally speaking I think a plugin system is another layer of complexity which would be a mess to both maintain and develop overtime, let alone this feature basically requires 2-3 html files with some Liquid, no reason to go as far as creating another superset on top of Jekyll. So about commenting systems:

Disqus

Pros

  • Easy to install(literally 5 mins setup time)
  • Okay-ish spam detection(it mostly works)
  • No ads on no-profit websites
  • Free* (paid plans offer some nice features)
  • Allows Login through many services(Facebook, Twitter, etc...)

Cons

  • 3rd party host(Comments are owned by Disqus, there goes your privacy)
  • Bad performance(although it's lazy loaded, Disqus is still a snail compared to the whole website, which is the whole point about static websites)
  • Ads(if you have even a donation button on your website, you will get them)
  • Threads are *#@!(good luck keeping up with a nestled discussion on Disqus, it sucks, it's evil)
  • No theming(on free plans, you can't style Disqus to fit your theme/tastes)
  • Guest comments tend to be recognized as spam even when they're not

Staticman

Pros

  • Free and open source
  • Comments can be themed however you wish
  • Comments are static files, thus no need for javascript madness and loading from 3rd parties. It's fast
  • No login required(that's a big pro imho, because not everyone might want to register only for commenting something on a single website)
  • Fully integrated with Github(in manual moderation, comments are PRs to the site basically)
  • Comments can be styled using markdown(another big pro imho)

Cons

  • Setup is a bit involved(you have to set permission rights to staticbot in your repo, and you have to edit some stuff)
  • Moderation can be a problem(you can choose to approve every single comment manually, or let akimset recognize the spam, it generally works)
  • Notification emails need to be forwarded through third party services like Mailgun(which is capped at 10k emails per month on free plan, not a big issue for me tho)
  • As comments are static files linked to your repo, this can take its toll on building time, not by much however since they are basically text only files
  • Github only, at the time of writing Bitbucket and Gitlab are not supported

I think that's about it, more or less. Gitalk requires you to have a Github account to post a comment, which is fine for developer oriented websites, but many aren't and the login barrier is always a bad thing imho for the general audience. Opinions? Or an alternative to staticman?

@maddovr Detailed analysis 👍. After a year of development, some points about Staticman have to be updated.

Pros

  • The second point about theming can be substantialised by the following examples:
    1. adding scores ⭐ to HTML forms
    2. enable Markdown preview
    3. integrated reCaptcha support (see the second example, not supported in isso-comments/isso#201)
  • The fourth point can be elaborated: both unauthenticated and authenticated comments are, in principle, possible, depending on the site owner's choice.
  • The fifth point can be updated as "fully integrated with GitHub and GitLab" due to eduardoboucas/staticman#219. Moderation can be switched either on or off. In the later case, comments are directly pushed into the GitHub/GitLab repo.

Cons

  • The last point has to be updated. GitLab support is already there for almost a year.

from jekyll-text-theme.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.