Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request]: offline functionality #1350

Open
mfulton26 opened this issue Jul 14, 2023 · 2 comments
Open

[Feature Request]: offline functionality #1350

mfulton26 opened this issue Jul 14, 2023 · 2 comments
Assignees

Comments

@mfulton26
Copy link

Relevant Scope

Frontend specs

Description

This is a neat project and it is great to see all the varying implementations, tradeoffs, etc.

I'm interested in seeing this for web apps that work offline:

  1. Assets are cached and served via a service worker so that the site loads fast with or without an internet connection.
  2. A subset of data (e.g. latest articles) are synced for reading while offline.
  3. Actions (e.g. marking as a favorite) are queued using web storage (LocalStorage, IndexedDB, Cache, Origin Private File System, etc.) and then synced when next online.
  4. Updates to the app are rolled out gracefully to users and schema changes in offline data sets are managed through some form of migrations.

Describe the solution you'd like

No response

Describe alternatives you've considered

No response

@geromegrignon
Copy link
Contributor

Hi @mfulton26,

That's a great idea! The first step would be to define the expectations in the documentation and provide as much content as possible to help the community implement it, as from my experience, many devs are not familiarized with PWA.

@mfulton26
Copy link
Author

It looks like Medium supports downloading lists but, from what I can tell, Conduit doesn't currently have lists. I think having the ability to download single articles is sufficient for RealWorld.

Here's my first attempt at coming up with content to add to Features | RealWorld to describe what an app should support for offline functionality:

Offline functionality (optional)

Although not generally required, providing offline capabilities can really make your solution shine.

  • Cache necessary assets for offline functionality
  • Notify users when the app is available for offline use
  • Notify users when an app update is ready
  • Download articles and article updates while online for offline viewing
  • View articles, comments, & favorites while offline (viewing other users requires being online)
  • Enqueue mutations while offline and perform them once online again
    • C-UD Articles
    • C--D Comments on articles (no updating required)
    • Favorite articles
    • Follow other users

What do you think?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants