The first versions of Tripoli will be only desktop software without a server component. However, very soon we will start having server-based features such saving reports and data, maintenance functions and a web-based store to get plugins. Ultimately it’ll also support user management and such, which are features likely to be needed by Tripoli customers.
I am intrigued by this article which goes over some principles I as a software user would love software going forward to try to get as close as possible to achieving. They mentioned this lib as an implementation of CRDT as one approach to make software work online or offline but also allow collaboration. I think it’s better in the short term at least to use proven technologies, but we should design so that moving in this direction in the future is feasible.
Reports thankfully don’t require collaboration across locations currently, though it might require some collaboration on a LAN - e.g., you grab data on a laptop, then fill out some form fields (such as by taking photos or scanning bar codes) from a phone. Once a report is made, it’s essentially read-only data and indeed it’s bad if we allow that to be edited. So initially our focus could be on a shared append-only list and then use a classic thin client approach to user settings, the store, etc. I think about my workflow with Bitwig + NextCloud, where Bitwig’s user settings database is just files and NextCloud can sync that.
Just some things to keep in mind going forward.