Inspiration

Modern build systems like Bazel offer incredible speed and scalability, but come with a steep learning curve and painful dependency management. On the other hand, tools like Docker simplify builds with intuitive, step-by-step instructions. Bonnie was inspired by the idea: what if we could combine the power of Bazel with the simplicity of a Dockerfile—without forcing developers to manually declare every dependency?

What it does

Bonnie is a next-generation build system that delivers fast, reliable, and scalable builds—without dependency declaration overhead. It allows developers to define builds in a simple, Dockerfile-like format while automatically handling dependencies behind the scenes. The result is a smoother developer experience with fewer errors and faster iteration.

How we built it

We designed Bonnie around a declarative, step-based build model inspired by Dockerfile. Under the hood, we implemented dependency inference and caching mechanisms similar in spirit to Bazel, allowing Bonnie to optimize build execution without requiring explicit dependency graphs. The system focuses on reproducibility, parallel execution, and smart caching.

Challenges we ran into

One of the biggest challenges was balancing simplicity with power. Automatically inferring dependencies without sacrificing correctness or performance required careful design. We also had to ensure builds remained deterministic and reproducible while hiding complexity from the user. Debugging implicit behavior was another tricky aspect.

Accomplishments that we're proud of

We successfully created a system that removes the “dependency declaration hell” common in traditional build tools. Bonnie achieves fast builds with a minimal, intuitive interface, making advanced build capabilities accessible to more developers.

What we learned

We learned that developer experience is just as important as performance. Powerful tools don’t get adopted if they’re too hard to use. Striking the right balance between abstraction and control is critical, especially when automating complex processes like dependency management.

What's next for Bonnie

Next, we plan to improve dependency inference accuracy, expand language support, and introduce better debugging and visualization tools. We also want to integrate Bonnie with existing CI/CD workflows and explore distributed builds to further improve performance and scalability.

Built With

Share this project:

Updates