At 6 a.m. on August 10, 2019, my buddy Drew and I clicked the "Start Streaming" button to go live on Twitch. We were attempting quite the task — build a startup in 24 hours. We had seen some other indie makers, like Pat Walls
and Pieter Levels
, do similar projects. The plan was to try out a business idea and validate it as quickly as possible. Doing this in public would force us to actually make it happen and keep us accountable.
Limiting ourselves to 24 hours would force us to make a prototype as fast as possible to validate the idea. I think limiting yourself in this way is a really good practice. Why build tons of custom code and spend loads of time on an idea that may not even fly?
I had a great setup for the stream. I was actually in my brother-in-law’s basement so that I would be in a quiet place where I wouldn’t be too loud and distract my family, especially overnight. I had my laptop, a mic, a second monitor, a comfy chair, food and water — everything you need for 24 hours of coding.
And with that, we were off to the races! I began with a tweet to announce the start of the stream.
The tweet actually did pretty well. Pieter Levels retweeted it, allowing it to go somewhat viral (at least for me). It ended up getting 10,500 impressions, which is the most I have ever gotten on a tweet. This is the kind of hype we were hoping for. This helped get my stream off to a great start.
made a post to the /r/EntrepreneurRideAlong
subreddit. He got a ton of traffic to his separate stream from this. His post ended up being the top for the day and got 60 upvotes.
I should probably give a little context to what we were building. It was a SMS-based text messaging app called SnoozeYouLose
that keeps you accountable for waking up.
A user would pledge an amount of money and the time that they want to wake up every morning. At their wake up time, we would send them a text with a simple math question. If they woke up and answered it correctly within five minutes, they were in the clear. Otherwise, if they snoozed, they would have to pay the money that they pledged. Half of the money would go to a non-profit organization
to provide water for those in third world countries that don’t have easy access to it.
It was a fun idea and we thought it may be useful in people's morning routines.
At the height of my stream, I had 37 people watching simultaneously. On average, there were 15 people watching at all times. Drew’s stream did even better. He had 30 people watching at all times.
Overall, I had 550 unique people and Drew had 850 come through the stream during the 24 hours. It really helped build hype for the project.
It was really exciting to see viewers interested in SnoozeYouLose. We even had some viewers that helped us through some road blocks and hard situations.
There is definitely something to be said about having a live audience while you are trying to code. On one hand, it made me more efficient and forced me to move quickly because I knew there were people watching. On the other hand, it was distracting because viewers commenting, Drew was talking and the Twitter notifications were rolling in.
All in all, I think it definitely helped give us accountability and push us towards our goal of validating an idea quickly.
The Road Bumps
We had done some planning beforehand (which I definitely recommend) to help create some kind of roadmap for how we would build SnoozeYouLose.
But of course, things always change. We had planned to use Typeform to collect user info and credit card information. Typeform has a nice integration with Stripe, but we found out during the stream that it only allows you to do one-time purchases. We needed it for collecting a credit card that we could charge later (once a user didn’t wake up at the time they specified).
We had to find another solution for this that wouldn’t take too much time to implement. We didn’t want to have to develop the code all ourselves since our time was limited. We found Paperform from a recommendation by a viewer. It’s very similar to Typeform, but supposedly had a better integration with Stripe (more on this later).
After we got through the Typeform hiccup, things were going really well. We had finished most of the features by 9pm that evening. We thought we were on track to easily finish it on time.
Then the crash came. By 3 a.m., both of us had gotten really tired and we were up against one of the hardest problems (yet to be solved): time zones and daylight savings. What made this problem so hard was that our app didn’t run on a device. All the code was running from a server. We weren’t able to easily grab a user’s local time. So instead, we had to take in their time from a form and somehow convert it to UTC time correctly.
There are so many different timezones and variances. We didn’t want the user to have to select through a huge list. So instead, we had the user input their current time locally and then we would just use that as the offset. This wouldn’t account for daylight savings, but we figured we could iron out that part later.
This plan would have worked, but since we were so tired, we did some of the conversions incorrectly. We ended up having to fix this a day after the stream finished.
We finished just about everything by 7 a.m. Sunday morning (25 hours after we started). We launched on Product Hunt
and posted to Hacker News and the Indie Hackers community. It felt good to finally be done and we were ready for a nap.
We had done some testing, but not as much as we would have liked to because of the time crunch. Right after we launched, I went through the entire process of making a SnoozeYouLose account and trying out the features.
We had put a field within PaperForm for the user to enter their credit card in, but clarified that we would not charge them today. We would only use it to charge them later (if they snoozed).
Well, when I tried this out, it charged my card right away. This was terrible. People would think that SnoozeYouLose was a complete scam. We had to quickly remove the field where we took credit card information. PaperForm was not going to work for this.
We wouldn’t be taking anyone’s credit card for the launch. We would have to add that feature later. For now, if someone snoozed, we would just tell them that they got a free pass for the day. This was definitely not ideal. Instead of getting someone to sign up and get their credit card information right away, we would have to ask them again later which would most likely make less people fully complete the signup.
Other than this, the launch went pretty well. We got 89 upvotes on Product Hunt the first day and 35 people signed up for SnoozeYouLose.
1) Starting a startup in 24 hours is very challenging. You need to do a lot of detailed planning beforehand to make sure it goes smoothly.
2) The scope of the project has to be on the smaller side. Find really quick ways to create and validate the idea.
3) You can drum up some extra interest through the hype of starting something in 24 hours. The accountability that comes is really amazing. You can make some cool connections with your viewers and they will want to root for you. And we spread the hype was making posts to relevant subreddits and groups online.
4) Try to figure out the hardest parts of your project first before you get too tired. Our tiredness definitely hurt us the last few hours and probably made our launch not as successful as it could have been.
5) Make sure that you have enough time to make your product solid. If I were to do it again, I would probably take five days so that I could build something more substantial and make sure all of the bugs are squashed before the product was launched.