EarlyBee - From idea to launch in 3 days: Landing pages to get Pre-orders, Emails or Votes
Tags: saas, webdev, react, javascript
Published: 2024-05-08 15:15:19

---
title: EarlyBee - From idea to launch in 3 days: Landing pages to get Pre-orders, Emails or Votes
published: true
description: I created EarlyBee, a landing page generator to validate a project by getting Pre-orders, Emails or Votes.
tags: saas,webdev,react,javascript
cover_image: https://storage.googleapis.com/indie-hackers.appspot.com/post-images/3b296e7f96/vu1t5r34ePQs7BBUjRnRIuLhl1m1/3611177b-fb0e-104a-c3cf-4e04b54bef59.png
# Use a ratio of 100:42 for best results.
# published_at: 2024-04-26 19:29 +0000
---

TLDR: Create a quick landing page to for your project at [EarlyBee.io](https://earlybee.io/).

## Day #0 — Scratching my own itch

Since I’m currently working on a [Directory Listing Builder](http://saasrock.com/saas-templates/directory-website-builder), I thought that I could get beta testers by having a private beta. But what if I got many emails? I thought that having a pre-order price would be better. But why not having both?

A few weeks ago my initial domain idea was `Waitlister.co`, where I’ll create a page like `dircraft.waitlister.co` so I immediatly bought it, talked to my wife about it but she didn't like the domain. So we decided for [EarlyBee.io](https://earlybee.io/) 🐝 as in early bird.

* * *

## Day #1— Friday night idea

### **I asked GPT to validate it**

Check out the full chat log I [had with GPT here](https://chat.openai.com/share/e81d3b4b-45df-48f2-b5df-26fd79a3d1de).

![](https://cdn-images-1.medium.com/max/1600/1*bcq3Q9MWML5UlDClub0K5A.png)

Before I started my chat, I created a custom GPT called [SaasRock Portals GPT Assistant](https://chat.openai.com/g/g-GcYMimUdi-saasrock-portals-assistant) giving it a bit of context about SaasRock [B2B2B portals](https://saasrock.com/docs/articles/build-b2b2c-saas-applications). This way GPT already has some basics:

* I'll use SaasRock to build the SaaS MVP
    
* My customers will manage their portals (in this case Landing Pages) at `/app/:tenant/portals/:portal`
    
* The portal (landing page) will be available at `{subdomain}.earlybee.io` (or using a custom domain)
    

### **I bought the domain**

My wife and I came up with a better domain name: early**Bee**. The domains .com, .so, and .co were already taken, but .io was available.

![](https://cdn-images-1.medium.com/max/1600/1*6I8c_pKFGyipt1YbfmxArw.png)

### **I asked GPT to generate a logo**

I also asked GPT to generate a logo for me:

![](https://cdn-images-1.medium.com/max/1600/1*W-H4e7CSGlAetoEbtqgMyQ.png)

1.  I used [Adobe’s PNG to SVG](https://www.adobe.com/express/feature/image/convert/png-to-svg) converter.
    
2.  Then created the icon and logo in [Canva](https://www.canva.com/).
    

End result:

![](https://cdn-images-1.medium.com/max/1600/1*SMdTfV7veFNSlMzq1ehnvA.png)

Such a cute be 🥹.

* * *

## Day 2 — Proof of concept (4 hours)

Motivated enough having a great domain name and a beautiful logo, I hacked the following demo in 2 hours. I basically started with the Portal application (what the end users will see):

TLDW: These are some landing pages I tested.

![](https://cdn-images-1.medium.com/max/1600/1*7uTp5GmGYhWRpw_AfMK8Yg.png)

I always like creating the end-product first, by not touching the database. For example in this case I have a specific files to have example data at `app/modules/earlybee/utils/fakeLandingPage.ts`:

![](https://cdn-images-1.medium.com/max/1600/1*TijmwHRROwBYygfpWHxKaQ.png)

My time spent on the portal (7.5 hours):

![](https://cdn-images-1.medium.com/max/1600/1*BpA1abBiO5aBOfmQn0Qh0A.png)

Time tracked for the end-product

* * *

## Day 3 — Build, Market, Manage

Once I was happy with the portal, I started implementing the root application, which is where the makers will sign up:

![](https://cdn-images-1.medium.com/max/1600/1*H-Od2e4qkbULrE29lcoYkw.png)

### **Setting up Postmark to send Transactional Emails**

[Click here to watch me](https://www.loom.com/share/2bcc953d09db405986c7614382599998) configure a Postmark server from scratch.

Once your domain is verified, it will look like this:

![](https://cdn-images-1.medium.com/max/1600/1*XjvlED25EymAbNjlUnFMGA.png)

And you should be able to get receive emails from your domain:

![](https://cdn-images-1.medium.com/max/1600/1*CWMC7GLDGurjZRITguKBfg.png)

### **Setting up Stripe to get Payments and Subscriptions**

Now, to quickly allow users to pay or subscribe to a plan, I need a Stripe account, put the secret key on my `.env` file, go to `/admin/settings/pricing`, click “**Generate all plans**”, and that’s it! Visitors can now subscribe at the `/pricing` page.

[Click here to watch me set up Stripe](https://www.loom.com/share/4df4c39b9a584361a61bf20667f41941).

My time spent on the landing page management app:

![](https://cdn-images-1.medium.com/max/1600/1*clMFoEiMjkjYG2Tzww3krg.png)

Total hours: 2 hours

* * *

**Pre-launch Day**

My checklist today:

* ✅ Post [EarlyBee on YouTube](https://youtu.be/qvz0a3ChLj4) presenting the product
    
* ✅ [Tweet about it](https://x.com/AlexandroMtzG/status/1787544022837514277)
    
* ✅ Create a [Product Hunt teaser](https://www.producthunt.com/products/earlybee)
    
* ✅ Send 210 emails to [SaasRock newsletter](https://saasrock.com/newsletter) subscribers
    
* ✅ Send +1,000 emails to [my Gumroad](https://alexandromg.gumroad.com/) subscribers
    
* ⌛ Write [this blog post](https://saasrock.com/blog/earlybee-from-idea-to-launch-in-3-days-create-landing-pages-to-get-pre-orders-emails-and-votes)
    

This is the design I came up with:

![](https://cdn-images-1.medium.com/max/1600/1*0N5I6J8I-cNorvB6t2yNiQ.png)

[Let me know](https://twitter.com/AlexandroMtzG) what you think!

* * *

## ...Couldn't launch! Unexpected Stripe Acccount Activation Error

I just encountered the following errors while trying to activate the production Stripe account:

![](https://cdn-images-1.medium.com/max/1600/1*cN2Kgh7aTVC0iaJDU590Nw.png)

Verify an identity document

_“Wait 24 hours to try again”_, feels like I may have to reschedule the launch for Wednesday 8th. Stripe support was not able to help in time:

![](https://cdn-images-1.medium.com/max/1600/1*kffMyoPdUoQQqr-wm5almw.png)

So I couldn't actually use Stripe connect, not even in development mode, which is essential for EarlyBee.

![Stripe Email Support](https://cdn-images-1.medium.com/max/1600/1*G0TaOyZyQlScw0clmhbWGQ.png)

And they actually never responded, twice. The next day I tried again and it blocked me.

![Stripe Connect disabled](https://cdn-images-1.medium.com/max/1600/1*QrTsLF8dpjAxLLLy0cEM_w.png)

So I kind of cheated: I had an pre-activated unused Stripe account ([the one for this app](https://saasrock.com/saas-templates/directory-website-builder)) so I just renamed it and changed the website details 😅.

Things happen 😄. But as of today, May 7th, it’s live:


![earlybee-landingpage.png](https://qwcsbptoezmuwgyijrxp.supabase.co/storage/v1/object/public/novel/1715277191342-earlybee-landingpage.png "earlybee-landingpage.png")

This is how my inbox looks right now (1 min before [PH launch](https://producthunt.com/posts/earlybee/)):

![inbox-pre-launch.png](https://qwcsbptoezmuwgyijrxp.supabase.co/storage/v1/object/public/novel/1715151357679-inbox-pre-launch.png "inbox-pre-launch.png")

* * *

## Conclusion

I’m sooo excited that I was able to complete this project in such a short amount of time and effort. All possible because of the new SaasRock feature: **Portals**.

Some examples:

* Get pre-orders: [kickstart your project](https://dircraft.earlybee.io/)
    
* Collect emails: [start a newsletter](https://alexandro-dev.earlybee.io/)
    
* Get upvotes: [validate a product](https://saasrock-nextjs.earlybee.io/)
    

[Learn more about building B2B2C apps in saasrock here](https://saasrock.com/docs/articles/build-b2b2c-saas-applications).