My webmention endpoint wish list

While it has some rough edges, the Webmention protocol has a lot going for it. One of the nice things about it is that it’s easy to add support via a third-party endpoint, such as webmention.io, which is what I (and many others) use. There’s a few things I wish were better, though, and I think these can all be addressed by the endpoint itself, while remaining within the specification as it’s written today. I would be tempted to write an endpoint that works this way, if I weren’t already overwhelmed with other projects. Definitely support the webmention.io API. There’s a lot of folks already using that to retrieve mentions to display them on their site, and I see no reason for that to change. Having some form of moderation would be nice. Mentions at their core should be kept perpetually but with a disposition of accept/reject/pending, and domains should also have a default disposition (which defaults to pending). When a new webmention comes in, it should get the domain’s default disposition (along with an unmoderated flag), and then when moderating them, the user should be able to change the default disposition for the domain. Mentions should be periodically refreshed to see if they’re still valid. The refresh interval can be some form of slow exponential growth, like the Fibonacci sequence or something. Whenever the status of the mention changes, that should reset the refresh interval. Mentions which have disappeared should not be rendered while they’re invalid, and the moderation queue should also show a section for “approved but disappeared” mentions. When a mention is sent or refreshed, it should also get a source and destination pointer; track the mention in terms of the original URLs provided, but they should be displayed and fetched based on what their current URL is, after chasing redirections or the like. Relatedly, multiple incoming mentions should be consolidated based on what their source and destination URLs resolve to. For example, if Alice pings Bob from http://alice.example.com/1/first-entry → https://bob.example.org/blog/hello.html, and then Alice’s URL updates to https://alice.example.com/blog/1/First-Entry, if Alice’s site re-sends backfill pings, the endpoint should only report a single ping that comes from https://alice.example.com/blog/1/First-Entry. Likewise, if Bob’s URL changes to https://bob.example.org/weblog/hello, when Bob’s site retrieves mentions for the new URL it should also include mentions that went to the old URL. Obviously for this case there will be a period of time between a site’s URLs changing and the original pings being refreshed, but maybe a new mention to an older target can also trigger a refresh of existing mentions to see if they’re subject to consolidation. Also the consolidation should only happen at the retrieval level; the original source/destination URLs should always be preserved, since it’s always possible for an old URL to become unique again. There should also be some automatic consolidation of pings that have the same URL aside from the scheme; webmention.js handles this on the rendering end but it’d be nice if the endpoint could do this automatically. For example, if a ping comes in from both http://example.com/12345 and https://example.com/12345, they should be consolidated to both have come from the https: version, probably. It would also probably make sense to do some sort of intelligent auto-consolidation based on domain aliases, like www.example.com vs. example.com. Support for private webmention. Support for Vouch, both from a validation perspective and providing UX to make it easier for folks to present their whitelist (like maybe when a domain is whitelisted it can also be added to a vouch list). Also maybe some form of conversation threading would be nice? I’m not sure how that could be reasonably implemented (aside from supporting Salmention and hoping others come along with that) but it’d do a lot to address the UX problems with Webmention as a conversational platform.
Just need to invest in jars and containers. (v2.jacky.wtf/post/e8cd1413-…)
No lie, I can’t remember any of the Men in Black films. (v2.jacky.wtf/post/c2dc557f-…)

Just need to invest in jars and containers.

No lie, I can’t remember any of the Men in Black films.

Better for the environment, body and super easy to make! https://t.co/ABnbSwKqVm (v2.jacky.wtf/post/3e13ffc7-…)
Homemade cashew milk. Made it in under an hour by soaking 1 cup of raw cashews in hot water & proceeding to blend them with 4 cups of fresh water. 💚

Better for the environment, body and super easy to make! https://twitter.com/bkjuni/status/1150149562050461697

I wonder when the Chrome team will suggest the <ad> element and ship it immediately in Chrome. That’d help us block them more.

I wonder when the Chrome team will suggest the `<ad>` element and ship it immediately in Chrome. That’d help us block them more. (v2.jacky.wtf/post/0be248ad-…)

Photo for today’s IndieWeb Meetup NYC!

IndieWeb Meetup NYC 2019-07-13 Wrap-Up

#IndieWeb #meetup #NYC #HWC #wrap-up
thanks @mckinleaf for this reinterpretation of a classic: youtube.com/watch?v=voqCQS…
PDX is such a nice airport I sometimes want to head over there just to hang out and visit the shops. No flight required. Can't say that about…any other airport I've visited! twitter.com/oregonian/stat…
PDX named top U.S. airport for 7th straight year by Travel + Leisure magagzine bit.ly/2NU9pLT
What godforsaken hellhole of a country is this happening in? Oh right. 'Murica. If this keeps up, *I'll end up becoming a refugee in some other part of the world…* twitter.com/nbcnews/status…
New video shows severe overcrowding of men in cages at Texas detainment facility during VP Pence's visit Friday. A group of men detained behind chain link fencing shout...
For me it would be synthesizers. Feeling real sad today? Time to buy a Moog! 😆
Therapist: and what do we do when we feel sad? Me: buy mechanical keyboards Therapist: no
Wondering if JS engines optimize Array.prototype.includes() in cases of short, constant-length non-changing arrays like this 🤔 it certainly makes more sense to leave this to the JIT... /cc @bmeurer @evilpies (code via @MarijnJH's lezer github.com/lezer-parser/j… )
OAuth2 Server Improvements marcus-povey.co.uk/2019/07/13/oau…
"So if integrity is defined by what you do when no one is looking, then perhaps political principle is somewhat of a practical opposite, meaning, it is what you stick to when everyone is looking" — @ChrisCuomo m.youtube.com/watch?v=3V8L-z…
I joined this last night and it was powerful. Heard an 82-year-old Holocaust survivor speak and a variety of activists. Stand up, show up, connect with organizations doing the work. #CloseTheCamps
#LightsforLiberty San Diego sandiegouniontribune.com/news/public-sa…
TIL: github.com/rustodon/rusto… “A Mastodon-compatible, ActivityPub-speaking server in Rust” 👀