Skip Navigation

Project Goal

Hive started as the replacement for our previous mod repository, BeatMods. BeatMods was rushed, infamously broken, and was hacked together in a weekend as an emergency. At the beginning of 2020, a team of talented developers in the Beat Saber community (myself included) decided enough was enough, got together, and started work on what would become Hive.

While we were designing Hive to be a replacement for our old Beat Saber mod repository, a key pillar we had was to design Hive to be game-agnostic, barebones, and generic; any mod community can setup an instance of Hive and expand it to meet their exact needs.

Stack and Explanation

During initial planning, we decided to use ASP.NET Core and C# because of our collective experience with the language. This was right around the corner of .NET 5, so we also wanted to take the opportunity to embrace new features brought by .NET 5 and C# 9.

We also decided to take a hybrid GraphQL and RESTful approach to the API; the REST interface provided the basic functionality for Hive, while GraphQL would simplify more advanced queries.

Interestingly, we decided to not bundle a front-end with core Hive. Considering instances of Hive would look very different depending on the instance maintainer, we instead decided to create one front-end for our complete, Beat Saber specific Hive instance as an "example" for other communities.

Problems and Growing Pains

This was my first big group project done with other talented developers. I learned to use Git in a team environment, give and address feedback in Pull Request reviews, be asked about the decisions I've made in my code, and conform that code to strict quality and convention guidelines.

Furthermore, this was also my first time ever touching ASP.NET; I essentially dived in completely blind. My previous C# experience did help, but a lot of ASP.NET was learned from hands-on experience, and turning to my fellow developers for help.

Lessons Learned

Hive is definitely the project I am the most proud of. I am extremely grateful to have taken the opportunity to work on it, and with other talented developers in the Beat Saber community.

The biggest learning experience for me was learning all about ASP.NET Core and back-end development - all while I was working on it.

Developing Hive has also taught me alot when it comes to writing quality code, mostly thanks to the extreme quality guidelines.

Let's collaborate.

Feel free to reach out to ask questions, connect, or if you want to work with me.