#dev 2020-02-05

2020-02-05 UTC
miklb joined the channel; FineDiscord[m] left the channel
#
jmac
I need a remind on how my https://example.com is supposed to act when it gets a webmention for http://example.com, which redirects to https
#
jmac
Not sure if the webmention spec covers this case, or if it's entirely up to my server what URLs (and URI schemas) it recognizes
#
aaronpk
it's up to your webmention endpoint to decide what websites it accepts webmentions for
#
aaronpk
e.g. webmention.io accepts webmentions from a bunch of different domains
#
jmac
ah, that makes sense
#
[LewisCowles]
hmm. I got a demo of known installed on heroku. It's really bad and I'm unsure if it's supposed to look like this
#
[KevinMarks]
Did it get the themes?
#
[LewisCowles]
It has them. I think it's the .htaccess
#
[LewisCowles]
I'll try rebuilding
#
[LewisCowles]
like it fails on /service-worker.min.js, but the file exists in the /js/ directory
#
[LewisCowles]
all the urls fail, but the index.php is correctly routed using rewrite
#
[LewisCowles]
perhaps it's a plugin I'm not turning on
viaken and jjuran joined the channel
#
[LewisCowles]
it's not HTTP_X_FORWARDED_PORT aware (I'm patching locally)
Bohren_Gore joined the channel
#
[LewisCowles]
I may be able to hack it via the nginx config
#
[LewisCowles]
so it comes in as SERVER_PORT
chrisaldrich joined the channel
#
[LewisCowles]
right it's working with that hack I'll get some shut eye and re-approach tomorrow. Looks like I'll have to implement S3FS or some hybrid or get MongoDB for gridFS
miklb, Bohren_Gore, gRegorLove, sivy, wagle and swentel joined the channel
#
GWG
swentel: What is new in Indigenous?
#
swentel
GWG, well, tracker is the latest stuff of course :)
#
GWG
I'm fixing Micropub bugs so far
#
swentel
and audio/video upload
#
swentel
oh, new version will show trip on a Mapbox map in the app
#
swentel
and allow more properties to post
#
swentel
(like body, media etc)
#
swentel
GWG, do you 'refs' now in indigenous?
#
GWG
swentel: I changed that in Parse This, which changed it in Yarns...but I don't think jackjamieson pushed it yet, but I'll have to check.
#
swentel
GWG, ok, other than that, not many changes besides bug fixes
#
swentel
or finetuning the tracker intervals
#
swentel
s/or/and
[tantek] and [jeremycherfas] joined the channel
#
GWG
I always had references, I just didn't have refs
#
[tantek]
Good to have references because sometimes refs make a bad call
#
GWG
groans
#
GWG
[tantek]: I followed the spec
tsrt^ joined the channel
#
GWG
swentel: Did you see the bug filed by beko?
#
swentel
GWG, yeps, I know about that one
#
swentel
don't have a clue yet to fix it
#
swentel
it's an old android version too :/
#
GWG
swentel: Tell me if anything on the WordPress end contributes
#
GWG
swentel: Also, have you looked into offline sync for Microsub?
#
swentel
GWG, like, storing the timeline in the app so you can read offline?
#
GWG
Yes
#
GWG
I often set apps like this to only sync on WiFi so I can save bandwidth
cweiske joined the channel
#
swentel
GWG, I've thought about it a couple of times already, I'm not sure yet
#
GWG
swentel: Okay
#
swentel
althought it wouldn't be /that/ hard to write to be honest
#
swentel
I'll give it another try :)
#
GWG
swentel: I still need to fix some things before Microsub replaces FreshRSS for me
#
swentel
I don't use any other reader anymore at the moment
#
GWG
swentel: Some of it is my own parsing
#
GWG
I should import a list to test every site I read
#
Loqi
I agree
#
GWG
I just have so much I want to do
#
swentel
I know the feeling
#
[tantek]
same same
#
GWG
[tantek]: You've been at this for longer..how can I hope to finish?
jjuran joined the channel
#
Ruxton
"I just have so much I want to do" <- me, every day, procastinating :)
#
Zegnat
re jmac and webmention accepts: I think mine literally accepts webmentions to any host because I was lazy, that also cuts out the need to check for any redirect business
Bohren_Gore, jeremych_, simons, KartikPrabhu and [LewisCowles] joined the channel
#
[LewisCowles]
How many of these apps are offline-first or have an offline experience?
#
[LewisCowles]
This comes back to IWC brighton October 2019 (I think).
#
[LewisCowles]
half triggered by work Iā€™m doing today, half by hacking last night as prep for Sunday
KartikPrabhu, miklb and geoffo joined the channel
#
swentel
GWG, testing offline now .. got channels working
#
GWG
swentel++
#
Loqi
swentel has 21 karma in this channel over the last year (34 in all channels)
simons, [jgmac1106], [tantek], clxsi and [KevinMarks] joined the channel
#
[tantek]
GWG, the only chance of finishing is to externalize the list of the things you want to do, prioritize them so you're working on the thing that's next most important to you, and encourage & hope that by making it public, you get others to collaborate or work on similar things so the tasks get easier over time, collectively
#
[tantek]
i.e. keep your "Working On" and "Itches" lists updated on your user page, and browse others's to see if there is overlap and an opportunity to collaborate or divide up tasks
#
jmac
Zegnat: It makes sense. On further thought it's obviously not a protocol question at all. My blog just needs to be smart enough to know that a mention aimed at http://[...] is equivalent to a mention of https://[...]. At present, it is not!
#
Zegnat
It is also a matter of whether your blog even knows it is responding to both of those requests (e.g. port 80 and port 443 are not neccessarily the same software responding)
#
jmac
Right. In my case port 80 naively forwards everything to 443
#
jmac
So http://[...] should be recognized as a valid "alias", and indeed it was the only schema I supported before I finally got on the https train only last year
#
jmac
And thus every post should answer to its real URL and its http://-based "alias" when my blog thinks "Hmm, do I actually have a post with this webmention's target URL?" So that's a feature for me to add, with my hand-rolled thing
#
Zegnat
Sounds right :)
#
jmac
All this came to my awareness when I two days ago came across someone's kind mention on a 2018 page from their own site, and I submitted a manual mention for it -- and it didn't work, coz it was http! alas!
#
aaronpk
Same problem with short domains or short URLs for posts
#
jmac
a related but distinct tragedy
#
jmac
At least I know what all my own internal redirects are
#
aaronpk
Yeah I look up some redirects internally to do that
#
Zegnat
If you also want to be able to support external redirects, say bitly links and the likes, you end up having to follow redirects for every target URL supplied to your webmention endpoint and see if it ends up at something you accept
#
beko[m]
I wish for a debug log of Webmention very much šŸ˜• Some never make it and I never know why.
#
aaronpk
Yeah I don't recommend wanting to support arbitrary redirects
#
aaronpk
but if you publish short/alternate links yourself then it's a good idea to accept webmentions for those too
#
beko[m]
eep, wrong channel, sorry
#
jmac
Now I'm trying to think of the laziest way to do this that isn't outright offensive. I started with "configure a list of acceptable 'alias' base URLs, and then modify the blog's logic appropriately so that every post answers to them via webmention" and have already drifted to "let the user define a filter routine that all source URLs get filtered through (and possibly transformed by) before consideration, et voila"
#
jmac
er target URLs, i mean
#
Zegnat
I log the raw webmentions that come in. So if something doesnā€™t make it into a notification to myself, I can re run those and see where they got stuck
#
jmac
I don't log to that level and I should.
#
jmac
I only figured out the http/https problem because of course I went through this when I installed SSL last year; all my blog's mentions went away!
#
jmac
I ended up cheating and writing a script to add a whole lot of "s" characters to its stored serialized mentions
#
jmac
Which of course fixed the problem forever. (It didn't.)
#
beko[m]
šŸ™ƒ
[snarfed] joined the channel
#
[snarfed]
GWG++ swentel++ for thinking about offline first micropub! i was (am) definitely interested too, https://snarfed.org/posting-to-the-indieweb-from-your-phone
#
Loqi
GWG has 23 karma in this channel over the last year (140 in all channels)
KartikPrabhu, willnorris, [Michael_Beckwit, [grantcodes], [jackjamieson], voxpelli, simons, tbbrown, petermolnar, GWG, [tantek] and petermolnar_ joined the channel; petermolnar left the channel
#
GWG
[snarfed]: This was offline first Microsub
[KevinMarks], [jgmac1106], petermolnar and [snarfed] joined the channel
#
[snarfed]
ooh also good! the offline support in my reader (newsblur) is key for me
#
[tantek]
also very interested in offline posting flow
#
[tantek]
I've brainstormed on this for a while and really should write up my thoughts, since they're mostly UX related, rather than plumbing specific
#
[tantek]
copy/pasting from other chats to hear just to get it archived
#
[tantek]
Ideally I want a 100% local first offline capable creating / editing / posting workflow which then ā€œauto-syncsā€ once the network shows up. The presence / absence of internet should not affect UI flow at all. It should only be a status indicator (whether / how much a post has been sent to the internet or not). It should never block any UI.
#
[tantek]
Of course no one actually builds apps like that. Even ā€œnativeā€ apps fail without network access.
#
[tantek]
Iā€™d like to be able to construct an entire (photo) post, caption, people tags, location tag etc all offline.
#
[tantek]
Kinda like how email apps used to work. You did all that, clicked Send and then forgot about it. Eventually it synced to the network but you didnā€™t worry or care about that step
#
aaronpk
I miss those days of email clients
#
Loqi
misses those days of email clients too
#
aaronpk
it had to work offline because you had to dial in to your email provider and tie up your phone line
#
[tantek]
One building block at a time.
[LewisCowles] joined the channel
#
[tantek]
So thatā€™s literally what I want, except with Undo support, AND with JS-optional support (in the case where youā€™re connected, obviously localfirst/offline requires JS). I do have a Service Worker and offline *reading* support on my site so Iā€™m getting there.
#
[LewisCowles]
The web is the barrier to some of that, althought the limits are quite high (I think 50MB for cacheStorage in SW)
#
[LewisCowles]
YMMV because clients
#
[tantek]
One of the reasons I want to approach this from UX-first design is IDK if any existing plumbing actually has enough protocols to support this UX. And I absolutely do not want to limit my UX by what an existing protocol can or cannot do (tail wags dog problem).
#
[LewisCowles]
OFC. Itā€™s hard. At work we started some greenfield offline first before I resigned and weā€™ve got that to a nice place. Capture and prevent form submission if offline, with an event so the design can be orthoganal.
#
[LewisCowles]
saving forms isā€¦ a thing though
#
[LewisCowles]
if you were to say only some parts, like text mattered. It could be easier
#
[LewisCowles]
what is JS-optional support?
#
Loqi
It looks like we don't have a page for "JS-optional support" yet. Would you like to create it? (Or just say "JS-optional support is ____", a sentence describing the term)
#
[tantek]
nah I'd say start with making simple text posts work
#
[tantek]
different framing. rather than "only ... text mattered"
#
[tantek]
what is progressive enhancement
#
Loqi
progressive enhancement is the web development practice of building web pages, sites, apps so they are at least readable, and preferably allow for most if not all interactions, from any kind of browser, and optionally take advantage of additional capabilities (like various CSS & JS features) when available https://indieweb.org/progressive_enhancement
#
[tantek]
JS-optional support is /progressive_enhancement
#
[LewisCowles]
Your offline first requires JS though right?
#
[LewisCowles]
and a serviceworker
#
[LewisCowles]
so is the idea that itā€™s a layer of enhancement
#
[snarfed]
heh, we've had this conversation before. obligatory, re "no one actually builds apps like that," they do! they definitely exist, even robust, polished, long lived ones. wordpress (mobile apps), quip, and more and more others these days. tantek is absolutely right that they're still the minority, though
#
[tantek]
snarfed, nope, even those apps don't have undo.
#
[tantek]
e.g. Gmail's unsend, but literally on a local-first app
#
[tantek]
literally no one has built that combination
#
[snarfed]
undo as in revert to previous versions or unpublish? they do. may not be the exact UX you're imagining, but they definitely do
#
[tantek]
not like it isn't obvious. just hasn't been done.
#
[snarfed]
i'll back away from splitting hairs, but on the broader point of have offline first and full undo been done in apps, they have. but agreed, definitely not enough, much more work is warranted
#
[snarfed]
probably violent agreement here šŸ˜
#
[tantek]
I'm definitely interested in actual examples of such apps! I'd rather study than reinvent
#
[snarfed]
i could have sworn our examples ended up on the wiki somewhere last time we had this conversation, but i haven't found them yet
#
[tantek]
in particular the local-first, offline-first, *and* has unsend/unpublish (redoable too)
#
[snarfed]
wordpress apps ^
#
[snarfed]
(do all three)
#
[snarfed]
quip too, at least did, but i haven't used it in years, can't speak to the current UX
#
[tantek]
WordPress native apps?
#
[tantek]
interesting, that's worth installing and playing with then
#
[snarfed]
i expect other new ones too, eg notion, simplenote. worth searching!
#
[snarfed]
damn, https://indieweb.org/sync#Related_Projects is the closest i've found from last time, and definitely not the same. ah well
#
[tantek]
from what I recall, those don't have a publishing flow per se
#
aaronpk
Is the conversation about PWAs or native apps or both?
#
[tantek]
any "apps"
#
[tantek]
web apps or native apps
#
aaronpk
Because if we're including native apps then plenty of calendar apps are local first and work great offline
#
[tantek]
I'm kinda done with the PWA moniker as it's not really useful
#
aaronpk
treating the network as a sync rather than the source of truth
#
[tantek]
aaronpk, yet none of them have undo šŸ˜›
#
[tantek]
unsend invitation
#
[tantek]
go for it, see if you can find a single example
#
[LewisCowles]
Thunderbird
#
[tantek]
does not do calendar invitations
#
[LewisCowles]
I meant for email
#
[tantek]
I think there was another OSS project, maybe Sunbird? that did
#
[LewisCowles]
there is an addon that allows it to also handle calendea
#
[tantek]
yup, Gmail is already the email example, that was not the opint
#
[LewisCowles]
I just donā€™t like AIO software
#
[tantek]
and yes, native email clients was already provided as the nice way it all used to be ^^^
#
Loqi
[[tantek]] Kinda like how email apps used to work. You did all that, clicked Send and then forgot about it. Eventually it synced to the network but you didnā€™t worry or care about that step
#
[LewisCowles]
to what extent do you need it to unobtrusively commit the events?
#
[tantek]
IDK what that even means from a user perspective
#
[LewisCowles]
I thought you were suggesting thunderbird stopped behaving that way
#
[tantek]
no Thunderbird is an example of how email apps used to work (and still does work in this case).
#
[LewisCowles]
from a user perspective it probably means a toast message or similar small ui that says ā€œMessage Sentā€ when online
#
Loqi
[[tantek]] Ideally I want a 100% local first offline capable creating / editing / posting workflow which then ā€œauto-syncsā€ once the network shows up. The presence / absence of internet should not affect UI flow at all. It should only be a status indicator (...
#
[LewisCowles]
you do get undo for free in a textarea
#
[tantek]
toast-- are really crappy UI
#
Loqi
toast has -1 karma over the last year
#
[LewisCowles]
Right, but auto-syncs is vague
#
[tantek]
it's part of the "distraction UI" dark pattern
#
[tantek]
lol auto-sync used to be obvious / taken for granted
#
[LewisCowles]
Iā€™m also not sure confirmation UI is always distraction UI
#
[LewisCowles]
how would you know if the events fired?
#
[LewisCowles]
without some form of visual cue?
#
[tantek]
"events fired" has nothing to do with a user perspective
#
[LewisCowles]
or is trust a part of this too
#
[tantek]
there's tons of subtle status design indicators.
#
[LewisCowles]
it;s a critical part of the user experience of not sending things to /dev/null
#
[tantek]
messaging (IM) apps have had them for ages
#
[LewisCowles]
so itā€™s the specific form of notification. Okay, omit toast insert Notification
#
[tantek]
toasts are dumb unnecessary cartoony UI
#
aaronpk
toast--
#
Loqi
toast has -2 karma over the last year
#
[tantek]
you don't get a toast every time you send a txt message for example
#
[LewisCowles]
It says ā€œMessage sendā€
#
aaronpk
that sounds terrible
#
[LewisCowles]
if I donā€™t see it, I know to expect itā€™s not sent
#
aaronpk
iOS does it well, little grey text shows up under the message that says whether it was delivered
#
[LewisCowles]
without trawling the otherwise awful UI
#
aaronpk
per message even so you can tell how far back you lost your connection
#
[LewisCowles]
droid has a similar way to visually show in the thread if something is pending, sent or failed
#
aaronpk
slack does it well too, the text turns grey if it wasn't delivered
#
aaronpk
Slack is interesting because it assumes it was successful rather than shows every status indicator
gRegorLove joined the channel
#
[LewisCowles]
I mean Iā€™m using slack because I canā€™t bear IRC, but itā€™s definitely a ā€œI wish there was a UI I hated lessā€ affair
geoffo joined the channel
#
[tantek]
IG also shows an entered comment as gray until it the server has received it. But it gives up so quickly then loses the data so it's crap
#
aaronpk
Someone must have written a book about design patterns for these kinds of status indicators
#
[tantek]
FBM has nice very subtle indicators that take minimal space
#
aaronpk
I know I've seen a ton of writing and research on progress indicators, but this is different
#
[tantek]
FBM's is kinda a progress indicator because it does go through stages that indicate progress!
#
[tantek]
empty circle: message sent by local app, unreceived by server
#
[tantek]
empty circle with checkmark: message received by server
#
[tantek]
full circle with white checkmark: message received by receiver's device
#
[tantek]
full circle of the recipient's icon: message read by recipient
#
[tantek]
there's an additional indicator that would be useful before the "message sent" which is whether or not the message draft has been auto-saved
[schmarty], [jackjamieson], [fluffy], geoffo and KartikPrabhu joined the channel
#
aaronpk
We should document these
#
aaronpk
Signal does something similar but I don't quite understand what all the states mean
#
[LewisCowles]
spinner in signal seems to indicate attempt to send
#
[LewisCowles]
that is the only UI I get until its sent. Then it sometimes shows two green ticks
#
[LewisCowles]
which has something to do with who I send to
KartikPrabhu joined the channel
#
[KevinMarks]
Signal has the 2 ticks thing that WhatsApp has I think
#
[KevinMarks]
scuttlebutt has that kind of thing with local commit and later sync, but even more layered
#
[KevinMarks]
whatsapp has a clock when local only, one tick when server has it, 2 ticks when other client does.
#
[snarfed]
and also those last 2 ticks turn blue when they've read it
#
[KevinMarks]
google photos has a cloud by pics that aren't synced yet (waiting for wifi)
#
aaronpk
i know signal has two ticks lol. i don't know what they mean
#
[schmarty]
pretty sure the first check is for "signal network received this" second is "message delivered". they switch to filled in when the recipient has read them.
tbbrown joined the channel
#
@kevinmarks
ā†©ļø @rektide @doriantaylor have a look at MicroSub - it may save on some effort https://indieweb.org/Microsub
(twitter.com/_/status/1225149839505350657)
FrenchBackBoneDi and KartikPrabhu joined the channel
#
[snarfed]
he's jgmac1106
[tantek] and [jgmac1106] joined the channel
#
[jgmac1106]
Thx jamietanna trying to figure out the author thing with using <a class="p-author" href="/" ></a> and still messing it up.
#
[jgmac1106]
I have trouble understanding that page. I am either messing up a u-uid or something in my footer h-cars I guess??
#
[jgmac1106]
What is author?
#
Loqi
authorship is an algorithm that determines the author of a post https://indieweb.org/author
#
[jgmac1106]
If you can tell me what I am doing wrong happy to fix
#
aaronpk
looks like there's a missing space in your class names
#
aaronpk
i see "u-url-u-uid"
#
[jgmac1106]
Ooh oops, that needs fixing. Thanks
#
aaronpk
it's pretty visible if you look at the parsed result
#
[jgmac1106]
And u-uid is to my homepage and u-url to the post?
#
aaronpk
this is for your h-card, so this is the URL of your h-card
#
[jgmac1106]
Ahh yeah. Can't believe I missed this long, thx aaronpk and jaime
#
aaronpk
i don't think you need uid in this case at all
#
[jgmac1106]
jaimetanna++
#
Loqi
jaimetanna has 1 karma over the last year
#
[tantek]
I feel like every time we see something like that, like an actual real world typo error, we should consider adding it to IndieWebifyme's h-entry validator as something to look for
#
[tantek]
and specifically warn about
#
aaronpk
i dunno this one feels particularly fringe case
#
[tantek]
also aaronpk, your question is good too, I wonder if we could detect that case of an unnecessary u-uid and recommend dropping it, in the spirit of avoiding excess/unnecessary markup
#
aaronpk
i've literally never seen it before, and i'm not really excited about hardcoding checks for every possible punctuation typo or things that look like combined mf2 class names
#
[tantek]
aaronpk, fair. maybe wait for more than one real world occurrence of such a typo.
#
aaronpk
recommending against unnecessary uid i like though!
#
[jgmac1106]
I have had the hardest time underst3u-uid but thought it was necessary for the authorship algorithm if you don't put an author
#
[jgmac1106]
Understanding*
#
aaronpk
the authorship algorithm is not written for publishers, so it's pretty confusing if you try to read it like that
#
jamietanna[m]
Ah fair, no worries. Did we mean jamietanna++ ? šŸ˜
#
[tantek]
[jgmac1106] I'm curious, why did you feel compelled to read the authorship algorithm, as a publisher?
#
[jgmac1106]
Its the best place how to figure out how to mark up a post if you don't want an h-card in every h-entry.
#
aaronpk
does the "how to publish" section above that not cover it?
#
[jgmac1106]
Plus it is where you go when you ask "What is author"
#
aaronpk
maybe we should move the authorship algorithm to its own page so that it's more clear it's for determining the author rather than the general concept of authorship
#
[jgmac1106]
Yeah it does. I made a typo. Was a little confused between h-card in footer and h-cars on homepage
#
aaronpk
that would also better match the other specs like webmention and micropub where specs get their own page
#
[jgmac1106]
When it wasn't parsing correct to h-card om homepage I added an h-card in footer to force that....but typo
#
[jgmac1106]
Kinda same with post-type-discovery
#
[jgmac1106]
Many people go there for "how to markup or publish*
#
[tantek]
"Many people"?!?
#
[tantek]
I'm asking why you felt compelled to go there, not others
#
[jgmac1106]
I felt compelled bc when asked that is where people or Loqi send me
#
[tantek]
the Loqi part we can fix
#
[jgmac1106]
And h-entry, note, or post don't get into it.
#
aaronpk
Loqi responds with the link to /authorship, but what made you scroll down to the "how to determine" header vs the "how to publish" header?
#
aaronpk
(which is why i'm thinking maybe we move the algorithm to its own page)
#
aaronpk
i will also say the "how to publish" section could benefit from being expanded a bit and adding some real markup examples
#
[jgmac1106]
Agree tantek. Thus I like the idea of separate page or a subsection on h-entry... Well off to cook dinner and start chauffeur duties
#
[jgmac1106]
Because learners make mistakes to learn
#
[tantek]
h-entry should get into it, since it really is the p-author/u-author property we're talking about
#
[tantek]
no, learners shouldn't be sent to docs that will likely confuse them more than help them. that's not kind to learners
#
[jgmac1106]
aaronpk I probably got there because nothing I tried worked because I didn't realize I made a typo
#
[jgmac1106]
My online life could he defined as the hunt for the missing closing div
#
[tantek]
and if people are accidentally discovering it by searching for "author" or "authorship" then we should bias those pages for *publishers* and move the algorithm to its own specific page because devs will hunt deeper for that any way
#
[jgmac1106]
okay went through my GitHub commits and figured out what happened. I was trying to be able to POSSE to twitter using Bridgy and keeping tweets threaded but replying to my url rather than first POSSEd tweet url and made a copy paste mistake along the way as I kept unsuccessfully trying things
#
[jgmac1106]
that got stuck in my templates and copy pasta everywhere (if I am using term correctly) but it originated between some misunderstanding of me reading Bridgy how-to and authorship (conjecture based on time of commit and my browser history being same)
[KevinMarks] joined the channel
#
[jgmac1106]
tantek it isnt accidental that is where community points people
#
[tantek]
right, that's something we should fix
#
[tantek]
-> meta
gRegorLove joined the channel
#
@razum2um
@derSchepp hi, nice writeup https://schepp.dev/posts/today-the-trident-era-ends/ just wonder how do you collect twitter's webmentions? do just replies to the original tweet? WDYT in general, why all https://en.wikipedia.org/wiki/Linkback is basically failed in web?
(twitter.com/_/status/1225185479550799882)
willnorris and voxpelli joined the channel
#
[tantek]
what is local first
#
Loqi
offline first is a method of developing a website that once a user has visited it once on their device, it will always provide at least some content (posts) and or features (like creating posts) when they revisit even when offline without internet access, using technologies like Service Workers and Local Storage https://indieweb.org/local_first
#
[tantek]
ok time to draw a distinction, and I'm going to ask for critical feedback
tbbrown joined the channel