Two weeks ago, We asked for feedback on how to encourage more developer contributions to Bonfire, an open-source framework for building federated digital spaces. We received valuable feedback from the Elixir community and are still digesting it internally.
As a first step, we’ve decided to address some of the challenges mentioned in the thread through a series of Expeditions (1-hour 1-to-1 calls with Elixir developers).
These expeditions aim to improve different aspects of the Bonfire framework and pave the way for the awaited 1.0 release by co-designing missing pieces with communities and developers.
The first expedition, named Surveying, focuses on addressing documentation, onboarding, and developer experience. We’ve published a blog post to explain it in more detail: Bonfire Expeditions - Collaborating to Release Version 1.0
Before each call, we share a document with the participant to provide relevant details about the expedition, prerequisites, and tasks they’ll address during the session.
We document all the feedback and ideas received during the session. In this thread, I will report the feedback (without naming participants for privacy reasons) and the actions we take to iteratively improve the process.
This is an ongoing effort, and we’ll use this thread to track our work on DX and documentation. Any feedback is more than welcome. If you want to join the expedition, you can DM me on this forum or write a email to team@bonfire.cafe.
We categorized the feedback in 4 different categories: Confusing, Annoying, Errors, Improvements
Confusing
- Documentation for running Bonfire locally is unclear and scattered across multiple sections and places, making it hard to follow.
- There is no simple way to share the signup confirmation link with users locally.
- Need to clone
bonfire_spark
to add new extension routes to the main router (This info is currently missing in the docs). - Running
dep-clone-local
returns errors even if the task is successful. - Unclear purpose of the
declare_nav_link
macro. - Unable to determine if a locally cloned extension is active.
- Confusion regarding
deps.path
&deps.flavour.path
files and what to update.
Annoying
- Long compilation time when running
setup-dev
. - Numerous warnings appear during the
setup-dev
, and most of their sources are unclear. - Missing secrets generation part in the documentation.
- More information needed about which secrets refer to what.
- Server needs to be stopped and restarted after adding an extension.
Errors
- App breaks if an active PostgreSQL is running locally, as it defaults to that instead of the Docker one.
- Duplicated ports in
docker-compose.yml
return an error. - The
just secrets
command only generates secrets, the user expects that the command automatically includes the secrets in the.env
file just mix bonfire.account.new
returns an error.generate_reverse_router
returns an error.priv
directory error (:code.priv_dir at compile time and releases - #7 by sodapopcan).- When cloning
bonfire_spark
,deps.path
needs to be renamed asbonfire
. - Cache of logged-out pages prevents seeing updates.
deps.flavour.path
was not aliased in./config
during thejust setup-dev
command.
Possible Improvements
- Use exdocs as the only source of truth for developer documentation
- Improve the Installation doc to have a more linear flow for installing Bonfire locally.
- Make compiling disabled extensions / from all flavors optional to speed up the
setup-dev
command. - Automatically add secrets to
.env
when running thejust secrets
command. - Remove the info about signing up via CLI since it’s straightforward to create a new user via GUI.
- Use Hex to get all deps instead of Git to make the setup faster.
- Rename
bonfire_spark
extension to justbonfire
. - Add more info about the extensions that are enabled locally.
- Add more documentation for the various files in
config/flavour
and how they’re used. - Add a check for
{:error, _}
and use default pathways to prevent thepriv
directory error.