This is my personal story of how I shipped my very first SaaS side-project while working full-time at Buffer. The goal of this article is to inspire you. If you’re someone like me who has a full-time job and wants to build a profitable side-business as a source of income then this story may resonate with you.
With this article, I want to show how I didn’t “hustle” or overwork and was still able to ship a real SaaS product.
Introduction
I’m a web developer and I’m very lucky that apart from playing soccer in my free time I also enjoy coding and building web projects for fun. Most recently, I’ve created Booknshelf which helps many people to organize their books online. While working full-time has a big impact on my engineering growth some of the developer skills I’ve acquired from working on my personal projects.
It was only last year when I started to think about having a different source of income apart from my full-time job. The idea of being dependent on a single paycheck is a bit scary. I knew I have the skills and passion to figure something out. I decided I wanted to start a business, probably an online business considering the skills I have. The other trigger of those thoughts were because I wanted to experience and learn what it means to build a business. I never ran any business in my life so I saw this as a great learning opportunity, a path on which I can learn skills that I don’t currently have. The worst thing that could happen is if I fail, however, I’ll end up with experience and tons of learnings.
Idea
Obviously, the first thing that any developer would do is to start thinking about ideas. Ideas were never a problem for me but figuring out which ides is a good fit always was. This time I’ve decided to try a different approach and really think through the idea before I jumped on it. There were some criteria I wanted to run each idea through.
- I wanted to solve a real problem, probably something I personally face
- It should be for the market I know well
- It should not be a new idea (it’s not going to change the world)
- It could become a business
The golden rule of any idea is that it has to solve a problem that people face. In the past, I’ve added so many ideas to my notes so it was a matter of visiting the pool of ideas I’ve saved.
I knew from the beginning that I’d probably be more successful if I built something for developers because I know the market pretty well and most of my close friends and online followers are tech-based. I could use my network and audience to validate my idea and get a solid feedback before I commit to anything. This really filtered down all my ideas into a list of 2-3 things I could work on. One of the ideas was something I kept coming back to over and over again. It was something I’ve faced both at Buffer and during the work on my previous side-projects. A simple way to monitor scheduled cron jobs. Since one of the areas I own at Buffer is the analytics data infrastructure I have run a dozen cron jobs in the background to collect the daily analytics data for our customers. It has to be up to date. The Datadog monitoring service that we use at Buffer is really great but it’s primarily designed to monitor continuous services or servers. I wanted a simple dashboard where I could see the list of all my cron jobs, their statuses, and logs. Every day get a report of all ran jobs so I know everything is on track.
After picking this idea I wanted to see if there're any existing solutions on the market. If there are it’s a good sign that there is a demand for certain tools. In fact, there were a couple on the market with different paid plans. I didn’t necessarily want to build something completely new because if I did it would have been so much harder for me to define and validate the market. All the existing solutions had paid plans so I knew people would pay for it. The next goal was to validate if my thinking is right by building and launching the initial MVP.
MVP
I spent 2 months to build the initial version of Cronhub (yes, I gave it a name). Something viable that I could send to a handful of my friends and Twitter followers to try. For the MVP I wanted something very simple but also valuable enough that people will pay for it. I know you may think that 2 months is a long time to build an MVP but I didn’t take the traditional “hustle” approach and instead.
- Worked only 1-2 hours every day
- Slept 8 hours every day
- Watched Netflix whenever I wanted to
- Fully rested on the weekends
- Used the tech stack I felt most comfortable with
Since I have a full-time job I worked on Cronhub usually from 7 to 8:30 pm. I could also work in early mornings but I spend most of my mornings at the gym. There were some days when I felt mentally very exhausted after work and I took it easy but most of the time I stuck to my routine. I knew if I wanted to finish this project I had to keep the momentum and commit every day even if it’s a small change (can be a single line commit). Consistency has always been super useful for me to stay on track and ship. I used Trello to break down my project tasks into small milestones.
I tried to make each task very small so I can start and finish in a single day. Keeping tasks small helped me to ship faster and see my daily progress. When you see a progress it motivates you a lot and keeps you going. I think it’s a mind trick, maybe? Working on big tasks slows you down and eventually, you give up because you get bored and you want to jump on something else.
I never worked overnight. I went to bed around 10:30 every day and woke up at 7. Having a proper sleep is my number one priority. It defines the mental energy I have during the day and I can’t sacrifice it. Besides sleeping well I decided to spend most of my weekends on doing something completely different like playing soccer, watching movies or hanging with friends and family. Even though I love coding I know it’s easy to burn yourself out. Weekends helped me to refresh my brain.
I think as a developer you always want to use the hottest and coolest technologies. And it’s okay. I want that, too. However, my goal was different and I wanted to build and ship Cronhub as fast as I could with the technologies I already knew. I stayed focused on my goal and used Laravel and Vuejs. Cronhub is a single page application using Laravel for the backend.
Closed Beta Launch
On Feb 20, I finished the bare-minimum of Cronhub and was ready to invite the first pool of early adopters to try Cronhub. After my tweet around 20-25 people reached out to me on Twitter asking for an invitation and the feedback I got from them was super valuable.
There were couple reported bugs and some great feature suggestions that I’ve added to my feedback document. Keeping track of user feedback is an important step because it helps to identify the obvious patterns you can refer when you make product decisions. Overall the first impression and feedback were encouraging. Now I needed to continue improving the product and make it ready for the first public launch. I planned the first public launch to be within a month.
Public Launch
After three months, today, I’m launching my first SaaS side-project to the public. Yay!
Obviously, I’m nervous and don’t know if this is going to work out or not. However, I know this brings me one step closer to my goal. The goal to make Cronhub into a profitable online business where I can learn and experience all the hidden secrets of running a business. After all, what’s the worst that could happen? I’d learn so much!
I know maybe I’m too much focused on thinking about profitability but after building couple side-projects for free in the past I know it’s time for me to take my time a little bit more seriously. Time is the most valuable asset I have and I want to spend consciously. Building a paid product is way more motivating and it pushes you forward. Also, maintaining side-projects for free is expensive and I know it from my experience.
Lessons Learned
The past 3 months were really great timing for reflection as well as to evaluate what worked well and what didn’t. Every time I build a new project it’s a new learning experience. Each project is unique and requires a different thinking process around the product. As a product engineer I want to develop my product mindset and this helps.
Overall, I’ve learned many lessons that really helped me to start and launch an idea. I want to share the most important ones with you.
- Solve a problem you personally face. This is so key because essentially you build the product for yourself, always keeping you in mind. This makes it a lot easer to make good product decisions. You know what questions you should ask and chances are higher that you ask the right questions.
- Keep your tasks small. When you break down your project into pieces try to make them smaller. A good way to measure the size of the task is to ask yourself “Can I do this task in a day?”. If the answer is “No” then probably it’s a big task and you can break it further.
- Sleep well and rest. I can’t stress how important the proper sleep is. You don’t have to work overnight. Focus on incremental progress and small daily commitments. If you don’t take care of yourself you will get tired soon and eventually give up.
- Choose a market you know well. I’m a developer and I know this market well. I know what it takes to be a developer and how developer teams collaborate. This gives me a sense of things that will and won’t work out in this market. Of course, I can still be wrong but chances are a lot less.
- Talk about your project. This is a challenging one for me and I’m still adapting to this. I don’t really like to talk about myself. I like listening more. It’s not easy for me to talk about the project I’m building because I’m a bit shy and don’t want to make an impression that I constantly talk about myself. However, I know I have to get the word out and market my project. That’s how others will discover it in the beginning. This article is an example of that.
To conclude
Thanks so much for reading. I hope you enjoyed this story and learned at least one thing from it. I would love to hear from you, please feel free to comment with your questions. You can reach out to me on Twitter or email me.
If you’re a developer or part of a team that uses cron jobs you can try Cronhub for free. Use coupon "indiehackers" to get 20% discount if you upgrade to “Developer” plan.
Cronhub is on PH today if you want to support me :)
Keeping shipping - Tigran
Love your approach to how you spend your time, especially when it comes to recharging and figuring out a nice balance with your life still.
With 3 kids, it's something I too have been focusing on this time round because burn out is no joke. Yes, like you it's taking a little longer, but I'm much preferring the journey this time round.
Best of luck with cronhub, will be on the look out for updates on how it all goes.
Definitely, rest and family are so important. I'm glad you liked the article Daniel and let's be in touch here or on Twitter so we know what every one of us is up to :)
Brilliant, I like the commitment :)
Thank you :)
Hey Tigran - great article, thank you for sharing it. I really enjoyed reading about the level of discipline you applied in order to focus and deliver an MVP within 2 months.
You mentioned while building the MVP, you spent 1-2 hours on it per day. Now that it's live, do you still find that 1-2 hours per day is enough to keep making progress?
Hey Jonathan! Thanks for the question! Yeah I do, now that I have couple customers I also try to spend couple hours every weekend to catch up on things that are important! :)
Awesome to hear you have such a good routine down already. Onwards and upwards.
If you are ever looking for a little more accountability / kick in the butt to get more done, check out my project, Tribe of Five (www.tribefive.me).
Our goal is to help entrepreneurs be more productive, focused, and disciplined. And we believe one of the best ways to do that is by working together in small groups with like-minded people (who are all on the entrepreneurial journey) to hold each other accountable day to day.
Would love to have you on board!
Cheers,
Jonathan
This is awesome! I read through some of your writing, and checked out Cronhub — I love the healthy, balanced approach to success. I've been exploring mindful growth as well. Definitely will be borrowing some of this insight ✌️
Thanks Sean! :) It means a lot to me.
Thanks for sharing! I reacted most to your comment about keeping tasks small: "Keep your tasks small. When you break down your project into pieces try to make them smaller. A good way to measure the size of the task is to ask yourself “Can I do this task in a day?”. If the answer is “No” then probably it’s a big task and you can break it further."
Often times I think of a feature and think of it all in one go - but I know if I broke it up into smaller daily pieces, it would come together cleaner and more well thought out.
Thanks for sharing and good luck!
Again, congrats mate! 😀 Happy to see you succeed at your current level. Just curious though – on the front-end side, did you design everything (except the illustration) by yourself? Did you use Bootstrap to ease the making of responsive layout?
Yes, everything apart from the illustrations are done by me. I've used Bulma CSS framework to help me with the design. https://bulma.io/
Great article , how do you handle support ? service like this can have many Failure points
I'm just getting started with this so don't know yet. Probably, if it gets too hectic I can start thinking to automate some of the manual labor :)
Nice write up! I am very interested to see how your launch goes. This is a tool I'd use (and even recently considered building.) I found some competitors in the marketplace and was demotivated by that -- I could learn something from the way you handled seeing competition compared to how I handled it.
My main feature request would be a clearer way of setting an offset for the job interval. I.e. Nightly @ 3:00AM. I suppose the workaround is to set the alert to go off 3 hours and 10 minutes after it "goes down"?
Your tool looks cleaner and more modern than some of the alternatives I researched. Good stuff. Best of luck to you. :)
Thank you so much, John! It really means a lot to me! :)
Yeah, I think competition talks about the existing market so at least you don't have to create your own market and it puts you one step forward.
The grace period can't be greater than 20 minutes so that won't work. But maybe you could use the custom schedule for 3:00AM in your timezone? Have you seen the custom schedule option in the monitor editing section? :)
I missed that! I will take a look.
Congrats Tigran. Has the product steadily increased in popularity? Any place I can see the progress of your project?
Love how you emphasize on keeping your tasks small enough to finish them in your dedicated (daily) time. I need to focus more on that!
Loved the whole article ... commitment .. woww !! ... would love to know about your first paid users!!!
Awesome job man!!!!! Love it! Site looks good
Maybe just me, but the PHP tab does not display the code at first. Only after one clicks the Python tab, clicking it displays.
it's not only you, it's a bug and I'll need to fix it. Thanks.
Does anyone else feel like they have seen the illustrations found on https://cronhub.io somewhere else? I can’t pinpoint where but I swear I’ve seen the illustrations used before.
Clearly the website is heavily influenced by slack.com.
Oh, the illustrations are not mine and it's not a secret at all. I've found them on https://undraw.co/illustrations :)
Hey man, I would like to know, how you possibly handle DDoS attack, I hope you will not experience this, but still
cheers, radicz
Hey, a good one! To be honest, I haven't thought about that just yet. As far as I know, Laravel (the backend framework I use) has a built-in throttling setup for the API middleware. I may need to cover my ping URL by that middleware :)
I think you should never answer this kind of question before implementing a proper system. And even then you should never provide details of tech stack used for security, as this gives an advantage point to hackers.
This comment was deleted a year ago.
Thank you. I'm glad it was somehow useful to you!