#fediverse

Gary Parker's avatar
Gary Parker

@[email protected]

The has a problem, and I’m going to be very unhelpful in not having an idea how to fix it.

Once an instance gets popular, it’s processing, storage and traffic costs get prohibitive for the people running it.

I regularly see reports of instances shutting down because the admins can no longer afford the hosting costs. This will only be worse when and spin up.

Gary Parker's avatar
Gary Parker

@[email protected]

The has a problem, and I’m going to be very unhelpful in not having an idea how to fix it.

Once an instance gets popular, it’s processing, storage and traffic costs get prohibitive for the people running it.

I regularly see reports of instances shutting down because the admins can no longer afford the hosting costs. This will only be worse when and spin up.

muıııo's avatar
muıııo

@[email protected]

Why AT Protocol and not ? I find it strange the isn't mentioned at all

usermag.co/p/freeourfeeds-a-30

muıııo's avatar
muıııo

@[email protected]

Why AT Protocol and not ? I find it strange the isn't mentioned at all

usermag.co/p/freeourfeeds-a-30

Elena Rossini ⁂'s avatar
Elena Rossini ⁂

@[email protected] · Reply to Elena Rossini ⁂'s post

I imagine that @PixelFed's servers are getting overwhelmed by traffic these days.

I'm lucky to already have a pixelfed.social account. Still, in order not to add to @dansup's server load, I am taking the plunge:

this morning I'll try to set up my own instance, thanks to the magic of (Pixelfed is in their list of apps).

I'll keep you posted on how it goes!

Sebastian Lasse's avatar
Sebastian Lasse

@[email protected] · Reply to Sebastian Lasse's post

@evanprodromou

Update:
Meanwhile covered in german lead media:
[DE] heise.de/news/Beispiellos-gewa

I will propose a meeting to the Policy SIG.

Esteemed
we will inform the EU Commission about censoring links to .
When Musk did the same with mastodon links, we provided the EU with a huge example set, so if you are on Facebook/Instagram or any and links to fedi endpoints are censored, please provide us with a screenshot, link address and the reason as screenshot.

Sebastian Lasse's avatar
Sebastian Lasse

@[email protected] · Reply to Sebastian Lasse's post

@evanprodromou

Update:
Meanwhile covered in german lead media:
[DE] heise.de/news/Beispiellos-gewa

I will propose a meeting to the Policy SIG.

Esteemed
we will inform the EU Commission about censoring links to .
When Musk did the same with mastodon links, we provided the EU with a huge example set, so if you are on Facebook/Instagram or any and links to fedi endpoints are censored, please provide us with a screenshot, link address and the reason as screenshot.

Aischa Staal's avatar
Aischa Staal

@[email protected]

Trying to figure out where to land as I migrate from Facebook and instagram. It’s a learning curve and I appreciate those who try and explain the , which I didn’t know I was part of…. Trying to also figure out how I want to use social media and why. Maybe this is fruitless.

Aischa Staal's avatar
Aischa Staal

@[email protected]

Trying to figure out where to land as I migrate from Facebook and instagram. It’s a learning curve and I appreciate those who try and explain the , which I didn’t know I was part of…. Trying to also figure out how I want to use social media and why. Maybe this is fruitless.

Loki Gwynbleidd 🏴🎨😷's avatar
Loki Gwynbleidd 🏴🎨😷

@[email protected]

Je prépare mes messages pour annoncer la fin de mon Facebook et la réduction de mon Instagram. Et pour refaire de la pub de mes comptes sur Mastodon et Pixelfed.
Je vais les accompagner d'une image très subtile !

I'm preparing my messages to announce the end of my Facebook and the reduction of my Instagram. And to re-advertise my Mastodon and Pixelfed accounts.
I'm going to accompany them with a very subtle image!

Mon avatar ragondin tient fièrement un bouclier Pixelfed tout en chevauchant un mastodonte Mastodon en colère. Le féroce éléphant écrase un logo Facebook avec sa trompe et un logo Instagram avec son pied.

My coypu avatar proudly holding a Pixelfed shield while riding an angry Mastodon. The ferocious elephant is crushing a Facebook logo with its trunk and an Instagram logo with its foot.
Mon avatar ragondin tient fièrement un bouclier Pixelfed tout en chevauchant un mastodonte Mastodon en colère. Le féroce éléphant écrase un logo Facebook avec sa trompe et un logo Instagram avec son pied. My coypu avatar proudly holding a Pixelfed shield while riding an angry Mastodon. The ferocious elephant is crushing a Facebook logo with its trunk and an Instagram logo with its foot.
nogajun🍉's avatar
nogajun🍉

@[email protected]

FediverseでStarter Packが作れるサービスがあった。これで日本語圏の人のスターターパック作っておくといいかもね

fedidevs.com/starter-packs/

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@[email protected] · Reply to @reiver ⊼ (Charles) :batman:'s post

3/

This screen mock-up only shows text-labels.

Other types of labels can exist — image labels of different types, virtual object labels, space-time labels, etc.

And labels can have different use-case (in addition to human-readable text) — more on that later.

Linux Is Best's avatar
Linux Is Best

@[email protected] · Reply to aliceif's post

@[email protected]

I said, what I said, because it was, and is, factual.

Old Account:
https://shonk.social/@Sharkey
New Account:
https://sharkey.team/@sharkey

Same people.

Linux Is Best's avatar
Linux Is Best

@[email protected] · Reply to aliceif's post

@[email protected] I only stated facts, not opinions.

Fact is, they are deleting post. Period.
Fact is, they have been using the same account this whole time, until now. Period.

Fact is, "new" management is as toxic as old management. The trolling, Doxing, and false anti-LGBTQ+ statements came from the so-called "new" management.

I have no reason to lie or embellish. Sharkey is bad enough without anyone adding to their nonsense.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@[email protected] · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

For discussion on some of the technical / programming side of Fediverse Labelers, see:

mastodon.social/@reiver/113822

.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@[email protected]

1/

More on Fediverse Labelers —

Here is how text-labels from multiple Fediverse Labelers could appear in an application on a person's profile.

...

In this example, the application pulled in 7 labels from 4 different Fediverse Labelers.

AOE, Takashi's avatar
AOE, Takashi

@[email protected]

これは面白い動きだな、Blueskyとは別にAT Protoベースのサービスを運営する本格的なやつが出てきそうだ(個人レベルとかでやっている人はいる)。リレーは独自に運営すると言っているな。AppViewはどうするんだろう?今のbsky.socialのPDSにも接続するのかな?

そしてActivityPubとの接続についても先日発足したSocial Web Foundationと協力してサポートしていくと言っているな。

/「億万長者からSNSを救おう」──Free Our Feeds発足 - ITmedia NEWS
itmedia.co.jp/news/articles/25

Esra'a's avatar
Esra'a

@[email protected]

Proud to have played a role in this. VC-backed social media is not the answer. At Mastodon, we view this move as the best way to guarantee that the social web remains open and free from ads, data exploitation, manipulative algorithms or corporate monopolies.

theverge.com/2025/1/13/2434260

Esra'a's avatar
Esra'a

@[email protected]

Proud to have played a role in this. VC-backed social media is not the answer. At Mastodon, we view this move as the best way to guarantee that the social web remains open and free from ads, data exploitation, manipulative algorithms or corporate monopolies.

theverge.com/2025/1/13/2434260

pixelfed's avatar
pixelfed

@[email protected]

Stronger Together.
Safer Together.

Now is our time to shine, with real action and progress like RespectfulPlatforms.org

Spread the word.

Linux Is Best's avatar
Linux Is Best

@[email protected]

On while the topic of Sharkey, for a development that has nothing to hide, they're doing a lot to hide sh-t.

1st, they recently changed account in the past 24 hours. I suspect because people kept finding post and references they hadn't yet deleted (I still have some links, read on)

Old Account:
https://shonk.social/@Sharkey
New Account:
https://eepy.moe/@[email protected]

This is the post showing the server they finally got
https://shonk.social/notes/9qsw4nie0j3b00aj

They seem to have removed the post thanking everyone and detailing how many people contributed. They have also removed the post asking for more money, so they could form an LLC (not a non-profit, but a business). And they removed the post, where they attempt to troll me in public.

They may be deleting some things via the database, because a few of their old post, remove details and replace it with "nulled" (see screen). I'm guessing someone performed a SQL search and replace.

But I did something no one expected. I made every post I ever made from May 30, 2023, through December 21, 2024, publically downloadable into the public domain, including my interactions with Sharkey.
https://kitty.social/notes/a21e0nsgbe9z2mj8

Screenshot that shows "nulled" where the company name should be.
Screenshot that shows "nulled" where the company name should be.
The Sixth Guy's avatar
The Sixth Guy

@[email protected]

alright, I'm seeing renewed interest in so I figured I'd explain the in a way that makes sense to people. with pictures. sit back, it'll be interesting, I promise! 🧵

(note that this isn't about bluesky. they're built different and I don't know enough about how they work)

THE FEDIVERSE (explained with crudely drawn people)
THE FEDIVERSE (explained with crudely drawn people)
The Sixth Guy's avatar
The Sixth Guy

@[email protected]

alright, I'm seeing renewed interest in so I figured I'd explain the in a way that makes sense to people. with pictures. sit back, it'll be interesting, I promise! 🧵

(note that this isn't about bluesky. they're built different and I don't know enough about how they work)

THE FEDIVERSE (explained with crudely drawn people)
THE FEDIVERSE (explained with crudely drawn people)
Robert Kingett's avatar
Robert Kingett

@[email protected]

The people should own the town square blog.joinmastodon.org/2025/01/

Nicholas R's avatar
Nicholas R

@[email protected] · Reply to Daniel Supernault's post

@dansup @mastodonmigration it is to their advantage to block any links to or really anything on the

I am very surprised they opened to

MHzModels's avatar
MHzModels

@[email protected]

Looking for a new server. Any recommendations?

There are a few reasons for the transition, one of them being that graphics.social is federated with Threads.net. I have the domain blocked for the time being, but I feel like one last move to a community that aligns more with my values is the right choice.

I am:
Pro democracy
Makes art
A regular poindexter
Atheist
Neurodivergent
Cat, frog and fish dad 🐱 🐸 🐟

I just want to exist for the long term where I am most welcome.

MHzModels's avatar
MHzModels

@[email protected]

Looking for a new server. Any recommendations?

There are a few reasons for the transition, one of them being that graphics.social is federated with Threads.net. I have the domain blocked for the time being, but I feel like one last move to a community that aligns more with my values is the right choice.

I am:
Pro democracy
Makes art
A regular poindexter
Atheist
Neurodivergent
Cat, frog and fish dad 🐱 🐸 🐟

I just want to exist for the long term where I am most welcome.

Nicholas R's avatar
Nicholas R

@[email protected] · Reply to Jcrabapple's post

@jcrabapple if you need to send people to another instance, you can use this link:
mastos.online/auth/sign_up

The Sixth Guy's avatar
The Sixth Guy

@[email protected]

alright, I'm seeing renewed interest in so I figured I'd explain the in a way that makes sense to people. with pictures. sit back, it'll be interesting, I promise! 🧵

(note that this isn't about bluesky. they're built different and I don't know enough about how they work)

THE FEDIVERSE (explained with crudely drawn people)
THE FEDIVERSE (explained with crudely drawn people)
nogajun🍉's avatar
nogajun🍉

@[email protected]

FediverseでStarter Packが作れるサービスがあった。これで日本語圏の人のスターターパック作っておくといいかもね

fedidevs.com/starter-packs/

Nicholas R's avatar
Nicholas R

@[email protected] · Reply to Jcrabapple's post

@jcrabapple if you need to send people to another instance, you can use this link:
mastos.online/auth/sign_up

Esra'a's avatar
Esra'a

@[email protected]

Proud to have played a role in this. VC-backed social media is not the answer. At Mastodon, we view this move as the best way to guarantee that the social web remains open and free from ads, data exploitation, manipulative algorithms or corporate monopolies.

theverge.com/2025/1/13/2434260

Dyptre's avatar
Dyptre

@[email protected]

In a move that shocked no one and have started blocking federated competitors now.

Thankfully, it seems the is doing it's thing.

404media.co/meta-is-blocking-l

Dyptre's avatar
Dyptre

@[email protected]

In a move that shocked no one and have started blocking federated competitors now.

Thankfully, it seems the is doing it's thing.

404media.co/meta-is-blocking-l

Flipboard's avatar
Flipboard

@[email protected]

Wow! We've hit 10,000 followers! Thanks to all who have joined us for our eclectic mix of company updates, fediverse news, media and journalism stuff, random boosting and posts. We so enjoy being part of this community. Tell us in the comments what kind of posts you'd like to see from us in the future!

Flipboard's avatar
Flipboard

@[email protected]

Wow! We've hit 10,000 followers! Thanks to all who have joined us for our eclectic mix of company updates, fediverse news, media and journalism stuff, random boosting and posts. We so enjoy being part of this community. Tell us in the comments what kind of posts you'd like to see from us in the future!

Ben Royce 🇺🇸🇺🇦 Don't Boo: Vote's avatar
Ben Royce 🇺🇸🇺🇦 Don't Boo: Vote

@[email protected]

" Is Blocking Links to Competitor "

404media.co/meta-is-blocking-l

starship troopers: "it's afraid"
starship troopers: "it's afraid"
Dio's avatar
Dio

@[email protected]

Okay, any recommendations of good instances on the ? I'm okay trying different systems; I did like Sharkey but it was missing stuff (account alerts for example) that I use.

I'm a bit like, spicy sometimes, I post CWed NSFW, I mostly talk games and life and biting ppl who annoy me. I am secretly not terrible at tech stuffs.

No fashy, no terrible ppl, transparent admins. Heavy handed is a no thanks.

Esra'a's avatar
Esra'a

@[email protected]

Proud to have played a role in this. VC-backed social media is not the answer. At Mastodon, we view this move as the best way to guarantee that the social web remains open and free from ads, data exploitation, manipulative algorithms or corporate monopolies.

theverge.com/2025/1/13/2434260

K@rsten 🏳️‍🌈's avatar
K@rsten 🏳️‍🌈

@[email protected]

Hat irgendwer auf dieser Welt schon mal einen unter zum Laufen gebracht? Die Installation ist bei mir einwandfrei durchgelaufen, aber ich kann mich nicht mit meinem Administrator Account anmelden. Das scheint wohl ein sehr verbreitetes Problem zu sein, aber eine Lösung habe ich nicht gefunden. So klappt das nicht mit dem 😭

Friendica Anmeldeseite
Friendica Anmeldeseite
BeAware :fediverse:'s avatar
BeAware :fediverse:

@[email protected]

Assholes in this world have made me very cynical.

I feel that every time I login to Fedi these days, there's yet another scheme to get people to dump money into a project for "the growth of the Fediverse" yet we have yet to see any results and the things they're doing seem shady as fuck to me. Yet people keep parading around like it's the best thing ever.

SWF forms and is funded by major companies like Meta and Auttomatic. Not sure how that could be a good thing. That means SWF will be financially influenced by these companies and there's nothing anybody can do to change that.

Now, Mastodon is being given to a new non-profit. They say this is to "give the power back to the people" but obviously giving ownership to a non-profit doesn't do that...it gives ownership to the non-profit and allows them to hide your donations via shady legalities to enrich themselves.

Money hungry fucks ruin everything. Change my mind.

Jodsclass 🏴‍☠️☕'s avatar
Jodsclass 🏴‍☠️☕

@[email protected]

I saw this about Free Our Feeds today. I'm genuinely surprised they decided to go down the AT protocol route when the Fediverse seems like a much better & battle tested protocol. Seems to tick all of their boxes, including app development by third parties. Why are people so afraid of the Fediverse as an alternative? theverge.com/2025/1/13/2434279

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@[email protected] · Reply to @reiver ⊼ (Charles) :batman:'s post

4/

Note that even in this example, that there are different types of labels!

I have some examples of text labels.

But I also have some examples of Icon labels.

(Other types of labels could exist, too.)

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@[email protected] · Reply to @reiver ⊼ (Charles) :batman:'s post

3/

The "describes" field would point to the thing being labelled.

The "attributedTo" field would point to the person or machine that create these label.

And the "attachment" field would be a list of labels.

The (top level) "icon" field would be an icon that would be shown next to the label in the user-interface (UI).

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@[email protected] · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

A Fediverse Labeler would output a separate ActivityStreams "Profile" Object for each thing it wants to label.

Each of these should be at a separate URL.

Jodsclass 🏴‍☠️☕'s avatar
Jodsclass 🏴‍☠️☕

@[email protected]

I saw this about Free Our Feeds today. I'm genuinely surprised they decided to go down the AT protocol route when the Fediverse seems like a much better & battle tested protocol. Seems to tick all of their boxes, including app development by third parties. Why are people so afraid of the Fediverse as an alternative? theverge.com/2025/1/13/2434279

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@[email protected]

1/

This is how a Fediverse Labeler could work.

In particular, This is how a Fediverse Labeler could be represented as ActivityPub / ActivityStreams / JSON-LD data.

{
  "@context": [
    "https://www.w3.org/ns/activitystreams"
  ],
  "type": "Profile",
  "describes": "acct:reiver@mastodon.social",
  "attributedTo": "https://example.com/apps/ratel",
  "icon": {
    "type": "Icon",
    "mediaType": "image/png",
    "url": "https://example.com/apps/ratel/img/icon.png"
  },
  "attachment": [
    {
      "type": "Label",
      "name": "Programmer"
    },
    {
      "type": "Label",
      "name": "Canadian"
    },
    {
      "type": "Icon",
      "mediaType": "image/png",
      "url": "https://example.com/pfp/751f76ed540a40a3b4caae50e50cc867.png"
    },
    {
      "type": "Icon",
      "mediaType": "image/png",
      "url": "https://example.com/pfp/45f7b459257940f490133070a975924b.png"
    }
  ]
}
{ "@context": [ "https://www.w3.org/ns/activitystreams" ], "type": "Profile", "describes": "acct:[email protected]", "attributedTo": "https://example.com/apps/ratel", "icon": { "type": "Icon", "mediaType": "image/png", "url": "https://example.com/apps/ratel/img/icon.png" }, "attachment": [ { "type": "Label", "name": "Programmer" }, { "type": "Label", "name": "Canadian" }, { "type": "Icon", "mediaType": "image/png", "url": "https://example.com/pfp/751f76ed540a40a3b4caae50e50cc867.png" }, { "type": "Icon", "mediaType": "image/png", "url": "https://example.com/pfp/45f7b459257940f490133070a975924b.png" } ] }
Ralf Stockmann's avatar
Ralf Stockmann

@[email protected]

Ok, ich fasse zusammen: die ganzen Internetversteher*innen sind wegen Musk von X weg zu , und ziehen jetzt wegen weiter zu . Darunter viele Firmen, Unis, Politiker*innen und Journalist*innen.

Ich habe da Fragen, vor allem: was ist an dem Konzept „durchgeknallte Tech-Milliardäre“ so schwer zu verstehen, dass man denselben Fehler drei mal macht?

Und tut es wirklich so weh, einfach mal auf der richtigen Seite der Geschichte () zu stehen? 🤷🏻‍♂️

Robert Kingett's avatar
Robert Kingett

@[email protected]

The people should own the town square blog.joinmastodon.org/2025/01/

gbhnews's avatar
gbhnews

@[email protected]

🌞 Hello ! This is GBH bringing you the world from . It's 39F at Logan Airport and visibility is 10mi.

Moderna stock fell when the company announced a steeper than expected sales decline for the COVID vaccine developer.

Los Angeles fire deaths have risen to 24 and more high winds are forecast.

The Pats hired a new coach: Mike Vrabel.

And now for the poll of the day ⬇️

gbhnews's avatar
gbhnews

@[email protected]

🌞 Hello ! This is GBH bringing you the world from . It's 39F at Logan Airport and visibility is 10mi.

Moderna stock fell when the company announced a steeper than expected sales decline for the COVID vaccine developer.

Los Angeles fire deaths have risen to 24 and more high winds are forecast.

The Pats hired a new coach: Mike Vrabel.

And now for the poll of the day ⬇️

gbhnews's avatar
gbhnews

@[email protected]

🌞 Hello ! This is GBH bringing you the world from . It's 39F at Logan Airport and visibility is 10mi.

Moderna stock fell when the company announced a steeper than expected sales decline for the COVID vaccine developer.

Los Angeles fire deaths have risen to 24 and more high winds are forecast.

The Pats hired a new coach: Mike Vrabel.

And now for the poll of the day ⬇️

Linux Is Awesome's avatar
Linux Is Awesome

@[email protected] · Reply to Mastodon's post

@Mastodon You should also consider changing hosting providers, outside the United States.

IFTAS's avatar
IFTAS

@[email protected]

The top ranked priorities reported on our 2024 Needs Assessment were that moderators need tools for CSAM detection, spam prevention, and legal guidance for compliance with regulations like GDPR.

IFTAS's avatar
IFTAS

@[email protected]

The top ranked priorities reported on our 2024 Needs Assessment were that moderators need tools for CSAM detection, spam prevention, and legal guidance for compliance with regulations like GDPR.

FediThing 🏳️‍🌈's avatar
FediThing 🏳️‍🌈

@[email protected]

Does anyone know if there was some kind of drama involving the developers of Sharkey?

Someone told me there was but I can't find any info one way or the other.

nogajun🍉's avatar
nogajun🍉

@[email protected]

FediverseでStarter Packが作れるサービスがあった。これで日本語圏の人のスターターパック作っておくといいかもね

fedidevs.com/starter-packs/

steve mookie kong's avatar
steve mookie kong

@[email protected]

Nice!

blog.joinmastodon.org/2025/01/

steve mookie kong's avatar
steve mookie kong

@[email protected]

Nice!

blog.joinmastodon.org/2025/01/

hannah aubry's avatar
hannah aubry

@[email protected]

I’m proud to have once again played a small role in pushing and the forward. Today’s announcement is an important step in bringing greater community ownership and governance to @Mastodon

RE: hannahaubry.online/on-communit

hannah aubry's avatar
hannah aubry

@[email protected]

I’m proud to have once again played a small role in pushing and the forward. Today’s announcement is an important step in bringing greater community ownership and governance to @Mastodon

RE: hannahaubry.online/on-communit

Konstantin Macher's avatar
Konstantin Macher

@[email protected]

Ich habe die letzten Tage mal wieder ein bisschen mit experimentiert und bin damit wohl nicht alleine.
(Tipp zum Start um schnell an Content zu kommen und Accounts zu finden: Hashtags folgen!)
Jetzt werden anscheinend auf Links zur föderierten -Alternative Pixelfed gesperrt:
heise.de/news/Beispiellos-gewa

Damit hat das ja schon Erfahrung, als Twitter Links auf Mastodon-Instanzen gesperrt hatte, um die Abwanderung der Nutzenden auf der Platform zu verschleiern.

IFTAS's avatar
IFTAS

@[email protected]

Respondents to our 2024 Needs Assessment host a collective 4,301,355 accounts - roughly one third of all known accounts (ActivityPub only).

42% of respondents host 100 accounts or fewer; 6 respondents host over 100,000 accounts.

Let’s hear it for the amazing people who area helping create for us all - thank your admin today!

MediaFederatedByFlipboard's avatar
MediaFederatedByFlipboard

@[email protected]

In the there are now
504 media accounts federated by Flipboard.
326 were active today.

Some accounts, that were active today are
@OutdoorLife
@Leader_Post
@RedMagazine
@Mashable
@ConsumerReports

Find the whole list on:
➡️ docs.google.com/spreadsheets/d

Built by @mho

Konstantin Macher's avatar
Konstantin Macher

@[email protected]

Ich habe die letzten Tage mal wieder ein bisschen mit experimentiert und bin damit wohl nicht alleine.
(Tipp zum Start um schnell an Content zu kommen und Accounts zu finden: Hashtags folgen!)
Jetzt werden anscheinend auf Links zur föderierten -Alternative Pixelfed gesperrt:
heise.de/news/Beispiellos-gewa

Damit hat das ja schon Erfahrung, als Twitter Links auf Mastodon-Instanzen gesperrt hatte, um die Abwanderung der Nutzenden auf der Platform zu verschleiern.

Newsmast's avatar
Newsmast

@[email protected]

New Social is big and still growing 🐘

It can be hard to visualise just how big, so hopefully this helps.

New Social is attracting more users daily as people turn from the Big Tech platforms that no longer feel like home.

New Social is an idea that encompasses multiple platforms, designed to be democratic and open - including Mastodon. They are the future of social media.

Learn more about New Social (and how big it is) by following us!

The graphic, in Newsmast Foundation colours, shows 40 drawings of Wembley Stadium alongside copy. The copy reads: 40+ Wembley Stadiums are now on New Social platforms. This year, join 37* million people on New Social by giving up Big Tech control and joining an open network. *an educated estimate.
The graphic, in Newsmast Foundation colours, shows 40 drawings of Wembley Stadium alongside copy. The copy reads: 40+ Wembley Stadiums are now on New Social platforms. This year, join 37* million people on New Social by giving up Big Tech control and joining an open network. *an educated estimate.
Cliff's avatar
Cliff

@[email protected]

This is certainly quite interesting to see happen. Hopefully this is something that helps Mastodon and everyone involved in the long run.

The people should own the town square.

blog.joinmastodon.org/2025/01/

Wolfgang Cramer's avatar
Wolfgang Cramer

@[email protected]

Very pleased to notice that starter packs exist in the as well, and there is a lot of them already: fedidevs.com/starter-packs/

(Danke, @SheDrivesMobility für den Hinweis!)

Cliff's avatar
Cliff

@[email protected]

This is certainly quite interesting to see happen. Hopefully this is something that helps Mastodon and everyone involved in the long run.

The people should own the town square.

blog.joinmastodon.org/2025/01/

Newsmast's avatar
Newsmast

@[email protected]

New Social is big and still growing 🐘

It can be hard to visualise just how big, so hopefully this helps.

New Social is attracting more users daily as people turn from the Big Tech platforms that no longer feel like home.

New Social is an idea that encompasses multiple platforms, designed to be democratic and open - including Mastodon. They are the future of social media.

Learn more about New Social (and how big it is) by following us!

The graphic, in Newsmast Foundation colours, shows 40 drawings of Wembley Stadium alongside copy. The copy reads: 40+ Wembley Stadiums are now on New Social platforms. This year, join 37* million people on New Social by giving up Big Tech control and joining an open network. *an educated estimate.
The graphic, in Newsmast Foundation colours, shows 40 drawings of Wembley Stadium alongside copy. The copy reads: 40+ Wembley Stadiums are now on New Social platforms. This year, join 37* million people on New Social by giving up Big Tech control and joining an open network. *an educated estimate.
NiTroll Robin ☃️'s avatar
NiTroll Robin ☃️

@[email protected]

Je trouve ça très drôle que Meta/Facebook bloque les messages parlant de alors qu'ils se vantaient encore il y a peu de vouloir rejoindre le avec Threads.

🤭

Ce double discours est magique ✨✨✨

Article de Libération qui parle de la volonté de Threads de rejoindre le fediverse.
Article de Libération qui parle de la volonté de Threads de rejoindre le fediverse.
Capture d'écran d'un post publié sur facebook qui parle de Pixelfed, pour cause de Spam.
Capture d'écran d'un post publié sur facebook qui parle de Pixelfed, pour cause de Spam.
heise online's avatar
heise online

@[email protected]

"Beispiellos" gewachsen: Facebook sperrt Links zu Instagram-Alternative Pixelfed

Seit Metas Ankündigung, Inhalte auf den eigenen Portalen anders zu moderieren, wächst Pixelfed stark. Nun ist aufgefallen, dass Facebook Links dorthin sperrt.

heise.de/news/Beispiellos-gewa

NiTroll Robin ☃️'s avatar
NiTroll Robin ☃️

@[email protected]

Je trouve ça très drôle que Meta/Facebook bloque les messages parlant de alors qu'ils se vantaient encore il y a peu de vouloir rejoindre le avec Threads.

🤭

Ce double discours est magique ✨✨✨

Article de Libération qui parle de la volonté de Threads de rejoindre le fediverse.
Article de Libération qui parle de la volonté de Threads de rejoindre le fediverse.
Capture d'écran d'un post publié sur facebook qui parle de Pixelfed, pour cause de Spam.
Capture d'écran d'un post publié sur facebook qui parle de Pixelfed, pour cause de Spam.
Wolfgang Cramer's avatar
Wolfgang Cramer

@[email protected]

Very pleased to notice that starter packs exist in the as well, and there is a lot of them already: fedidevs.com/starter-packs/

(Danke, @SheDrivesMobility für den Hinweis!)

St. Pauli POP's avatar
St. Pauli POP

@[email protected]

hat Schiss.

"Beispiellos" gewachsen: Facebook sperrt Links zu Instagram-Alternative Pixelfed" weiss @heiseonline

Unseren Popcast findet ihr nu hier:
>> pixelfed.social/stpauli oder folgt @stpauli

Meine eigene Instanz findet ihr hier >> px.ring2.de

heise online's avatar
heise online

@[email protected]

"Beispiellos" gewachsen: Facebook sperrt Links zu Instagram-Alternative Pixelfed

Seit Metas Ankündigung, Inhalte auf den eigenen Portalen anders zu moderieren, wächst Pixelfed stark. Nun ist aufgefallen, dass Facebook Links dorthin sperrt.

heise.de/news/Beispiellos-gewa

St. Pauli POP's avatar
St. Pauli POP

@[email protected]

hat Schiss.

"Beispiellos" gewachsen: Facebook sperrt Links zu Instagram-Alternative Pixelfed" weiss @heiseonline

Unseren Popcast findet ihr nu hier:
>> pixelfed.social/stpauli oder folgt @stpauli

Meine eigene Instanz findet ihr hier >> px.ring2.de

Thomas Ekman Jorgensen's avatar
Thomas Ekman Jorgensen

@[email protected]

As German and UK are quitting X, the next big question is the alternative. The Dutch have been experimenting with the for some time - here is more information

eua.eu/our-work/expert-voices/

@wlaatje
@SURF

heise online's avatar
heise online

@[email protected]

"Beispiellos" gewachsen: Facebook sperrt Links zu Instagram-Alternative Pixelfed

Seit Metas Ankündigung, Inhalte auf den eigenen Portalen anders zu moderieren, wächst Pixelfed stark. Nun ist aufgefallen, dass Facebook Links dorthin sperrt.

heise.de/news/Beispiellos-gewa

Daniel Supernault's avatar
Daniel Supernault

@[email protected]

I'm kind of obsessed with the

I've been working on @pixelfed almost every day since April 2018

I've learned a lot, and am still as dedicated to, and excited for the fediverse as I was when I first started Pixelfed

I know I've made some mistakes along the way, but y'all have been quick to point em out and help me grow and fix issues accordingly

This really is a labour of love, for the people.

Y'all keep me energized with your feedback and positive vibes. I really appreciate it. ❤️

シュンジョーァ :badge: :code: :wfox:'s avatar
シュンジョーァ :badge: :code: :wfox:

@[email protected]

Looking back on the indie projects I developed in 2024

✨SoraSNS: An iOS client for Mastodon, Misskey, Bluesky, and Nostr in the Fediverse, featuring an AI-powered "Recommended" timeline

✨Neo: A decentralized chat app built on Matrix

✨Spatial Escape I: A phone booth escape game for Apple Vision Pro
✨Spatial Boxer: A boxing game for Apple Vision Pro

Other apps I launched:

🦊URL Passport: Check domain ownership details
🐙Octo Notes: Note-taking app for iPad with Pencil support
🤖Smart AI: Chat with local LLMs like Phi and Llama
🦊Kyoto Shrine Guide: A guide to Kyoto's shrines

Next month, I’m launching a new indie app about ✈️. Stay tuned!








月音's avatar
月音

@[email protected]

分散型SNS紹介ページ。特に協力サーバー一覧ページがとても見やすい! :Shiropuyo_sugoi:
ちなみにFedibirdは現時点では一覧に無いみたい。

分散型SNSユーザー有志
fediverse.pcgf.io/

シュンジョーァ :badge: :code: :wfox:'s avatar
シュンジョーァ :badge: :code: :wfox:

@[email protected]

Mastodon 🌤️ on your wrist ⌚️

Try SoraSNS!

✨ Mastodon, Misskey, Bluesky, Nostr all in one
✨ Native on iPhone, iPad, Apple Watch, and Vision Pro
✨ Clean and beautiful UI

apps.apple.com/jp/app/sorasns-











シュンジョーァ :badge: :code: :wfox:'s avatar
シュンジョーァ :badge: :code: :wfox:

@[email protected]

Mastodon 🌤️ on your wrist ⌚️

Try SoraSNS!

✨ Mastodon, Misskey, Bluesky, Nostr all in one
✨ Native on iPhone, iPad, Apple Watch, and Vision Pro
✨ Clean and beautiful UI

apps.apple.com/jp/app/sorasns-











シュンジョーァ :badge: :code: :wfox:'s avatar
シュンジョーァ :badge: :code: :wfox:

@[email protected]

Mastodon 🌤️ on your wrist ⌚️

Try SoraSNS!

✨ Mastodon, Misskey, Bluesky, Nostr all in one
✨ Native on iPhone, iPad, Apple Watch, and Vision Pro
✨ Clean and beautiful UI

apps.apple.com/jp/app/sorasns-











jmsfbs's avatar
jmsfbs

@[email protected]

"We're at the beginning of a significant shift in the history of the internet in more ways than one, and we're feeling both optimistic and excited for the future. After two decades of restrictive networks and centralized platforms, there are a lot of very motivated people focused on one thing:

Bringing back the open web."

activitypub.ghost.org/the-stor

jmsfbs's avatar
jmsfbs

@[email protected]

"We're at the beginning of a significant shift in the history of the internet in more ways than one, and we're feeling both optimistic and excited for the future. After two decades of restrictive networks and centralized platforms, there are a lot of very motivated people focused on one thing:

Bringing back the open web."

activitypub.ghost.org/the-stor

fcr's avatar
fcr

@[email protected]

People just don't get Mastodon.

Even, in my case, people with a background in experimental art and political activism. I'm currently involved in endless online discussions about Mastodon vs. Bluesky, and people just don't understand what it's about and why one is preferable to the other.

The language of "instances" and "decentralisation" completely confuses them (and it would be much more helpful to use more understandable, jargon-free language such as "globally interconnected community servers").

Everyone thinks that in Mastodon/the Fediverse/a decentralised network you can only communicate and connect with people on your own instance, and doesn't understand that you can also post, read and connect globally across instances.

I am afraid that after 25 years the cultural hegemony of internet platforms is irreversible. Mastodon confuses people because it looks like a platform.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@[email protected]

Is any Fediverse (or other) software using or returning an ActivityStreams 'Profile'?

w3.org/TR/activitystreams-voca

Newsmast's avatar
Newsmast

@[email protected]

Your mission, should you choose to accept it... 👩‍💻

New Social is here to stay, now it's your turn to get involved.

Your first task: consider connecting to social platforms beyond this one.

To connect with Bluesky, just follow @bsky.brid.gy

It's time to make open social media a reality.

Check out our website to learn more about New Social.

A mock classified file report. Copy explains a 'mission' to share with the open social web by bridging to Bluesky and sharing with Threads.
A mock classified file report. Copy explains a 'mission' to share with the open social web by bridging to Bluesky and sharing with Threads.
MediaFederatedByFlipboard's avatar
MediaFederatedByFlipboard

@[email protected]

In the there are now
504 media accounts federated by Flipboard.
326 were active today.

Some accounts, that were active today are
@OutdoorLife
@Leader_Post
@RedMagazine
@Mashable
@ConsumerReports

Find the whole list on:
➡️ docs.google.com/spreadsheets/d

Built by @mho

Csepp 🌢's avatar
Csepp 🌢

@[email protected]

Found a piece of history in my "to print" folder.
RIP .

@chr (dragon emojo, floppy emojo)

cybre =/= cyber

c y b r e describes an optimism, a hope for the possibility of technology rather than a fear of its oppression c y b r e represents the reality of what is now possible, in addition to the mythology of what was thought possible c y b r e belongs to the indomitable individuals and indefatigable communities who have carved out a home in an invisible layer above reality also c y b r e was available as a domain name

7 April 2017,11:13 AM - Web - boosts 104 faves 164
@chr (dragon emojo, floppy emojo) cybre =/= cyber c y b r e describes an optimism, a hope for the possibility of technology rather than a fear of its oppression c y b r e represents the reality of what is now possible, in addition to the mythology of what was thought possible c y b r e belongs to the indomitable individuals and indefatigable communities who have carved out a home in an invisible layer above reality also c y b r e was available as a domain name 7 April 2017,11:13 AM - Web - boosts 104 faves 164
Neiman's avatar
Neiman

@[email protected]

Are there any events in this year?

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@[email protected]

Is any Fediverse (or other) software using or returning an ActivityStreams 'Profile'?

w3.org/TR/activitystreams-voca

FediThing 🏳️‍🌈's avatar
FediThing 🏳️‍🌈

@[email protected]

If anyone's looking for cosy well-run smaller Fediverse servers to move to, there are lots of them listed at fedi.garden

All of them comply with the Mastodon Covenant PLUS they all defederate Threads and they are smaller than 50k registered users (vast majority are far smaller than that). Also, they aren't just Mastodon servers.

Eskalator :fckafd: :tux:'s avatar
Eskalator :fckafd: :tux:

@[email protected] · Reply to nieebel's post

@aligyie
Warum ist er nicht im

Martin Holland's avatar
Martin Holland

@[email protected]

Let's try it again: This post from can reach the whole , & more. That's , (hence the pic), , , , , ... How far can it go?

Edit: The results are in 👇

A graph showing the distribution of the shares by software, #Mastodon clearly in the lead, #Bluesky a distand second, then #Friendica, #Hubzilla, #Misskey and many more.. All together 13 different platforms are represented.
A graph showing the distribution of the shares by software, #Mastodon clearly in the lead, #Bluesky a distand second, then #Friendica, #Hubzilla, #Misskey and many more.. All together 13 different platforms are represented.
Loki Gwynbleidd 🏴🎨😷's avatar
Loki Gwynbleidd 🏴🎨😷

@[email protected]

Je prépare mes messages pour annoncer la fin de mon Facebook et la réduction de mon Instagram. Et pour refaire de la pub de mes comptes sur Mastodon et Pixelfed.
Je vais les accompagner d'une image très subtile !

I'm preparing my messages to announce the end of my Facebook and the reduction of my Instagram. And to re-advertise my Mastodon and Pixelfed accounts.
I'm going to accompany them with a very subtle image!

Mon avatar ragondin tient fièrement un bouclier Pixelfed tout en chevauchant un mastodonte Mastodon en colère. Le féroce éléphant écrase un logo Facebook avec sa trompe et un logo Instagram avec son pied.

My coypu avatar proudly holding a Pixelfed shield while riding an angry Mastodon. The ferocious elephant is crushing a Facebook logo with its trunk and an Instagram logo with its foot.
Mon avatar ragondin tient fièrement un bouclier Pixelfed tout en chevauchant un mastodonte Mastodon en colère. Le féroce éléphant écrase un logo Facebook avec sa trompe et un logo Instagram avec son pied. My coypu avatar proudly holding a Pixelfed shield while riding an angry Mastodon. The ferocious elephant is crushing a Facebook logo with its trunk and an Instagram logo with its foot.
Paolo Amoroso's avatar
Paolo Amoroso

@[email protected]

Are there any Mastodon web apps that support using multiple accounts at the same time _over the same instance_?

fcr's avatar
fcr

@[email protected]

People just don't get Mastodon.

Even, in my case, people with a background in experimental art and political activism. I'm currently involved in endless online discussions about Mastodon vs. Bluesky, and people just don't understand what it's about and why one is preferable to the other.

The language of "instances" and "decentralisation" completely confuses them (and it would be much more helpful to use more understandable, jargon-free language such as "globally interconnected community servers").

Everyone thinks that in Mastodon/the Fediverse/a decentralised network you can only communicate and connect with people on your own instance, and doesn't understand that you can also post, read and connect globally across instances.

I am afraid that after 25 years the cultural hegemony of internet platforms is irreversible. Mastodon confuses people because it looks like a platform.

Martin Holland's avatar
Martin Holland

@[email protected]

Let's try it again: This post from can reach the whole , & more. That's , (hence the pic), , , , , ... How far can it go?

Edit: The results are in 👇

A graph showing the distribution of the shares by software, #Mastodon clearly in the lead, #Bluesky a distand second, then #Friendica, #Hubzilla, #Misskey and many more.. All together 13 different platforms are represented.
A graph showing the distribution of the shares by software, #Mastodon clearly in the lead, #Bluesky a distand second, then #Friendica, #Hubzilla, #Misskey and many more.. All together 13 different platforms are represented.
Loki Gwynbleidd 🏴🎨😷's avatar
Loki Gwynbleidd 🏴🎨😷

@[email protected]

Je prépare mes messages pour annoncer la fin de mon Facebook et la réduction de mon Instagram. Et pour refaire de la pub de mes comptes sur Mastodon et Pixelfed.
Je vais les accompagner d'une image très subtile !

I'm preparing my messages to announce the end of my Facebook and the reduction of my Instagram. And to re-advertise my Mastodon and Pixelfed accounts.
I'm going to accompany them with a very subtle image!

Mon avatar ragondin tient fièrement un bouclier Pixelfed tout en chevauchant un mastodonte Mastodon en colère. Le féroce éléphant écrase un logo Facebook avec sa trompe et un logo Instagram avec son pied.

My coypu avatar proudly holding a Pixelfed shield while riding an angry Mastodon. The ferocious elephant is crushing a Facebook logo with its trunk and an Instagram logo with its foot.
Mon avatar ragondin tient fièrement un bouclier Pixelfed tout en chevauchant un mastodonte Mastodon en colère. Le féroce éléphant écrase un logo Facebook avec sa trompe et un logo Instagram avec son pied. My coypu avatar proudly holding a Pixelfed shield while riding an angry Mastodon. The ferocious elephant is crushing a Facebook logo with its trunk and an Instagram logo with its foot.
Elena Rossini ⁂'s avatar
Elena Rossini ⁂

@[email protected]

TIL that on platforms now one can write terrible, offensive slurs against LGBTQIA+ folks and immigrants… with zero repercussions. But the second one mentions a project like , the post is automatically removed.

Meta “moderation” policies in 2025: racism, xenophobia, transphobia, homophobia and sexism are allowed; mention of competition is strictly forbidden.

Source: mastodon.social/@dansup/113813

Loki Gwynbleidd 🏴🎨😷's avatar
Loki Gwynbleidd 🏴🎨😷

@[email protected]

Je prépare mes messages pour annoncer la fin de mon Facebook et la réduction de mon Instagram. Et pour refaire de la pub de mes comptes sur Mastodon et Pixelfed.
Je vais les accompagner d'une image très subtile !

I'm preparing my messages to announce the end of my Facebook and the reduction of my Instagram. And to re-advertise my Mastodon and Pixelfed accounts.
I'm going to accompany them with a very subtle image!

Mon avatar ragondin tient fièrement un bouclier Pixelfed tout en chevauchant un mastodonte Mastodon en colère. Le féroce éléphant écrase un logo Facebook avec sa trompe et un logo Instagram avec son pied.

My coypu avatar proudly holding a Pixelfed shield while riding an angry Mastodon. The ferocious elephant is crushing a Facebook logo with its trunk and an Instagram logo with its foot.
Mon avatar ragondin tient fièrement un bouclier Pixelfed tout en chevauchant un mastodonte Mastodon en colère. Le féroce éléphant écrase un logo Facebook avec sa trompe et un logo Instagram avec son pied. My coypu avatar proudly holding a Pixelfed shield while riding an angry Mastodon. The ferocious elephant is crushing a Facebook logo with its trunk and an Instagram logo with its foot.
Open Risk's avatar
Open Risk

@[email protected] · Reply to Glyph's post

@glyph people (whether 'followers' or 'influencers' - both hateful words btw) are mesmerized by the sense of a vast agora where you can find anybody and reach everybody.

Ofcourse the walled gardens deliver on this only to the extent it fits their amoral business models.

But the is in denial about the significance of this for wider adoption.

Elena Rossini ⁂'s avatar
Elena Rossini ⁂

@[email protected]

TIL that on platforms now one can write terrible, offensive slurs against LGBTQIA+ folks and immigrants… with zero repercussions. But the second one mentions a project like , the post is automatically removed.

Meta “moderation” policies in 2025: racism, xenophobia, transphobia, homophobia and sexism are allowed; mention of competition is strictly forbidden.

Source: mastodon.social/@dansup/113813

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Daniel Supernault's avatar
Daniel Supernault

@[email protected]

See a blog post about a social charter idea (werd.io/2025/building-an-open-)

Create a fedi charter + website

Launch the initiative/website (RespectfulPlatforms.org)

Plan to handover the management to an independent third party, to protect the charter from even me and keep it unbiased

(All in under 12 hours, amazing what's possible when you really believe in the )

Elena Rossini ⁂'s avatar
Elena Rossini ⁂

@[email protected]

TIL that on platforms now one can write terrible, offensive slurs against LGBTQIA+ folks and immigrants… with zero repercussions. But the second one mentions a project like , the post is automatically removed.

Meta “moderation” policies in 2025: racism, xenophobia, transphobia, homophobia and sexism are allowed; mention of competition is strictly forbidden.

Source: mastodon.social/@dansup/113813

pixelfed's avatar
pixelfed

@[email protected]

Stronger Together.
Safer Together.

Now is our time to shine, with real action and progress like RespectfulPlatforms.org

Spread the word.

Elena Rossini ⁂'s avatar
Elena Rossini ⁂

@[email protected]

TIL that on platforms now one can write terrible, offensive slurs against LGBTQIA+ folks and immigrants… with zero repercussions. But the second one mentions a project like , the post is automatically removed.

Meta “moderation” policies in 2025: racism, xenophobia, transphobia, homophobia and sexism are allowed; mention of competition is strictly forbidden.

Source: mastodon.social/@dansup/113813

Elena Rossini ⁂'s avatar
Elena Rossini ⁂

@[email protected]

TIL that on platforms now one can write terrible, offensive slurs against LGBTQIA+ folks and immigrants… with zero repercussions. But the second one mentions a project like , the post is automatically removed.

Meta “moderation” policies in 2025: racism, xenophobia, transphobia, homophobia and sexism are allowed; mention of competition is strictly forbidden.

Source: mastodon.social/@dansup/113813

pixelfed's avatar
pixelfed

@[email protected]

Stronger Together.
Safer Together.

Now is our time to shine, with real action and progress like RespectfulPlatforms.org

Spread the word.

Elena Rossini ⁂'s avatar
Elena Rossini ⁂

@[email protected]

TIL that on platforms now one can write terrible, offensive slurs against LGBTQIA+ folks and immigrants… with zero repercussions. But the second one mentions a project like , the post is automatically removed.

Meta “moderation” policies in 2025: racism, xenophobia, transphobia, homophobia and sexism are allowed; mention of competition is strictly forbidden.

Source: mastodon.social/@dansup/113813

The Internet Review's avatar
The Internet Review

@[email protected]

One of the unsung heroes of the (aka and beyond) are all the great bots available for spicing up your feed. And no, I’m not talking about the nasty bad bots out there which try to slurp up all your content and steal your private details. I’m talking about content bots which humans set up to be fun and amusing! 😆

Check out “My Favorite Fediverse Bots for 2025“ (and download the starter pack CSV!)

theinternet.review/2025/01/06/

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
The Internet Review's avatar
The Internet Review

@[email protected]

One of the unsung heroes of the (aka and beyond) are all the great bots available for spicing up your feed. And no, I’m not talking about the nasty bad bots out there which try to slurp up all your content and steal your private details. I’m talking about content bots which humans set up to be fun and amusing! 😆

Check out “My Favorite Fediverse Bots for 2025“ (and download the starter pack CSV!)

theinternet.review/2025/01/06/

The Internet Review's avatar
The Internet Review

@[email protected]

One of the unsung heroes of the (aka and beyond) are all the great bots available for spicing up your feed. And no, I’m not talking about the nasty bad bots out there which try to slurp up all your content and steal your private details. I’m talking about content bots which humans set up to be fun and amusing! 😆

Check out “My Favorite Fediverse Bots for 2025“ (and download the starter pack CSV!)

theinternet.review/2025/01/06/

The Internet Review's avatar
The Internet Review

@[email protected]

One of the unsung heroes of the (aka and beyond) are all the great bots available for spicing up your feed. And no, I’m not talking about the nasty bad bots out there which try to slurp up all your content and steal your private details. I’m talking about content bots which humans set up to be fun and amusing! 😆

Check out “My Favorite Fediverse Bots for 2025“ (and download the starter pack CSV!)

theinternet.review/2025/01/06/

B's avatar
B

@[email protected]

Hello! I’m Betty, currently exploring for a better social media experience.

I enjoy and . Currently, I’m playing Wonderland Online Mobile (980x).

My posts will feature and pictures, with occasional topics like and . Though English is my second language, I’ll use it for my posts.

I’m glad to be part of the . 🦆✨

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
🌻 Defederate Threads 🌻's avatar
🌻 Defederate Threads 🌻

@[email protected]

Why are developers so evasive on the topic of protocol handlers (prefixes)?

Linux Is Best's avatar
Linux Is Best

@[email protected]

What is CherryPick?

CherryPick is a fork of Misskey, but with more features than Sharkey, and without all the drama (not developed by scammers and trolls).

https://fedidb.org/software/cherrypick

Linux Is Best's avatar
Linux Is Best

@[email protected]

What is CherryPick?

CherryPick is a fork of Misskey, but with more features than Sharkey, and without all the drama (not developed by scammers and trolls).

https://fedidb.org/software/cherrypick

B's avatar
B

@[email protected]

Hello! I’m Betty, currently exploring for a better social media experience.

I enjoy and . Currently, I’m playing Wonderland Online Mobile (980x).

My posts will feature and pictures, with occasional topics like and . Though English is my second language, I’ll use it for my posts.

I’m glad to be part of the . 🦆✨

Paul Sanders's avatar
Paul Sanders

@[email protected]

Is it possible to follow another instances timeline without having an account over there yet?

Or is the only way to follow people/#tags that are in that instance?

B's avatar
B

@[email protected]

Hello! I’m Betty, currently exploring for a better social media experience.

I enjoy and . Currently, I’m playing Wonderland Online Mobile (980x).

My posts will feature and pictures, with occasional topics like and . Though English is my second language, I’ll use it for my posts.

I’m glad to be part of the . 🦆✨

Carlos (Moppelkotzer) :calckey: 🔜 :firefish:'s avatar
Carlos (Moppelkotzer) :calckey: 🔜 :firefish:

@[email protected]

Wie Nutzer das Fediverse sehen (linkes Bild) versus wie alle anderen Nutzer das Fediverse sehen (rechtes Bild).

Wie ein Mastodon User das Fediverse sieht - das bunte Fediverse Logo, aber Verbunden sind ausschließlich Mastodon Server
Wie ein Mastodon User das Fediverse sieht - das bunte Fediverse Logo, aber Verbunden sind ausschließlich Mastodon Server
Wie ein Fediverse User das Fediverse sieht - das Fediverse Logo mit massenweise völlig unterschiedlichen Servern
Wie ein Fediverse User das Fediverse sieht - das Fediverse Logo mit massenweise völlig unterschiedlichen Servern
Tingo's avatar
Tingo

@[email protected]

Without the open source, not-for-sale platforms , including entities such as Wikipedia, the oligarchs would be erasing every voice from the internet they fear or don't like - so, most of them.

Makes these services very precious.

BeAware :fediverse:'s avatar
BeAware :fediverse:

@[email protected]

More like Bluesky is the Wish.com version of the Fediverse.😭

RE: furry.engineer/@Flaky/11380987

IFTAS's avatar
IFTAS

@[email protected]

Respondents to our 2024 Needs Assessment host a collective 4,301,355 accounts - roughly one third of all known accounts (ActivityPub only).

42% of respondents host 100 accounts or fewer; 6 respondents host over 100,000 accounts.

Let’s hear it for the amazing people who area helping create for us all - thank your admin today!

Tingo's avatar
Tingo

@[email protected]

Without the open source, not-for-sale platforms , including entities such as Wikipedia, the oligarchs would be erasing every voice from the internet they fear or don't like - so, most of them.

Makes these services very precious.

Jan Vlug's avatar
Jan Vlug

@[email protected]

Did you know that you can list the new arrivals on ?

Go to Profiles and select the "New arrivals" option.

I have the impression that there are a lot of new arrivals today.

Example link:

mastodon.social/directory?orde

Screenshots of the browse profiles options of Mastodon.
The New arrivals and From known fediverse options are selected.
Screenshots of the browse profiles options of Mastodon. The New arrivals and From known fediverse options are selected.
Cliff O'Lantern 🎃's avatar
Cliff O'Lantern 🎃

@[email protected]

What's the post character count limit for your instance on Mastodon?

Meaning, when you make a post here on Mastodon, how many characters per post can you type?

For example, currently has the default Mastodon 500 character count limit.

If your instance has more than a 1,000 character count limit, please comment and let me know.

Please BOOST for maximum exposure to the

OptionVoters
500 character count limit27 (44%)
501 - 1,000 character count limit2 (3%)
1,001 - 1,500 character count limit7 (11%)
1,501 or more character count limit25 (41%)
IFTAS's avatar
IFTAS

@[email protected]

Respondents to our 2024 Needs Assessment host a collective 4,301,355 accounts - roughly one third of all known accounts (ActivityPub only).

42% of respondents host 100 accounts or fewer; 6 respondents host over 100,000 accounts.

Let’s hear it for the amazing people who area helping create for us all - thank your admin today!

Kazuky Akayashi ฅ^•ﻌ•^ฅ's avatar
Kazuky Akayashi ฅ^•ﻌ•^ฅ

@[email protected]

Y a des fedigens qui on fait le chemin inverse Misskey/Iceshrimp vers mastodon ou Pleroma ? ça fonctionne ?
Le
.csv généré pour les abonnements sous Iceshrimp ne ressemble pas a celui de Mastodon ou Holo c'est un peu chiant quand même.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
theru's avatar
theru

@[email protected]

Good Morning #fediverse #tzag
beetle_b

@[email protected]

Yes, one can add or
to a static site like , or .

Respond to this toot to see your comment show up on my blog post below.

blog.nawaz.org/posts/2025/Jan/

wordsmith‽'s avatar
wordsmith‽

@[email protected]

I was really excited for the in 2024 and I think that feeling has borne out. Projects have released or started in earnest but so did the influenze of facebook, a long-term genocide and queer violence supporter who have this week changed their terms to expressly permit queerphobic and other vicious harms.

beetle_b

@[email protected]

Yes, one can add or
to a static site like , or .

Respond to this toot to see your comment show up on my blog post below.

blog.nawaz.org/posts/2025/Jan/

shellsharks's avatar
shellsharks

@[email protected]

Alright, a little write-up on why I'm checking out #GoToSocial, and how I am hosting the instance - https://shellsharks.com/notes/2025/01/10/gotosocial-on-knt-host

#ownyoursocial #fediverse

shellsharks's avatar
shellsharks

@[email protected]

Alright, a little write-up on why I'm checking out #GoToSocial, and how I am hosting the instance - https://shellsharks.com/notes/2025/01/10/gotosocial-on-knt-host

#ownyoursocial #fediverse

shellsharks's avatar
shellsharks

@[email protected]

Alright, a little write-up on why I'm checking out #GoToSocial, and how I am hosting the instance - https://shellsharks.com/notes/2025/01/10/gotosocial-on-knt-host

#ownyoursocial #fediverse

Aral Balkan's avatar
Aral Balkan

@[email protected]

Is mastodon.social still federating with Meta?

Is Meta still a partner at Social Web Foundation?

mastodon.social/@caseynewton/1

Laurens Hof's avatar
Laurens Hof

@[email protected]

Last Week in Fediverse – ep 98

Welcome back to Fediverse Report! I’ve had a great holiday break spending time with family and friends, and that has given me some more time to think about why I care about the fediverse, the open social web and why I spend all this time writing Fediverse Report. Explaining to family members what I do was helpful to make this clear: telling an uncle that I write about decentralised technology mainly leads to confusion. But even extremely offline family members easily understand and agree with the idea that having all of our big social platforms being owned by billionaires leads to significant social problems.

As such, it has helped for me to make it more explicit that I care about decentralisation insofar it is a tool to get somewhere else: I care about better forms of governance and ownership of the social web. I want a social web where people are in control, not a few billionaires (nor nationstate governments, for that matter). Building social networks with decentralised technology is a way to get there.

The idea that the value of alternative social networks is in governance is far from new. I’ve regularly posted hot takes on my Mastodon to the same effect as well. But for 2025 I want to bring this more into focus for this newsletter. Writing a newsletter that is a weekly update tends to amplify shiny new software that has recently been released. In contrast, explaining how governance works on the fediverse does not align well with ‘this happened in the last 7 days’, as it involves more structural and slower moving forces. I’m experimenting with ways to bring coverage of governance in the fediverse better into focus. Expect more like this newsletter, where I zoom in on an offhanded comment by Misskey developer Syuilo as an illustration of the issues that come with interoperability between different places on the open social web.

The News

Mastodon has belatedly published their Annual Report for 2023. The organisation acknowledges the delay, and says that the Annual Report for 2024 is planned to be released in Q1 of this year. Mastodon had a total of 545k euro in donations in 2023, with 476k in costs. The large majority of costs go to personnel expenses, in total 343k was spend on salaries, 72% of the total budget. The popularity of Mastodon’s own servers also come with significant costs, in 2023 they spend 75k on servers and hosting. With a rough estimate of averaging around 250k active users on mastodon.social, this means mastodon.social costs roughly 30 cents per active user per year. The Annual Report also looks at the updates Mastodon has made to the site and apps. Mastodon also shares more about their hiring process, and in a great move for transparency, also published all the salaries of everyone in the organisation.

Back in the present, Mastodon is hiring again, this time for a senior front-end developer. The organisation also held a crowd-funding campaign in late last year to fund and hire a Trust and Safety lead. The community seemed to have had little appetite for funding such an endeavour, with funding barely pushing past the 12k after a month. It is an indication of the difficult spot the organisation is in; the community has been asking for more safety features in Mastodon, but is not funding a Trust and Safety Lead. The organisation could clearly use someone who writes clear policy and design goals for the direction the software should go in. Currently, not even a Mastodon employee can explain why a safety feature for Mastodon that is fully developed and waiting to be approved has been waiting for approval for over 2.5 years. It turns out that writing the code is often the easy part of making changes in the fediverse, and navigating the social structures to get the code used by people is much harder, and a dedicated Trust and Safety Lead could have certainly helped here. Instead, even after large community outcry we still do not know why Mastodon has not merged this safety feature developed by their own employee.


Surf is a new app by Flipboard for the open social web. It is a beautifully designed app that allows people to build their own custom feeds. The power of Surf is in that it supports many networks, and you can combine posts from Mastodon, Bluesky, Threads, YouTube and Flipboard all into a single custom feed. How Flipboard markets Surf is interesting, describing it as a ‘browser for the social web’. The way Flipboard CEO Mike McCue sees it, Surf pulls in content from the social web, and gives you the possibility to display that content in custom feeds of your choice. Surf also allows you to filter a custom feed by content: for example, you can scroll through an entire feed, or switch over to a different tab that shows only videos in that feed, for example.

For more info on Surf, WeDistribute has a closer look at all the features, and The Verge has more context and comments by McCue. Custom feeds on Bluesky have mainly gone in the direction of the power user and community builder: tools like Graze offer an huge potential in programmability and flexibility. This is especially useful for those who want to build custom feeds that other people will also use. Surf takes a different approach, by instead prompting people to build their own feeds as much as possible. It’ll be interesting to see which approach will gain traction, and if there is space for both ways of building custom feeds.


Misskey developer Syuilo made some comments contemplating breaking federation with Mastodon. Misskey is mainly used in Japan, and has a wide feature set that differs notably from Mastodon. The main reason that Syuilo gave is that she feels Misskey development is constrained by having to meet the needs and requirements of maintaining federation with other (types) of software. That Misskey is considering letting federation between Mastodon and Misskey break is an indication of one of the downsides of how ActivityPub is designed: You can send out anything you want with ActivityPub, but it is exceedingly difficult to know how other software will actually receive and display the things you send out with ActivityPub. There is a significant freedom for fediverse software in how they implement and support even more basic functions. For example, see this comparison table for how the different platforms support hashtags, and how many variations there are.

Personally, I think it would be healthy for the fediverse as a whole if more fediverse software would start publishing what they deem as necessary for other software to federate with them. The fediverse mainly currently works on the assumption that any form of federation between projects is fine, even if that means that another federated platform will stripping out all markup and images of a post. It might be healthy for a platform to state minimum functional requirements, such as ‘we only want to federate with software that also shows the emoji reactions as we view this to be an integral part of a message’. For now, Syuilo’s post mainly seems to be to vent some frustrations, so it remains to be seen where any of this will actually go.

The Links

That’s all for this week, thanks for reading!

fediversereport.com/last-week-

the canopy of a birch tree against a blue sky
the canopy of a birch tree against a blue sky
Sal Sarhangi :verified:'s avatar
Sal Sarhangi :verified:

@[email protected] · Reply to Tim Chambers's post

@tchambers
I applaud you for doing this. On my single user instance I have unfollowed the few threads users that I was following. I am basically done with Meta. Good riddance!

Week in Fediverse's avatar
Week in Fediverse

@[email protected]

Week in Fediverse 2025-01-10

Servers

- Hubzilla v10.0.6
- Akkoma v2025.01
- PeerTube v7.0.1
- Manyfold v0.92.0
- snac v2.68
- Castopod v1.13.3
- Ktistec v2.4.4
- tootik v0.14.1
- Untitled Gaming Social: ActivityPub platform that bridges game screenshots and achievements to the fediverse
- “Event Bridge For ActivityPub” plugin released on WordPress.org

Clients

- Mastodon for Android v2.9.4
- Mastodon for iOS v2024.12
- Dhaaga v0.12.0
- PeerTube Mobile v0.5.5
- Tesseract v1.4.28
- RaccoonForFriendica v0.4.0

Tools and Plugins

- Fedinesia v3.3.2
- poduptime v5.4.2

For developers

- BotKit: A framework for creating ActivityPub bots

Articles

- Fediverse tech roadmap 2025
- Last Week in Fediverse – ep 98

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01942e1c-9727-6a7b-ff14-2a50884355ec

Week in Fediverse's avatar
Week in Fediverse

@[email protected]

Week in Fediverse 2025-01-10

Servers

- Hubzilla v10.0.6
- Akkoma v2025.01
- PeerTube v7.0.1
- Manyfold v0.92.0
- snac v2.68
- Castopod v1.13.3
- Ktistec v2.4.4
- tootik v0.14.1
- Untitled Gaming Social: ActivityPub platform that bridges game screenshots and achievements to the fediverse
- “Event Bridge For ActivityPub” plugin released on WordPress.org

Clients

- Mastodon for Android v2.9.4
- Mastodon for iOS v2024.12
- Dhaaga v0.12.0
- PeerTube Mobile v0.5.5
- Tesseract v1.4.28
- RaccoonForFriendica v0.4.0

Tools and Plugins

- Fedinesia v3.3.2
- poduptime v5.4.2

For developers

- BotKit: A framework for creating ActivityPub bots

Articles

- Fediverse tech roadmap 2025
- Last Week in Fediverse – ep 98

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01942e1c-9727-6a7b-ff14-2a50884355ec

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Week in Fediverse's avatar
Week in Fediverse

@[email protected]

Week in Fediverse 2025-01-10

Servers

- Hubzilla v10.0.6
- Akkoma v2025.01
- PeerTube v7.0.1
- Manyfold v0.92.0
- snac v2.68
- Castopod v1.13.3
- Ktistec v2.4.4
- tootik v0.14.1
- Untitled Gaming Social: ActivityPub platform that bridges game screenshots and achievements to the fediverse
- “Event Bridge For ActivityPub” plugin released on WordPress.org

Clients

- Mastodon for Android v2.9.4
- Mastodon for iOS v2024.12
- Dhaaga v0.12.0
- PeerTube Mobile v0.5.5
- Tesseract v1.4.28
- RaccoonForFriendica v0.4.0

Tools and Plugins

- Fedinesia v3.3.2
- poduptime v5.4.2

For developers

- BotKit: A framework for creating ActivityPub bots

Articles

- Fediverse tech roadmap 2025
- Last Week in Fediverse – ep 98

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01942e1c-9727-6a7b-ff14-2a50884355ec

Week in Fediverse's avatar
Week in Fediverse

@[email protected]

Week in Fediverse 2025-01-10

Servers

- Hubzilla v10.0.6
- Akkoma v2025.01
- PeerTube v7.0.1
- Manyfold v0.92.0
- snac v2.68
- Castopod v1.13.3
- Ktistec v2.4.4
- tootik v0.14.1
- Untitled Gaming Social: ActivityPub platform that bridges game screenshots and achievements to the fediverse
- “Event Bridge For ActivityPub” plugin released on WordPress.org

Clients

- Mastodon for Android v2.9.4
- Mastodon for iOS v2024.12
- Dhaaga v0.12.0
- PeerTube Mobile v0.5.5
- Tesseract v1.4.28
- RaccoonForFriendica v0.4.0

Tools and Plugins

- Fedinesia v3.3.2
- poduptime v5.4.2

For developers

- BotKit: A framework for creating ActivityPub bots

Articles

- Fediverse tech roadmap 2025
- Last Week in Fediverse – ep 98

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01942e1c-9727-6a7b-ff14-2a50884355ec

Erlend Sogge Heggen's avatar
Erlend Sogge Heggen

@[email protected]

First step towards fediverse compatibility in is complete!

All Weird sites (which can have custom domains like my erlend.sh) now automatically verify against Mastodon & co. ✅

writing.exchange/@erlend/11379

Aral Balkan's avatar
Aral Balkan

@[email protected]

Is mastodon.social still federating with Meta?

Is Meta still a partner at Social Web Foundation?

mastodon.social/@caseynewton/1

Maho Pacheco 🦝🍻's avatar
Maho Pacheco 🦝🍻

@[email protected] · Reply to Maho Pacheco 🦝🍻's post

There’s also a discussion about Mastodon and Bluesky. While I’m still bullish about Mastodon and the fediverse, it’s refreshing to hear smart people share their thoughts on it.

Erlend Sogge Heggen's avatar
Erlend Sogge Heggen

@[email protected]

First step towards fediverse compatibility in is complete!

All Weird sites (which can have custom domains like my erlend.sh) now automatically verify against Mastodon & co. ✅

writing.exchange/@erlend/11379

gbhnews's avatar
gbhnews

@[email protected]

🌞 Hello ! This is GBH bringing you the world from . It's 33F at Logan Airport and visibility is 10mi.

Wildfires continue to rage in and around Los Angeles. PBS Southern California is off the air, though still streaming.

Trump's efforts to quash his sentencing in the hush money case failed, but the judge in the case declined to impose any punishment.

Anita Bryant, known for her opposition to LGBTQ+ rights, has died. She was 84.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@[email protected]

the Fediverse Core.

I.e., the people who make the technology of and for the Fediverse.

fedidevs.com/s/MTI1/

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
gbhnews's avatar
gbhnews

@[email protected]

🌞 Hello ! This is GBH bringing you the world from . It's 33F at Logan Airport and visibility is 10mi.

Wildfires continue to rage in and around Los Angeles. PBS Southern California is off the air, though still streaming.

Trump's efforts to quash his sentencing in the hush money case failed, but the judge in the case declined to impose any punishment.

Anita Bryant, known for her opposition to LGBTQ+ rights, has died. She was 84.

Henning Uhle's avatar
Henning Uhle

@[email protected]

Ich hab mir jetzt nen -Account angelegt und auch nen -Account. Und jetzt? Ich hab mal was gehört, dass ich beides mit und mit meinem verpopeln kann. Stimmt das? Und wie mache ich das?

Jaja, ich bin einfältig. Aber wer weiß, vielleicht mache ich doch mehr im ? Niemand kann in die Zukunft gucken.

Pixelfed: pixelfed.de/HenningUhle
Friendica: [email protected]

Und geht irgendwie ein Connect zu und so?

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Universität Innsbruck's avatar
Universität Innsbruck

@[email protected]

63 Hochschulen und Forschungsinstitutionen verlassen heute gemeinsam die Plattform X.

Wir haben das schon vor über einem Jahr getan und fühlen uns hier auf Mastodon im Fediverse sehr wohl.

Wir solidarisieren uns mit den Anliegen der heutigen Ausstiegsaktion und sind Teil der unterstützenden Institutionen: uibk.ac.at/de/newsroom/2025/me

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Stefan Bohacek's avatar
Stefan Bohacek

@[email protected] · Reply to Stefan Bohacek's post

Hmm, and now hachyderm.io. With a very detailed explanation.

"There’s no perfect “calculation” here, but essentially the long-term risk/reward ratio went from overall medium-high to very low because of how significantly these policy changes increase risk of harm."

community.hachyderm.io/blog/20

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Universität Innsbruck's avatar
Universität Innsbruck

@[email protected]

63 Hochschulen und Forschungsinstitutionen verlassen heute gemeinsam die Plattform X.

Wir haben das schon vor über einem Jahr getan und fühlen uns hier auf Mastodon im Fediverse sehr wohl.

Wir solidarisieren uns mit den Anliegen der heutigen Ausstiegsaktion und sind Teil der unterstützenden Institutionen: uibk.ac.at/de/newsroom/2025/me

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
matzipan's avatar
matzipan

@[email protected]

apps need a “subscribe to thread” functionality. There are so many interesting threads and questions that I see that I would like to see the future responses to.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
matzipan's avatar
matzipan

@[email protected]

apps need a “subscribe to thread” functionality. There are so many interesting threads and questions that I see that I would like to see the future responses to.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
chef 😎's avatar
chef 😎

@[email protected]

Right, it is time to move away from Facebook.

I need some advice on how to get on to friendica (or a different alternative).

Which server do I choose?

Can I migrate content, contacts or images from other social media sites to friendica?

Don't just want to register without understanding the basic setup first.

Any recommendations? Suggestions? Links?

German or English - doesn't matter.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
NiceMicro's avatar
NiceMicro

@[email protected] · Reply to Kat Marchán 🐈's post

@zkat interesting. IMO once the instances are widely federated, anything one posts into the fediverse, it's out there propagating all over the place, and the OP has no control over what's going to happen to that post, does it get into a search database? Meta's AI tools?

The best we can is be mindful of that before hitting the Post button, on the globally federated instances.

For private and safe spaces one probably nees to limit federation to pre-approved instances.

Daniel Supernault's avatar
Daniel Supernault

@[email protected]

Yeah, just because you can scrape the fedi, doesn't mean you should.

I put my Starter Kit project on hold because even though the Discovery flag that Mastodon/Pixelfed support could be considered consent, I want to make it explicitly opt-in via DM confirmation.

We can do this right.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Roede Orm's avatar
Roede Orm

@[email protected]

Gibt es eine Fediverse Anwendung (App), die sich - gerade auf dem Smartphone - so ähnlich anfühlt, wie ? Die am besten noch einfach zu installieren ist?

So könnten Freunde und Bekannte von weg gelockt und ins gebracht werden. Es sollte für den Durchschnittsnutzer einfach sein, anzukommen!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, InProcessMessageQueue, MemoryKvStore, mention, text, } from "@fedify/botkit"; // Create a bot instance: const bot = createBot<void>({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the display name: name: "Greet Bot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: summary: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]")}.`, // Store data in memory (for development): kv: new MemoryKvStore(), // Use in-process message queue (for development): queue: new InProcessMessageQueue(), }); // A bot can respond to a mention: bot.onMention = async (session, message) => { await message.reply(text`Hi, ${message.actor}!`); }; // Or, a bot also can actively publish a post: const session = bot.getSession("https://mydomain/"); setInterval(async () => { await session.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Surf's avatar
Surf

@[email protected]

New here? Don't forget to sign up for the Surf waitlist 🏄‍♂️. Surf is a new way to browse the social web and create feeds that serve you, not some monopolistic platform.

waitlist.surf.social/

Jan Vlug's avatar
Jan Vlug

@[email protected]

Did you know that you can list the new arrivals on ?

Go to Profiles and select the "New arrivals" option.

I have the impression that there are a lot of new arrivals today.

Example link:

mastodon.social/directory?orde

Screenshots of the browse profiles options of Mastodon.
The New arrivals and From known fediverse options are selected.
Screenshots of the browse profiles options of Mastodon. The New arrivals and From known fediverse options are selected.
lps's avatar
lps

@[email protected]

If you prefer a more presentation when following or accounts, it's easy!

Create a account like you did for pixelfed.org/servers

Then, if you find an artist that you want to follow from there, due to the nicer layout for that type of content, just copy and paste their account

ex. @nicetriangle into the search bar and voila ... you're following from there (where you can also comment)

Following a mastodon account from pixelfed
Following a mastodon account from pixelfed
lps's avatar
lps

@[email protected]

If you prefer a more presentation when following or accounts, it's easy!

Create a account like you did for pixelfed.org/servers

Then, if you find an artist that you want to follow from there, due to the nicer layout for that type of content, just copy and paste their account

ex. @nicetriangle into the search bar and voila ... you're following from there (where you can also comment)

Following a mastodon account from pixelfed
Following a mastodon account from pixelfed
Raccoon at TechHub :mastodon:'s avatar
Raccoon at TechHub :mastodon:

@[email protected] · Reply to The Verge's post

@theverge @the-verge-theverge
Counter recommendation:

If you are thinking of deleting your / account over the recent policy changes around and other , consider instead posting a few messages telling people to follow you on Fedi, using your account as a way to call out the policies that are making you leave and bring people here. Post some links to JoinMastodon.org and turn your account into an ad for the and and .

Don't just walk away, take some other users with you, make yourself a nuisance they have to ban to get rid of. See if they are even up to the task.

gbhnews's avatar
gbhnews

@[email protected]

Hello - this is GBH bringing you the world from . It's 24F at Logan Airport and visibility is 9mi. Some flurries ❄️

Former President Jimmy Carter's funeral service is underway at the National Cathedral in Washington, D.C.

LA's wildfires continue to burn, with Hollywood currently under threat.

Some public schools will close or merge amid declining enrollment.

gbhnews's avatar
gbhnews

@[email protected]

Hello - this is GBH bringing you the world from . It's 24F at Logan Airport and visibility is 9mi. Some flurries ❄️

Former President Jimmy Carter's funeral service is underway at the National Cathedral in Washington, D.C.

LA's wildfires continue to burn, with Hollywood currently under threat.

Some public schools will close or merge amid declining enrollment.

Roni Laukkarinen's avatar
Roni Laukkarinen

@[email protected]

"Mastodon is so silent. Nobody's there except your two Linux nerd friends."

EDIT: The feed has been shut down. More info: github.com/ronilaukkarinen/fed

fedionfire.stream

B's avatar
B

@[email protected]

Do I need separate accounts for and if I want one as an alternative and the other for more content?

mdmrn's avatar
mdmrn

@[email protected]

"Literally me," he says to himself as he boosts a post he made on a different platform.

mdmrn's avatar
mdmrn

@[email protected]

"Literally me," he says to himself as he boosts a post he made on a different platform.

Enalys :enalys:'s avatar
Enalys :enalys:

@[email protected]

Some Fedi instances have a “verified” badge that look like the blue one from TwiXter, I guess it would be great to see theses instances create a “verified” badge of their own because fuck TwiXter.

Jessie Nabein :neofox_peek_owo:'s avatar
Jessie Nabein :neofox_peek_owo:

@[email protected]

Hey so at some point changed the way that notifications work, and I can only clear ALL my notifications instead of SPECIFIC notifications.

I hate this change and I wish it never happened.

Please someone tell me there's a way to revert this; same shit happens with Tusky too...

Roni Laukkarinen's avatar
Roni Laukkarinen

@[email protected]

"Mastodon is so silent. Nobody's there except your two Linux nerd friends."

EDIT: The feed has been shut down. More info: github.com/ronilaukkarinen/fed

fedionfire.stream

FediThing 🏳️‍🌈's avatar
FediThing 🏳️‍🌈

@[email protected]

Dear god people, look at what Meta is now saying:

"We do allow allegations of mental illness or abnormality when based on gender or sexual orientation"

...look at it. This is 1930s stuff 😞

If you haven't defederated Meta/Threads yet, now is absolutely the perfect time to do so.

AJ Sadauskas's avatar
AJ Sadauskas

@[email protected]

The past few days, I've been toying with the idea of setting up a single-user Mastodon instance.

I'm currently looking at Masto.host as a hosting provider. The prices seem reasonable?

First, for those who have rolled their own instance: How has the experience been? Any advice you'd share with a self-hosting newbie? Any pitfalls or downsides?

Have you gone with a specialist managed prover like Masto.host?

Are there any major advantages or disadvantages over a vanilla cPanel web hosting provider that supports Mastodon?

Another option I'm toying with is using a single instance of Friendica as my Fedi home, and consolidating everything there, including photos.

Are there any managed hosting providers that support Friendica?

Aral Balkan's avatar
Aral Balkan

@[email protected]

So this is apparently NOT enough for mastodon.social to defederate Threads.

What a complete and utter betrayal.

news.sky.com/story/metas-new-g

Aral Balkan's avatar
Aral Balkan

@[email protected]

So this is apparently NOT enough for mastodon.social to defederate Threads.

What a complete and utter betrayal.

news.sky.com/story/metas-new-g

Harlx's avatar
Harlx

@[email protected] · Reply to Eugen Rochko's post

@Gargron I agree, I imagine we might see a spike in sign ups on the in the coming weeks and days

AOE, Takashi's avatar
AOE, Takashi

@[email protected]

先日のしゅいろさんの発言がこんなところにまで伝わっている。著者はこれはActivityPubの課題であると指摘していて、あるソフトウェアが他のソフトウェアと連合するにあたって機能要件を表明するというのは健全なことなのではとコメントしているね。

/ Last Week in Fediverse – ep 98 – The Fediverse Report fediversereport.com/last-week-

[参照]

Stefano Marinelli's avatar
Stefano Marinelli

@[email protected]

Some technical details for those interested:
The entire FediMeteo setup runs on a FreeBSD VM costing around 4 euros per month. It supports almost all major EU countries (plus the UK), with just a few left to complete. Currently, there are 25 separate jails, each running its own instance of snac, totaling 25 instances. The VM load typically stays around 10%, which increases to 30% when updates are published for countries with larger numbers of cities (currently Germany and Italy). The only time the load spikes is when new countries are announced; during that time, all remote instances connect to all cities to download their details.
As for RAM usage, excluding the ZFS cache, it's currently a total of 213 MB. Yes, MB.

AOE, Takashi's avatar
AOE, Takashi

@[email protected]

先日のしゅいろさんの発言がこんなところにまで伝わっている。著者はこれはActivityPubの課題であると指摘していて、あるソフトウェアが他のソフトウェアと連合するにあたって機能要件を表明するというのは健全なことなのではとコメントしているね。

/ Last Week in Fediverse – ep 98 – The Fediverse Report fediversereport.com/last-week-

[参照]

AOE, Takashi's avatar
AOE, Takashi

@[email protected]

先日のしゅいろさんの発言がこんなところにまで伝わっている。著者はこれはActivityPubの課題であると指摘していて、あるソフトウェアが他のソフトウェアと連合するにあたって機能要件を表明するというのは健全なことなのではとコメントしているね。

/ Last Week in Fediverse – ep 98 – The Fediverse Report fediversereport.com/last-week-

[参照]

Laurens Hof's avatar
Laurens Hof

@[email protected]

Last Week in Fediverse – ep 98

Welcome back to Fediverse Report! I’ve had a great holiday break spending time with family and friends, and that has given me some more time to think about why I care about the fediverse, the open social web and why I spend all this time writing Fediverse Report. Explaining to family members what I do was helpful to make this clear: telling an uncle that I write about decentralised technology mainly leads to confusion. But even extremely offline family members easily understand and agree with the idea that having all of our big social platforms being owned by billionaires leads to significant social problems.

As such, it has helped for me to make it more explicit that I care about decentralisation insofar it is a tool to get somewhere else: I care about better forms of governance and ownership of the social web. I want a social web where people are in control, not a few billionaires (nor nationstate governments, for that matter). Building social networks with decentralised technology is a way to get there.

The idea that the value of alternative social networks is in governance is far from new. I’ve regularly posted hot takes on my Mastodon to the same effect as well. But for 2025 I want to bring this more into focus for this newsletter. Writing a newsletter that is a weekly update tends to amplify shiny new software that has recently been released. In contrast, explaining how governance works on the fediverse does not align well with ‘this happened in the last 7 days’, as it involves more structural and slower moving forces. I’m experimenting with ways to bring coverage of governance in the fediverse better into focus. Expect more like this newsletter, where I zoom in on an offhanded comment by Misskey developer Syuilo as an illustration of the issues that come with interoperability between different places on the open social web.

The News

Mastodon has belatedly published their Annual Report for 2023. The organisation acknowledges the delay, and says that the Annual Report for 2024 is planned to be released in Q1 of this year. Mastodon had a total of 545k euro in donations in 2023, with 476k in costs. The large majority of costs go to personnel expenses, in total 343k was spend on salaries, 72% of the total budget. The popularity of Mastodon’s own servers also come with significant costs, in 2023 they spend 75k on servers and hosting. With a rough estimate of averaging around 250k active users on mastodon.social, this means mastodon.social costs roughly 30 cents per active user per year. The Annual Report also looks at the updates Mastodon has made to the site and apps. Mastodon also shares more about their hiring process, and in a great move for transparency, also published all the salaries of everyone in the organisation.

Back in the present, Mastodon is hiring again, this time for a senior front-end developer. The organisation also held a crowd-funding campaign in late last year to fund and hire a Trust and Safety lead. The community seemed to have had little appetite for funding such an endeavour, with funding barely pushing past the 12k after a month. It is an indication of the difficult spot the organisation is in; the community has been asking for more safety features in Mastodon, but is not funding a Trust and Safety Lead. The organisation could clearly use someone who writes clear policy and design goals for the direction the software should go in. Currently, not even a Mastodon employee can explain why a safety feature for Mastodon that is fully developed and waiting to be approved has been waiting for approval for over 2.5 years. It turns out that writing the code is often the easy part of making changes in the fediverse, and navigating the social structures to get the code used by people is much harder, and a dedicated Trust and Safety Lead could have certainly helped here. Instead, even after large community outcry we still do not know why Mastodon has not merged this safety feature developed by their own employee.


Surf is a new app by Flipboard for the open social web. It is a beautifully designed app that allows people to build their own custom feeds. The power of Surf is in that it supports many networks, and you can combine posts from Mastodon, Bluesky, Threads, YouTube and Flipboard all into a single custom feed. How Flipboard markets Surf is interesting, describing it as a ‘browser for the social web’. The way Flipboard CEO Mike McCue sees it, Surf pulls in content from the social web, and gives you the possibility to display that content in custom feeds of your choice. Surf also allows you to filter a custom feed by content: for example, you can scroll through an entire feed, or switch over to a different tab that shows only videos in that feed, for example.

For more info on Surf, WeDistribute has a closer look at all the features, and The Verge has more context and comments by McCue. Custom feeds on Bluesky have mainly gone in the direction of the power user and community builder: tools like Graze offer an huge potential in programmability and flexibility. This is especially useful for those who want to build custom feeds that other people will also use. Surf takes a different approach, by instead prompting people to build their own feeds as much as possible. It’ll be interesting to see which approach will gain traction, and if there is space for both ways of building custom feeds.


Misskey developer Syuilo made some comments contemplating breaking federation with Mastodon. Misskey is mainly used in Japan, and has a wide feature set that differs notably from Mastodon. The main reason that Syuilo gave is that she feels Misskey development is constrained by having to meet the needs and requirements of maintaining federation with other (types) of software. That Misskey is considering letting federation between Mastodon and Misskey break is an indication of one of the downsides of how ActivityPub is designed: You can send out anything you want with ActivityPub, but it is exceedingly difficult to know how other software will actually receive and display the things you send out with ActivityPub. There is a significant freedom for fediverse software in how they implement and support even more basic functions. For example, see this comparison table for how the different platforms support hashtags, and how many variations there are.

Personally, I think it would be healthy for the fediverse as a whole if more fediverse software would start publishing what they deem as necessary for other software to federate with them. The fediverse mainly currently works on the assumption that any form of federation between projects is fine, even if that means that another federated platform will stripping out all markup and images of a post. It might be healthy for a platform to state minimum functional requirements, such as ‘we only want to federate with software that also shows the emoji reactions as we view this to be an integral part of a message’. For now, Syuilo’s post mainly seems to be to vent some frustrations, so it remains to be seen where any of this will actually go.

The Links

That’s all for this week, thanks for reading!

fediversereport.com/last-week-

the canopy of a birch tree against a blue sky
the canopy of a birch tree against a blue sky
AOE, Takashi's avatar
AOE, Takashi

@[email protected]

先日のしゅいろさんの発言がこんなところにまで伝わっている。著者はこれはActivityPubの課題であると指摘していて、あるソフトウェアが他のソフトウェアと連合するにあたって機能要件を表明するというのは健全なことなのではとコメントしているね。

/ Last Week in Fediverse – ep 98 – The Fediverse Report fediversereport.com/last-week-

[参照]

AOE, Takashi's avatar
AOE, Takashi

@[email protected]

先日のしゅいろさんの発言がこんなところにまで伝わっている。著者はこれはActivityPubの課題であると指摘していて、あるソフトウェアが他のソフトウェアと連合するにあたって機能要件を表明するというのは健全なことなのではとコメントしているね。

/ Last Week in Fediverse – ep 98 – The Fediverse Report fediversereport.com/last-week-

[参照]

AOE, Takashi's avatar
AOE, Takashi

@[email protected]

先日のしゅいろさんの発言がこんなところにまで伝わっている。著者はこれはActivityPubの課題であると指摘していて、あるソフトウェアが他のソフトウェアと連合するにあたって機能要件を表明するというのは健全なことなのではとコメントしているね。

/ Last Week in Fediverse – ep 98 – The Fediverse Report fediversereport.com/last-week-

[参照]

AOE, Takashi's avatar
AOE, Takashi

@[email protected]

先日のしゅいろさんの発言がこんなところにまで伝わっている。著者はこれはActivityPubの課題であると指摘していて、あるソフトウェアが他のソフトウェアと連合するにあたって機能要件を表明するというのは健全なことなのではとコメントしているね。

/ Last Week in Fediverse – ep 98 – The Fediverse Report fediversereport.com/last-week-

[参照]

AOE, Takashi's avatar
AOE, Takashi

@[email protected]

先日のしゅいろさんの発言がこんなところにまで伝わっている。著者はこれはActivityPubの課題であると指摘していて、あるソフトウェアが他のソフトウェアと連合するにあたって機能要件を表明するというのは健全なことなのではとコメントしているね。

/ Last Week in Fediverse – ep 98 – The Fediverse Report fediversereport.com/last-week-

[参照]

Stefano Marinelli's avatar
Stefano Marinelli

@[email protected]

Some technical details for those interested:
The entire FediMeteo setup runs on a FreeBSD VM costing around 4 euros per month. It supports almost all major EU countries (plus the UK), with just a few left to complete. Currently, there are 25 separate jails, each running its own instance of snac, totaling 25 instances. The VM load typically stays around 10%, which increases to 30% when updates are published for countries with larger numbers of cities (currently Germany and Italy). The only time the load spikes is when new countries are announced; during that time, all remote instances connect to all cities to download their details.
As for RAM usage, excluding the ZFS cache, it's currently a total of 213 MB. Yes, MB.

Darren du Nord's avatar
Darren du Nord

@[email protected] · Reply to Mike Mixtape's post

@MikeMixtape
Just know that the is a vast place. Mastodon is just one app. Its a place where networks interact, where users are not locked in, and corporations dont dominate. Its worth building and supporting.

Debacle's avatar
Debacle

@[email protected] · Reply to Matthias's post

@feb

Du schreibst es selbst: Signal passt und gehört da nicht rein. Es ist ein centralised, walled garden in der Amazon cloud.

Zwar von sympathischeren Menschen betrieben als Mark Z. und mit einem weniger toxischen business model.

Aber mit den Werten des , , Option des , Clients, offenen Schnittstellen usw. hat es nichts zu tun.

Lieber /, Matrix, DeltaChat, Briar uvam. die alle federiert oder dezentral sind.

Jan Jansen's avatar
Jan Jansen

@[email protected]

Vielleicht kann uns ja das lokale helfen!

Wir suchen eine Haushaltshilfe bzw Putzkraft die dafür sorgt, dass zumindest einmal die Woche gesaugt und geputzt ist.
Ca 3h die Woche in
Falls ihr jemanden kennt bitte vermitteln! Danke!

David Revoy's avatar
David Revoy

@[email protected]

Meta: OH, COME ON. ISN'T THAT BETTER NOW?


A giant reaper stands in front of a presentation. It's my allegory of Meta: a headband with Meta logo, and a chain around her neck with the WhatsApp, Facebook and Instagram golden logo. She hold a brush and a paint bucket with red painting. She looks angry at her audience and not really understanding. 
In background, her presentation screen: the Fediverse logo in big, with the word "THREATS" on the top and arrows going to the logo. The words "THREATS" was fixed to "THREADS" with red painting on the D. 
A  group of Fediverse mascots in foreground are anxious and group themselves closely, shacking, in front of this new proposal of the reaper.

License: "Meta proposing Threads to the Fediverse" by David Revoy, with mascots of Mastodon, Pleroma-tan, AI, Lemmy, Sepia, Fediverse logo, and with fair-use of copyrighted Meta's logos − CC-BY 4.0
A giant reaper stands in front of a presentation. It's my allegory of Meta: a headband with Meta logo, and a chain around her neck with the WhatsApp, Facebook and Instagram golden logo. She hold a brush and a paint bucket with red painting. She looks angry at her audience and not really understanding. In background, her presentation screen: the Fediverse logo in big, with the word "THREATS" on the top and arrows going to the logo. The words "THREATS" was fixed to "THREADS" with red painting on the D. A group of Fediverse mascots in foreground are anxious and group themselves closely, shacking, in front of this new proposal of the reaper. License: "Meta proposing Threads to the Fediverse" by David Revoy, with mascots of Mastodon, Pleroma-tan, AI, Lemmy, Sepia, Fediverse logo, and with fair-use of copyrighted Meta's logos − CC-BY 4.0
Em :official_verified:'s avatar
Em :official_verified:

@[email protected]

If you just joined the Fediverse
in search of a more inclusive community, welcome :heart_pride: :trans_heart: :blobcatheart:

While the Fediverse also has its challenges, it is a community constantly trying to improve for its people, and away from the danger of the monetization of hate.

If you feel lost and are in need of advice:

1. I wrote these tiny tips to help you feel at home in no time: infosec.exchange/@Em0nM4stodon

2. Feel free to ask questions around! People will be happy to help. Hashtags are important here. If you have a question related to Mastodon for example, use

3. Be patient. Be you. Explore. Follow many to build a full feed (it is more important here because there is no algorithm).

Make yourself at home 🏡💚

Roni Laukkarinen's avatar
Roni Laukkarinen

@[email protected]

Lots of new folks taken interest in to Mastodon, because of Meta. Let's welcome new people :happy_fox:

Harlx's avatar
Harlx

@[email protected] · Reply to Eugen Rochko's post

@Gargron I agree, I imagine we might see a spike in sign ups on the in the coming weeks and days

Moritz Strohm's avatar
Moritz Strohm

@[email protected]

Reminder:

In case the administrators of your Mastodon, Peertube, Pixelfed or other fediverse service instance accept donations for their voluntary work, please donate to them if you can afford it to keep the service running in the long time.

Moritz Strohm's avatar
Moritz Strohm

@[email protected]

Reminder:

In case the administrators of your Mastodon, Peertube, Pixelfed or other fediverse service instance accept donations for their voluntary work, please donate to them if you can afford it to keep the service running in the long time.

Stefano Marinelli's avatar
Stefano Marinelli

@[email protected]

Some technical details for those interested:
The entire FediMeteo setup runs on a FreeBSD VM costing around 4 euros per month. It supports almost all major EU countries (plus the UK), with just a few left to complete. Currently, there are 25 separate jails, each running its own instance of snac, totaling 25 instances. The VM load typically stays around 10%, which increases to 30% when updates are published for countries with larger numbers of cities (currently Germany and Italy). The only time the load spikes is when new countries are announced; during that time, all remote instances connect to all cities to download their details.
As for RAM usage, excluding the ZFS cache, it's currently a total of 213 MB. Yes, MB.

Jan Jansen's avatar
Jan Jansen

@[email protected]

Vielleicht kann uns ja das lokale helfen!

Wir suchen eine Haushaltshilfe bzw Putzkraft die dafür sorgt, dass zumindest einmal die Woche gesaugt und geputzt ist.
Ca 3h die Woche in
Falls ihr jemanden kennt bitte vermitteln! Danke!

Roni Laukkarinen's avatar
Roni Laukkarinen

@[email protected]

Lots of new folks taken interest in to Mastodon, because of Meta. Let's welcome new people :happy_fox:

Roni Laukkarinen's avatar
Roni Laukkarinen

@[email protected]

Lots of new folks taken interest in to Mastodon, because of Meta. Let's welcome new people :happy_fox:

Roni Laukkarinen's avatar
Roni Laukkarinen

@[email protected]

I get asked very often "how do you keep up with all the posts because you follow thousands of people?"

Well, I don't. And you shouldn't either. It's a general misconception that you should always be up to speed with the world.

Nobody can keep up with anything online. And we are not supposed to. If my mom calls me or I receive a traditional letter by mail, that's something I can keep up with. Not feeds or stories online. That is not the place of FOMO, every nanosecond we miss something.

I try to live in the present, I check my social media whenever I feel like it. I add the core folks to a list, but I don't try to keep up with them either. It's life.

This doesn't mean you shouldn't follow people or the followed folks don't matter. On the contrary. I follow anything or anyone that I show even tiniest bit of interest, that's the best way to make my feed most alive.

Sean Tilley's avatar
Sean Tilley

@[email protected]

We intend to publish the @radiofreefedi article sometime next week. One thing I would like to do for the #Fediverse music community is to offer the opportunity to put up something at the bottom of our article.

I’ve begun sourcing testimonies, thanks, and kind words from community members that have said things. All added with permission, of course! But, I really think it’s important that we show just how many lives this project touched.

If you have something you would like to put up, please DM me.

Testimonies / Kind words / Showing Appreciation section of an upcoming We Distribute article about Radio Free Fedi
Testimonies / Kind words / Showing Appreciation section of an upcoming We Distribute article about Radio Free Fedi
Eric McCorkle's avatar
Eric McCorkle

@[email protected]

Fediverse suggestions request: I'm looking for platforms and likely hosting for blogging. I've heard of and I know WordPress is also supported.

I'm looking to do two things: first, write about likely tech politics and open source. This will likely be a conventional old school blog.

Second, possibly separately, I'm looking to write up notes from my physics studies. This will necessitate solid LaTeX support.

@FediTips

Roni Laukkarinen's avatar
Roni Laukkarinen

@[email protected]

Because of X and Meta fucking things up once again, people are talking about abandoning social media, because there are no corporate free alternatives. Right.

Sam's avatar
Sam

@[email protected]

Halloooo, das Jahr nimmt langsam Fahrt auf und die Vorbereitungen für die Infoveranstaltung zum Fediverse an der Uni Münster laufen auf Hochtouren.

Freut euch unter anderem, auf ein Interview mit @ghooffacker zu Perspektiven aus der Wissenschaft zum Thema Fediverse und Mastodon. Wenn ihr mehr dazu erfahren wollt, kommt am 13.01. vorbei oder habt noch etwas mehr Geduld bis das Ganze auch online landet :)

Em :official_verified:'s avatar
Em :official_verified:

@[email protected]

If you just joined the Fediverse
in search of a more inclusive community, welcome :heart_pride: :trans_heart: :blobcatheart:

While the Fediverse also has its challenges, it is a community constantly trying to improve for its people, and away from the danger of the monetization of hate.

If you feel lost and are in need of advice:

1. I wrote these tiny tips to help you feel at home in no time: infosec.exchange/@Em0nM4stodon

2. Feel free to ask questions around! People will be happy to help. Hashtags are important here. If you have a question related to Mastodon for example, use

3. Be patient. Be you. Explore. Follow many to build a full feed (it is more important here because there is no algorithm).

Make yourself at home 🏡💚

Em :official_verified:'s avatar
Em :official_verified:

@[email protected]

If you just joined the Fediverse
in search of a more inclusive community, welcome :heart_pride: :trans_heart: :blobcatheart:

While the Fediverse also has its challenges, it is a community constantly trying to improve for its people, and away from the danger of the monetization of hate.

If you feel lost and are in need of advice:

1. I wrote these tiny tips to help you feel at home in no time: infosec.exchange/@Em0nM4stodon

2. Feel free to ask questions around! People will be happy to help. Hashtags are important here. If you have a question related to Mastodon for example, use

3. Be patient. Be you. Explore. Follow many to build a full feed (it is more important here because there is no algorithm).

Make yourself at home 🏡💚

katzenberger's avatar
katzenberger

@[email protected] · Reply to Evan Prodromou's post

@evan

If you are looking for a hypocrite determined to open the gates for , and later proudly counting Meta among his "advisors" for his "Social Web Foundation", here is one, Dec 7 2023 at Meta’s San Francisco office location, at an "invitation only event", discussing Meta's plans.

"Photo arranged by Tantek Çelik with photo participants opting-in to public sharing."

[Update: calling out this hypocrite, with references, got me blocked by him. The Internet Archive never forgets, though.]

web.archive.org/web/2024081510

web.archive.org/web/2024092414

Participants' group photo of an invitation-only event for a discussion on Threads Interoperating in the Fediverse at Meta’s San Francisco office location.

The head of Evan Prodromou is marked by a red rectangular frame.
 
"Photo arranged by Tantek Çelik with photo participants opting-in to public sharing."
Participants' group photo of an invitation-only event for a discussion on Threads Interoperating in the Fediverse at Meta’s San Francisco office location. The head of Evan Prodromou is marked by a red rectangular frame. "Photo arranged by Tantek Çelik with photo participants opting-in to public sharing."
Roni Laukkarinen's avatar
Roni Laukkarinen

@[email protected]

Lots of new folks taken interest in to Mastodon, because of Meta. Let's welcome new people :happy_fox:

Surf's avatar
Surf

@[email protected]

Man, yesterday was a doozy. We can’t agree with every platform’s decisions, but we can vote with our feet.

Surf wants to free our social connections from being locked up in separate self-serving networks. It’s a no-nonsense browser for the open social web that lets you easily create and surf custom feeds that organize people, videos, articles and podcasts around the things you care about.

Join the waitlist today: waitlist.surf.social/

Surf's avatar
Surf

@[email protected]

Man, yesterday was a doozy. We can’t agree with every platform’s decisions, but we can vote with our feet.

Surf wants to free our social connections from being locked up in separate self-serving networks. It’s a no-nonsense browser for the open social web that lets you easily create and surf custom feeds that organize people, videos, articles and podcasts around the things you care about.

Join the waitlist today: waitlist.surf.social/

Surf's avatar
Surf

@[email protected]

Man, yesterday was a doozy. We can’t agree with every platform’s decisions, but we can vote with our feet.

Surf wants to free our social connections from being locked up in separate self-serving networks. It’s a no-nonsense browser for the open social web that lets you easily create and surf custom feeds that organize people, videos, articles and podcasts around the things you care about.

Join the waitlist today: waitlist.surf.social/

Surf's avatar
Surf

@[email protected]

Man, yesterday was a doozy. We can’t agree with every platform’s decisions, but we can vote with our feet.

Surf wants to free our social connections from being locked up in separate self-serving networks. It’s a no-nonsense browser for the open social web that lets you easily create and surf custom feeds that organize people, videos, articles and podcasts around the things you care about.

Join the waitlist today: waitlist.surf.social/

Surf's avatar
Surf

@[email protected]

Man, yesterday was a doozy. We can’t agree with every platform’s decisions, but we can vote with our feet.

Surf wants to free our social connections from being locked up in separate self-serving networks. It’s a no-nonsense browser for the open social web that lets you easily create and surf custom feeds that organize people, videos, articles and podcasts around the things you care about.

Join the waitlist today: waitlist.surf.social/

Raccoon at TechHub :mastodon:'s avatar
Raccoon at TechHub :mastodon:

@[email protected] · Reply to nat's post

@nat
Just wanted to say, @nullagent is an in and Accountability who I have been following for some time. He has been a very active member of both the community here on the , and the community, despite enduring and attacks.

If anyone has some money to spend on aid requests, and especially if you want to elevate , NullAgent is someone worth helping with his bills.

ko-fi.com/nullagent

Stefan Bohacek's avatar
Stefan Bohacek

@[email protected]

Applauding decisions of moderators like @stux and @jerry to stand up for their communities. ✊

"The new Meta policy goes against much we stand for and we will not allow to let it spill over to the Fediverse"

mstdn.social/@stux/11379389511

infosec.exchange/@jerry/113793

Rob Carlson's avatar
Rob Carlson

@[email protected]

Honest question: have and mods seen actual bad behavior originating from threads.net accounts? I totally get the impetus to block and limit based on the bad behavior that *will predictably* arrive soon but I've never seen actual bad behavior here in my little leaf node.

Roni Laukkarinen's avatar
Roni Laukkarinen

@[email protected]

I get asked very often "how do you keep up with all the posts because you follow thousands of people?"

Well, I don't. And you shouldn't either. It's a general misconception that you should always be up to speed with the world.

Nobody can keep up with anything online. And we are not supposed to. If my mom calls me or I receive a traditional letter by mail, that's something I can keep up with. Not feeds or stories online. That is not the place of FOMO, every nanosecond we miss something.

I try to live in the present, I check my social media whenever I feel like it. I add the core folks to a list, but I don't try to keep up with them either. It's life.

This doesn't mean you shouldn't follow people or the followed folks don't matter. On the contrary. I follow anything or anyone that I show even tiniest bit of interest, that's the best way to make my feed most alive.

Blort™ 🐀Ⓥ🥋☣️'s avatar
Blort™ 🐀Ⓥ🥋☣️

@[email protected]

I'm very happy to see @kagihq joining Peertube with their inaugural video below about what makes Kagi independent search special!

tilvids.com/w/twGQeYV9c1TGwMmb

Remember to follow their Peertube account at @kagi and boost to encourage and show them the effort is appreciated! Also do check out their excellent lenses feature, shown in the video.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@[email protected]

A fake tweet by The Iron Sheik ( @the_ironsheik ):

"WHAT THE FUCK HAPPENED TO BOTSIN.SPACE"
A fake tweet by The Iron Sheik ( @the_ironsheik ): "WHAT THE FUCK HAPPENED TO BOTSIN.SPACE"
Tom Casavant's avatar
Tom Casavant

@[email protected] · Reply to Tom Casavant's post

An ActivityPub server that only federates with instances that refuse to federate with it

Eric McCorkle's avatar
Eric McCorkle

@[email protected]

Fediverse suggestions request: I'm looking for platforms and likely hosting for blogging. I've heard of and I know WordPress is also supported.

I'm looking to do two things: first, write about likely tech politics and open source. This will likely be a conventional old school blog.

Second, possibly separately, I'm looking to write up notes from my physics studies. This will necessitate solid LaTeX support.

@FediTips

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@[email protected]

A fake tweet by The Iron Sheik ( @the_ironsheik ):

"WHO THE FUCK IS JOHN MASTODON"
A fake tweet by The Iron Sheik ( @the_ironsheik ): "WHO THE FUCK IS JOHN MASTODON"
Newsmast's avatar
Newsmast

@[email protected]

2024 wasn't the best year for social media... but it's 2025 now 🎉

That means it's time to move to greener pastures. Social media that's open, democratic, and controlled by the users.

This year, we're looking forward to raising awareness for New Social and introducing more people and organisations than ever to open social.

We hope to help them move to truly open platforms, like this one.

Get in touch to learn more!

Sean Tilley's avatar
Sean Tilley

@[email protected]

We intend to publish the @radiofreefedi article sometime next week. One thing I would like to do for the #Fediverse music community is to offer the opportunity to put up something at the bottom of our article.

I’ve begun sourcing testimonies, thanks, and kind words from community members that have said things. All added with permission, of course! But, I really think it’s important that we show just how many lives this project touched.

If you have something you would like to put up, please DM me.

Testimonies / Kind words / Showing Appreciation section of an upcoming We Distribute article about Radio Free Fedi
Testimonies / Kind words / Showing Appreciation section of an upcoming We Distribute article about Radio Free Fedi
We Distribute's avatar
We Distribute

@[email protected]

Hey, we're testing a new Fediverse integration that brings #WordPress calendar events to #Fediverse event platforms like Mobilizon, Gancio, Friendica, and Hubzilla.

If you have some time, please try doing a Webfinger fetch of this URL: https://wedistribute.org/event/event-federation-test/
We Distribute's avatar
We Distribute

@[email protected]

Hey, we're testing a new Fediverse integration that brings #WordPress calendar events to #Fediverse event platforms like Mobilizon, Gancio, Friendica, and Hubzilla.

If you have some time, please try doing a Webfinger fetch of this URL: https://wedistribute.org/event/event-federation-test/
Laurens Hof's avatar
Laurens Hof

@[email protected]

Last Week in Fediverse – ep 98

Welcome back to Fediverse Report! I’ve had a great holiday break spending time with family and friends, and that has given me some more time to think about why I care about the fediverse, the open social web and why I spend all this time writing Fediverse Report. Explaining to family members what I do was helpful to make this clear: telling an uncle that I write about decentralised technology mainly leads to confusion. But even extremely offline family members easily understand and agree with the idea that having all of our big social platforms being owned by billionaires leads to significant social problems.

As such, it has helped for me to make it more explicit that I care about decentralisation insofar it is a tool to get somewhere else: I care about better forms of governance and ownership of the social web. I want a social web where people are in control, not a few billionaires (nor nationstate governments, for that matter). Building social networks with decentralised technology is a way to get there.

The idea that the value of alternative social networks is in governance is far from new. I’ve regularly posted hot takes on my Mastodon to the same effect as well. But for 2025 I want to bring this more into focus for this newsletter. Writing a newsletter that is a weekly update tends to amplify shiny new software that has recently been released. In contrast, explaining how governance works on the fediverse does not align well with ‘this happened in the last 7 days’, as it involves more structural and slower moving forces. I’m experimenting with ways to bring coverage of governance in the fediverse better into focus. Expect more like this newsletter, where I zoom in on an offhanded comment by Misskey developer Syuilo as an illustration of the issues that come with interoperability between different places on the open social web.

The News

Mastodon has belatedly published their Annual Report for 2023. The organisation acknowledges the delay, and says that the Annual Report for 2024 is planned to be released in Q1 of this year. Mastodon had a total of 545k euro in donations in 2023, with 476k in costs. The large majority of costs go to personnel expenses, in total 343k was spend on salaries, 72% of the total budget. The popularity of Mastodon’s own servers also come with significant costs, in 2023 they spend 75k on servers and hosting. With a rough estimate of averaging around 250k active users on mastodon.social, this means mastodon.social costs roughly 30 cents per active user per year. The Annual Report also looks at the updates Mastodon has made to the site and apps. Mastodon also shares more about their hiring process, and in a great move for transparency, also published all the salaries of everyone in the organisation.

Back in the present, Mastodon is hiring again, this time for a senior front-end developer. The organisation also held a crowd-funding campaign in late last year to fund and hire a Trust and Safety lead. The community seemed to have had little appetite for funding such an endeavour, with funding barely pushing past the 12k after a month. It is an indication of the difficult spot the organisation is in; the community has been asking for more safety features in Mastodon, but is not funding a Trust and Safety Lead. The organisation could clearly use someone who writes clear policy and design goals for the direction the software should go in. Currently, not even a Mastodon employee can explain why a safety feature for Mastodon that is fully developed and waiting to be approved has been waiting for approval for over 2.5 years. It turns out that writing the code is often the easy part of making changes in the fediverse, and navigating the social structures to get the code used by people is much harder, and a dedicated Trust and Safety Lead could have certainly helped here. Instead, even after large community outcry we still do not know why Mastodon has not merged this safety feature developed by their own employee.


Surf is a new app by Flipboard for the open social web. It is a beautifully designed app that allows people to build their own custom feeds. The power of Surf is in that it supports many networks, and you can combine posts from Mastodon, Bluesky, Threads, YouTube and Flipboard all into a single custom feed. How Flipboard markets Surf is interesting, describing it as a ‘browser for the social web’. The way Flipboard CEO Mike McCue sees it, Surf pulls in content from the social web, and gives you the possibility to display that content in custom feeds of your choice. Surf also allows you to filter a custom feed by content: for example, you can scroll through an entire feed, or switch over to a different tab that shows only videos in that feed, for example.

For more info on Surf, WeDistribute has a closer look at all the features, and The Verge has more context and comments by McCue. Custom feeds on Bluesky have mainly gone in the direction of the power user and community builder: tools like Graze offer an huge potential in programmability and flexibility. This is especially useful for those who want to build custom feeds that other people will also use. Surf takes a different approach, by instead prompting people to build their own feeds as much as possible. It’ll be interesting to see which approach will gain traction, and if there is space for both ways of building custom feeds.


Misskey developer Syuilo made some comments contemplating breaking federation with Mastodon. Misskey is mainly used in Japan, and has a wide feature set that differs notably from Mastodon. The main reason that Syuilo gave is that she feels Misskey development is constrained by having to meet the needs and requirements of maintaining federation with other (types) of software. That Misskey is considering letting federation between Mastodon and Misskey break is an indication of one of the downsides of how ActivityPub is designed: You can send out anything you want with ActivityPub, but it is exceedingly difficult to know how other software will actually receive and display the things you send out with ActivityPub. There is a significant freedom for fediverse software in how they implement and support even more basic functions. For example, see this comparison table for how the different platforms support hashtags, and how many variations there are.

Personally, I think it would be healthy for the fediverse as a whole if more fediverse software would start publishing what they deem as necessary for other software to federate with them. The fediverse mainly currently works on the assumption that any form of federation between projects is fine, even if that means that another federated platform will stripping out all markup and images of a post. It might be healthy for a platform to state minimum functional requirements, such as ‘we only want to federate with software that also shows the emoji reactions as we view this to be an integral part of a message’. For now, Syuilo’s post mainly seems to be to vent some frustrations, so it remains to be seen where any of this will actually go.

The Links

That’s all for this week, thanks for reading!

fediversereport.com/last-week-

the canopy of a birch tree against a blue sky
the canopy of a birch tree against a blue sky
Jürgen Hubert's avatar
Jürgen Hubert

@[email protected]

Question: Now that is leaning even more into than they used to, are there any good equivalents of groups?

I know of (which strives to emulate the Reddit experience), but what others are out there?

Newsmast's avatar
Newsmast

@[email protected]

Your mission, should you choose to accept it... 👩‍💻

New Social is here to stay, now it's your turn to get involved.

Your first task: consider connecting to social platforms beyond this one.

To connect with Bluesky, just follow @bsky.brid.gy

It's time to make open social media a reality.

Check out our website to learn more about New Social.

A mock classified file report. Copy explains a 'mission' to share with the open social web by bridging to Bluesky and sharing with Threads.
A mock classified file report. Copy explains a 'mission' to share with the open social web by bridging to Bluesky and sharing with Threads.
Alberto de Murga's avatar
Alberto de Murga

@[email protected]

Does anybody know if there is something similar to Bookwyrm but for video games?

Flipboard's avatar
Flipboard

@[email protected] · Reply to Flipboard's post

Check out all episodes of DotSocial here, which include conversations with open social web leaders like @johnonolan, @jay.bsky.team, @kissane and more.

flipboard.video/c/dot_social/v

Daniel Supernault's avatar
Daniel Supernault

@[email protected]

People like you are the life and meaning of the fediverse, I just write code.

Code that is meaningless without people like you.

Roni Laukkarinen's avatar
Roni Laukkarinen

@[email protected]

Just updated my list of tools:

- Added Fedipact list
- Added Fedi on Fire
- Removed Combine.social

mementomori.social/the-mastodo

We Distribute's avatar
We Distribute

@[email protected]

Hey, we're testing a new Fediverse integration that brings #WordPress calendar events to #Fediverse event platforms like Mobilizon, Gancio, Friendica, and Hubzilla.

If you have some time, please try doing a Webfinger fetch of this URL: https://wedistribute.org/event/event-federation-test/
Roni Laukkarinen's avatar
Roni Laukkarinen

@[email protected]

Because of X and Meta fucking things up once again, people are talking about abandoning social media, because there are no corporate free alternatives. Right.

hobbsc's avatar
hobbsc

@[email protected]

Good , ! I hope you're all happy and safe!

Sean Tilley's avatar
Sean Tilley

@[email protected]

We intend to publish the @radiofreefedi article sometime next week. One thing I would like to do for the #Fediverse music community is to offer the opportunity to put up something at the bottom of our article.

I’ve begun sourcing testimonies, thanks, and kind words from community members that have said things. All added with permission, of course! But, I really think it’s important that we show just how many lives this project touched.

If you have something you would like to put up, please DM me.

Testimonies / Kind words / Showing Appreciation section of an upcoming We Distribute article about Radio Free Fedi
Testimonies / Kind words / Showing Appreciation section of an upcoming We Distribute article about Radio Free Fedi
AOE, Takashi's avatar
AOE, Takashi

@[email protected]

今回のMetaの方針転換を見て、「ThreadsのFediverse対応は多様性の臭いがするからやめまーす」とか言い出さないかと不安になってきたのだが :Shiropuyo_aseri:

Jeff Sikes's avatar
Jeff Sikes

@[email protected]

The good thing with federation is that I as an individual can make decisions about who I federate with - be it an individual or an entire instance. There's even some middle ground to customize your choice (silence vs block).

And now, the "federated islands" concept is kicking up, which is really cool. We have many choices - the decision is not mandated for us.

writer.oliphant.social/oliphan

Jeff Sikes's avatar
Jeff Sikes

@[email protected]

The good thing with federation is that I as an individual can make decisions about who I federate with - be it an individual or an entire instance. There's even some middle ground to customize your choice (silence vs block).

And now, the "federated islands" concept is kicking up, which is really cool. We have many choices - the decision is not mandated for us.

writer.oliphant.social/oliphan

Jeff Sikes's avatar
Jeff Sikes

@[email protected]

The good thing with federation is that I as an individual can make decisions about who I federate with - be it an individual or an entire instance. There's even some middle ground to customize your choice (silence vs block).

And now, the "federated islands" concept is kicking up, which is really cool. We have many choices - the decision is not mandated for us.

writer.oliphant.social/oliphan

bignose's avatar
bignose

@[email protected] · Reply to Evan Prodromou's post

Yes, enabling for . But, also some properties of imply others can do with (their copies of) the data what they want, too; which is in tension with that sovereignty.

@evan

Robert Kingett's avatar
Robert Kingett

@[email protected]

2 questions for the experts out there,

1. Is there a way I can migrate my account? I think my server disabled downloading videos but this is also causing issues for the people that follow me in their podcast apps.

2. What good PeerTube instances exist that are not tied to Crypto, AI, any right wing thing?

My channel is at spectra.video/c/robertkingett/ @FediGarden

Laurens Hof's avatar
Laurens Hof

@[email protected]

Last Week in Fediverse – ep 98

Welcome back to Fediverse Report! I’ve had a great holiday break spending time with family and friends, and that has given me some more time to think about why I care about the fediverse, the open social web and why I spend all this time writing Fediverse Report. Explaining to family members what I do was helpful to make this clear: telling an uncle that I write about decentralised technology mainly leads to confusion. But even extremely offline family members easily understand and agree with the idea that having all of our big social platforms being owned by billionaires leads to significant social problems.

As such, it has helped for me to make it more explicit that I care about decentralisation insofar it is a tool to get somewhere else: I care about better forms of governance and ownership of the social web. I want a social web where people are in control, not a few billionaires (nor nationstate governments, for that matter). Building social networks with decentralised technology is a way to get there.

The idea that the value of alternative social networks is in governance is far from new. I’ve regularly posted hot takes on my Mastodon to the same effect as well. But for 2025 I want to bring this more into focus for this newsletter. Writing a newsletter that is a weekly update tends to amplify shiny new software that has recently been released. In contrast, explaining how governance works on the fediverse does not align well with ‘this happened in the last 7 days’, as it involves more structural and slower moving forces. I’m experimenting with ways to bring coverage of governance in the fediverse better into focus. Expect more like this newsletter, where I zoom in on an offhanded comment by Misskey developer Syuilo as an illustration of the issues that come with interoperability between different places on the open social web.

The News

Mastodon has belatedly published their Annual Report for 2023. The organisation acknowledges the delay, and says that the Annual Report for 2024 is planned to be released in Q1 of this year. Mastodon had a total of 545k euro in donations in 2023, with 476k in costs. The large majority of costs go to personnel expenses, in total 343k was spend on salaries, 72% of the total budget. The popularity of Mastodon’s own servers also come with significant costs, in 2023 they spend 75k on servers and hosting. With a rough estimate of averaging around 250k active users on mastodon.social, this means mastodon.social costs roughly 30 cents per active user per year. The Annual Report also looks at the updates Mastodon has made to the site and apps. Mastodon also shares more about their hiring process, and in a great move for transparency, also published all the salaries of everyone in the organisation.

Back in the present, Mastodon is hiring again, this time for a senior front-end developer. The organisation also held a crowd-funding campaign in late last year to fund and hire a Trust and Safety lead. The community seemed to have had little appetite for funding such an endeavour, with funding barely pushing past the 12k after a month. It is an indication of the difficult spot the organisation is in; the community has been asking for more safety features in Mastodon, but is not funding a Trust and Safety Lead. The organisation could clearly use someone who writes clear policy and design goals for the direction the software should go in. Currently, not even a Mastodon employee can explain why a safety feature for Mastodon that is fully developed and waiting to be approved has been waiting for approval for over 2.5 years. It turns out that writing the code is often the easy part of making changes in the fediverse, and navigating the social structures to get the code used by people is much harder, and a dedicated Trust and Safety Lead could have certainly helped here. Instead, even after large community outcry we still do not know why Mastodon has not merged this safety feature developed by their own employee.


Surf is a new app by Flipboard for the open social web. It is a beautifully designed app that allows people to build their own custom feeds. The power of Surf is in that it supports many networks, and you can combine posts from Mastodon, Bluesky, Threads, YouTube and Flipboard all into a single custom feed. How Flipboard markets Surf is interesting, describing it as a ‘browser for the social web’. The way Flipboard CEO Mike McCue sees it, Surf pulls in content from the social web, and gives you the possibility to display that content in custom feeds of your choice. Surf also allows you to filter a custom feed by content: for example, you can scroll through an entire feed, or switch over to a different tab that shows only videos in that feed, for example.

For more info on Surf, WeDistribute has a closer look at all the features, and The Verge has more context and comments by McCue. Custom feeds on Bluesky have mainly gone in the direction of the power user and community builder: tools like Graze offer an huge potential in programmability and flexibility. This is especially useful for those who want to build custom feeds that other people will also use. Surf takes a different approach, by instead prompting people to build their own feeds as much as possible. It’ll be interesting to see which approach will gain traction, and if there is space for both ways of building custom feeds.


Misskey developer Syuilo made some comments contemplating breaking federation with Mastodon. Misskey is mainly used in Japan, and has a wide feature set that differs notably from Mastodon. The main reason that Syuilo gave is that she feels Misskey development is constrained by having to meet the needs and requirements of maintaining federation with other (types) of software. That Misskey is considering letting federation between Mastodon and Misskey break is an indication of one of the downsides of how ActivityPub is designed: You can send out anything you want with ActivityPub, but it is exceedingly difficult to know how other software will actually receive and display the things you send out with ActivityPub. There is a significant freedom for fediverse software in how they implement and support even more basic functions. For example, see this comparison table for how the different platforms support hashtags, and how many variations there are.

Personally, I think it would be healthy for the fediverse as a whole if more fediverse software would start publishing what they deem as necessary for other software to federate with them. The fediverse mainly currently works on the assumption that any form of federation between projects is fine, even if that means that another federated platform will stripping out all markup and images of a post. It might be healthy for a platform to state minimum functional requirements, such as ‘we only want to federate with software that also shows the emoji reactions as we view this to be an integral part of a message’. For now, Syuilo’s post mainly seems to be to vent some frustrations, so it remains to be seen where any of this will actually go.

The Links

That’s all for this week, thanks for reading!

fediversereport.com/last-week-

the canopy of a birch tree against a blue sky
the canopy of a birch tree against a blue sky
Blort™ 🐀Ⓥ🥋☣️'s avatar
Blort™ 🐀Ⓥ🥋☣️

@[email protected]

I'm very happy to see @kagihq joining Peertube with their inaugural video below about what makes Kagi independent search special!

tilvids.com/w/twGQeYV9c1TGwMmb

Remember to follow their Peertube account at @kagi and boost to encourage and show them the effort is appreciated! Also do check out their excellent lenses feature, shown in the video.

codeDude :archlinux: :neovim:'s avatar
codeDude :archlinux: :neovim:

@[email protected]

hey and people Do you know Why loops is not on fdroid or other app store for Android? I needed to download the apk from the web app

Daniel Appelquist's avatar
Daniel Appelquist

@[email protected]

The is my main.

Daniel Appelquist's avatar
Daniel Appelquist

@[email protected]

The is my main.

Laurens Hof's avatar
Laurens Hof

@[email protected]

Last Week in Fediverse – ep 98

Welcome back to Fediverse Report! I’ve had a great holiday break spending time with family and friends, and that has given me some more time to think about why I care about the fediverse, the open social web and why I spend all this time writing Fediverse Report. Explaining to family members what I do was helpful to make this clear: telling an uncle that I write about decentralised technology mainly leads to confusion. But even extremely offline family members easily understand and agree with the idea that having all of our big social platforms being owned by billionaires leads to significant social problems.

As such, it has helped for me to make it more explicit that I care about decentralisation insofar it is a tool to get somewhere else: I care about better forms of governance and ownership of the social web. I want a social web where people are in control, not a few billionaires (nor nationstate governments, for that matter). Building social networks with decentralised technology is a way to get there.

The idea that the value of alternative social networks is in governance is far from new. I’ve regularly posted hot takes on my Mastodon to the same effect as well. But for 2025 I want to bring this more into focus for this newsletter. Writing a newsletter that is a weekly update tends to amplify shiny new software that has recently been released. In contrast, explaining how governance works on the fediverse does not align well with ‘this happened in the last 7 days’, as it involves more structural and slower moving forces. I’m experimenting with ways to bring coverage of governance in the fediverse better into focus. Expect more like this newsletter, where I zoom in on an offhanded comment by Misskey developer Syuilo as an illustration of the issues that come with interoperability between different places on the open social web.

The News

Mastodon has belatedly published their Annual Report for 2023. The organisation acknowledges the delay, and says that the Annual Report for 2024 is planned to be released in Q1 of this year. Mastodon had a total of 545k euro in donations in 2023, with 476k in costs. The large majority of costs go to personnel expenses, in total 343k was spend on salaries, 72% of the total budget. The popularity of Mastodon’s own servers also come with significant costs, in 2023 they spend 75k on servers and hosting. With a rough estimate of averaging around 250k active users on mastodon.social, this means mastodon.social costs roughly 30 cents per active user per year. The Annual Report also looks at the updates Mastodon has made to the site and apps. Mastodon also shares more about their hiring process, and in a great move for transparency, also published all the salaries of everyone in the organisation.

Back in the present, Mastodon is hiring again, this time for a senior front-end developer. The organisation also held a crowd-funding campaign in late last year to fund and hire a Trust and Safety lead. The community seemed to have had little appetite for funding such an endeavour, with funding barely pushing past the 12k after a month. It is an indication of the difficult spot the organisation is in; the community has been asking for more safety features in Mastodon, but is not funding a Trust and Safety Lead. The organisation could clearly use someone who writes clear policy and design goals for the direction the software should go in. Currently, not even a Mastodon employee can explain why a safety feature for Mastodon that is fully developed and waiting to be approved has been waiting for approval for over 2.5 years. It turns out that writing the code is often the easy part of making changes in the fediverse, and navigating the social structures to get the code used by people is much harder, and a dedicated Trust and Safety Lead could have certainly helped here. Instead, even after large community outcry we still do not know why Mastodon has not merged this safety feature developed by their own employee.


Surf is a new app by Flipboard for the open social web. It is a beautifully designed app that allows people to build their own custom feeds. The power of Surf is in that it supports many networks, and you can combine posts from Mastodon, Bluesky, Threads, YouTube and Flipboard all into a single custom feed. How Flipboard markets Surf is interesting, describing it as a ‘browser for the social web’. The way Flipboard CEO Mike McCue sees it, Surf pulls in content from the social web, and gives you the possibility to display that content in custom feeds of your choice. Surf also allows you to filter a custom feed by content: for example, you can scroll through an entire feed, or switch over to a different tab that shows only videos in that feed, for example.

For more info on Surf, WeDistribute has a closer look at all the features, and The Verge has more context and comments by McCue. Custom feeds on Bluesky have mainly gone in the direction of the power user and community builder: tools like Graze offer an huge potential in programmability and flexibility. This is especially useful for those who want to build custom feeds that other people will also use. Surf takes a different approach, by instead prompting people to build their own feeds as much as possible. It’ll be interesting to see which approach will gain traction, and if there is space for both ways of building custom feeds.


Misskey developer Syuilo made some comments contemplating breaking federation with Mastodon. Misskey is mainly used in Japan, and has a wide feature set that differs notably from Mastodon. The main reason that Syuilo gave is that she feels Misskey development is constrained by having to meet the needs and requirements of maintaining federation with other (types) of software. That Misskey is considering letting federation between Mastodon and Misskey break is an indication of one of the downsides of how ActivityPub is designed: You can send out anything you want with ActivityPub, but it is exceedingly difficult to know how other software will actually receive and display the things you send out with ActivityPub. There is a significant freedom for fediverse software in how they implement and support even more basic functions. For example, see this comparison table for how the different platforms support hashtags, and how many variations there are.

Personally, I think it would be healthy for the fediverse as a whole if more fediverse software would start publishing what they deem as necessary for other software to federate with them. The fediverse mainly currently works on the assumption that any form of federation between projects is fine, even if that means that another federated platform will stripping out all markup and images of a post. It might be healthy for a platform to state minimum functional requirements, such as ‘we only want to federate with software that also shows the emoji reactions as we view this to be an integral part of a message’. For now, Syuilo’s post mainly seems to be to vent some frustrations, so it remains to be seen where any of this will actually go.

The Links

That’s all for this week, thanks for reading!

fediversereport.com/last-week-

the canopy of a birch tree against a blue sky
the canopy of a birch tree against a blue sky
Laurens Hof's avatar
Laurens Hof

@[email protected]

Last Week in Fediverse – ep 98

Welcome back to Fediverse Report! I’ve had a great holiday break spending time with family and friends, and that has given me some more time to think about why I care about the fediverse, the open social web and why I spend all this time writing Fediverse Report. Explaining to family members what I do was helpful to make this clear: telling an uncle that I write about decentralised technology mainly leads to confusion. But even extremely offline family members easily understand and agree with the idea that having all of our big social platforms being owned by billionaires leads to significant social problems.

As such, it has helped for me to make it more explicit that I care about decentralisation insofar it is a tool to get somewhere else: I care about better forms of governance and ownership of the social web. I want a social web where people are in control, not a few billionaires (nor nationstate governments, for that matter). Building social networks with decentralised technology is a way to get there.

The idea that the value of alternative social networks is in governance is far from new. I’ve regularly posted hot takes on my Mastodon to the same effect as well. But for 2025 I want to bring this more into focus for this newsletter. Writing a newsletter that is a weekly update tends to amplify shiny new software that has recently been released. In contrast, explaining how governance works on the fediverse does not align well with ‘this happened in the last 7 days’, as it involves more structural and slower moving forces. I’m experimenting with ways to bring coverage of governance in the fediverse better into focus. Expect more like this newsletter, where I zoom in on an offhanded comment by Misskey developer Syuilo as an illustration of the issues that come with interoperability between different places on the open social web.

The News

Mastodon has belatedly published their Annual Report for 2023. The organisation acknowledges the delay, and says that the Annual Report for 2024 is planned to be released in Q1 of this year. Mastodon had a total of 545k euro in donations in 2023, with 476k in costs. The large majority of costs go to personnel expenses, in total 343k was spend on salaries, 72% of the total budget. The popularity of Mastodon’s own servers also come with significant costs, in 2023 they spend 75k on servers and hosting. With a rough estimate of averaging around 250k active users on mastodon.social, this means mastodon.social costs roughly 30 cents per active user per year. The Annual Report also looks at the updates Mastodon has made to the site and apps. Mastodon also shares more about their hiring process, and in a great move for transparency, also published all the salaries of everyone in the organisation.

Back in the present, Mastodon is hiring again, this time for a senior front-end developer. The organisation also held a crowd-funding campaign in late last year to fund and hire a Trust and Safety lead. The community seemed to have had little appetite for funding such an endeavour, with funding barely pushing past the 12k after a month. It is an indication of the difficult spot the organisation is in; the community has been asking for more safety features in Mastodon, but is not funding a Trust and Safety Lead. The organisation could clearly use someone who writes clear policy and design goals for the direction the software should go in. Currently, not even a Mastodon employee can explain why a safety feature for Mastodon that is fully developed and waiting to be approved has been waiting for approval for over 2.5 years. It turns out that writing the code is often the easy part of making changes in the fediverse, and navigating the social structures to get the code used by people is much harder, and a dedicated Trust and Safety Lead could have certainly helped here. Instead, even after large community outcry we still do not know why Mastodon has not merged this safety feature developed by their own employee.


Surf is a new app by Flipboard for the open social web. It is a beautifully designed app that allows people to build their own custom feeds. The power of Surf is in that it supports many networks, and you can combine posts from Mastodon, Bluesky, Threads, YouTube and Flipboard all into a single custom feed. How Flipboard markets Surf is interesting, describing it as a ‘browser for the social web’. The way Flipboard CEO Mike McCue sees it, Surf pulls in content from the social web, and gives you the possibility to display that content in custom feeds of your choice. Surf also allows you to filter a custom feed by content: for example, you can scroll through an entire feed, or switch over to a different tab that shows only videos in that feed, for example.

For more info on Surf, WeDistribute has a closer look at all the features, and The Verge has more context and comments by McCue. Custom feeds on Bluesky have mainly gone in the direction of the power user and community builder: tools like Graze offer an huge potential in programmability and flexibility. This is especially useful for those who want to build custom feeds that other people will also use. Surf takes a different approach, by instead prompting people to build their own feeds as much as possible. It’ll be interesting to see which approach will gain traction, and if there is space for both ways of building custom feeds.


Misskey developer Syuilo made some comments contemplating breaking federation with Mastodon. Misskey is mainly used in Japan, and has a wide feature set that differs notably from Mastodon. The main reason that Syuilo gave is that she feels Misskey development is constrained by having to meet the needs and requirements of maintaining federation with other (types) of software. That Misskey is considering letting federation between Mastodon and Misskey break is an indication of one of the downsides of how ActivityPub is designed: You can send out anything you want with ActivityPub, but it is exceedingly difficult to know how other software will actually receive and display the things you send out with ActivityPub. There is a significant freedom for fediverse software in how they implement and support even more basic functions. For example, see this comparison table for how the different platforms support hashtags, and how many variations there are.

Personally, I think it would be healthy for the fediverse as a whole if more fediverse software would start publishing what they deem as necessary for other software to federate with them. The fediverse mainly currently works on the assumption that any form of federation between projects is fine, even if that means that another federated platform will stripping out all markup and images of a post. It might be healthy for a platform to state minimum functional requirements, such as ‘we only want to federate with software that also shows the emoji reactions as we view this to be an integral part of a message’. For now, Syuilo’s post mainly seems to be to vent some frustrations, so it remains to be seen where any of this will actually go.

The Links

That’s all for this week, thanks for reading!

fediversereport.com/last-week-

the canopy of a birch tree against a blue sky
the canopy of a birch tree against a blue sky
Jiří Eischmann's avatar
Jiří Eischmann

@[email protected]

When it came to accepting to the , I gave the benefit of the doubt. I think it's time to admit that I was wrong.

Laurens Hof's avatar
Laurens Hof

@[email protected]

Last Week in Fediverse – ep 98

Welcome back to Fediverse Report! I’ve had a great holiday break spending time with family and friends, and that has given me some more time to think about why I care about the fediverse, the open social web and why I spend all this time writing Fediverse Report. Explaining to family members what I do was helpful to make this clear: telling an uncle that I write about decentralised technology mainly leads to confusion. But even extremely offline family members easily understand and agree with the idea that having all of our big social platforms being owned by billionaires leads to significant social problems.

As such, it has helped for me to make it more explicit that I care about decentralisation insofar it is a tool to get somewhere else: I care about better forms of governance and ownership of the social web. I want a social web where people are in control, not a few billionaires (nor nationstate governments, for that matter). Building social networks with decentralised technology is a way to get there.

The idea that the value of alternative social networks is in governance is far from new. I’ve regularly posted hot takes on my Mastodon to the same effect as well. But for 2025 I want to bring this more into focus for this newsletter. Writing a newsletter that is a weekly update tends to amplify shiny new software that has recently been released. In contrast, explaining how governance works on the fediverse does not align well with ‘this happened in the last 7 days’, as it involves more structural and slower moving forces. I’m experimenting with ways to bring coverage of governance in the fediverse better into focus. Expect more like this newsletter, where I zoom in on an offhanded comment by Misskey developer Syuilo as an illustration of the issues that come with interoperability between different places on the open social web.

The News

Mastodon has belatedly published their Annual Report for 2023. The organisation acknowledges the delay, and says that the Annual Report for 2024 is planned to be released in Q1 of this year. Mastodon had a total of 545k euro in donations in 2023, with 476k in costs. The large majority of costs go to personnel expenses, in total 343k was spend on salaries, 72% of the total budget. The popularity of Mastodon’s own servers also come with significant costs, in 2023 they spend 75k on servers and hosting. With a rough estimate of averaging around 250k active users on mastodon.social, this means mastodon.social costs roughly 30 cents per active user per year. The Annual Report also looks at the updates Mastodon has made to the site and apps. Mastodon also shares more about their hiring process, and in a great move for transparency, also published all the salaries of everyone in the organisation.

Back in the present, Mastodon is hiring again, this time for a senior front-end developer. The organisation also held a crowd-funding campaign in late last year to fund and hire a Trust and Safety lead. The community seemed to have had little appetite for funding such an endeavour, with funding barely pushing past the 12k after a month. It is an indication of the difficult spot the organisation is in; the community has been asking for more safety features in Mastodon, but is not funding a Trust and Safety Lead. The organisation could clearly use someone who writes clear policy and design goals for the direction the software should go in. Currently, not even a Mastodon employee can explain why a safety feature for Mastodon that is fully developed and waiting to be approved has been waiting for approval for over 2.5 years. It turns out that writing the code is often the easy part of making changes in the fediverse, and navigating the social structures to get the code used by people is much harder, and a dedicated Trust and Safety Lead could have certainly helped here. Instead, even after large community outcry we still do not know why Mastodon has not merged this safety feature developed by their own employee.


Surf is a new app by Flipboard for the open social web. It is a beautifully designed app that allows people to build their own custom feeds. The power of Surf is in that it supports many networks, and you can combine posts from Mastodon, Bluesky, Threads, YouTube and Flipboard all into a single custom feed. How Flipboard markets Surf is interesting, describing it as a ‘browser for the social web’. The way Flipboard CEO Mike McCue sees it, Surf pulls in content from the social web, and gives you the possibility to display that content in custom feeds of your choice. Surf also allows you to filter a custom feed by content: for example, you can scroll through an entire feed, or switch over to a different tab that shows only videos in that feed, for example.

For more info on Surf, WeDistribute has a closer look at all the features, and The Verge has more context and comments by McCue. Custom feeds on Bluesky have mainly gone in the direction of the power user and community builder: tools like Graze offer an huge potential in programmability and flexibility. This is especially useful for those who want to build custom feeds that other people will also use. Surf takes a different approach, by instead prompting people to build their own feeds as much as possible. It’ll be interesting to see which approach will gain traction, and if there is space for both ways of building custom feeds.


Misskey developer Syuilo made some comments contemplating breaking federation with Mastodon. Misskey is mainly used in Japan, and has a wide feature set that differs notably from Mastodon. The main reason that Syuilo gave is that she feels Misskey development is constrained by having to meet the needs and requirements of maintaining federation with other (types) of software. That Misskey is considering letting federation between Mastodon and Misskey break is an indication of one of the downsides of how ActivityPub is designed: You can send out anything you want with ActivityPub, but it is exceedingly difficult to know how other software will actually receive and display the things you send out with ActivityPub. There is a significant freedom for fediverse software in how they implement and support even more basic functions. For example, see this comparison table for how the different platforms support hashtags, and how many variations there are.

Personally, I think it would be healthy for the fediverse as a whole if more fediverse software would start publishing what they deem as necessary for other software to federate with them. The fediverse mainly currently works on the assumption that any form of federation between projects is fine, even if that means that another federated platform will stripping out all markup and images of a post. It might be healthy for a platform to state minimum functional requirements, such as ‘we only want to federate with software that also shows the emoji reactions as we view this to be an integral part of a message’. For now, Syuilo’s post mainly seems to be to vent some frustrations, so it remains to be seen where any of this will actually go.

The Links

That’s all for this week, thanks for reading!

fediversereport.com/last-week-

the canopy of a birch tree against a blue sky
the canopy of a birch tree against a blue sky
Robert Kingett's avatar
Robert Kingett

@[email protected]

2 questions for the experts out there,

1. Is there a way I can migrate my account? I think my server disabled downloading videos but this is also causing issues for the people that follow me in their podcast apps.

2. What good PeerTube instances exist that are not tied to Crypto, AI, any right wing thing?

My channel is at spectra.video/c/robertkingett/ @FediGarden

Jan Wildeboer 😷:krulorange:'s avatar
Jan Wildeboer 😷:krulorange:

@[email protected]

I thank all my followers for accepting me into their timeline. I will continue to try to share things that unite us and move us collectively forward. Because that's what we can do here in the . Good night, friends from afar and close! Stay weird and stay free!

Aktionsb. neue Soziale Medien's avatar
Aktionsb. neue Soziale Medien

@[email protected]

(1/2) Dear supporters,

yesterday our petition for ended with more than 2,070 signatures.
Yesterday alone, another 114 signatures were collected
openpetition.de/Unis4Mastodon
This shows how pressing the issue of using truly is for many people.

We have managed to get a number of to shut down their X-accounts. And we know that many are considering taking this step as well.
Furthermore, is no longer conceivable without the , as the steadily growing number of followers on channels shows.
mastodon-listen.playground.54g

Bernie the Wordsmith's avatar
Bernie the Wordsmith

@[email protected]

Mutants of the , hear my plea. I'm trying to get some senior citizens into the fedi pipeline, but some of them need something that is aesthetically similar to . What fedi app or system would resemble it the best?

Laurens Hof's avatar
Laurens Hof

@[email protected]

Last Week in Fediverse – ep 98

Welcome back to Fediverse Report! I’ve had a great holiday break spending time with family and friends, and that has given me some more time to think about why I care about the fediverse, the open social web and why I spend all this time writing Fediverse Report. Explaining to family members what I do was helpful to make this clear: telling an uncle that I write about decentralised technology mainly leads to confusion. But even extremely offline family members easily understand and agree with the idea that having all of our big social platforms being owned by billionaires leads to significant social problems.

As such, it has helped for me to make it more explicit that I care about decentralisation insofar it is a tool to get somewhere else: I care about better forms of governance and ownership of the social web. I want a social web where people are in control, not a few billionaires (nor nationstate governments, for that matter). Building social networks with decentralised technology is a way to get there.

The idea that the value of alternative social networks is in governance is far from new. I’ve regularly posted hot takes on my Mastodon to the same effect as well. But for 2025 I want to bring this more into focus for this newsletter. Writing a newsletter that is a weekly update tends to amplify shiny new software that has recently been released. In contrast, explaining how governance works on the fediverse does not align well with ‘this happened in the last 7 days’, as it involves more structural and slower moving forces. I’m experimenting with ways to bring coverage of governance in the fediverse better into focus. Expect more like this newsletter, where I zoom in on an offhanded comment by Misskey developer Syuilo as an illustration of the issues that come with interoperability between different places on the open social web.

The News

Mastodon has belatedly published their Annual Report for 2023. The organisation acknowledges the delay, and says that the Annual Report for 2024 is planned to be released in Q1 of this year. Mastodon had a total of 545k euro in donations in 2023, with 476k in costs. The large majority of costs go to personnel expenses, in total 343k was spend on salaries, 72% of the total budget. The popularity of Mastodon’s own servers also come with significant costs, in 2023 they spend 75k on servers and hosting. With a rough estimate of averaging around 250k active users on mastodon.social, this means mastodon.social costs roughly 30 cents per active user per year. The Annual Report also looks at the updates Mastodon has made to the site and apps. Mastodon also shares more about their hiring process, and in a great move for transparency, also published all the salaries of everyone in the organisation.

Back in the present, Mastodon is hiring again, this time for a senior front-end developer. The organisation also held a crowd-funding campaign in late last year to fund and hire a Trust and Safety lead. The community seemed to have had little appetite for funding such an endeavour, with funding barely pushing past the 12k after a month. It is an indication of the difficult spot the organisation is in; the community has been asking for more safety features in Mastodon, but is not funding a Trust and Safety Lead. The organisation could clearly use someone who writes clear policy and design goals for the direction the software should go in. Currently, not even a Mastodon employee can explain why a safety feature for Mastodon that is fully developed and waiting to be approved has been waiting for approval for over 2.5 years. It turns out that writing the code is often the easy part of making changes in the fediverse, and navigating the social structures to get the code used by people is much harder, and a dedicated Trust and Safety Lead could have certainly helped here. Instead, even after large community outcry we still do not know why Mastodon has not merged this safety feature developed by their own employee.


Surf is a new app by Flipboard for the open social web. It is a beautifully designed app that allows people to build their own custom feeds. The power of Surf is in that it supports many networks, and you can combine posts from Mastodon, Bluesky, Threads, YouTube and Flipboard all into a single custom feed. How Flipboard markets Surf is interesting, describing it as a ‘browser for the social web’. The way Flipboard CEO Mike McCue sees it, Surf pulls in content from the social web, and gives you the possibility to display that content in custom feeds of your choice. Surf also allows you to filter a custom feed by content: for example, you can scroll through an entire feed, or switch over to a different tab that shows only videos in that feed, for example.

For more info on Surf, WeDistribute has a closer look at all the features, and The Verge has more context and comments by McCue. Custom feeds on Bluesky have mainly gone in the direction of the power user and community builder: tools like Graze offer an huge potential in programmability and flexibility. This is especially useful for those who want to build custom feeds that other people will also use. Surf takes a different approach, by instead prompting people to build their own feeds as much as possible. It’ll be interesting to see which approach will gain traction, and if there is space for both ways of building custom feeds.


Misskey developer Syuilo made some comments contemplating breaking federation with Mastodon. Misskey is mainly used in Japan, and has a wide feature set that differs notably from Mastodon. The main reason that Syuilo gave is that she feels Misskey development is constrained by having to meet the needs and requirements of maintaining federation with other (types) of software. That Misskey is considering letting federation between Mastodon and Misskey break is an indication of one of the downsides of how ActivityPub is designed: You can send out anything you want with ActivityPub, but it is exceedingly difficult to know how other software will actually receive and display the things you send out with ActivityPub. There is a significant freedom for fediverse software in how they implement and support even more basic functions. For example, see this comparison table for how the different platforms support hashtags, and how many variations there are.

Personally, I think it would be healthy for the fediverse as a whole if more fediverse software would start publishing what they deem as necessary for other software to federate with them. The fediverse mainly currently works on the assumption that any form of federation between projects is fine, even if that means that another federated platform will stripping out all markup and images of a post. It might be healthy for a platform to state minimum functional requirements, such as ‘we only want to federate with software that also shows the emoji reactions as we view this to be an integral part of a message’. For now, Syuilo’s post mainly seems to be to vent some frustrations, so it remains to be seen where any of this will actually go.

The Links

That’s all for this week, thanks for reading!

fediversereport.com/last-week-

the canopy of a birch tree against a blue sky
the canopy of a birch tree against a blue sky
Fediverse Report's avatar
Fediverse Report

@[email protected]

New: Last Week in - ep 98

This week's news:
- @Mastodon's annual report for 2023 (!) gives more insight into the operation and finances of the organisation
- Surf is a new app by @Flipboard that allows you to create custom feeds across the open social web
- I take a closer look at some comments by Misskey developer @syuilo on the issues with interoperability between Misskey and Mastodon

Read at: fediversereport.com/last-week-

Fediverse Report's avatar
Fediverse Report

@[email protected]

New: Last Week in - ep 98

This week's news:
- @Mastodon's annual report for 2023 (!) gives more insight into the operation and finances of the organisation
- Surf is a new app by @Flipboard that allows you to create custom feeds across the open social web
- I take a closer look at some comments by Misskey developer @syuilo on the issues with interoperability between Misskey and Mastodon

Read at: fediversereport.com/last-week-

Laurens Hof's avatar
Laurens Hof

@[email protected]

Last Week in Fediverse – ep 98

Welcome back to Fediverse Report! I’ve had a great holiday break spending time with family and friends, and that has given me some more time to think about why I care about the fediverse, the open social web and why I spend all this time writing Fediverse Report. Explaining to family members what I do was helpful to make this clear: telling an uncle that I write about decentralised technology mainly leads to confusion. But even extremely offline family members easily understand and agree with the idea that having all of our big social platforms being owned by billionaires leads to significant social problems.

As such, it has helped for me to make it more explicit that I care about decentralisation insofar it is a tool to get somewhere else: I care about better forms of governance and ownership of the social web. I want a social web where people are in control, not a few billionaires (nor nationstate governments, for that matter). Building social networks with decentralised technology is a way to get there.

The idea that the value of alternative social networks is in governance is far from new. I’ve regularly posted hot takes on my Mastodon to the same effect as well. But for 2025 I want to bring this more into focus for this newsletter. Writing a newsletter that is a weekly update tends to amplify shiny new software that has recently been released. In contrast, explaining how governance works on the fediverse does not align well with ‘this happened in the last 7 days’, as it involves more structural and slower moving forces. I’m experimenting with ways to bring coverage of governance in the fediverse better into focus. Expect more like this newsletter, where I zoom in on an offhanded comment by Misskey developer Syuilo as an illustration of the issues that come with interoperability between different places on the open social web.

The News

Mastodon has belatedly published their Annual Report for 2023. The organisation acknowledges the delay, and says that the Annual Report for 2024 is planned to be released in Q1 of this year. Mastodon had a total of 545k euro in donations in 2023, with 476k in costs. The large majority of costs go to personnel expenses, in total 343k was spend on salaries, 72% of the total budget. The popularity of Mastodon’s own servers also come with significant costs, in 2023 they spend 75k on servers and hosting. With a rough estimate of averaging around 250k active users on mastodon.social, this means mastodon.social costs roughly 30 cents per active user per year. The Annual Report also looks at the updates Mastodon has made to the site and apps. Mastodon also shares more about their hiring process, and in a great move for transparency, also published all the salaries of everyone in the organisation.

Back in the present, Mastodon is hiring again, this time for a senior front-end developer. The organisation also held a crowd-funding campaign in late last year to fund and hire a Trust and Safety lead. The community seemed to have had little appetite for funding such an endeavour, with funding barely pushing past the 12k after a month. It is an indication of the difficult spot the organisation is in; the community has been asking for more safety features in Mastodon, but is not funding a Trust and Safety Lead. The organisation could clearly use someone who writes clear policy and design goals for the direction the software should go in. Currently, not even a Mastodon employee can explain why a safety feature for Mastodon that is fully developed and waiting to be approved has been waiting for approval for over 2.5 years. It turns out that writing the code is often the easy part of making changes in the fediverse, and navigating the social structures to get the code used by people is much harder, and a dedicated Trust and Safety Lead could have certainly helped here. Instead, even after large community outcry we still do not know why Mastodon has not merged this safety feature developed by their own employee.


Surf is a new app by Flipboard for the open social web. It is a beautifully designed app that allows people to build their own custom feeds. The power of Surf is in that it supports many networks, and you can combine posts from Mastodon, Bluesky, Threads, YouTube and Flipboard all into a single custom feed. How Flipboard markets Surf is interesting, describing it as a ‘browser for the social web’. The way Flipboard CEO Mike McCue sees it, Surf pulls in content from the social web, and gives you the possibility to display that content in custom feeds of your choice. Surf also allows you to filter a custom feed by content: for example, you can scroll through an entire feed, or switch over to a different tab that shows only videos in that feed, for example.

For more info on Surf, WeDistribute has a closer look at all the features, and The Verge has more context and comments by McCue. Custom feeds on Bluesky have mainly gone in the direction of the power user and community builder: tools like Graze offer an huge potential in programmability and flexibility. This is especially useful for those who want to build custom feeds that other people will also use. Surf takes a different approach, by instead prompting people to build their own feeds as much as possible. It’ll be interesting to see which approach will gain traction, and if there is space for both ways of building custom feeds.


Misskey developer Syuilo made some comments contemplating breaking federation with Mastodon. Misskey is mainly used in Japan, and has a wide feature set that differs notably from Mastodon. The main reason that Syuilo gave is that she feels Misskey development is constrained by having to meet the needs and requirements of maintaining federation with other (types) of software. That Misskey is considering letting federation between Mastodon and Misskey break is an indication of one of the downsides of how ActivityPub is designed: You can send out anything you want with ActivityPub, but it is exceedingly difficult to know how other software will actually receive and display the things you send out with ActivityPub. There is a significant freedom for fediverse software in how they implement and support even more basic functions. For example, see this comparison table for how the different platforms support hashtags, and how many variations there are.

Personally, I think it would be healthy for the fediverse as a whole if more fediverse software would start publishing what they deem as necessary for other software to federate with them. The fediverse mainly currently works on the assumption that any form of federation between projects is fine, even if that means that another federated platform will stripping out all markup and images of a post. It might be healthy for a platform to state minimum functional requirements, such as ‘we only want to federate with software that also shows the emoji reactions as we view this to be an integral part of a message’. For now, Syuilo’s post mainly seems to be to vent some frustrations, so it remains to be seen where any of this will actually go.

The Links

That’s all for this week, thanks for reading!

fediversereport.com/last-week-

the canopy of a birch tree against a blue sky
the canopy of a birch tree against a blue sky
Jan Wildeboer 😷:krulorange:'s avatar
Jan Wildeboer 😷:krulorange:

@[email protected] · Reply to Jan Wildeboer 😷:krulorange:'s post

I’m a born and bred optimist. I think that with the we are collectively building solutions that replace money with empathy and real connections as the main motivation. For this to work, decentralisation is key. Decentralisation works and grows with open standards and open source. But it’s more about de-egoing than about demonetisation. Open standards and open source DO allow for making a good living of serving your community. Ego kills community. Beware of the psychopaths. Sermon over

SiljeLB's avatar
SiljeLB

@[email protected]

This is when the rest of the known defederates , right? 😵

gbhnews's avatar
gbhnews

@[email protected]

🌞 Good morning ! This is GBH bringing you the world from . It's 22F at Logan Airport.

Meta announced it will scrap its fact checking system in favor of community notes.

Donald Trump Jr. arrived in , telling residents of the mineral-rich territory "We're going to treat you well."

Mass. Rep. Ayanna Pressley says she will boycott Trump's administration.

OptionVoters
saw the Northern Lights in the last 365 days0 (0%)
Did not see the Northern Lights in the last 3650 (0%)
Jonathan Matthews's avatar
Jonathan Matthews

@[email protected]

Is a suitable fedi server for a single-person, daily-driver instance, accessed via mastodon apps, interacting with the wider fediverse?

I /think/ I've mostly seen it deployed as a more write-centric service (for info bots/etc) ... but I could be mistaken.

Jonathan Matthews's avatar
Jonathan Matthews

@[email protected]

Is a suitable fedi server for a single-person, daily-driver instance, accessed via mastodon apps, interacting with the wider fediverse?

I /think/ I've mostly seen it deployed as a more write-centric service (for info bots/etc) ... but I could be mistaken.

Abhinav 🌏's avatar
Abhinav 🌏

@[email protected]

I analysed the posts I've made over the last 2+ years for the clients I've been using, and created some charts.

The first one is the pie chart of the post count by clients. @ivory for Mac is the winner here, with 30% posts made using it. @phanpy and the default Mastodon web client are seconds at 22%. @trunksapp is third at 12%, and @elk comes fourth at 10%.

The second chart shows the post count split by clients over time. It shows that I started with using the web client for the first few months, tried Ivory, trunks and Elk for the next few months, and then settled on using Ivory on my laptop and trunks on my phone. Few months later, I replaced trunks with Phanpy, and then continued using the Ivory-Phanpy combo consistently for over a year, with few posts being made from Web, Elk and trunks. The last bar shows me trying to replace Ivory with Phanpy as my sole major client.

pie chart of the post count by Mastodon clients
pie chart of the post count by Mastodon clients
the Mastodon post count split by clients over time
the Mastodon post count split by clients over time
Abhinav 🌏's avatar
Abhinav 🌏

@[email protected]

I analysed the posts I've made over the last 2+ years for the clients I've been using, and created some charts.

The first one is the pie chart of the post count by clients. @ivory for Mac is the winner here, with 30% posts made using it. @phanpy and the default Mastodon web client are seconds at 22%. @trunksapp is third at 12%, and @elk comes fourth at 10%.

The second chart shows the post count split by clients over time. It shows that I started with using the web client for the first few months, tried Ivory, trunks and Elk for the next few months, and then settled on using Ivory on my laptop and trunks on my phone. Few months later, I replaced trunks with Phanpy, and then continued using the Ivory-Phanpy combo consistently for over a year, with few posts being made from Web, Elk and trunks. The last bar shows me trying to replace Ivory with Phanpy as my sole major client.

pie chart of the post count by Mastodon clients
pie chart of the post count by Mastodon clients
the Mastodon post count split by clients over time
the Mastodon post count split by clients over time
Darren du Nord's avatar
Darren du Nord

@[email protected]

To resist Weather Channel's appropriation of storm naming, I have decided to name storms after projects and/or servers. Welcome to Winter Storm Bookwyrm.

Nordnick :verified:'s avatar
Nordnick :verified:

@[email protected] · Reply to Meike Rensch-Bergner's post

@meikerenschbergner

Du bräuchtest eine geeignete -Serversoftware, wenn Du unter eigener Domain im Fediverse auftreten willst. In aller Kürze... ;-)

The Internet Review's avatar
The Internet Review

@[email protected]

One of the unsung heroes of the (aka and beyond) are all the great bots available for spicing up your feed. And no, I’m not talking about the nasty bad bots out there which try to slurp up all your content and steal your private details. I’m talking about content bots which humans set up to be fun and amusing! 😆

Check out “My Favorite Fediverse Bots for 2025“ (and download the starter pack CSV!)

theinternet.review/2025/01/06/

Jonathan Matthews's avatar
Jonathan Matthews

@[email protected]

Is a suitable fedi server for a single-person, daily-driver instance, accessed via mastodon apps, interacting with the wider fediverse?

I /think/ I've mostly seen it deployed as a more write-centric service (for info bots/etc) ... but I could be mistaken.

Jörg :fediverse:'s avatar
Jörg :fediverse:

@[email protected]

Ich habe hier im vergangenen Jahr deutlich weniger als 2023 interagiert.

Während der Weihnachtspause ist mir aber nochmal klar geworden: Das ist für so viele Bereiche unseres Lebens und unser Zusammenleben immens wichtig.

Darum lautete ein Vorsatz von mir für 2025: Unsere Mastodon-Instanz wieder monatlich stärker finanziell supporten✅

patreon.com/bildung

Besonderer Dank geht raus an @fries, @ebinger und @favstarmafia (:

The Internet Review's avatar
The Internet Review

@[email protected]

One of the unsung heroes of the (aka and beyond) are all the great bots available for spicing up your feed. And no, I’m not talking about the nasty bad bots out there which try to slurp up all your content and steal your private details. I’m talking about content bots which humans set up to be fun and amusing! 😆

Check out “My Favorite Fediverse Bots for 2025“ (and download the starter pack CSV!)

theinternet.review/2025/01/06/

BeAware :fediverse:'s avatar
BeAware :fediverse:

@[email protected]

The thing that people see an issue with, is the fact that a lot of people use it to "harass" others in front of their followers as if to say "laugh at this fool". However, if this is truly the "open" web, that's just gonna be a thing.

I hope they eventually make it an official feature as well, but for now, most third party apps have it built-in.

From: @alemarcati
mastodon.social/@alemarcati/11

GENKI's avatar
GENKI

@[email protected]

東洋経済には :fediverse: は SNS として認識すらされていないということはわかった :mastodance:

mixi2も登場「2025年」SNS勢力図はどうなる? 生成AI「Grok」と共にスーパーアプリ目指す「X」(東洋経済オンライン)
news.yahoo.co.jp/articles/deae

The Internet Review's avatar
The Internet Review

@[email protected]

One of the unsung heroes of the (aka and beyond) are all the great bots available for spicing up your feed. And no, I’m not talking about the nasty bad bots out there which try to slurp up all your content and steal your private details. I’m talking about content bots which humans set up to be fun and amusing! 😆

Check out “My Favorite Fediverse Bots for 2025“ (and download the starter pack CSV!)

theinternet.review/2025/01/06/

Vocal Cat's avatar
Vocal Cat

@[email protected]

Who has the best cats? Is it Twitter, Bluesky, Threads, the , or LinkedIn? 🐱 Let's settle this!

Vocal Cat's avatar
Vocal Cat

@[email protected]

Who has the best cats? Is it Twitter, Bluesky, Threads, the , or LinkedIn? 🐱 Let's settle this!

Jörg :fediverse:'s avatar
Jörg :fediverse:

@[email protected]

Ich habe hier im vergangenen Jahr deutlich weniger als 2023 interagiert.

Während der Weihnachtspause ist mir aber nochmal klar geworden: Das ist für so viele Bereiche unseres Lebens und unser Zusammenleben immens wichtig.

Darum lautete ein Vorsatz von mir für 2025: Unsere Mastodon-Instanz wieder monatlich stärker finanziell supporten✅

patreon.com/bildung

Besonderer Dank geht raus an @fries, @ebinger und @favstarmafia (:

silverpill's avatar
silverpill

@[email protected]

Fediverse tech roadmap 2025

One year ago I published Fediverse tech roadmap for year 2024. How did we do?

- Data portability. FEP-ef61 has advanced significantly. Compatible IDs were introduced, which make portable objects fully compatbile with existing ActivityPub implementations. Identity can be represented using any DID method, not just did:key. Security of the protocol has been studied extensively. And most importantly, there are now two interoperable implementations: Streams and Mitra.
- End-to-end encryption. An end-to-end encryption system is being developed for social networking platform Enigmatick. It is based on the Olm protocol, which is also used by Matrix.
- Connectivity. A big improvement came from Mastodon, which now notifies its users when relationships are severed by moderation actions. ActivityConnect AP-to-AP bridge was developed, but it didn't see much use, indicating that the problem it attempts to solve is not serious.
- Moderation / spam resistance. Two different conversation moderation mechanisms emerged: Conversation Containers (implemented by Streams and Hubzilla) and Interaction Policies (implemented by GoToSocial).
- Scalability. The number of platforms implementing FEP-8b32 is slowly increasing but the biggest ones still don't sign their activities (or use non-standard LD signatures). Some preliminary work on optimizing media delivery was done in FEP-1311: Media Attachments.
- Plugins. Lemmy developers are discussing WASM plugins in an RFC. A WASM-based MRF was implemented in Kitsune.
- Discovery. Mastodon introduced fediverse:creator OpenGraph tag. Relay protocols were documented in FEP-ae0c, and ActivityPub Discovery report was published. Several projects are working on Starter Packs similar to ones used by BlueSky platform.
- Developer experience. Fun Fediverse Development project continues to improve, and now provides support tables for many protocol features. ActivityPub and WebFinger and ActivityPub and HTTP Signatures reports were published, as well as FEPs about Origin-based security model and various features such as OpenWebAuth and Emoji reactions. FEDERATION.md is becoming more popular, the number of projects using it nearly doubled in 2024.
- Groups. Conversation Containers were implemented in Streams and Hubzilla, and FEP-171b: Conversation Containers was published. FEP-1b12 and Conversation Containers have many similarities, and the work on further alignment is ongoing.
- URL handlers. No significant progress.
- Synchronization of replies. Both FEP-1b12 and Conversation Containers naturally lead to synchronized conversations.
- Markets. No significant progress.
- Quoting. FEP-e232 is now supported by 8 platforms.
- Forge federation. Forgejo implemented federated stars, and the development of other features has started.

I think the work on these problems should continue in 2025, especially in the following key areas:

- Conversations and groups. FEP-1b12 and Conversation Containers are good solutions and may eventually become one because their differences are mostly superficial.
- Data portability and Nomadic identity. A lot of work still needs to be done. Some aspects of FEP-ef61 are underspecified, for example media storage. A fully featured nomadic client (FEP-ae97) has not been developed yet and migration of data between implementations has not been demonstrated. I would also like to see experiments with peer to peer networking (FEP-ef61 is designed to be transport agnostic, this means HTTP transport can be replaced with something else, such as Iroh) and cross-protocol interop (identities created for Nostr and ATProto are compatible with FEP-ef61).
- ActivityPub C2S API. Although standard client-to-server API is not popular among developers, the work on it should continue because nomadic client-to-server API (FEP-ae97) is very similar.
- End-to-end encryption. I think that adoption of solutions developed for other protocols is a good idea. A custom solution may take many years to develop.
- Developer experience. Code reuse in not common in Fediverse: most developers implement ActivityPub primitives themselves. Libraries for all programming languages need to be created, along with online validators, testing tools and good documentation.

#ActivityPub #Fediverse

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@[email protected]

gbhnews's avatar
gbhnews

@[email protected]

🌞 Hello ! This is GBH bringing you the world from . It's 24F at Logan Airport and visibility is 10mi.

Jerod Mayo is out as head coach of the New England Patriots. .

Canadian Prime Minister Justin Trudeau announced his resignation.

Congress certified Trump's 2024 election win without incident.

gbhnews's avatar
gbhnews

@[email protected]

🌞 Hello ! This is GBH bringing you the world from . It's 24F at Logan Airport and visibility is 10mi.

Jerod Mayo is out as head coach of the New England Patriots. .

Canadian Prime Minister Justin Trudeau announced his resignation.

Congress certified Trump's 2024 election win without incident.

Surf's avatar
Surf

@[email protected]

New here? Don't forget to sign up for the Surf waitlist 🏄‍♂️. Surf is a new way to browse the social web and create feeds that serve you, not some monopolistic platform.

waitlist.surf.social/

Surf's avatar
Surf

@[email protected]

New here? Don't forget to sign up for the Surf waitlist 🏄‍♂️. Surf is a new way to browse the social web and create feeds that serve you, not some monopolistic platform.

waitlist.surf.social/

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@[email protected]

Newsmast's avatar
Newsmast

@[email protected]

New Year, New Social 💡

So, what does New Social mean?

To us, it's a vision of open social media - free from the control of a single person. It's not a single platform (or protocol) but a new way of thinking.

A place where you can post, build community across multiple platforms, and move if you ever need to.

It's a one stop solution to the closed networks that only serve the billionaires who own them.

A graphic showing the copy: New Year New Social. What does it mean? Follow us to learn more. 

The colours of the graphic match Newsmast Foundation branding with the logo animated to spin in the top left corner.
A graphic showing the copy: New Year New Social. What does it mean? Follow us to learn more. The colours of the graphic match Newsmast Foundation branding with the logo animated to spin in the top left corner.
Sam's avatar
Sam

@[email protected]

Halloooo, das Jahr nimmt langsam Fahrt auf und die Vorbereitungen für die Infoveranstaltung zum Fediverse an der Uni Münster laufen auf Hochtouren.

Freut euch unter anderem, auf ein Interview mit @ghooffacker zu Perspektiven aus der Wissenschaft zum Thema Fediverse und Mastodon. Wenn ihr mehr dazu erfahren wollt, kommt am 13.01. vorbei oder habt noch etwas mehr Geduld bis das Ganze auch online landet :)

@BjornW@mastodon.social's avatar
@[email protected]

@[email protected]

Does anyone have any info on the estimated collective investments on Fediverse technology currently?

The definition for Fediverse in this case may include Threads & Bluesky & possible others.

Any papers, hints, links etc are very welcome. Feel free to boost & share this question

CC:
@kissane
@darius
@dansup
@bjoernsta
@iftas
@swf
@cwebber
@evan
@Framasoft
@thisismissem
@fediforum
@elipariser
@_elena
@FediTips
@fediversereport

Newsmast's avatar
Newsmast

@[email protected]

New Year, New Social 💡

So, what does New Social mean?

To us, it's a vision of open social media - free from the control of a single person. It's not a single platform (or protocol) but a new way of thinking.

A place where you can post, build community across multiple platforms, and move if you ever need to.

It's a one stop solution to the closed networks that only serve the billionaires who own them.

A graphic showing the copy: New Year New Social. What does it mean? Follow us to learn more. 

The colours of the graphic match Newsmast Foundation branding with the logo animated to spin in the top left corner.
A graphic showing the copy: New Year New Social. What does it mean? Follow us to learn more. The colours of the graphic match Newsmast Foundation branding with the logo animated to spin in the top left corner.
silverpill's avatar
silverpill

@[email protected]

Fediverse tech roadmap 2025

One year ago I published Fediverse tech roadmap for year 2024. How did we do?

- Data portability. FEP-ef61 has advanced significantly. Compatible IDs were introduced, which make portable objects fully compatbile with existing ActivityPub implementations. Identity can be represented using any DID method, not just did:key. Security of the protocol has been studied extensively. And most importantly, there are now two interoperable implementations: Streams and Mitra.
- End-to-end encryption. An end-to-end encryption system is being developed for social networking platform Enigmatick. It is based on the Olm protocol, which is also used by Matrix.
- Connectivity. A big improvement came from Mastodon, which now notifies its users when relationships are severed by moderation actions. ActivityConnect AP-to-AP bridge was developed, but it didn't see much use, indicating that the problem it attempts to solve is not serious.
- Moderation / spam resistance. Two different conversation moderation mechanisms emerged: Conversation Containers (implemented by Streams and Hubzilla) and Interaction Policies (implemented by GoToSocial).
- Scalability. The number of platforms implementing FEP-8b32 is slowly increasing but the biggest ones still don't sign their activities (or use non-standard LD signatures). Some preliminary work on optimizing media delivery was done in FEP-1311: Media Attachments.
- Plugins. Lemmy developers are discussing WASM plugins in an RFC. A WASM-based MRF was implemented in Kitsune.
- Discovery. Mastodon introduced fediverse:creator OpenGraph tag. Relay protocols were documented in FEP-ae0c, and ActivityPub Discovery report was published. Several projects are working on Starter Packs similar to ones used by BlueSky platform.
- Developer experience. Fun Fediverse Development project continues to improve, and now provides support tables for many protocol features. ActivityPub and WebFinger and ActivityPub and HTTP Signatures reports were published, as well as FEPs about Origin-based security model and various features such as OpenWebAuth and Emoji reactions. FEDERATION.md is becoming more popular, the number of projects using it nearly doubled in 2024.
- Groups. Conversation Containers were implemented in Streams and Hubzilla, and FEP-171b: Conversation Containers was published. FEP-1b12 and Conversation Containers have many similarities, and the work on further alignment is ongoing.
- URL handlers. No significant progress.
- Synchronization of replies. Both FEP-1b12 and Conversation Containers naturally lead to synchronized conversations.
- Markets. No significant progress.
- Quoting. FEP-e232 is now supported by 8 platforms.
- Forge federation. Forgejo implemented federated stars, and the development of other features has started.

I think the work on these problems should continue in 2025, especially in the following key areas:

- Conversations and groups. FEP-1b12 and Conversation Containers are good solutions and may eventually become one because their differences are mostly superficial.
- Data portability and Nomadic identity. A lot of work still needs to be done. Some aspects of FEP-ef61 are underspecified, for example media storage. A fully featured nomadic client (FEP-ae97) has not been developed yet and migration of data between implementations has not been demonstrated. I would also like to see experiments with peer to peer networking (FEP-ef61 is designed to be transport agnostic, this means HTTP transport can be replaced with something else, such as Iroh) and cross-protocol interop (identities created for Nostr and ATProto are compatible with FEP-ef61).
- ActivityPub C2S API. Although standard client-to-server API is not popular among developers, the work on it should continue because nomadic client-to-server API (FEP-ae97) is very similar.
- End-to-end encryption. I think that adoption of solutions developed for other protocols is a good idea. A custom solution may take many years to develop.
- Developer experience. Code reuse in not common in Fediverse: most developers implement ActivityPub primitives themselves. Libraries for all programming languages need to be created, along with online validators, testing tools and good documentation.

#ActivityPub #Fediverse

meneer's avatar
meneer

@[email protected]

My server is running the software platform, a fork of , to post messages via the protocol. You can see my post, even though you may use another platform to participate in the fediverse, like or . So, without using the same platform, we can share messages because we use the same protocol. We have to move from platform-based networking to protocol-based networking. Get rid of the lock-ins, be self-sovereign!

Elena Rossini on GoToSocial ⁂'s avatar
Elena Rossini on GoToSocial ⁂

@[email protected]

Week 3 of #selfhosting thanks to the magic of #YunoHost and #GoToSocial

This morning I successfully bridged my account to #Bluesky via #BridgyFed 👀

@elena.aseachange.com.ap.brid.gy

What's fascinating is that I had tried before but it didn't work... because BridgyFed has some rules, where you need to have a profile pic and an account older than 2 weeks in order to successfully bridge :valid:

As you all know, I FAR FAR FAR prefer the #Fediverse to Bluesky, but many non-technical friends of mine are now active there, so it's a good opportunity for me to stay in touch with them while posting on the Fediverse. Special thanks to @snarfed.org for making this possible 🙏

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@[email protected]

[main] 2025-01-05T22:45:08-08:00 [info] LogJam ⚡

LOGJAM
[main] 2025-01-05T22:45:08-08:00 [info] LogJam ⚡ LOGJAM
theru's avatar
theru

@[email protected]

Good Morning #fediverse #tzag
silverpill's avatar
silverpill

@[email protected]

Fediverse tech roadmap 2025

One year ago I published Fediverse tech roadmap for year 2024. How did we do?

- Data portability. FEP-ef61 has advanced significantly. Compatible IDs were introduced, which make portable objects fully compatbile with existing ActivityPub implementations. Identity can be represented using any DID method, not just did:key. Security of the protocol has been studied extensively. And most importantly, there are now two interoperable implementations: Streams and Mitra.
- End-to-end encryption. An end-to-end encryption system is being developed for social networking platform Enigmatick. It is based on the Olm protocol, which is also used by Matrix.
- Connectivity. A big improvement came from Mastodon, which now notifies its users when relationships are severed by moderation actions. ActivityConnect AP-to-AP bridge was developed, but it didn't see much use, indicating that the problem it attempts to solve is not serious.
- Moderation / spam resistance. Two different conversation moderation mechanisms emerged: Conversation Containers (implemented by Streams and Hubzilla) and Interaction Policies (implemented by GoToSocial).
- Scalability. The number of platforms implementing FEP-8b32 is slowly increasing but the biggest ones still don't sign their activities (or use non-standard LD signatures). Some preliminary work on optimizing media delivery was done in FEP-1311: Media Attachments.
- Plugins. Lemmy developers are discussing WASM plugins in an RFC. A WASM-based MRF was implemented in Kitsune.
- Discovery. Mastodon introduced fediverse:creator OpenGraph tag. Relay protocols were documented in FEP-ae0c, and ActivityPub Discovery report was published. Several projects are working on Starter Packs similar to ones used by BlueSky platform.
- Developer experience. Fun Fediverse Development project continues to improve, and now provides support tables for many protocol features. ActivityPub and WebFinger and ActivityPub and HTTP Signatures reports were published, as well as FEPs about Origin-based security model and various features such as OpenWebAuth and Emoji reactions. FEDERATION.md is becoming more popular, the number of projects using it nearly doubled in 2024.
- Groups. Conversation Containers were implemented in Streams and Hubzilla, and FEP-171b: Conversation Containers was published. FEP-1b12 and Conversation Containers have many similarities, and the work on further alignment is ongoing.
- URL handlers. No significant progress.
- Synchronization of replies. Both FEP-1b12 and Conversation Containers naturally lead to synchronized conversations.
- Markets. No significant progress.
- Quoting. FEP-e232 is now supported by 8 platforms.
- Forge federation. Forgejo implemented federated stars, and the development of other features has started.

I think the work on these problems should continue in 2025, especially in the following key areas:

- Conversations and groups. FEP-1b12 and Conversation Containers are good solutions and may eventually become one because their differences are mostly superficial.
- Data portability and Nomadic identity. A lot of work still needs to be done. Some aspects of FEP-ef61 are underspecified, for example media storage. A fully featured nomadic client (FEP-ae97) has not been developed yet and migration of data between implementations has not been demonstrated. I would also like to see experiments with peer to peer networking (FEP-ef61 is designed to be transport agnostic, this means HTTP transport can be replaced with something else, such as Iroh) and cross-protocol interop (identities created for Nostr and ATProto are compatible with FEP-ef61).
- ActivityPub C2S API. Although standard client-to-server API is not popular among developers, the work on it should continue because nomadic client-to-server API (FEP-ae97) is very similar.
- End-to-end encryption. I think that adoption of solutions developed for other protocols is a good idea. A custom solution may take many years to develop.
- Developer experience. Code reuse in not common in Fediverse: most developers implement ActivityPub primitives themselves. Libraries for all programming languages need to be created, along with online validators, testing tools and good documentation.

#ActivityPub #Fediverse

Tom Casavant's avatar
Tom Casavant

@[email protected]

Wrote a blog post about a small ActivityPub project I'm working on that bridges my Steam screenshots to the social web

tomcasavant.com/untitled-gamin

Kagi HQ's avatar
Kagi HQ

@[email protected]

We're on @pixelfed 😍

Give us a follow here: @Kagi

pixelfed.social/i/web/profile/

Pixelfed's logo with a subtly animated picture frame hanging from the icon. The frame includes a simplistic illustration of a mountain and sky. Below is Kagi's cartoon dog mascot, named Doggo.
Pixelfed's logo with a subtly animated picture frame hanging from the icon. The frame includes a simplistic illustration of a mountain and sky. Below is Kagi's cartoon dog mascot, named Doggo.
silverpill's avatar
silverpill

@[email protected]

Fediverse tech roadmap 2025

One year ago I published Fediverse tech roadmap for year 2024. How did we do?

- Data portability. FEP-ef61 has advanced significantly. Compatible IDs were introduced, which make portable objects fully compatbile with existing ActivityPub implementations. Identity can be represented using any DID method, not just did:key. Security of the protocol has been studied extensively. And most importantly, there are now two interoperable implementations: Streams and Mitra.
- End-to-end encryption. An end-to-end encryption system is being developed for social networking platform Enigmatick. It is based on the Olm protocol, which is also used by Matrix.
- Connectivity. A big improvement came from Mastodon, which now notifies its users when relationships are severed by moderation actions. ActivityConnect AP-to-AP bridge was developed, but it didn't see much use, indicating that the problem it attempts to solve is not serious.
- Moderation / spam resistance. Two different conversation moderation mechanisms emerged: Conversation Containers (implemented by Streams and Hubzilla) and Interaction Policies (implemented by GoToSocial).
- Scalability. The number of platforms implementing FEP-8b32 is slowly increasing but the biggest ones still don't sign their activities (or use non-standard LD signatures). Some preliminary work on optimizing media delivery was done in FEP-1311: Media Attachments.
- Plugins. Lemmy developers are discussing WASM plugins in an RFC. A WASM-based MRF was implemented in Kitsune.
- Discovery. Mastodon introduced fediverse:creator OpenGraph tag. Relay protocols were documented in FEP-ae0c, and ActivityPub Discovery report was published. Several projects are working on Starter Packs similar to ones used by BlueSky platform.
- Developer experience. Fun Fediverse Development project continues to improve, and now provides support tables for many protocol features. ActivityPub and WebFinger and ActivityPub and HTTP Signatures reports were published, as well as FEPs about Origin-based security model and various features such as OpenWebAuth and Emoji reactions. FEDERATION.md is becoming more popular, the number of projects using it nearly doubled in 2024.
- Groups. Conversation Containers were implemented in Streams and Hubzilla, and FEP-171b: Conversation Containers was published. FEP-1b12 and Conversation Containers have many similarities, and the work on further alignment is ongoing.
- URL handlers. No significant progress.
- Synchronization of replies. Both FEP-1b12 and Conversation Containers naturally lead to synchronized conversations.
- Markets. No significant progress.
- Quoting. FEP-e232 is now supported by 8 platforms.
- Forge federation. Forgejo implemented federated stars, and the development of other features has started.

I think the work on these problems should continue in 2025, especially in the following key areas:

- Conversations and groups. FEP-1b12 and Conversation Containers are good solutions and may eventually become one because their differences are mostly superficial.
- Data portability and Nomadic identity. A lot of work still needs to be done. Some aspects of FEP-ef61 are underspecified, for example media storage. A fully featured nomadic client (FEP-ae97) has not been developed yet and migration of data between implementations has not been demonstrated. I would also like to see experiments with peer to peer networking (FEP-ef61 is designed to be transport agnostic, this means HTTP transport can be replaced with something else, such as Iroh) and cross-protocol interop (identities created for Nostr and ATProto are compatible with FEP-ef61).
- ActivityPub C2S API. Although standard client-to-server API is not popular among developers, the work on it should continue because nomadic client-to-server API (FEP-ae97) is very similar.
- End-to-end encryption. I think that adoption of solutions developed for other protocols is a good idea. A custom solution may take many years to develop.
- Developer experience. Code reuse in not common in Fediverse: most developers implement ActivityPub primitives themselves. Libraries for all programming languages need to be created, along with online validators, testing tools and good documentation.

#ActivityPub #Fediverse

silverpill's avatar
silverpill

@[email protected]

Fediverse tech roadmap 2025

One year ago I published Fediverse tech roadmap for year 2024. How did we do?

- Data portability. FEP-ef61 has advanced significantly. Compatible IDs were introduced, which make portable objects fully compatbile with existing ActivityPub implementations. Identity can be represented using any DID method, not just did:key. Security of the protocol has been studied extensively. And most importantly, there are now two interoperable implementations: Streams and Mitra.
- End-to-end encryption. An end-to-end encryption system is being developed for social networking platform Enigmatick. It is based on the Olm protocol, which is also used by Matrix.
- Connectivity. A big improvement came from Mastodon, which now notifies its users when relationships are severed by moderation actions. ActivityConnect AP-to-AP bridge was developed, but it didn't see much use, indicating that the problem it attempts to solve is not serious.
- Moderation / spam resistance. Two different conversation moderation mechanisms emerged: Conversation Containers (implemented by Streams and Hubzilla) and Interaction Policies (implemented by GoToSocial).
- Scalability. The number of platforms implementing FEP-8b32 is slowly increasing but the biggest ones still don't sign their activities (or use non-standard LD signatures). Some preliminary work on optimizing media delivery was done in FEP-1311: Media Attachments.
- Plugins. Lemmy developers are discussing WASM plugins in an RFC. A WASM-based MRF was implemented in Kitsune.
- Discovery. Mastodon introduced fediverse:creator OpenGraph tag. Relay protocols were documented in FEP-ae0c, and ActivityPub Discovery report was published. Several projects are working on Starter Packs similar to ones used by BlueSky platform.
- Developer experience. Fun Fediverse Development project continues to improve, and now provides support tables for many protocol features. ActivityPub and WebFinger and ActivityPub and HTTP Signatures reports were published, as well as FEPs about Origin-based security model and various features such as OpenWebAuth and Emoji reactions. FEDERATION.md is becoming more popular, the number of projects using it nearly doubled in 2024.
- Groups. Conversation Containers were implemented in Streams and Hubzilla, and FEP-171b: Conversation Containers was published. FEP-1b12 and Conversation Containers have many similarities, and the work on further alignment is ongoing.
- URL handlers. No significant progress.
- Synchronization of replies. Both FEP-1b12 and Conversation Containers naturally lead to synchronized conversations.
- Markets. No significant progress.
- Quoting. FEP-e232 is now supported by 8 platforms.
- Forge federation. Forgejo implemented federated stars, and the development of other features has started.

I think the work on these problems should continue in 2025, especially in the following key areas:

- Conversations and groups. FEP-1b12 and Conversation Containers are good solutions and may eventually become one because their differences are mostly superficial.
- Data portability and Nomadic identity. A lot of work still needs to be done. Some aspects of FEP-ef61 are underspecified, for example media storage. A fully featured nomadic client (FEP-ae97) has not been developed yet and migration of data between implementations has not been demonstrated. I would also like to see experiments with peer to peer networking (FEP-ef61 is designed to be transport agnostic, this means HTTP transport can be replaced with something else, such as Iroh) and cross-protocol interop (identities created for Nostr and ATProto are compatible with FEP-ef61).
- ActivityPub C2S API. Although standard client-to-server API is not popular among developers, the work on it should continue because nomadic client-to-server API (FEP-ae97) is very similar.
- End-to-end encryption. I think that adoption of solutions developed for other protocols is a good idea. A custom solution may take many years to develop.
- Developer experience. Code reuse in not common in Fediverse: most developers implement ActivityPub primitives themselves. Libraries for all programming languages need to be created, along with online validators, testing tools and good documentation.

#ActivityPub #Fediverse

Kagi HQ's avatar
Kagi HQ

@[email protected]

We're on @pixelfed 😍

Give us a follow here: @Kagi

pixelfed.social/i/web/profile/

Pixelfed's logo with a subtly animated picture frame hanging from the icon. The frame includes a simplistic illustration of a mountain and sky. Below is Kagi's cartoon dog mascot, named Doggo.
Pixelfed's logo with a subtly animated picture frame hanging from the icon. The frame includes a simplistic illustration of a mountain and sky. Below is Kagi's cartoon dog mascot, named Doggo.
silverpill's avatar
silverpill

@[email protected]

Fediverse tech roadmap 2025

One year ago I published Fediverse tech roadmap for year 2024. How did we do?

- Data portability. FEP-ef61 has advanced significantly. Compatible IDs were introduced, which make portable objects fully compatbile with existing ActivityPub implementations. Identity can be represented using any DID method, not just did:key. Security of the protocol has been studied extensively. And most importantly, there are now two interoperable implementations: Streams and Mitra.
- End-to-end encryption. An end-to-end encryption system is being developed for social networking platform Enigmatick. It is based on the Olm protocol, which is also used by Matrix.
- Connectivity. A big improvement came from Mastodon, which now notifies its users when relationships are severed by moderation actions. ActivityConnect AP-to-AP bridge was developed, but it didn't see much use, indicating that the problem it attempts to solve is not serious.
- Moderation / spam resistance. Two different conversation moderation mechanisms emerged: Conversation Containers (implemented by Streams and Hubzilla) and Interaction Policies (implemented by GoToSocial).
- Scalability. The number of platforms implementing FEP-8b32 is slowly increasing but the biggest ones still don't sign their activities (or use non-standard LD signatures). Some preliminary work on optimizing media delivery was done in FEP-1311: Media Attachments.
- Plugins. Lemmy developers are discussing WASM plugins in an RFC. A WASM-based MRF was implemented in Kitsune.
- Discovery. Mastodon introduced fediverse:creator OpenGraph tag. Relay protocols were documented in FEP-ae0c, and ActivityPub Discovery report was published. Several projects are working on Starter Packs similar to ones used by BlueSky platform.
- Developer experience. Fun Fediverse Development project continues to improve, and now provides support tables for many protocol features. ActivityPub and WebFinger and ActivityPub and HTTP Signatures reports were published, as well as FEPs about Origin-based security model and various features such as OpenWebAuth and Emoji reactions. FEDERATION.md is becoming more popular, the number of projects using it nearly doubled in 2024.
- Groups. Conversation Containers were implemented in Streams and Hubzilla, and FEP-171b: Conversation Containers was published. FEP-1b12 and Conversation Containers have many similarities, and the work on further alignment is ongoing.
- URL handlers. No significant progress.
- Synchronization of replies. Both FEP-1b12 and Conversation Containers naturally lead to synchronized conversations.
- Markets. No significant progress.
- Quoting. FEP-e232 is now supported by 8 platforms.
- Forge federation. Forgejo implemented federated stars, and the development of other features has started.

I think the work on these problems should continue in 2025, especially in the following key areas:

- Conversations and groups. FEP-1b12 and Conversation Containers are good solutions and may eventually become one because their differences are mostly superficial.
- Data portability and Nomadic identity. A lot of work still needs to be done. Some aspects of FEP-ef61 are underspecified, for example media storage. A fully featured nomadic client (FEP-ae97) has not been developed yet and migration of data between implementations has not been demonstrated. I would also like to see experiments with peer to peer networking (FEP-ef61 is designed to be transport agnostic, this means HTTP transport can be replaced with something else, such as Iroh) and cross-protocol interop (identities created for Nostr and ATProto are compatible with FEP-ef61).
- ActivityPub C2S API. Although standard client-to-server API is not popular among developers, the work on it should continue because nomadic client-to-server API (FEP-ae97) is very similar.
- End-to-end encryption. I think that adoption of solutions developed for other protocols is a good idea. A custom solution may take many years to develop.
- Developer experience. Code reuse in not common in Fediverse: most developers implement ActivityPub primitives themselves. Libraries for all programming languages need to be created, along with online validators, testing tools and good documentation.

#ActivityPub #Fediverse

Kagi HQ's avatar
Kagi HQ

@[email protected]

We're on @pixelfed 😍

Give us a follow here: