The challenges we faced and actionable tips for founders looking to build their own waitlist.
The first question I get from YC batch mates is: "How did you get your domain?".
The second question is: "How did you grow your waitlist?".
I'm writing this post to document what went well and what went wrong. Hopefully, this will help other founders who are launching their own waitlists or looking to find potential users.
1. Landing page
We knew that we were entering a space with many consolidated competitors, so it was crucial to show people that we were different. We did that by creating a landing page that was extremely simple but also had unique branding and smooth interactions.
Here's what worked for us:
2. Social media posts
Back in 2009, I created an account on this new social media website called Twitter. There were a few months when I was posting every day, and there were a few months when I wasn't posting at all. I didn't have a strategy, I was just sharing whatever I was working on. After years of doing that, I built a following of 39.4k people. This came in handy when we were launching Resend.
On January 4th, 2023 at 7:11 am PT, I published the first tweet about Resend. This tweet had 999.3k views, 4,634 likes, 352 retweets, and 282 replies. I'm not a big LinkedIn user, but I did post the same content there, and it got 107,411 views, 1,378 likes, and 156 comments.
Here's some tactical advice I learned from this experience:
If you're not into social media, that's totally fine. There are many founders who don't engage on social platforms and still build incredible companies. However, if you're thinking about starting a profile, keep this in mind - the best time to start posting was yesterday, the second best time is today.
3. Build in public
After the initial launch, it's important that you keep bringing new people to the waitlist. We did that by sharing our progress publicly.
1. Performance testing
On the day we launched, we got several complaints about performance issues (1, 2, 3, 4, 5). We knew that people were going to sign up on mobile, but we didn't spend too much time testing the performance on real phones.
Dealing with performance issues in the middle of a launch is not fun. Small bugs can be dealt right away, but performance improvements typically require deep thinking and a lot of debugging. We ended up fixing all of them, but I wished we had done that before the launch.
2. Email address validation
When setting up the waitlist form, we wanted to have something that was easy to use and low friction. There was only a simple input field, and we didn't want to ask people to confirm their email address. Even though we had some back-end validation, people could still add fake email addresses.
In order to address this, we integrated an email validation service called Emailable to guarantee that the email addresses were real. If we had better validation from day one, we would have saved a lot of time.
3. Processing the waitlist
In the beginning, we didn't have a proper plan to process the waitlist. We found ourselves with a big list of email address and no idea how to prioritize them. What worked for us was building a quick Typeform to understand who were the best people to onboard first.
We initially required every prospect to go through a mandatory onboarding call first (Superhuman style), but we quickly realized that wouldn't scale with our current team size, so we changed it to automatically onboard certain user segments.
It's important that you qualify your leads before reaching out to them. If you don't, you'll end up wasting a lot of time with the wrong customer profile.
A waitlist is a great way to build a community around your product. It's also a great way to get feedback from people who are interested in what you're building.
You will never be 100% ready to launch, and that's okay. There will always be something that you can improve or fix. The best thing you can do is to launch and iterate.
If you're not launching, you're not learning.