Comparison table for open-source self-hosted commenting servers (lisakov.com/projects/open-source-comments/). Inspired by staticsitegenerators.net.
-
The data are stored in
data.yaml. This file is edited manually. -
get_data.pyreads the GitHub and GitLab repositories fromdata.yaml, fetches the current repository metadata and latest commit through their APIs, then updatesdata.yamlfor the following:- displayed stars from the repository with the higher star count,
- combined star growth in the latest N days,
- latest commit date,
- creation date,
- license.
-
Historical repository-derived data are stored in
apigh/history.json. It keeps only value changes for the fields used by the page (stars,stars_total,stars_github,stars_gitlab,open_issues,created,license,last_commit) instead of storing raw API responses for every repository every day. -
yaml_2_js.pyconvertsdata.yamltodata.js(it defines two variables —osc_dataandcols). -
index.htmlreadsdata.jsand parses it to the html table using datatables.js. -
plot-stars.pyreadsapigh/history.json, plots stars vs. time for selected projects, and writesstars-v-date.svg. -
The webpage is updated daily via
cron.updater.shrunsget_data.py,md_to_html.py,yaml_2_js.py, andplot-stars.py, then deploys the updated files and pushes the repository.
Install Python dependencies with:
python3 -m pip install -r requirements.txtClone the repo and open index.html in your browser.
To change it, edit index.md and run python3 md_to_html.py.
It will overwrite existing index.html.
After modifying data.yaml, run python3 yaml_2_js.py.
It will update the data.js file.
-
Check and add the information to make the table useful. I would appreciate adding a missing demo.
-
Improve the python code.
-
get_data.py: retry transient repository API errors. -
Show column descriptions on mouse over.
-
Where do I find a number of opened and closed issues? For example, https://api.github.com/users/posativ/isso has
open_issues_countandopen_issues, both equal to 131, whereas there are 110 issues and 21 PR. -
apigh/<date>folders store a lot of information which is never used. Need to extract only needed info from the files and remove the rest. -
Plot stars vs. time for several top commenting systems. Update the plot daily automatically. -
Get rid of yaml, convert data.yaml to data.json
Contributions are welcome. Fork the repo and send PR, submit an issue, or leave a comment at the website.