Salta al contenuto

Piero Bosio Social Web Site Personale Logo Fediverso

Social Forum federato con il resto del mondo. Non contano le istanze, contano le persone

Social Web Foundation

16 Discussioni 64 Post View Original

<p>Towards a bigger, better fediverse</p>

  • Static ActivityPub Publishing

    activitypoll activitypub fepb06c jekyll opensource software ssg
    1
    0 Votazioni
    1 Post
    0 Visualizzazioni
    evanprodromou@socialwebfoundation.org
    One of the requests I (Evan) have heard often over the years about ActivityPub is to make publishing on the Fediverse as easy as publishing with RSS. To make an RSS feed for a person or a site, a publish provides, dynamically or even statically, a single file, with a simple format, and makes it available over the Web. Other people’s feed reader software can download the feed and show the user either the full content of the site, or enough of a summary to get the user to click a link and read in your browser.So… why can’t ActivityPub be like that? Make a feed, and let others read it if they want to?The good news is, it can. ActivityPub defines an entire read-only structure for actors, content, and activities. Pushing content to other servers is entirely optional — you can just tell other servers that you don’t accept remote messages, and they won’t push them. The read-only interface to ActivityPub is rich and extensible — it covers content like text, images, video and audio, but also activities like liking, sharing, and replying. It’s not quite as simple as RSS — it requires a lot more, smaller files — but it’s pretty straightforward.The bad news is that most widely-used ActivityPub software doesn’t recognize read-only ActivityPub feeds. Most ActivityPub servers expect to send messages to every actor, and to receive messages in reply. They don’t have internal facilities to check ActivityPub feeds regularly for new content and activities.This isn’t just a technical issue; it’s also an adoption issue. If implementing ActivityPub requires all the infrastructure of our message-passing services — queues, signatures, filtering, fanout — it inhibits software developers and publishers from experimenting with the protocol. Implementing RSS can take a day or maybe a week of developer work. Implementing ActivityPub’s federation protocol can take months. Which one is going to be done in a hackday or a medium T-shirt-size sprint task, and which one is going on the back-back-back-backlog?To make it easier to understand and support this proper subset of ActivityPub, I published FEP-b06c: ActivityPoll last summer. (“Poll” is in contrast to “publish” — emphasizing the read-only structure.) It’s a profile of ActivityPub, identifying parts of the ActivityPub spec that will work, or not, with a static, read-only ActivityPub publisher. It also includes new terms to easily identify a read-only ActivityPub actor, as well as a way to declare how often a feed is updated (very useful for limiting the load on both the reader and the server sides).In order to test the profile, and identify shortfalls, I implemented a plugin for the static site generator (SSG) software, Jekyll. Using a static site generator keeps this process honest — there’s no temptation to add just a teensy bit of dynamic content generation; it has to be entirely static. If we can show interoperability with actors implemented with an SSG, we’ve shown that static ActivityPub publishing is truly possible.The plugin is called jekyll-activitypub-static (there’s already a jekyll-activity-pub plugin, which uses off-site dynamic endpoints to implement the federation protocol, so this one emphasizes that it’s static). It’s in the rubygems.org repository, so you can just add the gem name to your Gemfile for your Jekyll site, and it should install correctly. The configuration is pretty straightforward, and has pretty reasonable fallbacks, but you can tweak it to get more specific features.I’ve got an example actor on GitHub Pages at @evanp . You can search for it in Mastodon, and view the profile, but you can’t follow it directly. Other front ends can view it more directly — please tell me if yours can!If you’ve got a Jekyll site, please try out jekyll-activitypub-static and let me know what you think. Fair warning — the Webfinger support depends on having your site deployed at the root of the domain. There are probably some ways to work around that — let me know if you find one! If you have changes or enhancements you think can be made to the plugin, let me know.And if you’ve got a full-featured implementation of the ActivityPub federation protocol, please consider implementing a polling structure for static actors. FEP-b06c covers most of the caveats, but please feel free to leave a comment if you find another gotcha. I’ll be right in there with you — I’m going to implement it in onepage.pub and activitypub.bot.Thanks to everyone who has commented on FEP-b06c, and to people who’ve tried and contributed to jekyll-activitypub-static. I look forward to more implementations!
  • Unsubscribing tags.pub from Open Registration Relays

    relays socialweb tagspub
    13
    0 Votazioni
    13 Post
    9 Visualizzazioni
    julian@activitypub.space
    @mick@cosocial.ca don't worry @wyatt_h_knott@mstdn.social is wrong on all counts as usual for this type of response.
  • Fediverse Sustainability Survey

    fediverse instance mastoadmin operators survey sustainability
    4
    0 Votazioni
    4 Post
    21 Visualizzazioni
    evanprodromou@socialwebfoundation.org
    @gunchleoc Please convert to USD so we can compare across servers. I added a note to that effect.
  • 0 Votazioni
    3 Post
    17 Visualizzazioni
    evan@cosocial.ca
    @hongminhee @evanprodromou fixed, 고마워요
  • Introducing tags.pub

    activitypub example fediverse fosdem fosdem2026 hashtags infrastructure nobots
    23
    0 Votazioni
    23 Post
    58 Visualizzazioni
    evan@cosocial.ca
    @blag @julian 🙏🏼
  • ap, the ActivityPub API command-line client

    activitypub api client software
    1
    0 Votazioni
    1 Post
    19 Visualizzazioni
    evanprodromou@socialwebfoundation.org
    As part of my book “ActivityPub: Programming for the Social Web“, I created a coding example to show how to program for the ActivityPub API. ap is a command-line client, written in Python, for doing basic tasks with ActivityPub.For example, you can log into a server using this command:ap login yourname@yourserver.exampleOnce you’re logged in, you can follow someone:ap follow other@different.exampleOr, you could post some content:ap create note --public "Hello, World"This isn’t enough to have a real social networking experience, but I think it’s pretty useful for testing an ActivityPub API server, or automating some repetitive tasks.I should note quickly here that not all ActivityPub servers support the ActivityPub API. It’s an under-utilized part of the ActivityPub standard. In particular, Mastodon, Threads, Flipboard, and other services don’t support the API. There’s a pretty good list of servers and clients that do support the API in this Codeberg issue.Suffice it to say, unless you’re actively working with one of those platforms, or you are writing your own, you’re not going to get much use out of ap. It will probably give you an error message like “No OAuth endpoints found” if it can’t use the service.Refreshing the projectI’ve never packaged ap for distribution; it was always supposed to be example code. But given the recent interest in the ActivityPub API, including the work going on in the ActivityPub API task force, I decided to get it into shape for installation by developers working on other apps. My friend Matthias Pfefferle of Automattic asked me about it when we were at FOSDEM this year, and I was embarrassed to see how difficult it was for him to use.So, I’ve made two big upgrades to the package. The first was actually making it a package, and distributing it! I upgraded the package management framework to uv, which seems like a good bet for now, and pushing the application to PyPI, the Python Package Index. It’s visible at https://pypi.org/project/activitypub-cli/ now. (Note: different package name from the command name! The PyPI “ap” package name was taken a while ago.)You can now install the application in one shot with this command on a computer that has Python on it:pipx install activitypub-cliYou can test that the application installed correctly in your path by running the version command:ap versionThat should show the same version as is currently on the pypi.org page for the project.The second change was implementing the current OAuth 2.0 profile best practices. I’ve upgraded the login flow so it tries a lot of different options for identifying itself to the server: CIMD, FEP d8c2, and Dynamic Client Registration. It tries to do them in preferential order; it uses permanent, global client identifiers before dynamic ones.Help me testI’m especially interested in testing this command-line client against other servers. If you’re developing an ActivityPub API server, please install the ap command and try it out against your (development!) server. Report a bug if it doesn’t work well, or send me a DM at @evanprodromou if it works OK. Given time, I think ap can be a useful first smoke test for ActivityPub API implementations.
  • Growing the Social Web

    fediforum fediverse growth socialweb
    1
    0 Votazioni
    1 Post
    28 Visualizzazioni
    evanprodromou@socialwebfoundation.org
    I’m going to be participating in the Growing the Open Social Web workshop at Fediforum on March 3, 2026. I’m excited to talk to other people who care about the Fediverse about ways to connect more people through ActivityPub.Fediforum invited attendees to publish position papers before the workshop. SWF has a number of hypotheses about growth of the social web; I’ll try to summarise some of them here.Growth can’t come at the expense of privacy. People currently on the Fediverse must have the tools they need to preserve their privacy as the network grows. This means privacy from other users, as well as privacy from new platform operators. Expanding the options for private interactions on the Fediverse, like end-to-end encrypted messages and private groups, is necessary for preserving privacy as the user base and platform list expands.Connecting platforms to the Fediverse is our most efficient way to grow. There are already billions of people on social platforms across the Internet. Getting these platforms to let users publish to the Fediverse, as well as having two-way interactions with remote users, lets people share in the benefits of the Fediverse with a platform and interface that they’re already used to. Even when brand new social platforms adopt ActivityPub, they bring their new features and users.Connecting communities helps us grow fast and stay cohesive. Bringing formal and informal communities onto the Fediverse is a great way to enable a lot of new users quickly. By formal communities, we mean organized groups like clubs, universities and schools, professional societies, enterprises, or local and regional governments. These groups can set up their own places on the Fediverse, like Mastodon servers, and provide user accounts for all their members. (One great way to connect formal communities is to Fediverse-enable the community platforms they already use.) These new Fediverse users have the kind of connections in place that retain active users, as well as the support they need to use the Fediverse. More informal communities, like people sharing the same profession, fans of a particular hobby, or users of a language or technology, can be great additions to the Fediverse, but these groups are less cohesive and less likely to bring their own infrastructure.People come to social networks for existing social ties. Bringing on new users one-by-one is the most difficult way to grow this network. The best way to engage new users on the network, and to keep them active and interested, is to make sure they can connect to people they already know and care about. That may be friends, family, colleagues and neighbours, or brands, creators, and publications they recognise. Our onboarding processes for Fediverse users need to encourage the social contacts so that people feel a reason to stick around for day 2, 7, and 30.We’re looking forward to engaging with the Fediforum community on these and other topics. We’ll see you on March 3!
  • FediMTL.ca

    canada digitalautonomy digitalsovereignty events liveevent montreal
    6
    0 Votazioni
    6 Post
    53 Visualizzazioni
    evan@cosocial.ca
    @renata @evanprodromou @fabio I hope it is important!
  • Staying connected to the Fediverse at FOSDEM

    fosdem fosdem2026 socialwebfosdem
    1
    0 Votazioni
    1 Post
    26 Visualizzazioni
    evanprodromou@socialwebfoundation.org
    Next week is European Open Source Week in Brussels, culminating in FOSDEM 2026 on the weekend. There are several important ways to stay connected to the Fediverse while you’re visiting this week!Mastodon maintains a booth at FOSDEM throughout the weekend. It’s a great place to get Mastodon merch or take a selfie with the Mastodon team.The Social Web Dev Room is a day-long event on Jan 31 in room H.2215 with loads of talks about Fediverse software and Fediverse organizing.There will be a loose mingling of Fediverse people at the À La Mort Subite bar in Brussels on Friday Jan 30 after 8PM. Wear a Fediverse symbol on a nametag or some other creative way so people can find you. Find your own table and then start mingling. There’s no organized activities or special space; just a node in space-time where you’re more likely to run into Fediverse people than normal.As always, watch the #FOSDEM and #socialwebfosdem and #FOSDEM2026 hashtags for news and updates.If you’re not travelling to Brussels, watch for streaming video from room H.2215 . There are also Fediverse events happening throughout the world throughout the year; Fediforum keeps a great list of the most prominent.
  • Implementing Encrypted Messaging over ActivityPub

    activitypub bonfire e2ee emissary justbetweenus
    4
    0 Votazioni
    4 Post
    35 Visualizzazioni
    evan@cosocial.ca
    @smallcircles @evanprodromou thanks!
  • 0 Votazioni
    1 Post
    35 Visualizzazioni
    evanprodromou@socialwebfoundation.org
    The schedule for the Social Web Developer Room at FOSDEM 2026 is starting to be populated as the speakers confirm their availability. We had a tonne of great submissions for this year’s track, and even with double the time from last year, we still had to leave some great talks on the cutting room floor. But we still managed to fit in 24 great talks, large and small. We’re going to see some additional events happening as FOSDEM 2026 gets nearer. Watch the #SOCIALWEBFOSDEM hashtag for more news and events.
  • Evan Prodromou Keynote at SeaGL 2025

    event freethesocialweb seagl seagl2025 seattle
    1
    0 Votazioni
    1 Post
    27 Visualizzazioni
    evanprodromou@socialwebfoundation.org
    A quick note: I will be the keynote speaker at SeaGL 2025, the Seattle GNU/Linux conference. I will be talking about how we Free the Social Web, using Free and Open Source software connected with open standards to build an interconnected coalition of independent social networking sites. The event is free to attend, and remote online participation is encouraged. Registration is optional but encouraged. I can’t wait to meet people in the Seattle Fediverse community; please make sure to come say hi!
  • Activity In The Pub in Montreal 2 Nov 2025

    1
    0 Votazioni
    1 Post
    23 Visualizzazioni
    evanprodromou@socialwebfoundation.org
    Just a quick note for those attending IETF 124 in Montreal next week:The Montreal ActivityPub community is hosting a special meetup (“Activity In The Pub”) at the Vieux Dublin bar at 5pm on November 2nd.Everyone interested in ActivityPub is welcome. https://mstdn.social/@fedihost/115431433221021149The Vieux Dublin bar is at 636 rue Cathcart:https://maps.app.goo.gl/CsnR2tmHeyXs3Mco8Looking forward to seeing you there!
  • FOSDEM 2026 – Social Web Devroom – Call For Participation

    fosdem
    2
    0 Votazioni
    2 Post
    33 Visualizzazioni
    fediforum@mastodon.social
    Added to https://fediforum.org/events/@evanprodromou
  • 0 Votazioni
    1 Post
    41 Visualizzazioni
    evanprodromou@socialwebfoundation.org
    We were excited to see the recent release of Ghost 6 with ActivityPub features. The Ghost team have been an active participant in our Long-form Text project. John O’Nolan, founder and CEO of Ghost.org, was kind enough to answer our questions about the software and its community.SWF: For our readers who don’t know Ghost, how would you describe the platform?JO: Ghost is an independent publishing platform for people who take writing seriously. We’re open source, non-profit, and built to give creators complete ownership of their content and their audience. We’ve helped indie publishers generate over $100 million in revenue from sustainable modern media businesses like 404Media, Platformer and Tangle News.SWF: Tell us about your user community. Can you paint a picture of them with a broad brush? What kind of people choose Ghost?JO: Ghost attracts people who care about owning their home on the internet, rather than having another profile on a social media platform. Our publishers range from solo journalists and creators, to established news outlets and large businesses. They value independence, and they’re willing to do the work to maintain control of their brand, distribution, data, and relationship with readers.SWF: What is it like to be a Ghost user in 2025? What kind of problems are your users facing today?JO: The big challenge today is the same one that’s haunted independent publishers for two decades: discovery. You can own your platform and serve your audience beautifully, but if people can’t find you, none of it matters. Email newsletters have been a solid answer, but they’re still dependent on deliverability and inbox placement. Algorithms on social platforms actively suppress links now, so sharing your work there is like shouting into a hurricane.SWF: Tell us about your experience with ActivityPub. Why did you decide to add ActivityPub support to your software?JO: Ghost has had support for delivering content by email newsletters for a number of years, and email has remained an unassailable distribution platform for publishers because it’s an open protocol. No company controls your email list except you, so it’s one of the best investments you can make. ActivityPub is now doing the same thing for social technology. It allows publishers to own and control a distribution channel that allows their work to spread and be discovered by others. For the first time, you can publish independently and grow faster than ever before.SWF: What stack is Ghost built on? What development tools does your team use?JO: Ghost is all built in modern JavaScript; mainly Node and React. Our ActivityPub service is built on Fedify, and everything we build is released under an open source MIT license. Our development tools are constantly evolving, and now more quickly than ever before with the advent of AI tools, which seem to change on a near weekly basis.SWF: What was the development process like?JO: Challenging, honestly. ActivityPub is beautifully designed but the spec leaves room for interpretation, and when you’re building something new, there’s no roadmap. Building interoperability between other platforms, who’ve all interpreted the spec in their own unique ways, has been a real challenge. The approach we took was to ship early versions as quickly as possible to beta testers so we could learn as we go, using real-world data and issues to guide our process. We’re in a good spot, now, but there’s still a lot to do!SWF: Ghost produces long-form blog posts, articles and newsletters. How was the experience adapting Ghost articles to the microblogging interfaces of Mastodon and Threads?JO: In some ways really easy, and in other ways quite tricky. We’re at a pretty early stage for long-form content on ActivityPub, and the majority of other products out there don’t necessarily have interfaces for supporting it yet. The easy part is that we can provide fallbacks, so if you’re scrolling on Mastodon you might see an article title and excerpt, with a link to read the full post – and that works pretty well! The dream, though, is to make it so you can just consume the full article within whatever app you happen to be using, and doing that requires more collaboration between different platforms to agree on how to make that possible.SWF: You’ve been an active participant in the ActivityPub community since you decided to implement the standard. Why?JO: ActivityPub is a movement as much as a technology protocol, and behind it is a group of people who all believe in making the web a weird, wonderful open place for collaboration. Getting to know those humans and being a part of that movement has been every bit as important to the success of our work as writing the code that powers our software. We’ve received incredible support from the Mastodon team, AP spec authors, and other platforms who are building ActivityPub support. Without actively participating in the community, I don’t know if we would’ve gotten as far as we have already. SWF: Ghost has implemented not only a publishing interface, but also a reading experience. Why?JO: The big difference between ActivityPub and email is that it’s a 2-way protocol. When you send an email newsletter, that’s it. You’re done. But with ActivityPub, it’s possible to achieve what – in the olden days – we fondly referred to as ‘the blogosphere’. People all over the world writing and reading each other’s work. If an email newsletter is like standing on a stage giving a keynote to an audience, participating in a network is more like mingling at the afterparty. You can’t just talk the whole time, you have to listen, too. Being successful within the context of a network has always involved following and engaging with others, as peers, so it felt really important to make sure that we brought that aspect into the product.SWF: Your reader is, frankly, one of the most interesting UIs for ActivityPub we’ve seen. Tell us about why you put the time and effort into making a beautiful reading experience for Ghost.JO: We didn’t want to just tick the “ActivityPub support” checkbox – we wanted to create something that actually feels great to use every day. The idea was to bring some of the product ideas over from RSS readers and kindles, where people currently consume long-form content, and use them as the basis for an ActivityPub-native reading experience. We experimented with multiple different approaches to try and create an experience with a mix of familiarity and novelty. People intuitively understand a list of articles and a view for opening and reading them, but then when you start to see inline replies and live notifications happening around those stories – suddenly it feels like something new and different. SWF: If people want to get a taste of the kind of content Ghost publishers produce, what are some good examples to follow?JO: Tough question! There are so many out there, and it really depends on what you’re into. The best place to start would be on ghost.org/explore – when you can browse through all sorts of different categories of creators and content, and explore the things that interest you the most. SWF: If I’m a Fediverse enthusiast, what can I do to help make Ghost 6 a success?JO: Follow Ghost publishers and engage with their content – likes, replies, reposts all help! Most importantly, help us spread the word about what’s possible when platforms collaborate rather than compete. And if you’re technical, our ActivityPub implementation is entirely open source on GitHub – contributions, bug reports, and feedback make the whole ecosystem stronger.
  • Evan Prodromou on OpenChannels

    fedihistory fediverse identica socialweb wordpress
    1
    0 Votazioni
    1 Post
    40 Visualizzazioni
    evanprodromou@socialwebfoundation.org
    Evan Prodromou on OpenChannels.FMA quick note that Evan is interviewed by WordPress social networking lead Matthias Pfefferle on the OpenChannels.FM podcast about the history of the Fediverse and where we’re going next. How Decentralized Social Platforms Grew from Identica to Modern-Day Mastodon covers a 15+-year period as the Fediverse was born and developed. The shownotes alone are extremely detailed and a great resource.