Lately I've been preparing build a new SaaS product called Optionality. I want to journal this process to not just talk about the code, but also the product decisions and marketing involved in building a product.
So in this first post, I want to start at the very beginning. It's important because I rarely start with writing code. As developers, when we think of an idea we get lost in the technical details. We start pre-architecting, scaling out servers, and picking the latest tech stack to build it all.
While this is, of course, fun to think about, you can’t jump right into writing code. Too often people, not just developers, but people in general, teams, companies jump straight into building. This is a mistake.
The reality is all you have is an idea. It's really nothing. At best a few ions isolated in your brain. You have to bring the idea into the world bit by bit, proving and shaping along the way.
For example, with Getting Git, I led conference training before I recorded the video course. If I hadn’t given this at multiple conferences to full audiences, I wouldn’t have made the course. In fact, I originally planned to record a second course, but am waiting based on the response from the first before continuing with the idea.
With my book, BaseCode, I spoke at conferences, but also did a series of tweets to narrow down the topics. These tweets were a way to prove the idea and, relatively speaking, got a large number of likes and retweets.
Form there I created a mailing list. I think it was Justin Jackson that said if you don’t get 500 subscribers you probably don't have a good idea. Others like Nathan Barry and Adam Wathan constantly talk about the importance of a landing page to build your audience. This was key for BaseCode and definitely led to a more successful product than Getting Git.
Now this new SaaS will be even more challenging because it’s a different industry. For almost as long as I’ve been programming, I’ve been investing in the stock market. In the past few years, I’ve advanced into options trading. What I’ve noticed is a lack of tools around portfolio tracking and analysis.
Brokers offer this at a very basic level, but their tools focus more on trading. As a member of a few investment communities it seems most people use some kind of spreadsheet - which is a terrible, manual experience.
So I identified this gap. But again, this isn’t proof if I build it they will come. I’ve really only proven a need. To that point, the best ideas start by filling a personal need. If it’s not something I would use, it’s unlikely others will use it. You have to be willing to eat your own dog food. If not, your heart won’t be into building it and you're more likely to give up.
Now, before I run to my office cave to build this, I want to prove the market more. In order to do that, I need to grow my audience. I created a separate Twitter handle. Because of the cross over, I immediately got about 100 followers. These were developers who also share my passion for investing. However, I need to grow my true investor audience.
I started by writing weekly threaded tweets. Unfortunately it’s not growing my followers because, well, this is a new account and no one knows who the hell I am. My new plan is to take these threaded tweets and add some graphs and images to turn them into articles I can publish on Optionality. I will then cross-post on Medium, within investing communities, etc.
Remember, I don't have an audience. So I'm not even at a place where I can start to validate my idea with potential users. I'm not even at Square 1, I'm at Square 0. I have to try and grow the audience first. This needs to happen before deep-diving into writing code or architecting this portfolio tracker platform. That doesn’t mean we won’t write any code. But it’s not the app code as you might think. In fact the first thing I need to code is a blog to hold these articles.
I’m going to do this with Jigsaw. It’s a static site generator. Nothing fancy, just converts markdown to HTML and places it within a site template. No reason to install some heavy software or hand-code my own blog. I always want to do the simplest thing. Everything is an MVP.
Arguably the simplest thing would be to post on Medium under one of the investment tags. But, I need to start building a search engine presence. Optimistically, when I do build this product, I want people to be directed to Optionality, not Medium. So while using Medium directly and linking back to Twitter would be simpler, there’s value in centralizing the content with little extra cost.
Another point is I could have used Jekyll or GitHub Pages. Underneath, Jekyll is Ruby and Jigsaw is PHP (with hints of Laravel). While I am familiar with Jekyll, I am more with PHP and Laravel in general.
This is an important point because far too often developers try to pair a new idea with a new technology. This adds unnecessary complexity, ultimately lowering your probability of success. Not only are you learning your idea, you’re also learning the technology.
In the end, I balance the MVP approach while being mindful each iteration keeps me on the path towards my ultimate goal. It's not necessarily for each iteration to get you there faster or completely, but it should keep you on the path.
Now before I launch this step, I want to be clear with two more things. First, my timeline. Timelines are very important. They force accountability and reinforce the MVP approach. You can't have forever to reach your goal. Second, I need to outline measurable objectives of my goal. What am I trying to do and how can I verify it's working.
For Square 0, my goal is to grow my audience. I'm going to give myself 4 weeks to do so. I plan to achieve this goal by the following measurable objectives:
- Weekly blog posts cross-posted to Medium, Twitter, and investment communities.
- Sub-goal: Have post syndicated on Medium.
- Increase traffic to optionality.app measured by Google Analytics referrer and content report.
- Increase Twitter following to 250 people.
I will say, some of these are a stretch. But I have to start somewhere and hold myself accountable to measurement. So we'll see in 4 weeks if these goals are met and I should continue on with building my product.