Building a SAAS, Light Show Guard

I run a Christmas Light Show at my house each year. One of the things that I implemented this past year was to create a website that allows users to select the song that they want to hear and to be able to see what song was currently playing.

Someone in one of the groups asked about how they could monitor their show remotely. Others commented about using FPPMon for their show. I mentioned my custom set up and how it works. I got a few likes on my comment and one person reached out to me directly asking for help with getting that for their show. Told them that the code for it was available for download.

Another issue that I saw was people would ask if others ran their lights during the rain or when other types of precipitation was falling. A number said that they did not. On the other hand, I do run mine regardless of the weather conditions.

One thing that I thought about though, was that I could redesign this functionality, and sell it as a SAAS product. After all, FPPMon and Remote Falcon are similar SAAS products that exist for the community. Some aspect of the project would have to be open source, like the plugin code that will integrate with the Falcon Pi Player or like the website code that users can run on their own server. However, the core functionality of the SAAS (Software As A Service) will be closed source as the intent is to sell it as a service.

I will be using it for my Christmas light show as well. After all… would you trust a cook that does not eat his or her own cooking? Probably not.

This project has been a learning experience thus far. I am building it using CakePHP framework. When doing live streams, people question why I used CakePHP instead of using Laravel, Symfony, or some other PHP framework. The reasons were because I had previously done some work with CakePHP in the past, because CakePHP is designed in a way that allows for rapid development, and CakePHP uses convention over configuration.

Convention over configuration was a big selling point. For those that have never used this, it means that as long as you name things correctly, then the framework will automatically figure out what parts should be connected and how to perform the necessary actions. Thus, time is not spent on building routers, validations, and other things that can be considered overhead when building an application.

Not sure how long it is going to take me to complete the application. However, the plan is to have the MVP (Minimum Viable Product) done before the summer. Then use the latter part of the year to add additional features and to do testing.