Suggestion: offline mode / pre-loading Discourse content

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:

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!