Show Navigation
Notices tagged with activitypub
-
Darn. Really have to upgrade this instance to #ActivityPub
-
No I did not block you on the #fediverse / #Mastodon / #Misskey etc.
If you were following me @tantek.com on your client/server/instance of choice but noticed you were no longer doing so, that was due to a recent software bug in my fediverse provider which accidentally caused everyone’s #ActivityPub servers to unfollow me (bug details below).
No it’s absolutely not your fault, you did nothing wrong.
We need a variant of Hanlon’s Razor¹ like:
“Never attribute to malice that which is adequately explained by a software bug.”
Take another look at my posts if you want (directly on @tantek.com or try searching for that on your instance) and if you like what you see or find them otherwise informative and useful, feel free to refollow. If not, no worries!
Also no worries if you ever unfollow/refollow for any reason. I mean that.
I always assume people know best how to manage their online reader/reading experiences, everyone’s priorities and likes/dislikes change over time, and encourage everyone to make choices that are best for their mental health and overall joy online.
Bug details:
This was due to a #BridgyFed bug² that deleted my profile (“ActivityPub actor”) from (nearly?) all instances, making everyone’s accounts automatically unfollow me, as well as remove any of my posts from your likes and reposts (boosts) collections. It also removed my posts from any of your replies to my posts, leaving your replies dangling without reply-contexts. Apologies!
The bug was introduced accidentally as part of another fix about a month ago³, and was triggered within the following week⁴.
Anyone following me before ~2024-09-22 was no longer following me. A few folks have noticed and refollowed. Any likes or reposts of my posts before that date were also undone (removed).
Ryan (@snarfed.org) has been really good about giving folks a heads-up, and apologizing, and quickly doing what he can to fix things.
Bugs happen, yes even in production code, so please do not post/send any hate.
I’d rather be one of the folks helping with improving BridgyFed, and temporary setbacks like this are part of being an early / eager #IndieWeb adopter.
This bug has also revealed some potential weaknesses in other ActivityPub implementations. E.g. deleting an “actor” should be undoable, and undoing a delete should reconnect everything, from follows to likes & reposts collections, to reply-contexts. Perhaps the ActivityPub specification could be updated with such guidance (if it hasn’t been already, I need to double-check).
To be clear, I’m still a big supporter of #BridgyFed, #ActivityPub, #Webmention, and everyone who chooses to implement these and other #IndieWeb related and adjacent protocols as best fits their products and services.
All of these are a part of our broader open #socialWeb, and making all these #openStandards work well together (including handling edge-cases and mistakes!) is essential for providing #socialMedia alternatives that put users first.
References:
¹ https://en.wikipedia.org/wiki/Hanlon%27s_razor
² https://github.com/snarfed/bridgy-fed/issues/1379
³ https://github.com/snarfed/bridgy-fed/commit/4df76d0db7b87cabbd714039546c05b3221169be
⁴ https://chat.indieweb.org/dev/2024-09-22#t1727028174623700
This is post 26 of #100PostsOfIndieWeb. #100Posts
← https://tantek.com/2024/285/t1/io-domain-suggested-steps
→ 🔮
-
Adventures in IndieWeb / ActivityPub (AP) bridging:
While in general my posts are being successfully federated by https://fed.brid.gy/ (#BridgyFed), my most recent three posts, and two more earlier this year, were delivered successfully to multiple #Mastodon instances AP inboxes (returned 202), however the posts do not show up if you look-up my profile on those instances (and thus followers never saw them).
These most recent posts:
* https://tantek.com/2024/245/t1/read-write-suggest-edit-web
* https://tantek.com/2024/242/t1/indiewebcamp-portland
* https://tantek.com/2024/238/t3/indiewebcamp-auto-linking
and these earlier this year:
* https://tantek.com/2024/173/t1/years-posse-microformats-adoption
* https://tantek.com/2024/044/t1/twenty-years-microformats
were all delivered to over 300 instances, which returned "202" codes, however none of them show up in profile views on those instances, e.g.
* https://indieweb.social/@tantek.com@tantek.com
* https://mastodon.social/@tantek.com@tantek.com
* https://social.coop/@tantek.com@tantek.com
* https://w3c.social/@tantek.com@tantek.com
(My most recent post on all of these is the same 2024-08-25 post starting with “All setup here at IndieWebCamp Portland!”)
Why would a Mastodon instance respond with a 202 to an AP inbox delivery and then not show that post on the local profile view?
GitHub tracking bug in case you can help narrow/track this down or have
* https://github.com/snarfed/bridgy-fed/issues/884
Let’s see if this post makes it to your Mastodon (or other #fediverse) reader/client.
#indieweb #ActivityPub
This is post 21 of #100PostsOfIndieWeb. #100Posts
← https://tantek.com/2024/245/t1/read-write-suggest-edit-web
→ 🔮
-
✏️ I want the Read Write Suggest-Edit Accept-Edit Update Web.
The consumer Infinite Scroll Web leaves us feeling empty.
Too few of us participate in the Read Write Web, whether with personal sites or Wikipedia.
A week ago when we wrapped up #IndieWebCamp Portland and I was reading Kevin Marks (@kevinmarks@indieweb.social) live-tooting of the demos¹, I noticed a few errors, typos or miscaptures, and pointed them out in-person.
Kevin was able to quickly edit his toots and update them for anyone reading, thanks to #Mastodon’s post editing feature and its support of #ActivityPub Updates. But this shouldn’t require being in the same room, whether IRL or chat.
We should be able to suggest edits to each other’s posts, as easily as we can reply and add a comment.
13 years ago I wrote²:
“The Read Write Web is no longer sufficient. I want the Read Fork Write Merge Web.”
Now I want the Read Write Suggest-Edit Accept-Edit Update Web.
The ↪ Reply button is fairly ubiquitous in modern post user interfaces (UIs).
Why not also a ✏️ Suggest Edit button, to craft a fix for a typo, grammar, or other minor error, and send the author for their review, and acceptance or rejection? Perhaps viewable only by the suggester and the author, to avoid "performative" suggested edits.
If the author’s posts provide revision histories, when a suggested edit is accepted, a post’s history could show the contributor of the edit.
Instead of asking Kevin in-person, what if I could have posted special "Suggested Edit" responses in reply to his toots, for which he would receive special notifications, and could choose to one-click accept and update (or further edit) his toots?
To enable such UIs and interactions across servers and implementations, we may need a new type of response³, perhaps with a special property (or more) to convey the edits being suggested.
There is documentation of this and similar use-cases, prior art / UIs, as well as some brainstorming on the #IndieWeb wiki:
* https://indieweb.org/edit
Our interaction after IndieWebCamp has inspired me to take another look at how can we design and prototype solutions to this problem.
For now, if you host your blog and posts as static files on GitHub (or equivalent), you could add a button like this to your posts alongside Like, Reply, Repost buttons:
✏️ Suggest Edit
and link it to an edit URL for the static file for the post.
I don’t use GitHub static files myself for posts, but here’s an example of such an edit link for one of my projects:
https://tantek.com/github/cassis/edit/main/README.md
This will start the process of creating a “pull request”, GitHub’s jargon⁴ for a “suggested edit”.
After completing GitHub’s ceremony of entering multiple text fields (summary & description), and multiple clicks to create said “pull request”, it’ll be sent to the author to review. Presuming the author likes the suggested edit, they can perform the other half of GitHub’s jargon-filled ceremonies to “Merge” or “Squash & Merge”, “Delete fork”, etc. to accept the edit.
It’s an awkward interaction⁵, however useful for at least prototyping a ✏️ Suggest Edit button on sites that store their posts as files in GitHub. Certainly worthy of experimenting with and gathering experience to design and build even better interactions.
We can start with the shortest path to getting something working, then learn, iterate, improve, repeat.
#readWriteWeb #editableWeb #suggestEdit #acceptEdit
References:
¹ https://indieweb.social/@kevinmarks/113025295600067213
² https://tantek.com/2011/174/t1/read-fork-write-merge-web-osb11
³ https://indieweb.org/responses
⁴ The phrase “pull request” was derived from the git command: “git request-pull” according to https://www.reddit.com/r/git/comments/nvahcp/comment/h12hzj7/
⁵ “edits” in GitHub require taking far more steps, and navigating far more jargon, then say, Wikipedia pages, which come down to “Edit” and “Save”. We should aspire to Wikipedia’s simplicity, not GitHub’s ceremonies.
This is post 20 of #100PostsOfIndieWeb. #100Posts
← https://tantek.com/2024/242/t1/indiewebcamp-portland
→ https://tantek.com/2024/246/t1/adventures-indieweb-activitypub-bridgy-fed
-
✏️ I want the Read Write Suggest-Edit Accept-Edit Update Web.
The consumer Infinite Scroll Web leaves us feeling empty.
Too few of us participate in the Read Write Web, whether with personal sites or Wikipedia.
A week ago when we wrapped up #IndieWebCamp Portland and I was reading @KevinMarks.com (@kevinmarks@indieweb.social @kevinmarks@xoxo.zone @kevinmarks) live-tooting of the demos¹, I noticed a few errors, typos or miscaptures, and pointed them out in-person.
Kevin was able to quickly edit his toots and update them for anyone reading, thanks to #Mastodon’s post editing feature and its support of #ActivityPub Updates. But this shouldn’t require being in the same room, IRL or chat.
We should be able to suggest edits to each other’s posts, as easily as we can reply and add a comment.
13 years ago I wrote²:
“The Read Write Web is no longer sufficient. I want the Read Fork Write Merge Web.”
Now I want the Read Write Suggest-Edit Accept-Edit Update Web.
The ↪ Reply button is fairly ubiquitous in modern post user interfaces (UIs).
Why not also a ✏️ Suggest Edit button, to craft a fix for a typo, grammar, or other minor error, and send the author for their review, and acceptance or rejection? Perhaps viewable only by the suggester and the author, to avoid "performative" suggested edits.
If the author’s posts provide revision histories, when a suggested edit is accepted, a post’s history could show the contributor of the edit.
Instead of asking Kevin in-person, what if I could have posted special "Suggested Edit" responses in reply to his toots, for which he would receive special notifications, and could choose to one-click accept and update (or further edit) his toots?
To enable such UIs and interactions across servers and implementations, we may need a new type of response³, perhaps with a special property (or more) to convey the edits being suggested.
There is documentation of this and similar use-cases, prior art / UIs, as well as some brainstorming on the #IndieWeb wiki:
* https://indieweb.org/edit
Our interaction after IndieWebCamp has inspired me to take another look at how can we design and prototype solutions to this problem.
For now, if you host your blog and posts as static files on GitHub (or equivalent), you could add a button like this to your posts alongside Like, Reply, Repost buttons:
✏️ Suggest Edit
and link it to an edit URL for the static file for the post.
I don’t use GitHub static files myself for posts, but here’s an example of such an edit link for one of my projects:
https://tantek.com/github/cassis/edit/main/README.md
This will start the process of creating a “pull request”, GitHub’s jargon⁴ for a “suggested edit”.
After completing GitHub’s ceremony of entering multiple text fields (summary & description), and multiple clicks to create said “pull request”, it’ll be sent to the author to review. Presuming the author likes the suggested edit, they can perform the other half of GitHub’s jargon-filled ceremonies to “Merge” or “Squash & Merge”, “Delete fork”, etc. to accept the edit.
It’s an awkward interaction⁵, however useful for at least prototyping a ✏️ Suggest Edit button on sites that store their posts as files in GitHub. Certainly worthy of experimenting with and gathering experience to design and build even better interactions.
We can start with the shortest path to getting something working, then learn, iterate, improve, repeat.
#readWriteWeb #editableWeb #suggestEdit #acceptEdit
References:
¹ https://indieweb.social/@kevinmarks/113025295600067213
² https://tantek.com/2011/174/t1/read-fork-write-merge-web-osb11
³ https://indieweb.org/responses
⁴ The phrase “pull request” was derived from the git command: “git request-pull” according to https://www.reddit.com/r/git/comments/nvahcp/comment/h12hzj7/
⁵ “edits” in GitHub require taking far more steps, and navigating far more jargon, then say, Wikipedia pages, which come down to “Edit” and “Save”. We should aspire to Wikipedia’s simplicity, not GitHub’s ceremonies.
This is post 20 of #100PostsOfIndieWeb. #100Posts
← https://tantek.com/2024/242/t1/indiewebcamp-portland
→ 🔮
-
All setup here at IndieWebCamp Portland!
https://events.indieweb.org/2024/08/indiewebcamp-portland-2024-8bucXDlLqR0k
Good crowd of participants from #XOXO #XOXOConf (@xoxofest.com @xoxo@xoxo.zone @xoxo) here to work on their personal website(s), domains, or other independent social media setups!
As encouraged by Andy Baio (@waxy.org @andybaio@xoxo.zone @waxpancake)
“Every one of you should have a home on the web not controlled by a billionaire.”
If you’re in #Portland and want help, encouragement, or camaraderie in getting setup or doing more with your personal site, come on by! We’ll be having a mix of discussion sessions and create/hack sessions.
Personal site and hack demos at 16:00 PDT!
#indieweb #fediverse #ActivityPub #decentralized #socialMedia
This is post 17 of #100PostsOfIndieWeb. #100Posts
← https://tantek.com/2024/237/t1/people-over-protocols-platforms
→ 🔮
-
People over protocols over platforms.
inspired by today’s #indieweb #fediverse #ActivityPub #decentralized #socialMedia lunch meetup at #XOXO #XOXOConf (@xoxo@xoxo.zone)
This is post 16 of #100PostsOfIndieWeb. #100Posts
← https://tantek.com/2024/173/t1/years-posse-microformats-adoption
→ 🔮
-
Good W3C SocialCG telcon yesterday morning.
Minutes: https://www.w3.org/wiki/SocialCG/2024-08-02
Appreciate working with @evan@cosocial.ca @dmitriz@mastodon.mit.edu @TallTed@mastodon.social @snarfed.org Lisa a @AaronNGray@fosstodon.org @bobwyman@mastodon.social @by_caballero@mastodon.social @j12t@j12t.social @steve@social.technoetic.com @thisismissem@hachyderm.io
#W3C #SocialCG #20240802 #2024_215 #ActivityPub #ActivityStreams #relAuthor
-
What I created while remotely participating at #IndieWebCamp Brighton 2024: wiki-gardened day 1’s BarCamp sessions notes pages, and documented my @-mention @-@-mention autolinking coding improvements I built the Sunday before.
Day 2 of IndieWebCamps is Create Day, where everyone is encouraged to create, make, or build something for their personal website, or the IndieWeb community, or both.
At the start of day 2, everyone is encourage to pick things to make¹. What to make at an IndieWebCamp² can be anything from setting up your personal website, to writing a blog post, redesigning your styling, building new features, helping other participants, or contributing to shared IndieWeb community resources, whether code or content.
Everyone is encouraged to at least pick something they consider easy, that they can do in less than an hour, then a more bold goal, and then perhaps a stretch goal, something challenging that may require collaboration, asking for help, or breaking into smaller steps.
For my "easy" task, I built on what another remote participant, @gregorlove.com completed the night before. gRegor had archived all the IndieWebCamp Brighton Sessions Etherpads onto the wiki, linked from the Schedule page³. gRegor had noted that he didn’t have time to clean-up the pages, e.g. convert and fix Markdown links.
I went through the 13 Session Notes archives and did the following:
* converted Markdown links to MediaWiki links
* converted indieweb.org (and some services) links to local wiki page links
* fixed (some) typos
With some help from @alexsirac.com (@alexture@todo.eu), I figured out how to create a MediaWiki Contributions summary link of my edits:
* https://indieweb.org/wiki/index.php?title=Special:Contributions&target=Tantek.com&namespace=all&start=2024-03-10&end=2024-03-10&offset=20240310143900&limit=25
I point this out to provide an example of an IndieWeb Create Day project that is:
* incremental on top of someone else’s work
* community contribution rather a personal-focused project
* editing and wiki-gardening as valid contributions, not just creating new content
I point this out to illustrate some of the IndieWeb community's recognitions & values in contrast to typical corporate cultures and incentive systems which often only reward:
* new innovations (not incremental improvements)
* solo (or maybe jointly in a small team) inventions, designs, specs, or implementations
* something large, a new service or a big feature, not numerous small edits & fixes
In this regard, the IndieWeb community shares more in common with Wikipedia and similar collaborative communities (despite the #Indie in #IndieWeb), than any corporation.
For my "more bold" goal, I wrote a medium-sized post about the auto-linking improvements I made the Sunday before the IndieWebCamp to my personal website with examples and brief descriptions of the coding changes & improvements.
* https://tantek.com/2024/070/t1/updated-auto-linking-mention-use-cases
My stretch goal was to write up a more complete auto-linking specification, based on the research I have done into @-mention @-@-mention user practices (on #Mastodon, other #ActivityPub or #fediverse implementations, and even across #socialMedia silos), as well as how implementations link URLs, domains, and paths.
That stretch goal remains a goal, however I did collect a handful of prior posts on @-mentions which I plan to source for specifying auto-linking and @-mentioning:
* https://tantek.com/2023/011/t1/indieweb-evolving-at-mention
* https://tantek.com/2023/014/t4/domain-first-federated-atmention
* https://tantek.com/2023/018/t1/elevate-indieweb-above-silo
* https://tantek.com/2023/019/t5/reply-domain-above-address-and-silo
* https://tantek.com/2023/109/t2/years-ago-first-federated-indieweb-thread
#autoLink #atDomain #atPath #atMention #atMentions #atat #atAtMention
I was one of a few remote participants in addition to ~18 in-person participants, the overwhelming majority of overall attendees, who demonstrated something at the end of IndieWebCamp Brighton 2024 day 2. See what everyone else made & demonstrated on Create Day:
* https://indieweb.org/2024/Brighton/Demos
This is post 13 of #100PostsOfIndieWeb. #100Posts
← https://tantek.com/2024/070/t1/updated-auto-linking-mention-use-cases
→ 🔮
Glossary:
Create Day
https://indieweb.org/Create_Day
IndieWebCamp Brighton 2024
https://indieweb.org/2024/Brighton
References:
¹ https://indieweb.org/IndieWebCamps/Attending#Day_Two
² https://indieweb.org/what_to_make_at_IndieWebCamp
³ https://indieweb.org/2024/Brighton/Schedule#Saturday
-
31 days of #IndieWeb gifts: the _2023 IndieWeb Gift Calendar_ (https://indieweb.org/2023-12-indieweb-gift-calendar) wrapped up a full month of IndieWeb-related creations & updates from the community (and sometimes beyond) to everyone who wants to improve their #IndieWeb experience.
From plugins & libraries, to tools & services, to events & meetups, to web components & wiki pages, and blog posts & newsletters, there was something for everyone.
Some numbers:
🎁 67 total gifts
📄 32 new IndieWeb wiki pages
📜 7 posts on improving blogs, IndieWeb specs, and event summaries
💻 6 Homebrew Website Club online meetups
📫 5 This Week In The IndieWeb newsletters
🧱 4 library updates: new web components, #microformats2 parser update
🌉 3 Bridgy Fed updates & improvements
🧩 2 plugin updates: #Elgg IndieWeb & #WordPress #IndieAuth
🎪 1 #IndieWebCamp San Diego (2 days!)
📚 1 indiebookclub new year in review overview feature
📽 1 IndieWeb movie viewings aggregator
🧶 1 #Threads federating out #ActivityPub (followable by #BridgyFed)
Gift were shared by:
👥 20 individuals
🏢 1 company
I compiled these numbers by hand. Let me know if you see any errors. There are many more potential stats like:
* average (mean and median) number of gifts per contributor
* how many edits to the Gift Calendar wiki page
* how many different editors of the wiki page
* average (mean and median) number of edits per editor
I’ll leave those as exercises for others if they wish!
This is post 2 of #100PostsOfIndieWeb. #100Posts
← https://tantek.com/2024/001/t1/restarting-100days-indieweb-gift-calendar
→ 🔮
-
at a fascinating #Threads meetup hosted by Meta in San Francisco, with a handful of great #dataportability #fediverse #indieweb #openweb folks, learning about and providing feedback to Threads folks about their #federation #ActivityPub and other #openStandards support plans.
Chatham House rule¹ means we can quote and talk about what’s being discussed (I’m taking notes), however no attribution, which I’m extending to not saying (or @-@-mentioning) who else is here.
If you’re also here, feel free to reply to this post or use one of the below hashtags. And since I’m publishing this, feel free to @-me as well.
#DataDialogue #Threadiverse (unofficial hashtag suggestion from a participant)
¹ https://en.wikipedia.org/wiki/Chatham_House_rule
-
Inspiring mix of perspective expanding and personal talks at border:none (https://border-none.net/ @border_none) the past two days. Thanks speakers, volunteers, and especially organizers @marcthiele.com (@marcthiele@mastodon.social @marcthiele) and @jkphl.is (@jkphl@mastodon.social @jkphl).
Looking forward to the next two days at #IndieWebCamp Nürnberg @tollwerk.de (@tollwerk@mastodon.social @tollwerk) of personal site demos, brainstorming sessions, and making, creating, & hacking things from UX to protocols to improve & interconnect our websites, with each other ( #Webmention ), #fediverse ( #BridgyFed & #ActivityPub ), and others ( #POSSE #backfeed ).
Still a few spots if you’re in town or can hop on a train and join us Saturday & Sunday!
🎟 Tickets: https://ti.to/beyondtellerrand/bordernone-2023/with/kqyaidtq92k
🗓 Event: https://events.indieweb.org/2023/10/indiewebcamp-nuremberg-2023-DmXe4dYdfagc
ℹ️ More info: https://indieweb.org/2023/Nuremberg
#bordernone #bono23 #IndieWeb
-
Implemented liking/favoriting of #Mastodon posts via Bridgy Fed on my site! (Actually of any post on any site that #BridgyFed can discover an #ActivityPub endpoint to send likes to.)
Tested it by liking @evanp.me (@evan@cosocial.ca @evanpro)’s reply¹ confirming that he received a notification from my prior post². I sent a #Webmention from my like post³ to Bridgy Fed, and it #federated the like to Evan’s server, which subsequently showed up in the "favourites" list of Evan’s post:
https://cosocial.ca/@evan/111237962392745000/favourites
Every step that connects heterogenous #socialWeb systems & protocols feels like progress.
This is day 45 of #100DaysOfIndieWeb. #100Days #IndieWeb #like #likes #fediverse #favorite #favourite #favourites
← Day 44: https://tantek.com/2023/234/t1/threads-supports-indieweb-rel-me
→ 🔮
¹ https://cosocial.ca/@evan/111237962392745000
² https://tantek.com/2023/287/t1/federating-mentions
³ https://tantek.com/2023/289/f1
-
going to the #SocialWeb CG meeting @W3C #w3cTPAC tomorrow (2023-09-12) at 09:30 CEST.
Looking forward to seeing @evanp.me (@evan@cosocial.ca @evanpro) and many others!
So many advances in #ActivityPub, #Webmention, Micropub, #IndieAuth etc. that it may be time to restart the #SocialWebWG to officially update all our active specifications.
We can & should also reach out to #Bluesky & #Nostr communities to work together on shared semantics and bridging protocols to continue growing a heterogenous #fediverse built on the #OpenWeb.
We know it is possible. We worked hard in the Social Web working group to align a lot of semantics across #ActivityStreams and #microformats2. The fruitful results of that are services like http://fed.brid.gy/ which I myself use to send a Webmention when I make a new post (like this one) and have #BridgyFed automatically federate it via ActivityPub using my personal site identity to #Mastodon followers and others.
@snarfed.org wrote up a recent comparison of top #decentralized #socialProtocols that can help inform a lot of this discussion: https://snarfed.org/2023-09-04_50856
-
If you added a #Mastodon / #ActivityPub follow form to your #IndieWeb site based on Bridgy Fed (e.g. using code/instructions I previously posted¹), you need to update it to add another invisible input element for the "protocol", e.g.:
<input name="protocol" type="hidden" value="web" />
Otherwise people trying to use your form to follow you may see an error from #BridgyFed like:
> Bad Request
> Missing required parameter protocol
Here is the complete example that I posted previously with the new invisible input:
<form method="post" action="https://fed.brid.gy/remote-follow">
<label for="follow-address">🐘 Follow
<kbd>@tantek.com@tantek.com</kbd>:<br />
enter your @-@ fediverse address:</label>
<input id="follow-address" name="address" type="text" required="required"
placeholder="@you@instance.social" alt="fediverse address" value="" />
<input name="domain" type="hidden" value="tantek.com" />
<input name="protocol" type="hidden" value="web" />
<button type="submit">Follow</button>
</form>
I also updated that previous post¹ with the new input in case people find that instead.
This is day 42 of #100DaysOfIndieWeb. #100Days
← Day 41: https://tantek.com/2023/139/t1/wikipedia-supports-indieweb-rel-me
→ 🔮
¹ https://tantek.com/2023/020/t2/bridgy-fed-follow-form
-
One of the pretty neat innovations from #Mastodon has been actual, functional, and fairly reliable (from all accounts I’ve seen) distributed system account migration, with the notable exception of post migration, which has additional challenges worth exploring.
To be clear, as far as I know, no other blogging (or chat) software, system, or even protocol comes close to achieving the level of functionality described in Mastodon’s documentation:
https://docs.joinmastodon.org/user/moving/#migration
In short, moving:
* all your profile information
* moving all your followers & followings, transparently
* redirecting your old account to your new one
More at that link. From the docs, it’s clear that quite a bit of thought & consideration went into the design & implementation.
Once I had setup #BridgyFed to #federate posts from my own site¹, I myself made use of the this Mastodon feature to migrate from my try-it-out @t@xoxo.zone account to my #IndieWeb @tantek.com (move destination handled by BridgyFed).
For me the migration experience was 100%, because I had not posted anything @t@xoxo.zone.
The challenge of post migration is not unique to Mastodon, though I believe it goes beyond “simple” export & import support, which is still a good place to start.
Mastodon has two forms of posts “export” currently:
* RSS feeds, which will get you some number of recent posts, by adding ".rss" to the end of any Mastodon profile URL, e.g. https://indieweb.social/@tchambers.rss
* Activity Streams 2.0 JSON, per https://docs.joinmastodon.org/user/moving/#export (note: it currently says “ActivityPub JSON format”, but there is no such thing, #ActivityPub uses the #ActivityStreams 2.0 JSON format and I’ve filed a PR² to fix this in the docs)
Lots of software & services import RSS, e.g. #WordPress.
As far as I know, nothing (not even Mastodon itself) actually supports importing Activity Streams 2.0.
There is a more complete format (with specification!) for exporting & importing blog content:
Blog Archive Format (.bar), first specified here with example file:
* https://www.manton.org/2017/11/24/blog-archive-format.html
More details and another example file:
* https://www.manton.org/2021/12/27/importing-blog-archive.html
Blog Archive Format has the very nice features of:
* portable HTML feed (h-feed) and JSON Feed
* photos and other media
* locally browsable post archive
Naturally, https://micro.blog/ supports both exporting & importing Blog Archive Format.
There’s an interesting opportunity here for an open source converter
* from Activity Streams 2.0
* to Blog Archive Format
Such a library would make an excellent drop-in addition to any #ActivityPub implementation, allowing both export of posts, and also a browsable archive format, so you could visually double check when importing to another service that these were the old posts you were looking for.
This would be a good first step, using an open standard, towards Mastodon itself supporting post migration³.
Ideally, similar to account migration, the old posts server should also at least:
* redirect old permalinks to the new permalinks
* redirect any replies being delivered by ActivityPub to the new location
* provide #Webmention discovery forwarding from the old URLs to the new URLs (e.g. using HTTP LINK headers)
for some amount of time.
Want to add support for Blog Archive Format or got questions or feedback?
Join in the development conversations: https://chat.indieweb.org/dev
This is day 39 of #100DaysOfIndieWeb. #100Days
← Day 38: https://tantek.com/2023/110/t2/beyond-mastodon-indieweb-own-domain
→ 🔮
Glossary
account migration
https://indieweb.org/account_migration
blog archive format
https://indieweb.org/blog_archive_format
h-feed
https://microformats.org/wiki/h-feed
JSON Feed
https://www.jsonfeed.org/
post migration
https://indieweb.org/post_migration
Webmention
https://indieweb.org/Webmention
References
¹ https://tantek.com/2022/301/t1/twittermigration-bridgyfed-mastodon-indieweb
² https://github.com/mastodon/documentation/pull/1202
³ https://github.com/mastodon/mastodon/issues/12423
-
In https://www.theverge.com/2023/4/20/23689570/activitypub-protocol-standard-social-network, author @pierce@mas.to does an excellent job covering a broad range of #ActivityPub related updates, and goes beyond the usual #Mastodon focus to describe numerous implementations.
I was very happy to see that he also clearly communicated several #IndieWeb principles¹, practices, goals, and reasons why². Like this quote:
“But the advice you’ll hear from most people in this space is this: own your own domain. Don’t be john@/mastodon.social or anna@/facebook.com. Have a space that is yours, that belongs to you, a username and identity that can’t disappear just because a company goes out of business or sells to a megalomaniac.”
and this:
“It’s [your own domain is] your YouTube channel name and your TikTok username and your Instagram handle and your phone number and your Twitter @, all in one name.”
Great interviews with @stevetex@mozilla.social, @mike@flipboard.social, @dustycloud.org (@cwebber@octodon.social), @evanp.me (@evan@cosocial.ca), @anildash.com (@anildash@me.dm), @coachtony@me.dm, and @manton.org.
As Manton said in the article:
“If you solve identity with domain names, it makes things easier because it fits the way the web has been for 20 years,”
Pierce also noted:
“you might soon be able to turn your personal website into your entire social identity online”
Already can.
I replied to Pierce’s post³ about his article noting this⁴, from #federating directly from my website for the past ~6 months⁵, to over a decade of using it as my social identity with the POSSE method⁶ with various #socialMedia silos.
It’s important enough that I’ll repeat part of Pierce’s quote at the top:
“own your own domain. Don’t be john@/mastodon.social or anna@/facebook.com. Have a space that is yours”
He gets it. Don’t be someone at someone else’s server.
Big Chad or Little Chad’s garages⁷ are social media stepping stones towards owning your own domain and IndieWeb presence.
We’re here when you’re ready to take that next step: https://chat.indieweb.org/
This is day 38 of #100DaysOfIndieWeb. #100Days
← Day 37: https://tantek.com/2023/109/t2/years-ago-first-federated-indieweb-thread
→ 🔮
¹ https://indieweb.org/principles
² https://indieweb.org/why
³ https://mas.to/@pierce/110231624819547202
⁴ https://tantek.com/2023/110/t1/
⁵ https://tantek.com/2022/301/t1/twittermigration-bridgyfed-mastodon-indieweb
⁶ https://indieweb.org/POSSE
⁷ https://tantek.com/2023/001/t1/own-your-notes
-
Sometimes it’s the little things, like editing a post. Edit a reply, see a comment update on another post.
From day 5 (https://tantek.com/2023/005/t3/indieweb-simpler-approach)
* Can I edit my post after publishing?
Whether a tweet or Instagram photo, the answer is no.^1
Blogs and websites have had editing capabilities since the start.
However, no site is an island, it's a *web* site. Interlinked.
We expect edits on one site to show up when embedded or syndicated on other sites.
#Webmention provides the ability for cross-site comments, and unlike the "one-off" prior protocols of Trackbacks & Pingbacks^2, when you update a cross-site comment, by resending a Webmention, the other post updates its copy of your reply: https://www.w3.org/TR/webmention/#sending-webmentions-for-updated-posts
If you delete a reply, by resending a Webmention, the other post can delete its copy (or mark it as deleted) https://www.w3.org/TR/webmention/#sending-webmentions-for-deleted-posts
Similarly, the #ActivityPub protocol specifies update & delete capabilities, as implemented by #Mastodon and others.
#BridgyFed (https://fed.brid.gy) bridges (as the name says) these two protocols, which enables the following interactions.
#IndieWeb post -(Webmention)-> BridgyFed -(ActivtyPub)-> Mastodon displays post
and then this:
IndieWeb updated post -(Webmention)-> BridgyFed -(ActivtyPub)-> Mastodon displays updated post
This works for replies to toots as well:
IndieWeb reply to toot -(Webmention)-> BridgyFed -(ActivtyPub)-> toot displays reply
and subsequently:
IndieWeb updated reply -(Webmention)-> BridgyFed -(ActivtyPub)-> toot updates display of reply
Thanks to these update protocols in Webmention & ActivityPub, and BridgyFed connecting them, after adding “forward-in-time” links (https://tantek.com/2023/006/t1/forward-in-time-links) I was able to resend webmentions for my previous #100DaysOfIndieWeb posts, and have those forward links show up wherever my posts were already displayed on Mastodon.
Posts interlinked with replies interlinked with protocols interlinked.
This is day 9 of #100DaysOfIndieWeb #100Days.
← Day 8: https://tantek.com/2023/008/t7/bridgy-indieweb-posse-backfeed
→ 🔮
^1 The ability to edit tweets has literally been the most requested feature on Twitter since perhaps its launch. Last year, paid Twitter “Blue” accounts finally got the ability to edit tweets, sort of: five times within 30 minutes of posting. Too little, too late.
* https://techcrunch.com/2022/10/03/twitters-edit-button-is-rolling-out-to-blue-subscribers-in-canada-australia-and-new-zealand/
* https://blog.hootsuite.com/can-you-edit-a-tweet/
* https://www.pcmag.com/news/twitters-edit-button-is-coming-soon-for-paid-users
* https://www.macrumors.com/2022/10/06/twitter-edit-tweet-option-united-states/
* https://9to5mac.com/2022/10/06/twitter-rolling-out-edit-button/
^2 Pingbacks were originally (and for many years) only implemented as one-off cross-blog interactions. One-time, uneditable. Pingbacks (and Trackbacks before them) were notoriously ugly when they showed up on blogs, listed & displayed as a separate thing (never tie presentation to the name of a protocol) with cryptically elided summaries: https://indieweb.org/pingback#Poor_display.
It took over 10 years since being specified (2002) for the IndieWeb community to re-use pingbacks for actual comments across sites: https://tantek.com/2013/113/b1/first-federated-indieweb-comment-thread separating presentation & UI from the protocol.
This separation of concerns approach evolved into the Webmention specification, separating the protocol from the display of comments, likes, reposts, and other social web https://indieweb.org/responses.
-
https://500ish.com/mastodon-brought-a-protocol-to-a-product-fight-ba9fda767c6a
#Medium link; don't be surprised if it does weird things before showing you the article.
"Mastodon brought a protocol to a product fight"
> Yes, yes, the network is under immense strain as people flee the Elon strain infecting Twitter. But come on, there are folks who really believe this is going to replace, or even stand alongside Twitter, as a massively scaled social network? I call bullshit. While it’s impressive that millions of users have apparently given Mastodon a try, the product is far too slapdash and clunky to keep folks engaged. A lump of coal.
No, it isn't meant to be a #Twitter replacement. Keep your Twitter account until you no longer want it--or the company closes and the site shuts down--you can use Mastodon alongside Twitter.
And the #Fediverse networks are much more than just #Mastodon. Don't think you have experienced the network and all it has to offer if all you've done is briefly tried to use Mastodon, because you haven't experienced it.
> I’ve somehow avoided signing up for the service up until now. Largely because signing up was and is so comically obtuse — pick your server everyone, hope you choose wisely!
Have you not used e-mail? It works the same way. You pick a server, such as Gmail or Outlook dot com, and sign up. Please tell me you realize that the people you communicate with are not all on the same e-mail service that you use.
> But, but, it’s not a product, it’s a protocol. Yeah, that’s a nice thing to say. And to believe in. But I truly believe the ship has sadly sailed for such idealism in this space. Jack Dorsey can talk about how this should have been what Twitter was from the get go until he’s bluesky in the face. It’s just not going to happen. And he’s more to blame for that than most everyone else. As is he for the Elon element of this current equation. But that’s a different story.
Okay, so how about this story: Twitter has only been profitable two or three years of its entire history. Since it started, it has existed by burning through investors' funds. Eventually, with or without Elon Musk's ownership, that runs out. Without such funding, their corporate-centralized ( #corpocentric ) model cannot exist very long. And same for their centralized competitors, such as Post.news, Gab, Parler, and so on. What is left is either #federated or #peer-to-peer approaches, where no single entity is responsible for funding and managing the entire network. So whether it is the #Fediverse ( with #ActivityPub and #OStatus and their successors ) & the Federation ( with #Diaspora ) or #Bluesky, or #Twister, or #NOSTR, the eventual future of #socnets is #decentralized, if not entirely peer-to-peer unless a national government takes over Facebook and Twitter in order to provide effectively unlimited resources. It is the protocol that makes it possible for thousands or millions of instances to displace and replace one big centralized instance.
1/2
-
#indieweb 🤝 #fediverse
✨ https://werd.io/2022/the-fediverse-and-the-indieweb (@benwerd)
✨ https://catgirlin.space/posts/moving-to-the-fediverse-and-indieweb/
✨ https://tantek.com/2022/301/t1/twittermigration-bridgyfed-mastodon-indieweb
Previously: https://twitter.com/t/status/1586264352453427201, https://twitter.com/t/status/956436348361158658 #TwitterMigration #ActivityPub #SocialWeb #OpenStandards #OpenWeb