
Notion is a versatile tool renowned for its content management capabilities and user-friendly interface. This template demonstrates how to leverage Notion as a lightweight, free, and effective Content Management System (CMS) for your waitlist.
Key Advantages:
Before you can run this project, you'll need to configure a few external services:
Upstash provides serverless Redis. This template uses it for rate limiting signups.
REST API -> Endpoint (this is your UPSTASH_REDIS_REST_URL) and REST API -> Read-only Token or a custom token with write access (this is your UPSTASH_REDIS_REST_TOKEN). Ensure the token has write permissions if you're using it for operations that modify data.Resend is used for sending transactional emails (e.g., signup confirmations).
yourdomain.com).RESEND_API_KEY.waitlist@yourdomain.com). This will be your RESEND_FROM_EMAIL.Your waitlist data will be stored in a Notion database.
Name (Property type: Title) - This is usually the default first column.Email (Property type: Email)Signed Up At (Property type: Created time) - For tracking when users signed up.NOTION_SECRET.••• (More) menu in the top-right corner.https://www.notion.so/{YOUR_WORKSPACE_NAME}/{DATABASE_ID}?v={...}{DATABASE_ID} is the string of characters (usually 32 alphanumeric characters) that forms the path segment after your workspace name (or www.notion.so/) and before the ?v=.... Copy this ID. This is your NOTION_DB.To run this project on your local machine:
Fork and Clone the Repository: First, fork this repository to your own GitHub account. Then, clone your fork:
git clone https://github.com/YOUR_USERNAME/Waitly.git# Replace YOUR_USERNAME with your GitHub username and Waitly with your forked repo name if differentcd Waitly # Or your forked repo name
Install Dependencies:
This project uses pnpm as the package manager in the example commands. You can use npm, yarn, or bun if you prefer, by adjusting the commands accordingly.
pnpm install
Set Up Environment Variables:
Create a .env.local file in the root of your project. You can copy .env.example and fill in the values you obtained from the prerequisite steps:
# Upstash RedisUPSTASH_REDIS_REST_URL=your_upstash_redis_rest_urlUPSTASH_REDIS_REST_TOKEN=your_upstash_redis_rest_token# NotionNOTION_SECRET=your_notion_secret_keyNOTION_DB=your_notion_database_id# ResendRESEND_API_KEY=your_resend_api_keyRESEND_FROM_EMAIL=you@yourdomain.com # Email address to send from (must be verified in Resend)# RESEND_REPLY_TO_EMAIL=reply@yourdomain.com # Optional: Email address for replies
Run the Development Server:
pnpm dev
Your application should now be running on http://localhost:3000.
Run the Email Preview Server (Optional): If you're working on email templates, Resend allows local previewing of emails.
pnpm email
This typically starts a server on http://localhost:3001 (or as configured in package.json).
This template is open-source and available under the MIT License. You are free to use, modify, and distribute it for personal or commercial projects.
Encountered a bug, have a feature request, or need clarification? Please open an issue on the original repository.
For general questions or discussions, you can reach out to Idee8 Agency on X (formerly Twitter).
Contributions are welcome! Please feel free to fork the repository, make your changes, and submit a pull request.
