Wekan: Support offline mode

Created on 2 Jan 2016  Â·  4Comments  Â·  Source: wekan/wekan

It would be great to be able to use Wekan while offline with the confidence that modified data will be synced when the client gets back online. There are multiple component involved for this experience to became possible:

  • Keeping the application code into the browser cache. Meteor has some support for appcache but this standard is now deprecated in favor of the new service workers that would allow to do a lot more things. We should build our offline mode using service workers.
  • Mutating the database state on the client. Thanks to Meteor that allow us to build “rich-clients” this is already almost supported. We just need to keep the collections and the methods call into the browser cache so that there are not lost when the user close a Wekan tab while offline. Groundb should be perfect for this job.
  • Reconcile concurrent state mutations. We currently have a “last-write-win” strategy which will become very problematic with offline mode as the delays between the client write and the server reception will increase, which will also increase the number of potential conflicts. Depending on the fields and precise use cases we will want to use OT or CRDT (conflict-free replicated data type). An interesting project to follow on this matter is Swarm. As far as I know Meteor doesn't currently have any good integration with this kind of solution but I suspect that they would benefit a lot of Meteor applications.
Offline-mode

Most helpful comment

This issue was closed but Wekan does not work very well without a network connection in my opinion. From my testing, if you have Wekan open and have loaded a board, you will be able to continue manipulating and viewing that board once the connection is lost. However, if you restart the browser, all board data is lost until you regain a network connection and reload the board.

Would it be possible to store the board data in a local cache for viewing without a network connection? It seems like this is one of the goals of Progressive Web Apps (using service workers mentioned in the opening post). The opening post mentioned going even further, adding support for offline editing. That seems like it might involve a lot more work to resolve conflicts between concurrent changes, but just keeping a read-only version of the data seems like it would not be as much work.

My motivation for asking about this is that I would like to run my own server, but maintaining 100% uptime will be difficult. If users could at least see a recent state of the board when the server goes down, that should be enough to get by until the server can be fixed.

All 4 comments

Hi @mquandalle - I was wondering about any movement on the offline support front?

Considering building this in, pending a final decision. I would be happy to contribute my approach / code if I do.

Main answer I am seeking is: Has any work / planning begun on this please?

Thanks,
J

Hi @xet7, @mquandalle,

PWA (Progressive Web Apps) should be faster way (in terms of development) to achieve offline support. Did you consider PWA?

It also correlates with a set of ideas found:

And more -- other PWA features which are lack by default in native app will be available, e.g. one click install out of the app store.

Hopefully, this opinion will be helpful.

Thanks,
Oleg

Related bug of loss of entered text #558 , moved to here.

This issue was closed but Wekan does not work very well without a network connection in my opinion. From my testing, if you have Wekan open and have loaded a board, you will be able to continue manipulating and viewing that board once the connection is lost. However, if you restart the browser, all board data is lost until you regain a network connection and reload the board.

Would it be possible to store the board data in a local cache for viewing without a network connection? It seems like this is one of the goals of Progressive Web Apps (using service workers mentioned in the opening post). The opening post mentioned going even further, adding support for offline editing. That seems like it might involve a lot more work to resolve conflicts between concurrent changes, but just keeping a read-only version of the data seems like it would not be as much work.

My motivation for asking about this is that I would like to run my own server, but maintaining 100% uptime will be difficult. If users could at least see a recent state of the board when the server goes down, that should be enough to get by until the server can be fixed.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ednamaeG picture ednamaeG  Â·  3Comments

izuolan picture izuolan  Â·  5Comments

8sd picture 8sd  Â·  5Comments

gramakri picture gramakri  Â·  5Comments

m0dch3n picture m0dch3n  Â·  5Comments