
Bonfire's progressive web app is getting cool 🤟
Tending to @bonfire@bonfire.cafe 🔥
Bonfire's progressive web app is getting cool 🤟
Like, looking at what my hypothetical person 2 thought they were doing -- there is no need for them to assume that is a clean or perfect block, or that there is no way for it to get exposed. Most people who have used blocks in any sort of social platform know that with alt-accounts or friends, or just normal social dynamics, the person they block can find out. That capacity even with that limitation is nevertheless /enough/ for them to want it.
In this case, that still-CAN-be-revealed requires either active testing of each possible block, or very engaged social surveillance.
Which is often discussed, and which people seem to discuss and understand Bluesky's block issue as being qualitatively different than.
@gaditb@icosahedron.website oh yeah they're definitely different! maybe enough that each (or something in between, like showing what boundaries you applied to people who you give permission to) may be desired in different situations or use cases?
I have thoughts re:
"""
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.
"""
about the concepts of who "owns" (and can curate) the comments section of their post, from whose perspective. (It's never going to be a single person curating/moderating, but I.. think?.. people feel ownership feelings over it nevertheless.)
@gaditb@icosahedron.website yeah that's an interesting line of thinking, I think the authors of these to FEPs have been exploring that: github.com/bonfire-networks/...
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...
@gaditb@icosahedron.website Don't worry I'm enjoying it, keep em coming!
@mayel (After a certain level of depth to this conversation I hit the wall of being a Fake Geek Girl™ who hasn't actually read @sarahjamielewis 's Queer Privacy or more than a chapter or two of @sarahjeong 's Internet Of Garbage or looked deeply into the work and critiques that @evacide has done over the years or ... .)
@gaditb@icosahedron.website Thanks for the reading materials! 😊
@evacide@hachyderm.io @sarahjamielewis@mastodon.social @sarahjeong@mastodon.social
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:
⁂ 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.
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.
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.
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.
It'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.
And 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.
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.
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!
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
Thanks for compiling that list! We've opened a few issues with FEPs to investigate: github.com/bonfire-networks/...
@jonny@neuromatch.social @strypey@mastodon.nzoss.nz @tchambers@indieweb.social @moshidon@floss.social @pre@boing.world
Has anybody built a UI for browsing longform writing over #ActivityPub?
@jsit@social.coop we're working on it right now 😊
🔥 Bonfire Install Party #1 – Get your fediverse instance running!
Join us this Friday at 15:30 UTC for our first Bonfire Install Party!
A casual peer-led session where we’ll set up Bonfire instances together, ask questions, and tackle challenges in real time.
This session will focus on deploying Bonfire using Co-op Cloud — our recommended method, especially for fresh servers. Whether you’re ready to install or just want to follow along and learn, you’re welcome.
• Hands-on walkthrough of live deployment using Co-op Cloud
• Real-world troubleshooting and debugging — we’ll learn together
• Shared note-taking to improve our documentation and install guides
• Help shape better tools and recipes by trying them out in the wild
• A no-pressure, collaborative learning environment
Ideally:
• A domain or subdomain
• A publicly-accessible server (VPS, dedicated, or local) with SSH access
• DNS configured for your domain
• Your curiosity and questions!
Not ready? That’s fine too — join to watch, learn, and prep for next time. No experience required.
Please note the time is 15:30 UTC, you can see what that means in your timezone using this link and add the event to your calendar using the Actions dropdown menu.
🚀 Our first online install party is happening!
Join us this Friday to set up your own Bonfire instance 🔥
We’ll focus on setting up an instance with @coopcloud, answer questions, and support each other along the way.
📅 Friday 27 June at 15:30 UTC
📍 Details: https://mobilizon.libretic.fr/events/c0c0b536-5216-412b-a277-1dadead06997
🔥 Want to start your own Bonfire instance?
We’re hosting online install parties, come set up your server alongside others! Bring your questions and curiosity, we’ll figure it out together and support each other through the process.
✅ Ideally have a (sub)domain + server with DNS set up, or just follow along and take notes.
📆 Vote on possible dates/times: https://crab.fit/bonfire-install-parties-394649
📩 Sign up to be notified: https://mailchi.mp/a601c2e1e132/bonfire-install-parties
🌐 Can you help translate Bonfire into your language?
We’re looking for translators and bilingual folks to help localise Bonfire extensions and UI into as many languages as possible — especially before the 1.0 release!
No coding needed — just a love of words.
🔥 Join here: https://app.transifex.com/bonfire/bonfire/
P.S. You can also help by translating this very message and/or sharing it! The more communities we reach, the more accessible Bonfire becomes. 🌍💬
@yala@degrowth.social thanks for the feedaback! we're just doing different tests with federating long-form articles, suggestions welcome...
@silverpill@mitra.social thanks! I was just doing different tests with federating long-form articles...
📣 Kicking off a week of exciting news from Bonfire by bridging online and offline worlds:
✊️ Join us May 9th at Làbas - a self-managed social municipality in Bologna, Italy where we're facilitating a collaborative Bonfire workshop with #municipiozero and scift.
Together, we'll install a Bonfire instance and collectively configure extensions, community guidelines, and settings tailored to their specific needs 💅
municipiozero.it/events/bonf...
Stay tuned for more announcements 🔥
@liaizon@social.wake.st warning fresh paint: @Bonfire
@liaizon@social.wake.st yeah this one is for communication and coordination around the project, there won't be a flagship instance
This is a bonfire demo instance for testing purposes