Choir Concierge - An Intro to my Side Hustle
Overview
Choir Concierge is a Laravel app I started in 2017 to help my choir streamline its operations. It has since grown into a SaaS product that serves over 150 singers in choirs in Australia and overseas. With every new feature, I've tried to create a simple, fun experience.
What it does

The app handles most of a choir's daily needs, from tracking membership and attendance to storing and playing music. A singer can log in and see upcoming events, and then learn their music with the "learning tools" - a quick way to listen to mp3 learning tracks while simultaneously reading the PDF sheet music.
How it started

The initial prototype
In 2017, The Blenders (my choir at the time) had a new committee president who was keen to streamline our recruitment of new singers. Once we wrote down the existing process on paper, we realised it was a lot! When a potential member visited a rehearsal, a few things would need to happen:
- Someone from the Membership Team would greet them and collect their basic contact info
- The Musical Director would greet them, test their voice, assign them a Voice Part (Tenor, Lead, Baritone, Bass - The 4 Barbershop parts), then send them the learning material for their audition.
- After 4 weeks to learn the audition song, the prospective member had their audition.
- Assuming they passed their audition, the treasurer sent them an invoice for membership.
- The uniforms manager would fit them for a tuxedo.
- The social media person would add them to the Facebook group chat and any other software.
The choir was big enough that each of these jobs was done by a different person. Immediately, we realised the potential for information to get lost along the way. I proposed we let a computer be in charge of keeping track of which tasks had been completed, and emailing the team of the singer's progress. So the initial prototype was an onboarding automation tool. In fact, I pieced it together using Drip, Zapier, and a very simple control panel built in Laravel mainly for triggering the automations.

This recruitment tool worked well, and at first I considered trying to sell it as an addon for the choir management software we were already using - I even emailed them asking about their API. In the end, I didn't think it was a product choirs would be willing to buy on its own, and made the decision to expand the tool into a full-fledged choir management app.
The early days
I massively underestimated the amount of time I would take to make an MVP. I struggled to balance side-hustle work with regular work, and honestly it just required a massive amount of features to be appealing to choirs. It took 5 whole years to build the core set of modules - Members, Events, Songs, Documents, Riser Stacks, Mailing Lists, and Onboarding (the module that started it all).
This version of CC, as well as the initial prototype, was built in good old Bootstrap and Blade templates. I sprinkled in some jQuery and eventually some Vue for basic frontend interactions. But I hadn't yet reached the modern stack I use today, the CI/CD was non-existent, and I had to manually invoice the very few customers I had. Heck, I didn't even have Laravel Forge - the app was installed in a regular cpanel, and I hacked together a way to use cronjobs to run queued jobs.
More recently
Since the MVP, a lot of my work has focused on automating my workflow so I can step away more easily, and trust that the whole thing won't light itself on fire. Laravel Forge was a major improvement, but Envoyer was a big step to making the app feel protected. Many of these things are standard these days, but I fought tooth-and-nail to throw out my old ways one step at a time. In many ways, the project forced me to upskill very quickly.
I also rebuilt the entire frontend a couple years ago in React, Inertia and Tailwind, after trying that stack in my (previous) day job. I don't know if it helped me work faster, but it suuure feels like it :) Besides, converting the app to an SPA not only made the design feel snappier and app-like, but it made some of the newer features much easier to implement. The learning tools - mine and my users' favourite feature, and arguably something none of my competitors offer - was only really possible after the rebuild.
I develop the application alone but my partner, Victoria, has been a major help with the project overall. She's got a knack for identifying usability issues and she's great at helping narrow down the direction(s) we need to take the project next. She's currently learning HTML, CSS and JS and building a new marketing site for the project in Statamic!
Tech stack
- Laravel 9
- React + Inertia JS
- Tailwind
- Laravel Forge + Envoyer
- Laravel Spark (Paddle)
Plans for the future

Choir Concierge is currently barely breaking even. I even presented a talk about how side hustles don't need to profitable to be successful. I'll keep working on it. For now, it's a passion project, and to be clear it's one that is used and loved by a decent and growing number of users. But I do have plans for the future:
Workflow improvements
Even if it can one day pay me a wage, I'll probably always be a team of one (plus Victoria, especially if I can convince her to learn Laravel!). It's crucial that I automate what I can and cut what I can. I also want to add more protection and scalability to the software, so that it's more stable and reliable.
Bulk data improvements
Things like importing/exporting and bulk editing are on my list for additions/improvements, as admin is a big part of the app. In general, I want to keep iterating on the existing features to make our current client base even happier.
Targeting the school market
There are some features I really need before we can start tackling the market for schools. Schools just work differently - parents are involved, and the kids usually don't have their own email addresses! I started working on features in this category last year, but work has been slow. A big part of my motivation for starting a blog has been getting some extra accountability to re-focus on the project.
Conclusion
It has been a wild ride so far, and I still hope to accomplish more in the future. If you're interested in learning more about the app, check out the website, and if you're curious to hear more about how the heck I make choirs and software go together, keep an eye on this blog or feel free to contact me if you have any questions.