#dev 2025-05-23

2025-05-23 UTC
bugliker0, grufwub, gRegor, Xander, moose3335, claudinec, geoffo and pfych joined the channel
#
[aciccarello]
What is webmention?
#
Loqi
Webmention is an open web standard (W3C Recommendation) for conversations and interactions across the web, a powerful building block used for a growing distributed network of peer-to-peer comments, likes, reposts, and other responses across the web https://indieweb.org/webmention
#
[aciccarello]
What is a static site
#
Loqi
A static site is a website that serves pages directly from files on the web server, which have often been previously generated by static site generator software only when created or updated, instead of for every request https://indieweb.org/static_site
#
[aciccarello]
(continuing from #indieweb): I have some details on how I manage webmentions in my Colophon page https://www.ciccarello.me/colophon/
bread joined the channel
#
carrvo
bread: you could also look at webmention.io, it would be a third party receiving the webmentions (keeps you static) and then you can inject them either with JavaScript or when you regenerate.
#
carrvo
What is webmention.io?
#
Loqi
webmention.io is an open-source project and hosted service for receiving webmentions on behalf of your indieweb site https://indieweb.org/webmention.io
#
bread
ok! ty
#
bread
if i sign up for webmention.io service, do i still need to host morris?
#
bread
morris as in for storing mentions in json format
#
bread
i think i understand it a bit more. so webmention.io is a self-hosted service that runs alongside of my static site. and i need to host webmension.io service somewhere myself...
#
bread
am i right?
#
[aciccarello]
You don't need to self host it
#
[aciccarello]
A community member runs it
#
[aciccarello]
And then you can get the list of mentions either at build time or client side
[Jo] joined the channel
#
[Jo]
http://webmention.io also has an rss feed for your mentions! thats how i get a notification on my phone when i've been mentioned. on the website i use webmention.js to display the mentions on a page :^)
barnaby joined the channel
#
doesnm
hm, never know about channel api keys. It looks like webhooks in cinnamon. Maybe i can add twtxt integration via this
#
doesnm
*channels api keys in aperture
balintm and LadyBanana joined the channel
#
perryflynn
what is cinnamon
#
Loqi
It looks like we don't have a page for "cinnamon" yet. Would you like to create it? (Or just say "cinnamon is ____", a sentence describing the term)
#
perryflynn
what is aperture
#
Loqi
Aperture is an open source Microsub server developed by Aaron Parecki https://indieweb.org/Aperture
LadyBanana joined the channel
balintm joined the channel
#
perryflynn
thanks
barnaby joined the channel
#
perryflynn
I missed some these clients mentioned on aperture and cinnamon when I looked for pub/sub clients. will try some of them out. thanks. šŸ‘ļø
#
doesnm
aperture and cinnamon are servers. But cinnamon are server+client
#
doesnm
microsub are not widely implemented :(
#
perryflynn
"together" looks interesting for example. Writing is not big of a deal IMHO. But I look for something to manage incoming replies and approve/answer them comfortably.
#
perryflynn
Goal is to be 100% independent, that's why I didn't started with webmention.io und Co.
[Scout], balintm, [jeremycherfas], Guest6 and [Murray] joined the channel
#
capjamesg
I am experimenting with a bookmarks list: https://playground.jamesg.blog/bookmarks.html
barnaby joined the channel
#
jeremycherfas
Nice. I like the grid CSS for the list items.
barnaby, duanin2, PsyLok and LadyBanana joined the channel
#
LadyBanana
o/ I'm trying to add a comments system to my static website -- with no javascript. Is it possible to use IndieAuth without any client side javascript whatsoever? Also, is it okay to have a static `state` value?
#
[snarfed]
it can definitely be server side only, or client side only, but I think you need code one place or the other
#
[snarfed]
how do you plan to have people submit comments?
#
[tantek]
There's a handful of webmention comments embeds. See how http://kevinmarks.com does it which I believe is a static page. Not sure if the embed requires JS (it might)
#
[snarfed]
oh sure. either with JS, or during build, without. but it sounded like LadyBanana wanted users to be able to...IndieAuth into the site to leave comments...?
#
[snarfed]
unrelated, we're still trying to fully understand, but it seems like to use the Threads API, and maybe other Meta APIs too, you're now *required* to be a business and undergo their business entity verification šŸ˜• https://www.facebook.com/business/help/1095661473946872
#
[snarfed]
RIP open web mashup era, 2005-2018, killed for good by Cambridge Analytica
barnaby and jeremy joined the channel
#
LadyBanana
Yes. I'm planning on having anything needing a backend go through Cloudflare Workers, though I'd like to limit the amount of requests that go through it. Comment submission flow looks like login ->backend adds row to sql db with token and 30 minute timeout, user copies token and puts it in comments submission form, then submits comment. I think that only takes two calls to my backend, the login and comment submission?
GuestZero_ and ttybitnik joined the channel
#
zachary.kai
Can I ask what DNS host people recommend, with the caveat of I need it to be free? Trying to avoid single point of failure.
#
[tantek]
presumably you mean separate from your registrar (which I'm starting to agree with, based on separating concerns, portability etc.)
#
[tantek]
so far I am fairly happy with using Cloudflare for DNS
#
perryflynn
afraid.org is nice, they offer allot free Subdomains and you can bring your own as well.
#
[KevinMarks]
I use http://webmention.heroku.app which is js based and does some neat things (eg if you have the page open and a webmention comes in the page updates}
barnaby joined the channel
#
[tantek]
it updates in realtime? by what mechanism?
#
[KevinMarks]
You can ask voxpelli the details - it keeps a websocket open I think
#
[KevinMarks]
Makes for a good webmention demo
#
voxpelli
It uses Server Sent Events
#
[tantek]
very cool
#
[tantek]
what are Server Sent Events
#
Loqi
server-sent events is a DOM API for receiving push notifications from a server via HTTP https://indieweb.org/server-sent_events
#
voxpelli
I’m building a social chat app at work now that will use a very similar mechanism
#
[KevinMarks]
Have you had problems with Heroku shutting down free tiers?
#
[snarfed]
re DNS, https://www.zoneedit.com/ is the (or at least an) OG of free DNS services. now owned by EasyDNS
#
[tantek]
what is DNS Host
#
Loqi
It looks like we don't have a page for "DNS Host" yet. Would you like to create it? (Or just say "DNS Host is ____", a sentence describing the term)
#
zachary.kai
[tantek] Thanks for the recommendation! I'm going to go with that for my needs.
#
trwnh
huh, TIL about <link anchor="" in https://datatracker.ietf.org/doc/html/rfc8288#section-3.2 as a solution to the issue of applying links to fragments of a resource instead of the entire current resource
#
trwnh
wondering how widespread support for this might be
#
trwnh
(as in, if i start using it on articles with frag-ids, i would hope that parsers don't misattribute the link context as the bounding resource of the entire HTML page)
barnaby, balintm and JadedBlueEyes joined the channel
#
trwnh
hm, some testing on python.microformats.io and go.microformats.io and so on seems to show that `anchor` is handled incorrectly; either the link should be fully ignored or the anchor should be parsed, but you MUST NOT consider the link with an incorrect link context
#
[tantek]
Is there a test suite for HTTP LINK anchor?
#
trwnh
i'm not sure there is one, or where to look for one. no mention of a test suite in the RFC(s)
gRegor joined the channel
#
[tantek]
makes it harder to implement 🤷
#
LadyBanana
rggghhh!! why is indieauth so hard to understand? i just want to put a login button that will result in a jwt cookie that will be submitted with my comment form for stateless logins!
#
LadyBanana
indielogin.com/api makes it seem kind of simple--except i dont even know how far outdated that is! whats all this code challenges stuff??
#
capjamesg
I have a new release with many improvements coming up, but I'm glad to have the first version out there!
#
[tantek]
LadyBanana from a UI perspective you may want to start with web sign-in
#
[tantek]
what is web sign-in
#
Loqi
Web sign-in is signing in to websites using your personal web address (without having to use your e-mail address) https://indieweb.org/Web_Sign-in
#
[tantek]
aaronpk, is IndieLogin still open for anyone to use to setup web sign-in on their site, or is it a service that is more intended for "community" services?
#
LadyBanana
Also... why do all the microformats.org parsers fail on my ellefson.dev site except the rust one??
#
LadyBanana
i think aaron is at a conference right now
#
Loqi
[preview] Diana Ellefson
#
LadyBanana
Huh, it keeps failing on the subdomain parsers, like https://go.microformats.org
barnaby joined the channel
#
[snarfed]
looks like you use cloudflare, I wonder if it's blocking them
#
gRegor
Hm, same on php.microformats.io, which should mostly be the same as pin13 site. Yeah, wondering if Cloudflare
#
gRegor
I like the color scheme on your homepage btw
#
gRegor
and the font
#
[tantek]
hmm, php mf io wfm on both my main site which is behind cloudflare and another which is not
#
perryflynn
works on my private installation with mf2-php: https://pastebin.com/urVgLrrb
#
[snarfed]
cloudflare blocking can depend on settings, notably bot fight mode
#
LadyBanana
thanks, gRegor! i'm using crimson pro as my font. i want to use a djr's fern eventually but not yet
#
LadyBanana
hmm, well i suppose i wont panic too badly then if its just cloudflare. thanks
#
gRegor
yep, if pin13 is working for you, all good. It's the same parser version as the php one on microformats.io
#
trwnh
it's part of the core Web Linking RFC as a normative requirement and there is an algorithm described in Appendix B, so while a test suite would be appreciated i don't think it's necessary > [16:08:29] <[tantek]> makes it harder to implement 🤷
#
trwnh
parsing it should be like parsing any other param pair, just that it has a default value of "whatever the current resource is"
barnaby joined the channel
#
trwnh
i think for mf2 parsing purposes you basically need to either ignore wholesale any link which uses anchor=... or otherwise attach the link to the correct items
#
trwnh
otherwise that's (willfully or negligently) not complying with the normative requirements of the RFC
#
trwnh
i'm not sure how problematic this would end up being since i think from what i can tell the general pattern seems to be reinvent any "local rel" as a mf2 property, like rel=tag becomes .p-category or otherwise you need to fetch the canonical uri for a subresource (?)
#
trwnh
like rel=edit can't be exposed on items unless they are the "representative item" of the base resource (a concept which is used in some places but not fully defined afaict -- mainly with "representative h-card")
#
trwnh
i think the easier approach is to just disregard any link that uses anchor=
#
trwnh
after a bit more looking i found https://microformats.org/wiki/h-entry#What_about_rel_bookmark to be somewhat relevant perhaps
#
gRegor
Is there example markup? Not sure I understand the <link anchor> thing
#
gRegor
Could also just be end-of-week-brain-tired, but didn't follow reading the RFC haha
#
trwnh
emmet: html#page > (head > link[rel=tag, href=foo]) + (article#article > a[anchor=#article, rel=tag, href=bar])
#
trwnh
in that example, the modern advice is to use p-category instead of rel=tag
#
trwnh
but the expected behavior of rfc 5988 / 8288 is that #page is tagged foo and #article is tagged bar
#
trwnh
the actual behavior of mf2 parsers is that the base url is tagged both foo and bar
#
gRegor
Ah, hm. Yeah I think in mf2 parsers, rel are treated as applying to the whole page
#
trwnh
yup, but the rfc has a (perhaps ill advised) parameter for overriding the link context to something else
#
gRegor
They will upgrade a rel-tag to p-category if it's in mf1 markup
#
[tantek]
Lacking a test suite it's hard to verify if an implementation works or not. In practice specs (features) without tests don't interoperate well
#
gRegor
Interesting edge case though
#
trwnh
i think the issue is with relations that don't translate into an existing microformat class
#
[tantek]
In general my experience has been that an untested feature is usually unimplemented
#
[tantek]
"anchor" isn't an HTML attribute
#
[tantek]
and HTTP LINK headers are themselves poorly implemented
#
trwnh
in a practical sense i'm wondering how i might expose for example an edit link on multiple items in a feed. rel=edit only works for the current resource (the feed, or more precisely the html document serving both the feed and its items)
#
[tantek]
I think that's right. Editing a feed (like name / logo of the feed) is not the same as editing its items
#
trwnh
without defining a bunch of u-* microformats basically replicating the link relation registry
#
trwnh
the thing is that i have for simplicity put a bunch of items on a single feed in a single html document
#
trwnh
which means i can't use web links due to scoping issues
#
[tantek]
Does that HTML document currently have a clickable "edit" link? Then what does clicking it do?
#
[tantek]
I think that's the disconnect. Rel edit is tied to the document, so if you have a "single document", rel-edit is for auto discovery of that single edit link/button
PsyLok joined the channel
#
trwnh
the way that i'm modeling my resources is that they exist separately of the document, but for convenience are served in a single document. the workaround is to 1) generate a separate document for every item, 2) attach links with relations to those new documents/resources. but i'm trying to avoid that overhead :(
#
trwnh
so the edit link would go to edit a source text file in a git forge
#
trwnh
essentially i am faced with having to generate permalinks that i don't really want for viewing subresources out of context... unless i redirect to the frag-id i guess?
#
trwnh
like /monologues/foo redirecting to /monologues/#foo
#
trwnh
but then while browsing /monologues/ i can't edit individual entries, i need to do an HTTP HEAD on /monologues/foo and get the edit link from there? which means i need my http server to respond to that request...
#
trwnh
i'd rather Not
#
trwnh
also i wasn't really aware that web linking was poorly implemented but i guess i'm not completely surprised
#
trwnh
(ie i didn't expect the scoping issue to be this significant)
#
[tantek]
basically if a spec lacks a test suite or implementation report I treat it like a W3C CR — good idea/consensus in theory, but yet to be proven to be implementable or interoperable or even of interest to implementers (per feature). that's part of the value (difference) of between CR and REC. less so in the past, but certainly I'd say 90 (95?)%+ of W3C RECs in the past 10y have all had to have test suites, implementations that pass them, and
#
[tantek]
implementation reports that demonstrate all features have 2+ implementations.
#
[tantek]
historically, absent that kind of rigor, specs tend to be anywhere from hopeful to implemented differently in practice.