<p>there is currently a <a href="/tags/piefed/" rel="tag">#Piefed</a> Hackathon going on if anyone is interested in partaking. There are groups working on spanish, german, french and japanese translations, and a bunch of other things.</p><p><a href="https://tarte.nuage-libre.fr/c/fediverse/p/221411/hackathon-this-week-7-8-febuary" rel="nofollow" class="ellipsis" title="tarte.nuage-libre.fr/c/fediverse/p/221411/hackathon-this-week-7-8-febuary"><span class="invisible">https://</span><span class="ellipsis">tarte.nuage-libre.fr/c/fediver</span><span class="invisible">se/p/221411/hackathon-this-week-7-8-febuary</span></a> <a href="/tags/fediverse/" rel="tag">#fediverse</a> <a href="/tags/fedidev/" rel="tag">#fedidev</a> <a href="/tags/activitypub/" rel="tag">#activitypub</a></p>
fedidev
<p>Today I discovered an interesting inconsistency in Activity Streams specs while investigating <a href="https://github.com/fedify-dev/fedify/issues/420" rel="nofollow">a Fedify issue</a>.</p><p>The question: How should we interpret URLs like "icon": "<a href="https://example.com/avatar.png" rel="nofollow"><span class="invisible">https://</span>example.com/avatar.png</a>"?</p><p>JSON-LD context (<a href="https://www.w3.org/ns/activitystreams" rel="nofollow"><span class="invisible">https://</span>www.w3.org/ns/activitystreams</a>): @type: "@id" → “This is an IRI reference, dereference it to fetch an ActivityStreams object.”</p><p><a href="https://www.w3.org/wiki/Activity_Streams/Primer/URLs_as_values" rel="nofollow">Activity Streams Primer</a>: “assume that a bare string is the href of a Link object, not an id” (no dereferencing)</p><p>Result: JSON-LD processor-based implementations try to parse PNG files as JSON and fail.</p><p>Turns out <a href="https://github.com/w3c/activitystreams/issues/595" rel="nofollow">w3c/activitystreams#595</a> already discusses the same issue for href properties. <a href="https://github.com/w3c/activitystreams/issues/595#issuecomment-3282001769" rel="nofollow">I added a note</a> that icon, image, etc. have the same problem.</p><p>Once again reminded of how tricky spec work can be…</p><p><a href="/tags/activitypub/" rel="tag">#ActivityPub</a> <a href="/tags/fedify/" rel="tag">#Fedify</a> <a href="/tags/activitystreams/" rel="tag">#ActivityStreams</a> <a href="/tags/fedidev/" rel="tag">#fedidev</a> <a href="/tags/specifications/" rel="tag">#specifications</a></p>
Edited 207d ago
<p>1/</p><p>I have spending time thinking of ways you could automatically create ActivityPub / ActivityStreams data from HTML and Markdown</p><p>Most people will probably write in plain UTF-8 text, or Markdown, or HTML</p><p>How to do you take that and get it onto the Fediverse and Social Web‽</p><p>This isn't just a question of how to technically do it — but also a question of user-experience (UX)</p><p>I.e., what are "good" ways of doing it‽</p><p>...</p><p><a href="/tags/activitypub/" rel="tag">#ActivityPub</a> <a href="/tags/activitystreams/" rel="tag">#ActivityStreams</a> <a href="/tags/fedidev/" rel="tag">#FediDev</a> <a href="/tags/fediverse/" rel="tag">#Fediverse</a> <a href="/tags/markdown/" rel="tag">#Markdown</a> <a href="/tags/retejo/" rel="tag">#retejo</a> <a href="/tags/rdfa/" rel="tag">#RDFa</a></p>
<p>Quotations & the Fediverse / ActivityPub</p><p>1/</p><p>One thing I used to do a lot on social-media is — post quotations.</p><p>Sometimes I was reading a book. And, I would quote things from the book and post it on social-media.</p><p>Or I was reading a scholarly paper, or reading a blog post, or watching a video, or listening to a podcast, etc.</p><p>...</p><p>I was thinking — how could you represent a quotation in ActivityPub‽</p><p><a href="/tags/activitypub/" rel="tag">#ActivityPub</a> <a href="/tags/activitystreams/" rel="tag">#ActivityStreams</a> <a href="/tags/fedidev/" rel="tag">#FediDev</a> <a href="/tags/fediverse/" rel="tag">#Fediverse</a> <a href="/tags/objecttypenote/" rel="tag">#ObjectTypeNote</a> <a href="/tags/objecttypequotation/" rel="tag">#ObjectTypeQuotation</a></p>
Edited 202d ago
<p>"@context": [<br> "<a href="https://www.w3.org/ns/activitystreams" rel="nofollow"><span class="invisible">https://</span>www.w3.org/ns/activitystreams</a>",<br> {<br> "Quotation": "as:Quotation",<br> "citation": "as:citation",<br> "quotation": "as:quotation"<br> },<br>],</p><p><a href="/tags/activitypub/" rel="tag">#ActivityPub</a> <a href="/tags/activitystreams/" rel="tag">#ActivityStreams</a> <a href="/tags/fedidev/" rel="tag">#FediDev</a> <a href="/tags/fediverse/" rel="tag">#Fediverse</a> <a href="/tags/jsonld/" rel="tag">#JSONLD</a> <a href="/tags/objecttypequotation/" rel="tag">#ObjectTypeQuotation</a></p>
Edited 202d ago
<p>According to <span class="h-card"><a href="https://indieweb.social/@tchambers" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>tchambers</span></a></span>'s <a href="https://www.timothychambers.net/2025/12/23/my-open-social-web-predictions.html" rel="nofollow">My 2026 Open Social Web Predictions</a>:</p><p><p>Fedify will power the federation layer for at least one mid-sized social platform (500K+ users) that adds ActivityPub support in 2026. The “build vs. buy” calculation for federation shifts decisively toward “just use Fedify.”</p></p><p>We're honored by this recognition and will keep working hard to make <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> adoption easier for everyone. Thank you, Tim!</p><p><a href="/tags/fedify/" rel="tag">#Fedify</a> <a href="/tags/fediverse/" rel="tag">#fediverse</a> <a href="/tags/fedidev/" rel="tag">#fedidev</a></p>
<p>FEP drafting: Am I using “side effects” here the same way as other ActivityPub developers? I've seen the term used a bunch in casual conversation, but my personal understanding of it is kinda fuzzy.</p><p><a href="/tags/activitypub/" rel="tag">#ActivityPub</a> <a href="/tags/fedidev/" rel="tag">#FediDev</a> <a href="/tags/fep/" rel="tag">#FEP</a></p>
<p>If we were to do a regular online Fediverse meeting —</p><p>(Maybe once a month.)</p><p>WHAT DAYS OF THE WEEK WOULD YOU BE ABLE TO ATTEND?</p><p>A regular (online) meeting for Fediverse developers, for those who care about the Fediverse as a social movement, and for those who care about the success of the Fediverse.</p><p>Sunday?<br>Monday?<br>Tuesday?<br>Wednesday?<br>Thursday?<br>Friday?<br>Saturday?</p><p>(You can pick more than one day)</p><p>PLEASE REPLY WITH YOUR ANSWER.</p><p><a href="/tags/activitypub/" rel="tag">#ActivityPub</a> <a href="/tags/fedidev/" rel="tag">#FediDev</a> <a href="/tags/fediux/" rel="tag">#FediUX</a> <a href="/tags/fediverse/" rel="tag">#Fediverse</a> <a href="/tags/fediverseux/" rel="tag">#FediverseUX</a> <a href="/tags/socialweb/" rel="tag">#SocialWeb</a></p>
<p>RE: <a href="https://neuromatch.social/@jonny/115343246885448739" rel="nofollow" class="ellipsis" title="neuromatch.social/@jonny/115343246885448739"><span class="invisible">https://</span><span class="ellipsis">neuromatch.social/@jonny/11534</span><span class="invisible">3246885448739</span></a></p><p>Rumors that the fediverse can't do mobile identity have been greatly exaggerated: <a href="/tags/fep_1580/" rel="tag">#FEP_1580</a> is now in draft status - <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/1580/fep-1580.md" rel="nofollow" class="ellipsis" title="codeberg.org/fediverse/fep/src/branch/main/fep/1580/fep-1580.md"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/fediverse/fep/src</span><span class="invisible">/branch/main/fep/1580/fep-1580.md</span></a></p><p>This is a proposal for how to migrate all your stuff along with you when you move instances.</p><p>The gist:</p><p>Send a request to move along with a set of stuff you'd like to bring with you. Moderators (optionally) can, approve, send back a change request, or deny. If the changes look ok, start the move, if not, hey you avoided incompatible moderation. Should be possible to layer in any kind of bulk actions you might want: "everything except my DMs," "strip attachments," "only my favorite posts," "nothing," etc. <br>keep a public collection of move events signed by both the source and target for durable, portable proof that you are the same person as the old account<br>the new instance crawls your old account and grabs whatever you specified, and then posts a mapping from old URIs to new URIs.<br>other instances can then immediately remap the URIs so e.g. future interactions get sent to the right place, and then gradually update their local versions over time, spacing out traffic.</p><p>Just using existing ActivityPub mechanisms. There are 6 new terms.</p><p>Bonus: lays the next steps to migrate to content addressed URIs, decouple accounts from instances, and merge and split accounts. </p><p>It being a draft means that there is a 60 day (or longer) public comment period, and feedback/edits/etc. Are very much welcome.<br>Issue: <a href="https://codeberg.org/fediverse/fep/issues/702" rel="nofollow" class="ellipsis" title="codeberg.org/fediverse/fep/issues/702"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/fediverse/fep/iss</span><span class="invisible">ues/702</span></a><br>Discussion: <a href="https://socialhub.activitypub.rocks/t/fep-1580-move-actor-objects-with-a-migration-collection/8111" rel="nofollow" class="ellipsis" title="socialhub.activitypub.rocks/t/fep-1580-move-actor-objects-with-a-migration-collection/8111"><span class="invisible">https://</span><span class="ellipsis">socialhub.activitypub.rocks/t/</span><span class="invisible">fep-1580-move-actor-objects-with-a-migration-collection/8111</span></a></p><p><a href="/tags/fedidev/" rel="tag">#FediDev</a> <a href="/tags/moveallposts/" rel="tag">#MoveAllPosts</a></p>
Edited 173d ago
<p>So what’s the ActivityPub version of Pinterest? Looks like it will be in demand soon.</p><p><a href="https://www.socialmediatoday.com/news/reports-suggest-that-openai-may-be-looking-to-acquire-pinterest/808773/" rel="nofollow" class="ellipsis" title="www.socialmediatoday.com/news/reports-suggest-that-openai-may-be-looking-to-acquire-pinterest/808773/"><span class="invisible">https://</span><span class="ellipsis">www.socialmediatoday.com/news/</span><span class="invisible">reports-suggest-that-openai-may-be-looking-to-acquire-pinterest/808773/</span></a></p><p><a href="/tags/pinterest/" rel="tag">#Pinterest</a> <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> <a href="/tags/fedidev/" rel="tag">#FediDev</a></p>
<p>First talk today at the Social Web Devroom we have <span class="h-card"><a href="https://mastodon.social/@pfefferle" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>pfefferle</span></a></span> talking about the state of WordPress's fediverse integration<br><a href="/tags/fosdem/" rel="tag">#FOSDEM</a> <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> <a href="/tags/fedidev/" rel="tag">#fedidev</a></p>
<p>RE: <a href="https://theforkiverse.com/@klemens/115915313316598172" rel="nofollow" class="ellipsis" title="theforkiverse.com/@klemens/115915313316598172"><span class="invisible">https://</span><span class="ellipsis">theforkiverse.com/@klemens/115</span><span class="invisible">915313316598172</span></a></p><p>this person is working on a mac app specifically for <a href="/tags/theforkiverse/" rel="tag">#theforkiverse</a> <br><a href="/tags/fedidev/" rel="tag">#fedidev</a></p>
<p><span class="h-card"><a href="https://ap.elaine.is/@elaine" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>elaine</span></a></span> is building a new <a href="/tags/fediverse/" rel="tag">#fediverse</a> server called <a href="/tags/echocrate/" rel="tag">#EchoCrate</a><br><a href="https://ap.elaine.is/users/elaine/statuses/mkk63yzyftt9q0uznij" rel="nofollow" class="ellipsis" title="ap.elaine.is/users/elaine/statuses/mkk63yzyftt9q0uznij"><span class="invisible">https://</span><span class="ellipsis">ap.elaine.is/users/elaine/stat</span><span class="invisible">uses/mkk63yzyftt9q0uznij</span></a><br><a href="/tags/activitypub/" rel="tag">#ActivityPub</a> <a href="/tags/fedidev/" rel="tag">#fedidev</a></p>
<p>i'm moving my stuff off GitHub because i'm sick of Microsoft's shit. today's task is slurp.</p><p>the official project home page has been <a href="https://catgirl.codes/slurp" rel="nofollow"><span class="invisible">https://</span>catgirl.codes/slurp</a> for a bit, but now that's also the package URL as far as Go is concerned. this will be a breaking change for anyone who depended on slurp internals, which i hope is nobody. there's some sort of package renaming directive you can use in go.mod if you did.</p><p>the public Git repo and issue tracker are now on Codeberg: <a href="https://codeberg.org/vyr/slurp" rel="nofollow"><span class="invisible">https://</span>codeberg.org/vyr/slurp</a></p><p>if you can, please donate to Codeberg. i just did (again). they're a great option for open source devs like me who aren't SREs and don't want the overhead of self-hosting all that stuff, and running a service like that isn't free.</p><p><a href="/tags/slurp/" rel="tag">#slurp</a> <a href="/tags/fedidev/" rel="tag">#FediDev</a></p>
<p>RE: <a href="https://mastodon.social/@Mastodon/115503024028215175" rel="nofollow" class="ellipsis" title="mastodon.social/@Mastodon/115503024028215175"><span class="invisible">https://</span><span class="ellipsis">mastodon.social/@Mastodon/1155</span><span class="invisible">03024028215175</span></a></p><p>This specific new feature in Mastodon 4.5 - reply fetching - makes a huge difference in small communities. </p><p>When you open the detail view of a message, it triggers a task to pull in all replies it can from remote servers, and displays them after a few seconds. </p><p>Looking forward to third party apps integrating this a bit more naturally without having to refresh the detail view. </p><p><a href="/tags/mastodon/" rel="tag">#Mastodon</a> <a href="/tags/fedidev/" rel="tag">#FediDev</a></p>
<p>Just opened an issue for a major new task for <a href="/tags/fedify/" rel="tag">#Fedify</a>: building an <a href="/tags/interoperability/" rel="tag">#interoperability</a> smoke test suite.</p><p>To ensure Fedify-built servers federate correctly with the wider <a href="/tags/fediverse/" rel="tag">#fediverse</a>, we're planning to run automated E2E tests in <a href="/tags/ci/" rel="tag">#CI</a> against live instances of Mastodon, Misskey, and more. This is crucial for a framework's reliability.</p><p>You can see the full plan and discussion here:</p><p><a href="https://github.com/fedify-dev/fedify/issues/481" rel="nofollow" class="ellipsis" title="github.com/fedify-dev/fedify/issues/481"><span class="invisible">https://</span><span class="ellipsis">github.com/fedify-dev/fedify/i</span><span class="invisible">ssues/481</span></a></p><p><a href="/tags/activitypub/" rel="tag">#ActivityPub</a> <a href="/tags/fedidev/" rel="tag">#fedidev</a></p>
<p>RE: <a href="https://fietkau.software/daily_rucks/ap/activity/2025-11-08" rel="nofollow" class="ellipsis" title="fietkau.software/daily_rucks/ap/activity/2025-11-08"><span class="invisible">https://</span><span class="ellipsis">fietkau.software/daily_rucks/a</span><span class="invisible">p/activity/2025-11-08</span></a></p><p>I have added Mastodon-style (FEP-044f) quote post compatibility to my <span class="h-card"><a href="https://dailyrucks.fietkau.software/" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>DailyRucks</span></a></span> bot. You can now quote post the daily voice lines as much as you want! 🥳</p><p>This would be noteworthy on its own if there weren't already a bunch of non-Mastodon implementations, but I'm actually late to the party. WordPress, Bonfire, micro.blog, dotmakeup, and ActivityBot all got there before I did.</p><p>However, I think my approach is novel for being *stateless*. Thread incoming.</p><p>🧵 1/6</p><p><a href="/tags/fediverse/" rel="tag">#Fediverse</a> <a href="/tags/fedidev/" rel="tag">#FediDev</a> <a href="/tags/activitypub/" rel="tag">#ActivityPub</a></p>
<p>RE: <a href="https://varese.social/@emanuelecariati/115705909561429573" rel="nofollow" class="ellipsis" title="varese.social/@emanuelecariati/115705909561429573"><span class="invisible">https://</span><span class="ellipsis">varese.social/@emanuelecariati</span><span class="invisible">/115705909561429573</span></a></p><p>André Menrath (<span class="h-card"><a href="https://graz.social/@linos" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>linos</span></a></span>) did a great talk called [Interoperability of Events in the Fediverse] that I only just now got a chance to watch. This is an area of the <a href="/tags/fediverse/" rel="tag">#fediverse</a> that really doesn't get enough attention, and the work that André is doing with <a href="https://event-federation.eu" rel="nofollow"><span class="invisible">https://</span>event-federation.eu</a> is super excellent. </p><p>Anyway watch the presentation here <a href="https://vimeo.com/1137648835" rel="nofollow"><span class="invisible">https://</span>vimeo.com/1137648835</a> and let's get events fully federating with all their depth and nuance intact!<br><a href="/tags/fediverse/" rel="tag">#fediverse</a> <a href="/tags/fedidev/" rel="tag">#fedidev</a></p>
<p>Fediverse & AI Coding Tools & Vibe Coding</p><p>...</p><p>I noticed 2 or 3 people lately using AI coding tools to create Fediverse software.</p><p>2 of them even seemed to be Vibe Coding.</p><p>...</p><p>I have been programming for over 30 years. I am probably not going to Vibe Code, but —</p><p>I wonder if we should help them.</p><p>There are tools we (Fediverse developers) could create to make it so others could Vibe Code Fediverse apps.</p><p><a href="/tags/activitypub/" rel="tag">#ActivityPub</a> <a href="/tags/aicodingtools/" rel="tag">#AICodingTools</a> <a href="/tags/fedidev/" rel="tag">#Fedidev</a> <a href="/tags/fedidevs/" rel="tag">#Fedidevs</a> <a href="/tags/fediverse/" rel="tag">#Fediverse</a> <a href="/tags/jsonld/" rel="tag">#JSONLD</a> <a href="/tags/vibecoding/" rel="tag">#VibeCoding</a></p>
<div class="poll">
<h3 style="display: none;">Options: <small>(choose one)</small></h3>
<ul>
<li>
<label class="poll-option">
<input style="display:none" name="vote-options" type="radio" value="0">
<span class="poll-number" title="4 votes">80%</span>
<span class="poll-option-text">Yes, help them.</span>
</label>
</li>
<li>
<label class="poll-option">
<input style="display:none" name="vote-options" type="radio" value="0">
<span class="poll-number" title="1 votes">20%</span>
<span class="poll-option-text">No! (explain why in comments)</span>
</label>
</li>
</ul>
<div class="poll-footer">
<span class="vote-total">5 votes</span>
—
<span class="vote-end">Ended 70d ago</span>
<span class="todo">Polls are currently display only</span>
</div>
</div>
<p>While working on <a href="/tags/fedify/" rel="tag">#Fedify</a>, I noticed something about how <a href="/tags/misskey/" rel="tag">#Misskey</a> handles <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> object access. When a remote server requests a followers-only post or DM with a valid HTTP Signatures (draft-cavage) from an authorized actor, Misskey still returns 404 instead of the content. It seems Misskey only checks the visibility field (public/home) without verifying the signature at all.</p><p><a href="/tags/mastodon/" rel="tag">#Mastodon</a> takes a different approach—when <a href="/tags/authorized_fetch/" rel="tag">#authorized_fetch</a> is enabled, it validates the HTTP Signatures and returns the content if the requesting actor has permission. I think it would be beneficial if Misskey could adopt a similar mechanism, since it would better respect the access control semantics that ActivityPub intends. Has anyone else run into this, or are there specific reasons Misskey handles it this way?</p><p><a href="/tags/fedidev/" rel="tag">#fedidev</a></p>
<p>1/</p><p>One way ActivityPub can be extended is — through JSON-LD namespaces.</p><p>For example, many Fediverse servers use the following JSON-LD namespace to specify cryptographic public-key(s) for the user.</p><p><a href="https://w3id.org/security/v1" rel="nofollow"><span class="invisible">https://</span>w3id.org/security/v1</a></p><p>(This particular namespace is an HTTPS URL.)</p><p>...</p><p>But, does extant Fediverse software support cryptographic public-key(s) well?</p><p>...</p><p><a href="/tags/activitypub/" rel="tag">#ActivityPub</a> <a href="/tags/cryptography/" rel="tag">#Cryptography</a> <a href="/tags/fedidev/" rel="tag">#Fedidev</a> <a href="/tags/fedidevs/" rel="tag">#Fedidevs</a> <a href="/tags/fediverse/" rel="tag">#Fediverse</a> <a href="/tags/jsonld/" rel="tag">#JSONLD</a></p>
<p>Just learned from <span class="h-card"><a href="https://mastodon.social/@quillmatiq" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>quillmatiq</span></a></span> that <span class="h-card"><a href="https://mastodon.social/@msonnberger" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>msonnberger</span></a></span> is working on <a href="/tags/fedisky/" rel="tag">#FediSky</a>, a new project "that adds an <a href="/tags/activitypub/" rel="tag">#ActivityPub</a> instance sidecar to a PDS" </p><p><a href="https://bsky.app/profile/quillmatiq.com/post/3mdlcquxuab26" rel="nofollow" class="ellipsis" title="bsky.app/profile/quillmatiq.com/post/3mdlcquxuab26"><span class="invisible">https://</span><span class="ellipsis">bsky.app/profile/quillmatiq.co</span><span class="invisible">m/post/3mdlcquxuab26</span></a><br><a href="https://github.com/msonnb/fedisky" rel="nofollow"><span class="invisible">https://</span>github.com/msonnb/fedisky</a><br><a href="/tags/atproto/" rel="tag">#atproto</a> <a href="/tags/fedidev/" rel="tag">#fedidev</a></p>
<p>On stage now, <span class="h-card"><a href="https://social.coop/@django" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>django</span></a></span> — arguing for widespread adoption of ActivityPub client-server (C2S) protocol.</p><p>I agree with him.</p><p>At the very least, to make extension of ActivityPub through JSON-LD namespaces possible.</p><p>But also to decouple Fediverse client development from Fediverse server development.</p><p>And more.</p><p><a href="/tags/activitypub/" rel="tag">#ActivityPub</a> <a href="/tags/fedidev/" rel="tag">#FediDev</a> <a href="/tags/fedidevs/" rel="tag">#FediDevs</a> <a href="/tags/fediverse/" rel="tag">#Fediverse</a> <a href="/tags/fosdem/" rel="tag">#FOSDEM</a> <a href="/tags/fosdem2026/" rel="tag">#FOSDEM2026</a> <a href="/tags/socialweb/" rel="tag">#SocialWeb</a> <a href="/tags/socialwebfosdem/" rel="tag">#SocialWebFOSDEM</a> <a href="/tags/socialwebfosdem2026/" rel="tag">#SocialWebFOSDEM2026</a></p>
