Then I built an alternative using free Cloudflare Worker
https://github.com/est/req4cmt
It's a simple service that transform comment POST form data to JSON, append to a .jsonl file, then do a `git push`
It renders comments by `git fetch` from a .jsonl file from a remote repo, or simply via raw.githubusercontent.com if your repo was hosted by Github.
The advantange over Github issue/discussion based comment plugins:
1. All data is stored a .git
2. no login of any sort
Github OAuth login might leak all your repo data along with your `access_token` to the plugin provider.
The `git push` works for any remote. You can choose github/gitlab or whatever.
In case of comments you don't like, just delete the line and `git commit`
to erase the history entirely, use `git cherry-pick` and `git push -f`
It might be a nightmare for people not familiar with `git`, but for folks running a static blog like Hugo, they use lots of shell commands anyway.
Allowing force-push is considered an antipattern for Git, and generally best avoided. It's a safeguard against lost history and prevents data loss.
That aside, the comments are the history. Git is the wrong tool for the job. Why would you choose a generic version-control system designed for source code diffs & merges for the specialised task of chronologically-ordered comments? A database such as PostgreSQL is a far superior choice in just about every possible way. I admire your ingenuity here to make something out of what's available, but I respectfully disagree with this being a good way to capture user-generated content when there are better alternatives.
you mean other files will bloat the repo and slow down the performance? Yes it's a very valid concern, but this system targets personal blogs, which I assume had very few comment traffic.
> Git is the wrong tool for the job ..... A database ... is a far superior choice in just about every possible way
the same argument applies to Wordpress.
But most tech people are choosing static generated blogs anyway, and with git too. File system is the database.
And there are good reasons for that.