I originally published this article on my blog back in 2016. I decided to post it here hoping to share my experience and the lessons I learned, with a new audience of fellow makers. I hope you enjoy the read and learn something from it as you navigate the challenges of working on your own side project(s).
In the Summer of 2011 I was actively searching for a new gig as a web developer. I did what most of us do these days, go online and start searching for a great opportunity in the job boards out there. The experience was frustrating to say the least. Most of the job boards I came across, well-known and little-known, had very annoying features, like pop-ups, advertising, and useless “career advice.” If I didn’t want ads, I had to get a paid account. Some required me to create an account to either search or apply for a job. And others even had ads disguised as job listings. Most of these job boards didn’t have a user-friendly interface, and forget about them being mobile-compatible.
I’ll Create My Own
I saw an opportunity to create an enhanced, focused user experience without distractions when job searching online. As a web developer, I love to build things, so why not build something better? A product of my own? I thought about it for a few days. I’ve worked on many projects throughout my career, but I almost always worked as a member of a development team. This would be the first time developing a full-blown commercial application from beginning to end, all by myself (technology wise). I pitched the idea to my long-time girlfriend, now my wife, Ingrid. She really liked the idea, encouraged me to build it and offered me her much needed help.
After many weeks of breaking our heads to come up with a name for our job board and a URL that wasn’t already taken, we finally landed on Gigsprout, as in “where job opportunities sprout.” We proceeded to do tons of research, I focused on the technology aspect and Ingrid on the business aspect of things.
We wanted to do everything by the book and there was so much to learn and to figure out. Articles of incorporation to form a company, tax and accounting issues, technology issues, development frameworks, hosting solutions, cloud vs traditional hosting, marketing, social media, customer service, minimum viable product, and the list went on and on.
Building Gigsprout was quite the adventure, spending countless hours of development, slowly building it on the side while working our full time jobs. Lots of sacrifices were made, which I won’t get into here. I don’t want to sound like I’m whining about it. I experimented with three development frameworks, including my own, which I ditched back in 2012 in favor of a much more established one, a relatively new framework at the time, known as Laravel. Through it all we learned a lot and with perseverance and dedication, we overcame many challenges to make Gigsprout a reality.
The Tech Stack
I designed and engineered Gigsprout to run on the cloud. It was fully hosted on AWS (Amazon Web Services). The back-end was written in PHP with the awesome Laravel framework (the first viable version was written with CodeIgniter). The database was MySQL. Full-text search was made possible by the Elasticsearch engine. Git for source code version control. On the front-end, a highly modified version of the Bootstrap CSS framework and jQuery.
Launch and Shutdown
Gigsprout was a job board for the tech industry. It was designed to be free to job seekers, with no ads and no pop-ups. Job seekers did not need to create an account to search or apply for a job. Employers could enjoy a simple, affordable pay-per-post pricing. At least, that was the plan. Gigsprout had a limited set of features but the idea was to add many more based on our road map and feedback from our users once we launched.
But launching presented the classic problem of “the chicken or the egg.” We couldn’t attract job seekers because there weren’t any jobs to search for on our site. And we couldn’t attract employers to post jobs because there were no job seekers coming to our site. So how do we launch? We decided to solve this problem by offering all job posts for free to employers. This was a limited time offer to give employers an incentive to post their jobs on Gigsprout.
After a few weeks of this, we decided to change things up a bit. Once the free offer expired, we decided to offer a 50% discount on all posts. The idea being that, a payment was required via credit card and only serious, legitimate employers would sign up. A little more advertising in Google AdWords and Twitter brought some traffic but no signups. Advertisement costs mounted and we were forced to stop it. After a year of footing the bill to keep Gigsprout running, but without generating any revenue, we were forced to make the decision to shut it down.
I’ve learned a few lessons from this experience, and I want to share them here in the hopes that doing so will help others who may be planning to launch a product of their own.
1. Don’t Incorporate Too Early
If you’re in the development phase of your first product, don’t incorporate too early (for example in the US, form a Corporation or LLC). Working on a product on the side, while working your full-time job and juggling commitments with family and friends, can take a very long time. Once you incorporate you must begin paying taxes. If development takes a long time, you’ll start paying taxes and other expenses without even having a chance to generate any revenue. Wait until you’re about to launch your product and then incorporate.
2. Start Small
Some ideas begin with the need to “scratch your own itch.” Others begin with people, and the need to solve a problem for them. In either case, before you start working on your idea, test it with a small version of it. Check if your idea generates interest among your friends and family and/or the people or community your product will benefit.
3. Set Deadlines
Concrete deadlines will help you set specific goals. Every deadline represents a milestone that will keep you focused on a target and moving forward towards it. Be realistic when you set those deadlines and try your best to keep them.
4. Share the Process
Share with others what your working on and post updates of the progress you’re making. This will hopefully generate more interest in your product. Some people may be interested in your product even more, if they are part of the process of creating it. This may help you with my next point.
5. Build a Following
Don’t launch to crickets. By sharing the process of building your product you have a chance to build a following. Also share your knowledge, blog about your projects and share what you learn. Over time you’ll build a following. It should be easier to launch a product when you have built some following ahead of time, than launching it to the sound of crickets.
6. Maximize Time
I don’t know about you, but for me, two or three hours of work with solid focus go a long way, much more than eight hours of work with constant interruptions. Find a space where you can concentrate while you work, turn off social media and other distractions for two or three hours a day, and you will make progress.
7. Get Enough Sleep
I know it’s hard to stop when you’re wired in and you’re on a roll coding, working through the night. But the night is for sleeping and your body needs it. I know everyone’s needs are different and this may not apply to you. But I find myself more alert and able to better focus and concentrate during the day, when I’ve had enough sleep. I’m more productive that way.
8. Outsource and Get Help
You may have heard the phrase “you’ve got to spend money to make money.” In some cases, that’s true. Chances are you’re not an expert at every aspect of developing your product. You may be a fantastic developer, but you may need help at marketing, for example. When I was working on Gigsprout I wanted to do everything, to keep expenses at a minimum. I’m a coder first. Even though I know enough to be dangerous with Photoshop and Illustrator, I’m not an expert graphic designer. I created the Gigsprout logo and saved some money. But between learning the tools more in depth to do it and creating many prototypes, it took me forever to get something I was satisfied with. If you’re not qualified to get something done, hire someone who is. They’ll get it done in a fraction of the time it would take you, and you’ll save yourself some time and frustration. This will help you to launch your product sooner, which is my next point.
9. Launch Early
Your product doesn’t have to be perfect when you launch. It just has to be useful. If you think about it, your product will never be finished anyway. Put it out there as soon as possible so you can begin to receive feedback from your users. They are the best source of guidance to improve your product. The sooner you launch, the sooner you can begin to improve it based on feedback from the very people who are and will be using it. And if you don’t get any users or any feedback, then you’ll know early on that something needs adjustment. Figure out what your MVP is, the Minimum Viable Product. Your MVP should have enough features to be useful, but small enough so you can launch it early. The sooner, the better.
10. Free Isn’t Always Good
Depending on the type of product/service you’re launching, a Free offer may not be the best thing. It may attract the wrong audience for your product. So, do some research and figure out any alternatives to create an incentive to attract paying customers.
I hope the lessons I’ve learned with this project, are helpful to you if you’re planning to launch your own product/service. Always strive to succeed, but remember that it’s OK to fail sometimes. This stuff is not easy. If it were, anybody would do it. Failure is valuable if we learn from it. And what we learn, will help us to succeed in the future. If you fall, get up, dust off and try again applying the lessons you learned. Best wishes.