Notes on offline-first computing

(agk) Links – 2021 August

I'm thinking about how to use nncp to make PDA-like offline/sync/online modes for a suite of desktop and android applications. I'm imagining netscape comunicator or arachne internet suite's desktop idiom, or the mobile idiom of briar. It should allow offline-first ssh (see filespooler). Modern internet suites (like google's or microsoft's) require always-on broadband, latest web browser, and cost and sovereignty compromises.

Core applications should include news (netnews/rss/offline gemini), mail, directory (finger/cardDAV), chat (irc/xmpp/delta.chat), help/reference (wiki/kiwix). It should queue links for local sync when internet's available. It could support calendar (calDAV), podcasts, files (syncthing/bittorrent), office phone with voicemail (VOIP/XMPP jingle), internet radio/local audio player. Document collaboration and multiplayer chess or go could be doable. The editor it uses to write email/news could edit the user's gemini capsule and finger info. nncp would handle encryption. Authentication is via gpg. The suite should toggle app connectivity expectations.

I imagine the suite to be most useful paired with a public-access unix system or "family cloud" (like freedombox). The first draft could be a script like do-the-internet.sh or offlineimap that syncs news, podcasts, mail, voicemail, directory, and wiki. It would be cool if it was portable to android, linux/bsd/mac, windows, and offline browser webapp. I think nncp is unix-only, but it can intermittently sync local family/community servers.

Ideas

Offline-first via email

Offline-first via RSS/Atom

Offline-first via netnews

Offline-first www, gopher, gemini

Inspiration

f6k

"...to receive mails and store them locally...was easy thanks to offlineimap(1). It is a simple but very efficient python tool, well documented with great howtos like the one available on Arch Linux's wiki.... I wanted...a queue, ready to be sent as soon as I'd have access to the Network again.... I write mails, I "send them", stored in a queue locally, and once I get home or find a spot at the local library, I connect the laptop and hit a button to actually send them.... This is where msmtp(1) came to the rescue.

canfood

"...my tooling was developed to...retrieve...youtube and...websites...[via] RSS feeds. I...exported my youtube subscriptions OPML file and wrote a script to fetch...videos within a certain time range (like the last 2 days) and then passed that list on to the youtube-dl tool...every few days I would just run youtube-dl with my list....

youtube-dl --continue --ignore-errors --no-overwrites -f "[filesize<200M]" --batch-file list.txt

"I had a large OPML file containing all of the RSS feeds for my favorite websites. I wrote a similar script that would go through all of my RSS feeds and essentially wget all of the articles into a folder for each website with the article date appended. Eventually I wrote that all into a mini website with a master index HTML file. After running the script to pull in all of the articles, I would just view the index HTML file in my browser and click through to all the saved HTML webpages. With this program I didn't even need my RSS feed reader.


agk’s Links are hosted on sdf