Manage Your Waitlist with Zipper + Clerk
See how Zipper and Clerk can be used to build a waitlist for your product.
By
Sachin Ranchod
Published
Sachin Ranchod,
Tags
#build-processA waitlist is a great way for your startup or new product to gather hype at the earliest stages. As you grow and start welcoming customers, it helps you control the flow of new signups and ensure everyone is getting the best possible experience. We’ve seen this work with products like Arc and Bluesky with great results.
Today we’re excited to share two Zipper applets to help you manage your waitlist directly from Slack. They're both tightly integrated with Clerk to automate adding users to your system and sending them invitation emails. If you're not familiar with Clerk, it's a great way to add authentication and user management to your app. You can learn more about Clerk here.
If you haven't played around with Zipper yet, it's a platform for building and deploying web services quickly. Every applet has a working frontend, router, and datastore out-of-the-box. All you need is a browser and some basic Typescript or Javascript knowledge to get started.
Approving and Rejecting Waitlist Requests
The baseline functionality for a waitlist is to collect email addresses and then approve or reject them. We’ve built an applet that does exactly that. It collects an email address, adds it to a waitlist, and then sends a Slack notification to your team. The email address can be approved or rejected from the web UI or directly from Slack.
To illustrate how the applet works, we've got a sample website below. It's hooked up to our waitlist management applet, so you can see how the two work together. You can try it out by submitting a fake email address and then visting https://clerk-waitlist.zipper.run.
Demo website hooked up to our waitlist management applet - Code
Once you've submitted your fake email address, visit https://clerk-waitlist.zipper.run to see the waitlist management applet in action. You'll see a list of all the email addresses that have been submitted and you can approve or reject them (there's no auth in this particular example). If you approve an email address, a new user will appear in our Clerk dashboard and they'll immediately receive an invitation email.
Inviting your friends to the party
In the example above, everyone that joins the waitlist has to be approved manually. This can be a challenge in situations where you want users to be able to collaborate with their colleagues or friends within your application. In these cases, you want to be able to generate invitation codes that each new user can use to let people they know bypass the waitlist.
We've built an applet with this use case in mind. Every approved email address gets a handful of invitation codes that they can share with their friends. When a new user signs up with an invitation code, they're automatically approved and added to your system via Clerk.
You can play around with the published version of the applet here. If you were to integrate this applet into you product, the built-in API for the applet can be used to get the invitation codes for a particular email address: https://clerk-invite-codes.zipper.run/invite-codes.ts/api?email=sachin.ranchod@gmail.com
{ "ok": true, "data": { "email": "sachin.ranchod@gmail.com", "usedCodes": [ [ 575800 ] ], "availableCodes": [ [ 531168, 528782 ] ] }, "__meta": { "request": { "executionId": "ec86af3e-905f-471a-bb59-a883379e6cf8", "server": "cloudflare", "timing": "system;dur=0,deployment;dur=74" } } }
Fork and customize to your needs
The code for both applets is open source and can be easily forked. Just follow the steps in the readmes of each applet to get the Slack and Clerk configured.
Once your code has been published, you can add email addresses to the waitlist by POSTing to your applet’s /add
endpoint.
POST [applet-slug].zipper.run/add/api { 'email': 'sachin@zipper.works' }
There’s a lot more we want to add to both of these applets. In the coming weeks, you’ll see the following features:
- More information in the Slack notification to help you identify qualified leads
- A way to send a personalized welcome email directly from Slack
- Bypassing the waitlist for target accounts
If you have any other ideas of what would make these applets better, don’t hesitate to let us know. You can also fork either applet and customize it to your needs.
You can find more information on how to use Zipper here. If you have any questions, don't hesitate to reach out to us at hello@zipper.works