How To Stay Motivated When Building A (Side-)Project. Spoiler Alert: It's Validating It.
I used to have this folder on my computer that I'd call my "project graveyard". It was my "SIDE PROJECTS" folder, filled with at least 30 projects that were semi-finished.
You see, every time I had a new idea I'd create a new folder in it and add research: logo designs I borrowed from Dribbble, Excels with all kinds of data I'd spend too much time on collecting, links to competitors with a product not nearly as good as mine would be,...
But after a while, I'd lose interest in the project and stop working on it. I'd never delete it, tho. Maybe I would find the motivation I once had again, so I could finally launch it? But that moment never came.
And some time later, I'd come across a new idea. And the whole process would repeat.
I never knew why. I love every aspect of building a (side-)project, from researching the idea, coming up with the business model,to design, development, the marketing and everything in between. So WHY couldn't I just push forward and build the damn thing?
If you'd map my enthusiasm for a project, you'd get this:
The steps are (approximately)
- I come up with an idea. Probably under the shower.
- I research it a bit. Are there competitors? Maybe even some Keyword Research if I'm feeling fancy. At this point I've created the folder in the graveyard, but it's still very much alive.
- Okay, I'm still on this. Time to think about a name, and a logo and branding. So excited! Scroll Dribbble for hours on end.
- `Gatsby new project-X && firebase init`. Omg, think of all the new developerstuff I'm gonna learn. Maybe I can add elasticsearch? Or let's not go for static, but deploy on Kubernetes? Oh, instead of Firebase, go for AWS Amplify?
- Okay, development is going slower than I thought, but there's just so much to be done. I will get through this.
- Ugh, maybe I should've thought more about the UX of the tool. I want to make something FANCY but I don't know exactly how. This is harder than I thought.
- Will someone ever use this ugly piece of crap?
- Oh look a new technology/idea. Let's brainstorm about that.
And there goes the project, sitting forever in the graveyard. Waiting to be officially burried, but it never will be.
Let's Talk Validation
What was missing is validation. Or talking to users in general to be honest, but validation was the main point.
And that makes sense, doesn't it? You're building something that you want other people to use. Even you intend to use it as well, you are biased, so what you think about the project doesn't count as much as you think. Those are still assumptions, and have to be validated by talking to your (future) users.
You want to scratch an inch they're having, so you need to talk to them to get as much information as you can possibly get out of them.
- Why is this a problem for them?
- When do they encounter this?
- Why are other solutions not fully solving their problem?
It's something that seems so basic, so vital, but it's often skipped. Why? Because it's much more fun to go straight to product development.
But then you'll hit walls, just as I did. You'll ask yourself: "Is this feature necessary?", and you'd say yes or no, depending on.. on what exactly? Your gut feeling? How difficult the feature will be to implement? The coolness of it?
So I've implemented it for the last few projects and this is what the timeline was when I added validation to the mix:
- I come up with an idea. Probably under the shower. (same as before)
- I research it a bit. Are there competitors? Maybe even some Keyword Research if I'm feeling fancy. At this point I've created the folder in the graveyard, but it's still very much alive. (same as before)
- Okay, I'm still on this. Time to think about a name, and a logo and branding. So excited! Scroll Dribbble for hours on end. (same as before)
- Validation time! The goal here is to have (in)validated the idea and have some "future product ambassadors" in case product development starts. Read on to see how you can validate your product idea.
- `Gatsby new project-X && firebase init`. Omg, think of all the new developerstuff I'm gonna learn. Maybe I can add elasticsearch? Or let's not go for static, but deploy on Kubernetes? Oh, instead of Firebase, go for AWS Amplify? (same as before)
- Okay, development is going slower than I thought, but there's just so much to be done. I will get through this. (same as before)
- Reach out to ambassadors and request feedback. It's (in)validated, in both cases I know what to do.
- Ugh, maybe I should've thought more about the UX of the tool. I want to make something FANCY but I don't know exactly how. This is harder than I thought. (same as before)
- Reach out to ambassadors and request feedback. If I have a working demo at this point, I'll give them access and ask them to use it and give feedback. Or there are quite a bunch of other tools you can use to collect feedback. More about that in the next section 👇
- Will someone ever use thing?
- Soft launch time: put the MVP live, ask more feedback to your ambassadors. Every time a user signs up, contact them and try to make them an ambassador.
- Get the project really launch ready. Add some pages for SEO. Record a short movie and put it on YouTube. Write meta descriptions, titles, create Open Graph images, etc.. You know, the tedious stuff of getting a website ready, but it has to be done.
- Hard Launch.
So what changed?
By having validated the idea and having core product embassadors, every time there was some doubt about the product, I could just talk to them and/or take a look at previous questions I asked.
This works for various reasons:
First, you know there are already users waiting for your product as soon as you launch. No more "getting it out there and hoping you'll get users". You have users who have shown interest in your product and gave feedback along the way.
Second of all, it creates a form of accountability. I'm not keen to freelance: I like to build my own products instead of building someone else's products. But the mistake a lot of people make (including me) is that building a product is MUCH harder than freelancing. With freelancing you have one client, when you build a product, you have many. This is a factor of X harder. By reaching out to your users, and putting yourself out there, you create accountability. Because, in the end, you launch the product for them. If you stop development halfway through, they'll ask you what happened. Yes, you can just ghost them (Guilty as charged 🤭), but are you really into building products if you do that? Validating your product and getting product ambassadors creates accountability.
And lastly, it will remove the doubt of launching something people won't use. Spending all your time on building a product, finally launching and then seeing you got it all wrong is one of the worst feelings there are, in my opinion. By validating your idea early on in the product cycle, you already know if what you're building is a solution to a problem people are having. Every single thing people buy is solving a problem they are having. Your product is not different. If it doesn't solve the problem they are having in an adequate way, they won't use it (again). Simple as that.
Now.. let's talk about the elephant in the room. You tried validating your idea, you contacted some people, you set up a landing page.. but the people you talked to are just not interested in your product idea. Your idea is invalidated.
What If Your Idea Is Not Validated
First, let's get some things out of the way:
A lot of this of course depends on how you validate your idea. If your pitch to your product ambassadors is "I have an idea to make your business save 50% of your costs. Interested?", they'll always say "Of course!". That doesn't make it validated.
Second, it's really, REALLY, hard to find honest feedback providers. People don't like giving negative feedback. A good example of this, is when I was younger and had quite long hair. Sometimes I'd want to just get rid of it, and I'd ask people close to me: "Should I cut it?". All of them would say: "Of course not, it looks good."
Then, one day I'd finally cut it and all of them would say: "Wow, you look so much better with short hair. Your hair was really long, wasn't it?".
They just didn't want to give negative feedback. So be very, very critical when you receive all positive feedback.
And third point, when your idea is invalidated, DON'T defend it and DON'T take it personal. Again, people in general don't like giving 100% honest feedback, so don't punish them for doing so. Because next time you'll ask them, they might just say what you want to hear.
It's soulcrushing to hear your idea getting ripped to pieces. You're so proud of it, you came up with it yourself, who are they to criticize it? Horrible feeling indeed. But it's okay. Really.
Okay. Now that's out of the way..
Your idea is invalidated. You talked to some possible future users/ambassadors and none of them are interested in it, they wouldn't use it. They just don't get it at all. You're 100% sure your idea is not validated. Bad luck, kiddo.
What now?
The thing is, there are many reasons why your idea is invalidated.
Is the core problem you're trying to solve there, but is your idea just not a good solution for it? What might be a good solution for the core problem? Is it something you can build? Validate the good solution and see if you can pivot to that.
Were you trying to solve a non-existing problem? Good luck with that. If there's no problem to be solved, there's no solution to be built. At this point I would just bury this idea in my side-project graveyard, but this time with a proper funeral because it died gracefully.
And to be completely honest: In some cases you can just go ahead and build it anyway. Not because it will have users, but maybe because it uses a cool piece of tech where you want to dabble around with or the subject is something you're very passionate about.
A good example of this project I created: https://vandevliet.me/the-national-setlist-live-albums/. It's a webapp where you can select all the concerts of The National, my favourite band in the world, and it will show you how many songs of each album you've seen live. It's an itch I had, but when I was validating this idea it became very clear that was not the scratch to my itch. But I built it anyway. It's one of my first projects I made with React - so it helped me getting better at building new side-projects - and I always wanted to use ElasticSearch, and this was the perfect project to use it for. It has almost no users (I barely use it at all, and I'm at 30 concerts attended at the time I'm writin this post), but that is okay.
Why was the project invalidated you might ask? When I started talking to The National fans (my key demographic for this project. Could you imagine?), I noticed there were roughly two kinds of users:
- Those who have seen them a few times. Most have them like The National, but they like other bands as well, so they have no reason to use a tool like this. It's not that they don't care, they'd think it would be fun to see it, but they are indifferent.
- Some more "hardcore" fans, like me, who have seen them a solid amount of times. The only way you can add all your concerts in the web app, is by searching them and adding them. Ain't nobody got time for that!
Validation Techniques I Use
So, validation. Great. But how exactly do you get started with it?
There are a ton of books written about this part, because making sure your idea is validated can save you a lot of money in the future. Throwing resources at a product idea that will not be used is not exactly business savvy, right?
The way I look at it is that it's like sales, but without the sales part.
You start by deciding/researching the most important part of your product:
Who are its users?
It's amazing how such a simple, four word question can be so hard to answer.
And no, your answer is not "everyone". Even the biggest companies on earth don't have "everyone" as customers. Not "everyone" uses Facebook. Not "everyone" drinks Coca-Cola. Not "everyone" has an Apple product in their pocket.
This is not the right place to talk about how to build your customer persona or how to find prospects, so let's assume you know who your main customers/users are.
Let's take Saveloop, one of the latest side-projects I'm building. It's a price tracker for the biggest online stores. You can track as many products as you want and you'll get a notification when the price changes.
A couple of years ago I built something similar, but it was only for Belgian & Dutch webshops. Then, I made the mistake of thinking that my ideal user was "everyone that shops online". Turns out, I was wrong. When consumers on average spend $5400 a year on impulse purchases, not "everyone" is going to track products and postpone their purchase until the price drops.
But there are some "hardcore" shoppers who would do that. They're the kind of people that collect so many coupons that they get cash back when they go to the store. And even they wouldn't all use Saveloop.
Okay so I kinda know who my users are. Where do I find them? There are two places I go to, to find future product ambassadors:
- Facebook pages & Facebook groups
Facebook Pages
Find pages and groups related to your niche. A simple Facebook search for "money saving" shows these results:
Assuming there's no overlap, that's 1.5 million people interested in saving money. This does not mean the idea is validated. The problem is "I want to save money", but a price tracker such as Saveloop might not be the solution. But there is something here..
Next we need some people to contact. Thankfully Facebook is not that keen on privacy and such, so they just show us for every page who its top fans are.
For those of you who don't know what top fans are: people can become a top fan of a certain page when they interact a lot with its posts (like, reactions, comments,..).
So we can at least assume that people who interact with a money saving page at least are somewhat interested in saving money.
Next step? Either send them a friend request and send them a message or just send them a message. It's a little bit scary at first, but again, this is not personal. Also just talk about saving money and be interested in what they have to say.
As messages by people who aren't your friends will go to the "message requests" tab, your response rate will not be the highest, so make sure you send enough messages. I've noticed that about 40% of my messages are seen, and get at least one response to 10% of all the messages I send. That's better than email! Also, don't send more than 15 messages a day, because FB might stop you from sending any more.
Facebook Groups
The same tactic can be used with Facebook Groups, but there, top fans are called conversation starters.
Those are another 47 people of only one group that are interested in saving money.
Other validation resources will tell you to post your questions (or a Typeform or other questionnaire) directly as a new post in Facebook Groups, but I've found that often times this will be removed by the admins. Check the rules, and ask the admins directly of posting something like that is allowed, before you do it.
Reddit is becoming more and more popular these days. It used to be that its main userbase were mainly geeks, but more and more people with all kind of interests are finding their way to Reddit.
The main problem with using Reddit for researching, is that it's completely anonymous. While there are some ways to doxx people, let's not get into that.
Collect some subreddits that are interesting to your niche. For Saveloop these are:
- /r/povertyfinance: 185k subs
- /r/personalfinance: 13.7m subs
- /r/frugal: 1.1m subs
- /r/ynab: 63.6k subs (ynab stands for You Need A Budget)
- /r/budgeting: 2.3k subs
- /r/financianindependence: 567k subs
This sounds straightforward, but it isn't. Reddit hates all kind of promotion, that's why there's something as /r/hailcorporate. The chances that flat out posting your questions or a link to a questionnaire will yield one upvote are smaller than winning the lottery.
You have to be a little bit sneakier than that.
One way I found that semi-worked is:
- Create some (4-5) accounts well in advance, or if you already have some throwaways, use them.
- Check this site to see when the best time is to post on your particular subreddit.
- Search for some submissions containing keywords around your product. For example, CamelCamelCamel (CCC) is a price tracker that solely tracks the prices of Amazon products. If I search the /r/frugal subreddit for that (you might have to use Google for that as Reddit Search is notoriously bad. Use "camelcamelcamel" site:reddit.com/r/frugal to find results in Google only from the /r/frugal subreddit containing the keyword between quotes) I see several interesting posts with a nice amount of upvotes/comments:
- Post 1: 2700 votes, 182 comments
- Post 2: 957 votes, 90 comments
- Post 3: 1200 votes, 97 comments
- Post 4: 185 upvotes, 16 comments
- Post 5: 277 upvotes, 32 comments
Now again, Reddit is completely anymous. I'm not assuming anything, but could it be that those are posts made by CamelCamelCamel? It's entirely possible. Again, I'm not assuming anything, but more and more companies are starting to use Reddit for promotion and marketing purposes.
Do the same research for some more keywords. The goal is just to have an idea what to post. Should we ask " - So now we know what kind of posts around the price tracker niche get traction.
- Next use one account to post either:
- a question related to the problem you're solving. In Saveloop's case this would be a question such as "Does anyone know of something like CamelCamelCamel but for Target?"
Then after a while the other account could slide in and say something like "Hey, I'm actually building something like this. Can I DM you? I'd like to hear your opinion on what I'm building". Don't post a link to your website yet. Again, self-promotion is not appreciated.
If you're lucky other people will chime in say "Cool! Can you keep me updated on this?" or "Do you have a website or something with more info?". If nobody posts this, use your throwaways.
- something "controversial". In Saveloop's case something like "Price trackers suck", and then explaining why price tracking is not a good way to save money. Your arguments don't have to make any sense, all you want is just some die-hard price tracker fans to comment on why you're using price trackers all wrong.
Then as it's riled up, swoop in with a throwaway stating that since using CCC and Saveloop you saved thousands of euros. Either link to both your competitor and your page, or not at all.
- some interesting data around the topic. This post is an excellent example of that. The gist is basically "Deals during Black Friday are not really deals. Check this data that backs that fact up. Solution: Use price trackers such as CCC & Saveloop to monitor prices. - It's completely fine to buy around 100 upvotes to get started, or ask some friends/colleagues/... to upvote your posts.
- So right now you've either dropped your name, and at least some people will Google it and visit your website. If you haven't launched your MVP yet, you should already have a landing page where people can leave their email address. Hopefully you can collect some new email addresses.
Communicate & Measure
Okay so now you have had some conversations with possible users. Be completely honest with them. Tell them what you're building and that you would like to contact them in the future to ask for feedback. Ask them what kind of features they would like. Basically, every time you feel stuck or think that your idea sucks, talk to them.
Important: make sure you handle it as a conversation, not as an interrogation.
If you give them access to a demo environment or your MVP, make sure you have set up tracking on it so you can see how they use the tool.
If you have a large amount of ambassadors, feel free to open a Slack, Facebook Group, Discord, Subreddit,... depending on what they like. There you can connect with them en masse and it's easy to moderate.
Don't forget that most people will appreciate you inviting them to be part of your ambassador team. A few companies have contacted me to be in their ambassador/beta tester community, and I always thought I liked it because I'm interested in tech and innovation and I'm in general an early-adopter. You might be in a few beta tester communities yourself. Remember it's not because you are interested in tech. You were selected because you used the product a lot (and might use it a lot because you're an early adopter, but that's nuance).
What I want to say is that if you select the right people, they will appreciate it and will gladly give you very valuable feedback. All you have to do is talk to them.
That's it.
Now go validate your idea.