Next.js landing page for the Atomic Memory hosted beta waitlist.
/redirects to/hosted-memory/hosted-memorylanding page/api/waitlistserver route that appends leads to Google Sheets
pnpm install
cp .env.example .env.local
pnpm devOpen:
http://localhost:3000/hosted-memory?utm_source=x&utm_medium=paid&utm_campaign=hosted_memory&utm_content=bf1_x
WAITLIST_SPREADSHEET_ID=your_google_sheet_id
WAITLIST_SHEET_NAME=Atomic Memory Waitlist Masterlist
GOOGLE_SERVICE_ACCOUNT_JSON_BASE64=base64_encoded_service_account_json
For local development only, you can use a file path instead of base64:
GOOGLE_SERVICE_ACCOUNT_JSON_PATH=/absolute/path/to/service-account.json
Do not commit the real service-account JSON.
base64 -w 0 /path/to/service-account.jsonPaste the output into Vercel as:
GOOGLE_SERVICE_ACCOUNT_JSON_BASE64
- Upload/import this project to Vercel.
- Set Framework Preset:
Next.js. - Install command:
pnpm install. - Build command:
pnpm run build. - Add the environment variables above in Vercel Project Settings → Environment Variables.
- Deploy.
- Test the form on
/hosted-memorywith UTM params.
The destination spreadsheet must have a tab named:
Atomic Memory Waitlist Masterlist
Expected headers:
timestamp, email, name, company, role, product_type, interest, message, page, utm_source, utm_medium, utm_campaign, utm_content, utm_term, referrer, landing_url, user_agent, status, notes
The spreadsheet must be shared with the Google service account email as Editor.
pnpm run typecheck
pnpm run build