Turn on the features
Everything in a WPTom template works before you set anything up: forms log what they would
send, the chat explains how to turn it on, search uses a built-in index. Each feature switches
on when you add its key. Keys are secrets: they go in a file called .env on your computer
and in your host’s settings, never in your code or in Git.
Where keys go
Section titled “Where keys go”- In your project folder, copy
.env.exampleto.env:- macOS / Linux:
cp .env.example .env - Windows (PowerShell):
Copy-Item .env.example .env
- macOS / Linux:
- Open
.envin your editor. Every setting has a comment saying what it does and where to get it. Fill in only what you use; leave the rest empty. - Restart
npm run dev(Ctrl C, thennpm run dev). - When the site is online, add the same names and values in your host’s settings (on Vercel:
Project → Settings → Environment Variables) and redeploy.
.envitself is never uploaded (it’s in.gitignore).
The settings below are the ones Aurora uses; other templates use the subset they need, and
their .env.example lists them.
Waitlist (Supabase)
Section titled “Waitlist (Supabase)”Signups from the waitlist form are stored in a Supabase table.
-
Create a free Supabase project.
-
Open SQL Editor, paste this and click Run:
create table public.waitlist (email text primary key,source text,created_at timestamptz not null default now());alter table public.waitlist enable row level security;(Row level security without policies means only your site’s secret key can write.) Another table name? Set
WAITLIST_TABLE. -
Copy the project URL and a secret key (Project Settings → API Keys) into
SUPABASE_URLandSUPABASE_SECRET_KEY. The secret key stays on the server.
Without them, signups are kept in memory while npm run dev runs (for trying it out only).
Email (Resend)
Section titled “Email (Resend)”Welcome emails for the waitlist and receipts after a purchase go through Resend.
- Create a Resend account and verify your domain (Resend shows the DNS records to add).
- Create an API key and put it in
RESEND_API_KEY. - Set
EMAIL_FROM, e.g."Your product <hello@yourdomain.com>"(an address on the verified domain).
Without a key, emails are printed in the terminal instead of sent.
AI chat (Claude)
Section titled “AI chat (Claude)”The chat answers visitors from your own docs, FAQ and pricing.
- Create a key at console.anthropic.com and set a monthly spend limit there.
- Put it in
ANTHROPIC_API_KEY.CHAT_MODELis optional (the default model is picked for you). - Change what the chat is told in the content editor: Interface texts → Chat.
Without a key, the chat window explains how to turn it on.
Payments (Stripe)
Section titled “Payments (Stripe)”Plans on your pricing page can start a Stripe Checkout.
- In Stripe, create a Product with a monthly and a yearly Price for each plan.
- Put your secret key in
STRIPE_SECRET_KEY. - Add a webhook endpoint (Developers → Webhooks) for
https://your-site/api/stripe/webhook, listening tocheckout.session.completed, and put its signing secret inSTRIPE_WEBHOOK_SECRET. After a payment, the buyer gets your welcome email. - In the content editor, Pricing page → Plans → Stripe checkout, paste each plan’s Price ids.
A plan without Price ids keeps its normal button link.
Analytics
Section titled “Analytics”Fill in one or more; each stays off until its id is set.
- Plausible (cookieless):
PUBLIC_PLAUSIBLE_SCRIPT_ID, the script id from Site settings → Site installation (e.g.pa-AbC123). - Umami (cookieless):
PUBLIC_UMAMI_WEBSITE_ID, plusUMAMI_ORIGINif you host Umami yourself. - Google Analytics 4:
PUBLIC_GA_MEASUREMENT_ID(e.g.G-ABC123). GA uses cookies, so a consent banner appears and GA loads only after the visitor accepts.
Demo booking (Cal.com)
Section titled “Demo booking (Cal.com)”Put your Cal.com booking link in PUBLIC_CALCOM_LINK (e.g.
yourname/demo). PUBLIC_CALCOM_ORIGIN only if you host Cal.com yourself. Without a link,
the demo page explains how to connect it.
Search
Section titled “Search”Search (⌘ K or the search button) works out of the box with an index
built with the site. For large sites, switch to Algolia: set
PUBLIC_ALGOLIA_APP_ID, PUBLIC_ALGOLIA_INDEX and PUBLIC_ALGOLIA_SEARCH_KEY (the
search-only key), and after each deploy run npm run search:sync with ALGOLIA_ADMIN_KEY set
on your computer only.
Editing content on the live site
Section titled “Editing content on the live site”By default you edit content on your computer and publish by pushing to Git. To edit on the live site instead, connect Keystatic to GitHub: see Keystatic. To use Sanity, see Sanity.