Close to two hundred people signed up to beta test Semaphore. We invited a better part (sorry if we haven’t invited you early), and those who were invited actually became a part of our team in a way. Beta testers contributed immensely to what is Semaphore right now. From some tips like minor UI improvements to brainstorming about pricing. Thank you so much people and I hope you enjoyed it as much as we did.
When the beta period started we had just one build server and were supporting just Rails projects with MySQL and PostgeSQL. We of course knew that it was an extremely limited subset of all technologies on the market. But we wanted to simulate BDD also in company and product development. So we intentionally built and supported less and added more only when we felt a strong need for an additional feature.
Although that initially led to a high number of feature requests, it also enabled us to launch the product in reasonable time and with limited resources while keeping most of our beta testers, now customers, happy.
When saying happy, I really mean that they are happy-happy. We of course believed that there are people who will like seamless GitHub integration and polished interface, but we never expected frequent emails where people will actually say “Thank you for building such a great service“. I don’t know, maybe it’s really true that developers are that nice; I haven’t worked on a product for developers before.
A bit into details
- “Only Rails” was way too rigid. We now support any Ruby project.
- Connected with only Rails idea, we didn’t have custom build commands. This is definitely something that is needed for CI. We were probably blinded a bit in this area by how little configuration is possible on Heroku to work great. But it’s not like all people use Rails and Heroku all the time, there are many custom stand alone applications.
- Only MySQL and PostgreSQL. Although you might think this was a huge limitation, it was totally the opposite. Seems like the NoSQL hype is over and that relational databases still work for most of the projects. Situation with databases on Semaphore now is pretty much – you name it, we have it. But it was a good call that we didn’t worry too much about them in the beginning.
- Only 1.9.2. Just fine! And yes 1.9.3 is available on request, but will be available through a select box very very soon.
- Adding and removing branches was manual at first and now it’s automatic through GitHub web hooks and people love it.
- One fast machine with on-demand virtualization and no algorithm for supporting N machines. Right call. Once we understood bottlenecks of hardware we addressed the problem and Semaphore is now successfully running on a couple of high-performance build servers.
- Pricing! This one was really tough. It’s still early to say if we got it right. Overall people are OK with it. For this one you can think and brainstorm with your team as much as you would like but you will not move forward until you talk with your potential customers. We probably read that advice here and there a couple of times but didn’t really understand it until we really faced it.