Design with Bonfire

😰  Tired of social networks that prioritize profit over people? #

Today's digital landscape, dominated by a few major platforms, has led to social polarization and fragmentation, the rise of extremist ideologies, and rampant disinformation and harassment. It's time for a change.

Beyond being a social network, Bonfire is a toolkit for creating digital spaces that empower communities. Designed with autonomy, safety, and meaningful interactions in mind, Bonfire enables communities to take control of their data as well as the features and design of their digital environment, free from algorithmic bias and corporate oversight.

🌈  Embrace the power of federation

Imagine a digital landscape where your community can exchange ideas, collaborate, and grow alongside others, not limited by your choice of app or platform, all while maintaining your autonomy and identity. With Bonfire, you're tapping into a vast, interconnected federation of communities (the "fediverse"), enriching your experience with diverse interactions, perspectives and possibilities.

🌟  Imagine a digital space where...

Communities set their own rules and co-create the features they need
Data privacy and autonomy are the norm, not the exception
Diverse voices can flourish in a safe environment

🤔  Building with Bonfire #

Bonfire is a framework designed for community-driven experimentation in creating and governing digital spaces. It goes beyond the usual platform mindset, encouraging communities to use its modular architecture for innovation, customization, and reimagined digital interaction.

The goal is that instead of users having to conform to digital ecosystems they can actively shape and build them. With Bonfire, communities write their own rules, constructing digital spaces that cater to their unique needs.

As we explore how to build with Bonfire, it's essential to understand some fundamental concepts that form the backbone of its digital ecosystem...

❓ Foundational concepts and glossary #


The fediverse is a collective term for the network of interconnected federated instances, each powered by various social networking apps (such as Mastodon, Peertube, or Bonfire). It represents an ecosystem of interconnected yet independent platforms that communicate with each other using open protocols.


An instance is a specific installation of a federated platform. Each instance can be independently operated and customized, running the software and features of its choice, with its own rules and team of admins and moderators. Instances are the building blocks of the fediverse.


In Bonfire, users can create groups that span across different instances. They can be closed groups reserved for members of an organisation or collective, or open to all who share common interests or goals. Groups are often self-governing within the framework of the larger ecosystem, such as having their own rules and moderators.


A community is more of social concept than a technical one, and could refer to the users associated with a particular instance or within a specific group that span across different instances, or to the fediverse at large.

Code of Conduct

A Code of Conduct is a set of guidelines and rules that govern behaviour and interactions within a community. It serves to establish expected standards of conduct, helping to create a safe and civil environment for all members.


Admins are responsible for the overall maintenance of an instance, ensuring its smooth operation and security. Especially when a new instance is being set up, the user with admin role can configure the instance, choose the default settings, and define and assign roles (such as promoting more admins and establishing a moderator team).


Moderators are responsible for facilitating day-to-day interactions within a community. They enforce the Code of Conduct and address issues among users to maintain a healthy and engaging environment. For example they may respond to a flagged post by trying to resolve a misunderstanding, or deleting an offending comment, or blocking a troll account.


Settings in Bonfire offer users the flexibility to customize their experience, from privacy controls such as whether their posts appear in search engines to appearance such as colors or fonts. While administrators can set defaults for each instance, individual users have the freedom to override these settings, ensuring a personalized and adaptable experience.


An extension (also commonly called a plugin or add-on) in Bonfire is a software component that can be installed on an instance to enhance or introduce new functionality. These allow for customization and expansion of the platform's capabilities according to the specific needs of a community.

In Bonfire extensions are not reserved for bonus features contributed by third parties (as is typically the case for many platforms), but every piece of the core software is packaged in an extension so it can easily be forked or swapped out for another extension with a different design or value proposition.

Extensions installed on an instance can be disabled at any time by an admin, or even by an individual user (while remaining active for other users on the instance).


In software engineering, a fork happens when developers take a copy of source code from one piece of software and start independent development on it, creating a distinct and separate piece of software.

Bonfire is composed of numerous small software components (extensions), as opposed to the more common approach of having just one or two large software packages. This structure enables forking of a specific piece without the need to maintain one's own version of the entire software package.


Circles are a way to manage and understand various relationships in a user's network. They can represent the different layers of intimacy, trust, and context-specific connections one might have with others. Circles enable users to categorize their relationships based on factors like closeness or shared interests, aiding in building and maintaining stronger, more meaningful connections. This tool is especially useful for organizing contacts according to different areas of one's life, enhancing the personalization and relevance of interactions within the Bonfire network.


Roles in Bonfire are a way to define a set of permissions, that can allow users to perform specific actions. Roles play a crucial role in defining the scope of engagement and participation.

By assigning roles, users can establish specific permissions and restrictions, ensuring that users or circles have appropriate levels of access and abilities based on their relationship with you or the purpose of the boundary or nature of the content on which they're applied.


By assigning roles to users and/or circles, you define a boundary (as an example, everyone can read but only members of my team can comment).

Users can define preset boundaries, which can include several users and circles each with their own roles assigned, which can be re-used when making a post or to set the permissions of other activities or spaces (such as groups).

The boundaries of a specific post can also be defined or modified on the fly, before or after publishing it.

⚗️  A framework for experimenting #

Every Bonfire instance can be tailored to the unique needs of its community. Choose from a variety of extensions, and configure the extensive settings to create your own flavour of Bonfire. This flexibility allows each community to create a digital space that truly reflects its character, needs, and goals.

However, creating new features from scratch or modifying existing ones does require diving into the Bonfire codebase. Thankfully, the code is open source and AGPL licensed. This means that any development becomes available to all, fostering a collaborative environment where communities can either take it upon themselves to build upon the framework or coordinate with others to fund and co-create specific features.

But technical skills are not required to design new digital spaces. Social networks should be a common good where everyone with skin in the game can voice their needs and have an impact on how to shape their digital spaces.

🔥  Bonfire case studies #

While Bonfire is still in its early days, it's already inspiring communities and enthusiasts to design their ideal digital spaces. Here are a few examples...

Open Science #

One notable example is Niboe, a scientific community of researchers and activists. They approached Bonfire with a vision to create a digital space focused on scientific divulgation and collaboration.
Leveraging Bonfire's extensible framework, they're designing a platform that facilitates streamlined academic processes and collaborative research. Key features include the integration of ORCID (professional credentials for login), a fine-grained way of sharing and classifying research papers, and an open and more transparent peer-review system. Their goals include both boosting productivity and fostering open and transparent scientific communication and collaboration. Read more about the case study

Learners community #

Bonfire opens up exciting possibilities for learning communities. Imagine a space where learners collaboratively assemble, curate and rate study materials, and engage in discussions and collaborative exercises. Bonfire can enable the formation of thematic collections containing links, documents, and various media, all classified by themes, difficulty levels, and more. Specific groups can be created for study and practice, encouraging peer-to-peer learning and experimentation. Furthermore, the integration of open badges in Bonfire could help users have their learning and achievements be recognised.

Fablabs Network #

Students at the Milwaukee School of Engineering used Bonfire to experiment with collaboration within the network of Fablabs in their area.
They envisioned a digital space tailored for inventory tracking across different Fablabs, enabling resource exchange and promoting collaboration. They prototyped a Bonfire extension where each Fablab could manage its inventory, making it easier for users to share resources. Additionally, they aimed to implement features for collaborative task management, enhancing the productivity and interconnectedness of the Fablabs network.

But most of the time you don't want to create a whole new platform from scratch, instead you may want to add a new feature to your Bonfire instance, modify an existing feature, or tweak the settings in new ways...

Design and build a new feature

If there's a functionality you feel is missing from Bonfire, you can introduce a new feature. This could be anything from a unique tool for community engagement to a specialized feature for content sharing.

For instance, you might envision a feature that facilitates collaborative storytelling or a new method for organizing community-driven projects. The goal here is to think creatively and propose features that bring fresh dynamics and capabilities to social networking which can empower communities.

This would typically be a new extension or could be proposed as an addition to an existing one.

Change, add, or remove something in an existing feature

If there's an existing feature in Bonfire that almost meets your needs but requires tweaking, you can make or propose modifications. For example, you might want to add an extra layer of privacy to a messaging feature, or hide certain elements from a community dashboard that aren't relevant to your group. This is your chance to refine Bonfire’s features to better align with your community's specific requirements.

This would typically be proposed as a modification to an existing extension, or the extension could be forked (copied), in which case if the changes are useful for the wider ecosystem it can be published as an extension under a new name.

Find a new way to use a feature

Sometimes, innovation lies not in changing the feature itself, but in altering how it is used. For instance, a feature originally designed for event planning could be repurposed for organising volunteer efforts in a crisis response situation. This is all about creative reimagining of existing tools for new, unexpected uses.

Improve the user interface or user experience of a feature

User interfaces (UI) and user experience (UX) play a crucial role in how interactively and comfortably users engage with their digital space. If you believe a feature's UI could be more intuitive, accessible, or visually appealing, or you envision a different user journey to perform the same action, you can suggest or directly implement those changes. Perhaps it's as simple as increasing font size for better readability or restructuring a page layout for fostering specific outcomes.

Disable or remove an existing feature

In some cases, less is more. If you feel a certain feature is redundant, not useful, or even counterproductive for your community, proposing its removal (or the addition of a setting so it can be enabled/disabled as needed) can streamline and improve the user experience. The key here is to explain why removing this feature will benefit the overall functionality and usability of the platform.

Make something configurable

This involves introducing new options or preferences in Bonfire's settings to give users more control over how they use Bonfire. For instance, adding a setting that enables users to customize the frequency of notifications or to choose different fonts for their interface can enhance personalisation and user satisfaction. This is about empowering users with more choices to tailor their experience on the platform.

📢  Participating in the Bonfire ecosystem #

Effectively sharing your insights and discoveries with the Bonfire community is crucial for the collaborative development and improvement of the ecosystem. Here are steps to ensure your findings reach the right audience and have the desired impact:

Identify the appropriate channel #

Share your findings or proposals #

Engage in discussion #

Follow up #

This isn't just about contributing to Bonfire — but pouring our hearts into a passionate community-driven endeavour. Remember, the strength of our federated network comes from the ties we forge, so let's keep the fire burning!

Bonfire Networks

Open Collective account Open Source