Recently I launched Feature Ops, a feature flags (toggles) management service and API, and while you, as a reader, might not necessarily be interested in the service itself, I think you'll find the 21 day journey from nothing to something a tad bit interesting.
Of course, it all starts with an idea.
I have had many ideas over the years, but before committing to an idea this time around I decided on a set of criteria. First off, the end application had to solve an established problem and, secondly, I had to be able to conceivably build the end service, in its entirety, without any outside assistance... in a reasonable amount of time. The latter being especially important because of my day job which, of course, limits my development time to nights and weekends.
It goes without saying that I did not have intentions of launching 21 days after starting or keeping the initial capital to under $100, but that's how it worked out, and so it makes for great SEO. So... I'll take it! ;-)
Here is my 21 day journey (and beyond).
August 18th (Days 1 - 16)
It's all about the development.
Without an application, nothing else mattered.
My entire focal point during the first couple weeks was to get things done from an application standpoint. Everyday, I re-prioritized the remaining features and set goals each night. I had read Rework 7 years ago and it left a lasting impression on me. Specifically, I wanted to keep things stupid simple, I wanted to "underdo the competition" in a good way. Each time I wanted to add a new feature, I would wage a mental chess game in my head to determine if I truly needed said feature. More often than not, the feature was cut.
Technically speaking, I decided that whatever development toolset I would leverage, had to be free (as in beer) and could mostly be done on a Windows PC or Mac. Cosmos DB is an outlier here and, in choosing, I effectively committed to Azure hosting early on.
I decided on the following technology stack:
React: free and open-source
Bootstrap: free and open-source responsive styling library
ASP.NET Core: free and open-source web framework
Cosmos DB: NoSQL database
Visual Studio Code: free and open-source IDE
I also had to send emails and take payments, so I opted to integrate with the following technology services:
I actually bought the domain during this phase. Ordinarly, I would recommend waiting, but my idea somewhat came to me in the form of a domain. It happened to be available and I thought it was too good to let it slide.
Namecheap Domain: $10.87
Money spent thus far: $10.87
September 4th (Days 17 - 20)
It's all about the marketing.
The greatest of ideas will fail without proper marketing.
I knew this was going to be a challenge for me as I am a software engineer by day (obviously not a marketing position). Here again, I wanted to keep things simple, so I opted for a single page marketing site. I thought about building my own, but I began weighing cost and time and I decided it was in my best interest to buy given the low price of themed templates.
Additionally, I wanted to integrate with some type of marketing platform (mailing list) and so I opted for MailChimp - free for up to 2,000 subscribers and 12,000 emails per month.
Finally, I knew I had to support email with regards to my custom domain. Here again, I wanted to keep things simple, so I decided to leverage email forwarding to my Gmail account. Gmail also gives you the ability to send emails on behalf of a custom domain.
I initially went with ImprovMX given that it is free and simple, but I found that its availability seemed to be inconsistent during my time with it. This was an absolute no-go. So, I instead switched to ForwardMX.
Money spent thus far: $35.87
September 8th (Day 21)
It's all about the go-live.
Leading up to this day, I knew there were some things that had to be done ahead of time so I could launch without any potential legal blockers.
When it came time for hosting, I had to weigh options for the Feature Ops marketing site as well as the application site.
I had narrowed my search for the Feature Ops marketing site to GitHub Pages and Netlify. I opted for the latter because SSL was a must and Netlify also offered simplistic and free integration with Let's Encrypt.
Netlify: Free for personal or commercial projects and free SSL
As for application hosting, I had sort of known all along that I would go with Azure. I have had very favorable things to say about my experience with Azure. (This blog is hosted on Azure with gives me an additional cost savings.) I also have a lot of great history with Azure when I worked with the Azure Team and the Ghost Team to get Ghost up and running in the Azure gallery.
Once I had launched, I spent hours upon hours of testing. This testing extended well beyond the first day. I knew that one misstep could cause unfavorable reviews and/or prevent users from actually using the system. I used Application Insights, which came along for the ride (for free) with my Azure hosting, to resolve any issues that arose with the application. This was the first time that I used Application Insights, but I will say that I was impressed with this offering. It made tracking down and fixing issues much easier than had I not had it.
Money spent thus far: $99.87
Days 21 + n
It's all about the SEO.
At this point, I had launched the product in 21 days and under $100. That's great and all, but let's get real, the toughest part is in the days and months ahead.
Knowing this, I have spent most of my recent time with Feature Ops attempting to improve SEO. I figure that Feature Ops will likely succeed or fail in the hands of Google.
(Therein lies the main reason for this blog post. ;-)
This also meant writing blogs when Introducing Feature Ops as well as posting on Hacker News, Reddit, Product Hunt, and LinkedIn just to name a few.
I also realized that I may have made an SEO mistake when I opted for a single page marketing site given its small footprint. So, I decided to tack on a company blog to Feature Ops. In this case, I opted for Hugo which played very well with my hosting on Netlify.
Days of Past and Future
It's all about the recurring costs.
You may have noticed that I did not include the recurring costs in the running tally. I did this because, up until this point, I have not actually paid for any recurring costs with the exception of GitHub that I have had for quite some time. These payments will be coming soon, but to recap:
Azure App Service: Basic - 1 Core - $55.80/month
Azure Comsos DB: 1 GB & 400 RUs - $24.06/month
GitHub: 1 Personal Account - $7/month
Netlify: Free for personal or commercial projects and free SSL
Stripe: 2.9% + 30 cents per transaction
SendGrid: 100 emails/day free forever
MailChimp - free for up to 2,000 subscribers and 12,000 emails per month.
(While I am pleased with my service with GitHub, I would recommend GitLab if you're looking to cut down on cost of having private repositories.)
Lastly, I recognize that as Feature Ops grows, my monthly recurring costs will likely change and additional decisions will have to be had. All things considered, that sounds like a great problem to have given that it means my user base will have grown.
Current monthly recurring costs: $86.86
I found myself thinking about things I never thought I would have thought about when attempting to launch a startup.
Certainly cost and time was front and center during my work on Feature Ops, but they weren't necessarily a focal point or a driving reason behind why I decided to give it a try.
Looking back, I decided to write this blog post because, even though it took 21 days and $100 of initial capital, it also felt like a choose your own adventure book with many decision points along the way. Perhaps, all things considered, these decisions and what they amounted to might offer a decent amount of value for those who stumble upon this post...
And maybe, just maybe, it'll add some decent exposure and SEO to Feature Ops - a feature flags (toggles) management service and API.