Potential infrastructure

Under-construction monkies.gif This document is a work in progress. Everything in this document is subject to change.

A supplement to: Operational Plan §Infrastructure Discussion.

Document for gathering detailed assessment of software we can use to aid this project. Tools for communication, documentation, voting, promotion, etc.

To Consider

Important metrics

  • Accessibility, which includes accessibility to 'non-technical people'. For example don't require a Github account to post issues.
  • Availability across multiple platforms.
  • Hardware requirements.
  • Licensing.
  • Facility to import and export using standard formats, so that we can shift between software if required.
  • OAuth support. Not a deal-breaker, but very useful for some things as it would enable people to login to things like issue reporting with their ForkTogether account.

Discussion: Self-host everything or …

  • Free and open source software allows to self-host one’s own infrastructure, however this comes with having to invest a lot of time for maintenance.
  • There are people and organisations that provide some of the services that are listed in this document. This would allow us to spend less time on maintaining the infrastructure that we use and reduce the risk of us centralising all of our services in a single point of failure.
  • Examples for such services are https://notabug.org/ for git VCS via Gogs and https://disroot.org/ for providing communication services like Matrix and XMPP.

Useful Resources

Terms / Glossary

Definitions for technical terms.

Caldav, carddav, webdav:
Words used to decribe features for hosting and sharing calendars. addressbooks (vcard), and file directories. Allows access to these things in ways determined by users. So, for example, If a calendar is served with caldav I cann access it in an E-Mail client on my computer like Thunderbird, or on my phone.
Client & Server:
Client and server are pieces of software that continually interact with each other over a network. In this interaction scheme the server poses as a central authority to which the less privileged clients connect.
Clients are usually utilised by network users to interact with the server.
Frontend:
Information systems that are accessible over the Web are commonly divided into two parts: Frontend and backend.
The frontend provides the user of such an information system with the ability to directly interact with it (accessing features, services, etc.).
Issue/s
Term to describe 'a feature, bug report, or other request for change in software'.
Kanban Board
Kind of software used for structuring projects. Things are organised as cards, which can contain comments/responses, attachments.
Kanban_board on Wikipedia.
Platform:
Web/browser-based, BSD, Linux, Mac OS, Windows, Android, iOS.
Synchronous & Asynchronous Communication:
Synchronous communication refers to communication happening with real-time interaction.
Asynchronous communication refers to communication with a time lag. A message is left for the other communicating party to respond to at any given time.

Infrastructure

※ non-FLOSS is italicized & FLOSS is bolded

Discussion

Synchronous:

Things like chat software. Can make it tough to go back and read and join in on past conversations.

Discord | https://discordapp.com/
This is disliked by some due to its non-open nature. Also not very accessible for people on slow hardware or using assistive technologies, but already ubiquitous.
IRC
This is very bare-bones, but will integrate well with assistive technologies. Low barrier to entry for new users if we setup a web frontend/client, though there’s some arcaneness to the commands (web client. Imposes a moderation burden. Can be fully open source. Not demanding on hardware.
Matrix | https://matrix.org/
Very feature-rich and federated. Assistive technology integration will depend on the client, that is used. Mobile clients should work well, as well as native clients like Nheko or Weechat. Higher barrier of entry for many users. Fully open source.
Official client - Riot.
Rocket Chat | https://rocket.chat/
Open source, not integrated with assistive tech, several people have voiced objections to using it. Uses Electron I believe?
Supports OAuth.
Mattermost | https://mattermost.com/
It's just Slack but partially open source. Relatively high barrier of entry. Decent assistive tech integration.
Easy to access through whatever software people prefer with: https://github.com/42wim/matterbridge. 'Native' app uses Electron.
Supports OAuth.
Features are limited unless you compile it yourself, and self-host. See LICENSE.txt
XMPP (AKA: Jabber) | https://xmpp.org/
Like IRC it is light on hardware. It is federated and can be end-to-end encrypted. Can facilitate one-on-one or group chat. Unsure of accessibility.
Zulip | https://zulipchat.com/
Another open-source Slack-like.
QT and Electron desktop apps.
Supports OAuth.
Accessibility: https://zulip.readthedocs.io/en/latest/contributing/accessibility.html

Asynchronous:

Web forum
Centralized. Can be open source. Moderate barrier to entry, but could be reduced with some dev work (fediverse logins).
Surprisingly few support OAuth (maybe more with plugins??), but Discourse, Flarum and Vanilla do.
Suggestions, Discourse, phpBB, Vanilla, Flarum, ...
Email lists
Easy to set up, highly accessible both in terms of assistive tech and existing integrations with peoples' workflows, but imposes a burden on people not used to using mailing lists or using broken Web 2.0 email clients (Gmail, Yahoo! mail).
Issue trackers
Not general purpose, but can be shoehorned to fit. Will come with pretty much any VCS hub we use (GitLab, Gogs, Gitea, etc)
Wiki
Better suited to documentation.
Suggestions: Dokuwiki, Mediawiki,

Publicity:

Blog
Wordpress, Textpattern, Ghost,
Video
Peertube,

Fundraising

Regular payment
Liberapay
Open Collective
One-off payment
...

Payment processors:

Finances management and accountability:

Billing systems:

Backup

...

Project Management

Scheduling, Calendars

Perhaps overlap with publicity?

Radicale | https://radicale.org/
Lightweight caldav and carddav server, calendars likely taken care of by other software we end up using though?
GetTogether | https://github.com/GetTogetherComm/GetTogether
Online, federated alternative to 'Meetup'.

Kanban Board

Wekan
...
Taiga
Full-featured kanban board software. Able to customise how complex it is.
Kanboard
...

Issue Reporting

Gogs
Lightweight Git thing, BDFL development model
Gitea
A fork of Gogs, due to disagreements with governace (hi pals!)
Redmine
...
GitLab
Resource hungry if you self host

Hosting

...

Misc

Useful software that doesn't fit (or just isn't yet categorised) elsewhere.

ONLYOFFICE | https://www.onlyoffice.com/
generalist, all-in one organisation tools you can self-host
'Solution features online document editors, platform for document management, corporate communication, mail and project management tools.'[1]
Hubzilla
Social Media/Network platform that supports ActivityPub and a whole bunch of different things. Can use for calendaring, blogging, forum, chatting, file hosting.