ivanminutillo

ivanminutillo

How to get more dev contributions to our FLOSS project

Hi, I’m Ivan, co-founder of Bonfire Networks.
In the past 3 years we’ve worked full time building an open source framework for developing modular federated digital spaces.
We adopted Elixir through the whole stack, including Liveview (and Surface) for the Frontend, and we’re excited to experiment with LiveViewNative for building native apps.

Think of Bonfire like Wordpress but for federated social networking. You can setup a home for your community (a digital space) and this can be as simple as a basic microblogging platform (such as Mastodon).
From there, digital space’s maintainers can add and tweak plugins to extend its functionalities.
Such plugins aim to extend the agency of a community over the federated network, going beyond the standard microblogging experience.
This includes convivial activities (such as organizing events), political (such as performing decision making tasks), coordination (assigning tasks and collaborate on projects) and so forth.

We believe this is a crucial objective for communities to move beyond polarization and mainstream centralization and give them agency to self-organize in a federated environment, rather than in a walled garden.

In the past years multiple communities reached out, inspired by such vision, to co-design the features they needed for each specific case studies.
Among them, a lot of scientists / professors / researchers, reached out for experimenting with Bonfire looking for a proper alternative to x / mastodon.
Together we built the https://openscience.network case study.

We (the bonfire team) are now in a situation where we have multiple communities and users that are waiting for the software to be ready to adopt it, but we are struggling with the last 10% of the work needed to be done to properly and safely release the awaited bonfire 1.0.

The software is in beta, we’re dealing with some performance issues both on LiveView and Ecto, bugs, plus help on improving and securing the existing codebase.

We’re currently sustaining ourselves through EU grants and donations, and communities are starting to apply to grants to develop ad-hoc bonfire modules for their specific use cases.

I wonder what is the best way to reach out for help and increase the contributions for our FLOSS project.
It’s something new to me. Coming from an activist background I am more used to get in touch and connect with communties / collectives and end-users, rather than developers.
PS We’re not looking for unpaid work, we really care about creating a sustainable environment where developers can coordinate p2p and work together to experiment and benefit existing communities.

I’d love to get your suggestions and help on how to lower the entry barriers, extend the elixir dev interest and knowledge about the project and in the end get more contributions from the dev communtiy.

Most Liked

slouchpie

slouchpie

The name’s bondfire…James Bondfire

dennyabrain

dennyabrain

Can’t speak for others but I think the list of issues in the 1.0 beta milestone seems good enough for a new contributor to guage where the current priorities lie. It might be hard for you to preemptively group related issues that also match the contributor’s interest and skills.

I setup bonfire locally yesterday. Will review the issues shortly and reach out to you all on your matrix channel to discuss where I can help.

dennyabrain

dennyabrain

I think the decision to use just as the build tool and having the various components be split in different repos that are then pulled in when setting the dev environment, add to the learning curve to get onboarded. I am guessing when things work this wouldn’t be a problem. In my case it didnt work right away and when I started debugging, that’s when I realized how the project is structured in an unusual way compared to other elixir projects.

Maybe a high level overview of the build process and what all happens when one runs the just config or just setup commands could help simplify things :slight_smile:

ivanminutillo

ivanminutillo

Thanks for the ongoing discussion, I’m thrilled by the words of encouragement and vitality of the elixir community :slight_smile:
We’ve decided to tackle some of the challenges exposed in this thread through a series of “expeditions” aimed at improving different parts of the Bonfire framework and pave the way to the awaited 1.0 by co-designing the missing pieces with communities and developers.

The first expedition, named Surveying will address documentation, onboarding and developer experience - we’ve published a blog post to explain it more in details: Bonfire Expeditions - Collaborating to Release Version 1.0

But in a nutshell:

  • We’re looking for 5 elixir developers to begin with
  • Each developer will have a 1-hour pairing session with the Bonfire team
  • During the session, the participant will go through the setup of the bonfire developer environment and the creation of a Hello World extension.
  • Developers will vocalize their thoughts, doubts, and suggestions throughout the process
  • The Bonfire team will provide support and help overcome any obstacles when necessary
  • The Bonfire team will incorporate feedback into the codebase and documentation and refine the onboarding experience for the next session
  • Participants can request compensation of €50 for their time

What do you think? Of course it would be great to have some of you joining the expedition - feel free to DM me or send a mail at team@bonfire.cafe :v:

Where Next?

Popular in Questions Top

Fl4m3Ph03n1x
Background Let’s assume I have a typical GenServer that receives messages as requests, does some operation in a DB and returns responses....
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
sergio
In Ruby, I can go: User.find_by(email: "foobar@email.com").update(email: "hello@email.com") How can I do something similar in Elixir? ...
New
LegitStack
I’m hoping you guys can give me some general advice and perhaps code examples if you’re feeling up to it. I’m very interested in Elixir,...
New
Werner
Hi, I’m using Ubuntu 18.04 and after updating to OTP-24.0 yesterday i have this warning when I run “mix local.hex”: 14:57:30.512 [warn] ...
New
johnnyicon
Hi all, I've just started learning Elixir and Phoenix Framework, so please pardon my n00bness at this stage. I'm trying to use Postg...
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
Exadra37
Sometimes I want to check if the input into a function is not a blank string. My first approach: defmodule Example do def do_stuff(s...
New

Other popular topics Top

Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 27727 240
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
Qqwy
Original source of discussion: This topic on the Pragmatic Programmers' Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New
lucidguppy
I have a super simple question about elixir - how would I take a file like this foo bar baz and output a new file that enumerates th...
New

We're in Beta

About us Mission Statement