Recent activities
@mayel How visible is the exclusion itself, though?

Like, if I send to "Hey does anybody have a place I can crash tonight?" to @group--attendees_of_this_hacker_gathering but invisible to @guy_I_dont_trust_to_be_alone_with_but_really_dont_want_to_get_into_a_public_confrontation_about_that_right_now,

is there a chance that @defender_of_that_guy_who_sees_fear_of_him_as_an_attack_on_his_character sees that block in the metadata of the post and starts flaming me about it?

This is a contrived example that I don't have specific experiences I'm translating it from,
and sometimes technical limitations or just "we don't have a better design for that yet" mean that you can't AVOID exposing that, so it's not necessarily "it Must Be Fixed if it reveals this",
just,
(a) finding what intuition might be, and checking the implemented teality against that
(b) exploring what attacks there might be, and knowing where they might be made less post-hoc surprising

e.g.:
https://old.reddit.com/r/BlueskySocial/comments/18ebrhx/blocks_being_public_is_already_leading_to/

@gaditb@icosahedron.website

I think the Bluesky example you linked to is an unfortunate illustration of what happens when we expect technical tools to cleanly solve social problems. Making a blocklist public is obviously egregious, but even private exclusions can be exposed through old-fashioned social interactions. For example, someone casually referencing a post might unintentionally reveal to someone else that they weren't included.


In Bonfire, boundaries aren’t meant to control what others do on their own instance (apart from defining who an activity is addressed to, similarly to BCC with email). They’re more about controlling what reaches you on yours. Since ActivityPub doesn’t yet support strong security features like end-to-end encryption or object capabilities, boundaries are designed as a local-first mechanism. They help shape your experience and interactions rather than enforcing strict rules across the network.


So, in your example, if someone starts harassing you, you can block them, or just silence them or the thread in question. From your perspective, those replies disappear, and new ones won’t appear at all. Your instance silently enforces these boundaries by ignoring unwanted interactions, even if the sender’s server is unaware and still allows them to post.


It’s not perfect privacy or hard enforcement but harm reduction and local autonomy in a messy, federated world...

@mayel (You can tell me to, like, look into it myself rather than asking you to explain every detail and stuff. I'm not in a situation where me having that info is relevant to my safety or supporting anyone where it is relevant to theirs. I'm just asking hopefully-useful questions, so while I like learning about how this works from this angle and am enjoying it, if my repeatedly-asking-details is not particularly enjoyable/useful to you/the project, like.)
(I'm not getting thst impression from you, but just in case/to be explicit about my conversational position rather than try to rely on tonal nuances.)

@gaditb@icosahedron.website Don't worry I'm enjoying it, keep em coming!

@mayel Oh wow! I didn't even look at the specifics yet (another reason this was dashed-off and non-specific), that's great that you've already been thinking along those same lines!

The actual specific thing with Bonfire set me off on this line of thinking was:

"""
E.g. you can share a post with several circles but only allow replies from a specific circle, or make a post public but invisible to specific people.
"""

"Make this invisible to X, Y, Z" strikes me as something that can requires very nuanced and situation specific careful stepping around disclosure/visibility and trust. (Ranging from "none", e.g. planning a birthday party, to much higher stakes.)

@gaditb@icosahedron.website Good catch! We usually try to explain things in a more comprehensive way than in that short blurb. Specifically in this case, if something it shared publicly there can be no gurantee that they won't see it. For non-public posts there's no guarantee either (because there's no end-to-end-encryption) but there's a better chance, since we distribute it only to the actors who were given permission (in a similar way as BCC in email).

A bit of a longer post to hopefully come (but I AM bad at Task, and currently behind on many things) but I think there's a widespread antipattern in UI presentation of calling a functionality (especially safety functionality) what the user WANTS rather than what it DOES.

I think this is especially... not "dangerous" exactly, but more impactful -- in federated/distributed networks, where there isn't a Single Platform/Owner able to play god with the single database (and with a stronger ability to pretend to play god with every user's endpoint).

Iike, "Delete Message", e.g. I think should be called "REQUEST Delete" -- it relies fundamentally on a basic minimal level of politeness from instances (federated) or individual endpoints (E2E chat).
A lot of these are "request"s, but it gets more obviously complicated when you add it in explicitly.
Like, "block user" -> "request block user".
Who are we Requesting things of? That is, who are we trusting? And who hears of this request?

@gaditb@icosahedron.website great point! This is what's currently shown when you delete a post in Bonfire, I guess we could make it clearer that this:

  1. deletes it on your local instance
  2. sends a deletion request to other instances (and to which ones?)

⁂ Article

Long-form content in Bonfire: Part 1

Inspired by @evan@cosocial.ca 's recent article on advancing long-form text in the social web, we've taken the leap and developed our first prototype for publishing and reading articles on Bonfire, based on the FEP-b2b8 draft specification.

Beyond microblogging

From day one, we've designed Bonfire to break free from the constraints of microblogging-centric social networks. We've already experimented with extensions for coordinating tasks, exchanging resources, and more. As we work on Bonfire Social 1.0, adding article support felt like a natural evolution of this vision.

Working based on a FEP (fediverse enhancement proposal) that provided both design guidelines and technical specifications was refreshing and showed how co-design and shared standards can be our strongest ally for pushing the fediverse forward.

One feed, many content types

Adding articles marks a small but significant step towards realising the vision of the open social web: a digital space where you can receive, read and interact with diverse content types from a single place, rather than juggling multiple platforms, accounts, and notification streams.

With Bonfire, articles from writefreely, ghosts, wordpress and any other federated platforms that implement the FEP-b2b8, now appear seamlessly in your feed alongside other content from your network. You can:

- Preview articles in the feed

- Read the full article and nested comments without loading an external site (just like the good old days of RSS readers)

- React or reply to the article or other comments

This UX improvement offers a glimpse of what becomes possible as more platforms and software embrace the fediverse.

But why stop there?

Thanks to our modular feed builder, we've added an "Articles" feed preset. This dedicated timeline displays only long-form content, with sorting options for most liked, most replied, and more.

articlesfeedIt's like having a decentralised blogging platform and feed reader integrated in your social network.

Speaking of feed readers, we've also added RSS and Atom feeds so you can subscribe to Bonfire feeds (including articles and/or microposts) via your favourite feed reader app as well.

rssAnd yes, you can also write articles directly in Bonfire! While the authoring experience is still rough around the edges (we're actively improving the UX), we're pleased with this initial prototype (which includes a simple rich text editor using markdown, and the option to add a title and cover image). In fact, this very article was written and published through Bonfire.

article_composer

What's Next?

As we refine the implementation, ideas are already flowing:

- Personal blog pages: Do users want an optional dedicated blog section on their profile, maybe with tabs to easily switch between notes, articles, or other content types?

- Instance curation: Could instance moderators pin and showcase their best articles on the homepage?

- Enhanced authoring: Should we create specialized UIs for properly writing and managing blog posts?

- Email subscriptions: Non-fediverse users could subscribe via email to federated blogs?

The possibilities are endless, but we believe long-form content features should be shaped by actual community needs and designed collaboratively in the open, building upon FEP-b2b8 through real-world usage and experimentation.

Join the experiment

This is just the beginning. You can experience writing and reading articles on Bonfire today at our campground instance or by setting up your own Bonfire instance.

If your community is interested in test-driving or co-designing long-form content features, we’d love to collaborate.

To build a fully integrated, community-shaped publishing experience — and continue improving Bonfire in many other areas — we’re actively seeking support. You can back Bonfire on OpenCollective or get in touch to help shape the future of federated publishing.

---

What would you like to see in federated long-form content? Join the conversation and help us build the open social web together!

Hi @nicd@masto.ahlcode.fi


You got that mostly right! We are indeed working trying to improve our website and how we describe the project...


Bonfire is entirely made up of extensions/plugins written in Elixir with Phoenix/LiveView/Surface.


Mosaic is more of a service offering to build digital spaces by using/extending/creating Bonfire extensions (all open source).


Hope that helps!

@tchambers @strypey

Indeed, we have FEPs that either directly address the UX issues mentioned in your post, or could be parts of final solutions:

The Sin of Overwhelming Complexity: Instance Selection Paralysis

- https://codeberg.org/fediverse/fep/src/branch/main/fep/61cf/fep-61cf.md
- https://codeberg.org/fediverse/fep/src/branch/main/fep/ae97/fep-ae97.md

The Sin of Remote Interaction Purgatory: Federation Gymnastics

- https://codeberg.org/fediverse/fep/src/branch/main/fep/07d7/fep-07d7.md (withdrawn; https://fedilinks.org is a similar proposal)
- https://codeberg.org/fediverse/fep/src/branch/main/fep/3b86/fep-3b86.md

The Sin of DM Disasters Waiting to Happen

Some FEPs talk about limited visibility posts and private groups:

- https://codeberg.org/fediverse/fep/src/branch/main/fep/171b/fep-171b.md
- https://codeberg.org/fediverse/fep/src/branch/main/fep/db0e/fep-db0e.md

The Sin of Ghost Conversations and Phantom Follower Counts

Synced conversations:

- https://codeberg.org/fediverse/fep/src/branch/main/fep/1b12/fep-1b12.md
- https://codeberg.org/fediverse/fep/src/branch/main/fep/171b/fep-171b.md
- https://codeberg.org/fediverse/fep/src/branch/main/fep/76ea/fep-76ea.md
- https://codeberg.org/fediverse/fep/src/branch/main/fep/f228/fep-f228.md

The Sin of Invisible Discovery: The Content Mirage
The Sin of User Discovery Hell

I think ActivityPub relays could be used to solve those problems:

- https://codeberg.org/fediverse/fep/src/branch/main/fep/ae0c/fep-ae0c.md

@yala@degrowth.social thanks for the feedaback! we're just doing different tests with federating long-form articles, suggestions welcome...


@Bonfire

"[...] Cause the technology is just gonna get better and better. And it’s gonna get easier and easier… and more and more convenient and more and more pleasurable… to sit alone with images on a screen… given to us by people who do not love us but want our money. And that’s fine in low doses, but if it’s the basic main staple of your diet, you’re gonna die.”

https://www.youtube.com/watch?v=FCfpOugmd9E

@dajb@social.coop that's my current list (mostly flipboard accounts)

bonfire.cafe/circle/01JYDQXA...