Skip to content

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.

  1. In your project folder, copy .env.example to .env:
    • macOS / Linux: cp .env.example .env
    • Windows (PowerShell): Copy-Item .env.example .env
  2. Open .env in 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.
  3. Restart npm run dev (Ctrl C, then npm run dev).
  4. When the site is online, add the same names and values in your host’s settings (on Vercel: Project → Settings → Environment Variables) and redeploy. .env itself 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.

Signups from the waitlist form are stored in a Supabase table.

  1. Create a free Supabase project.

  2. 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.

  3. Copy the project URL and a secret key (Project Settings → API Keys) into SUPABASE_URL and SUPABASE_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).

Welcome emails for the waitlist and receipts after a purchase go through Resend.

  1. Create a Resend account and verify your domain (Resend shows the DNS records to add).
  2. Create an API key and put it in RESEND_API_KEY.
  3. 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.

The chat answers visitors from your own docs, FAQ and pricing.

  1. Create a key at console.anthropic.com and set a monthly spend limit there.
  2. Put it in ANTHROPIC_API_KEY. CHAT_MODEL is optional (the default model is picked for you).
  3. 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.

Plans on your pricing page can start a Stripe Checkout.

  1. In Stripe, create a Product with a monthly and a yearly Price for each plan.
  2. Put your secret key in STRIPE_SECRET_KEY.
  3. Add a webhook endpoint (Developers → Webhooks) for https://your-site/api/stripe/webhook, listening to checkout.session.completed, and put its signing secret in STRIPE_WEBHOOK_SECRET. After a payment, the buyer gets your welcome email.
  4. 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.

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, plus UMAMI_ORIGIN if 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.

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 (⌘ 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.

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.