I live in NYC and usually have fast internet access, but commute every day by subway and thus am regularly offline for brief periods. I would love a way for Discourse to pre-load new content so that I can catch up on new / updated topics while offline.
I found a couple previous posts on meta re: offline reading:
- Creating an offline topic reading archive
- https://meta.discourse.org/t/offcourse-a-proof-of-concept-offline-reader-for-discourse/22356
However I think solutions like save to Pocket, or print to PDF + send to Kindle, feel heavyweight; something automatic / much less friction would be ideal.
It sounds like @erlend_sh has given this some thought! What he describes here sounds great:
I see no good reason why Discourse shouldn’t eventually have offline-capabilities on par with Google Docs and Inbox. We’re dealing with digested communications, which is the perfect candidate for offline use.
Simple Use Case:
Load in the last 200 posts of the forum while you’re on the Wi-Fi, then when you’re on the road/railways/skyway you can read 50 of them, reply to 10, and when you arrive at your next connected destination you’ll be prompted to publish your drafts.
I do think the idea of buffering / pre-loading new content automatically would be the best way to go. Whether this happens by default when a fast connection is detected, or as an extra option, I imagine it could basically work as follows:
- When user first hits loads Discourse app, get new / updated topics since last visit
- Automatically begin to pre-load those topics in background, up to limit of [n] posts / topics (whatever might be a reasonable memory limit for mobile browser)
- Could be text only; don’t load images / embeds just show lightweight placeholder til back online
- Example: Slack mobile app has basic offline functionality: open the app while online, then put in airplane mode; you can still switch channels + view unread messages but it displays “offline” status bar to indicate limited functionality
That would probably do it for a simple read only first step. To extend further, could also support offline actions / replies:
- Allow user to draft replies, saved to local storage til back online
- Perhaps even queue the reply action and post automatically when back online (like an email outbox)
- Same for actions e.g. “queue like” or “queue bookmark”
- Example: In the Tweetbot app when you try to “like” a tweet while offline, it pops up a little message “Like queued”, then actually completes the action when you get back online
Anyway, of course not urgent, but I think this would be very cool…I don’t know much about what might be easy and/or possible given advancing browser tech but figured it’s worth a mention!