A Github repository is available for Nyctinasty Oasis. Keyboard jockeys might like to dive in, but for the rest of us, maybe a verbal description is enough.
The Nyctinasty Oasis code base is set up as an Internet-of-Things (IoT) system. That is, rather than have a centralized codebase, where a single computer is responsible for coordinating the project, we have lots of little microprocessors (uC’s) taking on little tasks.
This approach has advantages and drawbacks. On the “drawbacks” side, we end up a lot of little programs, so it’s not immediately clear where changes need to be made. There can also be some complexity around coordination: “who does what, when?” However, we’ve gone down the “monolithic, single codebase before”, and that also has drawbacks.
Ultimately, we take the choice to distribute the code for two, compelling reasons. One, IoT is new and hot, and we’d like to give our keyboard jockeys an opportunity to learn and work with this new, interesting technology. Two, it’s far easier for a volunteer to take on a discrete, focused codebase task. They don’t need to understand “the whole shebang” just “their little corner of the world”.
Whatever difficulties arise in a distributed code base, we feel they’re worth it to facilitate contributions from the overall community.