Supabase for tracking signups. Beehiiv for sending. Your website for capturing.
Run this SQL in your Supabase dashboard under SQL Editor. This creates the table that stores every signup from your website.
Open supabase.com/dashboard → select your project → click "SQL Editor" in the left sidebar.
Paste and execute:
-- Newsletter subscribers table CREATE TABLE IF NOT EXISTS newsletter_subscribers ( id UUID DEFAULT gen_random_uuid() PRIMARY KEY, email TEXT NOT NULL, source TEXT DEFAULT 'homepage', subscribed_at TIMESTAMPTZ DEFAULT now(), created_at TIMESTAMPTZ DEFAULT now() ); -- Prevent duplicate emails CREATE UNIQUE INDEX IF NOT EXISTS idx_newsletter_email ON newsletter_subscribers (email); -- Enable Row Level Security ALTER TABLE newsletter_subscribers ENABLE ROW LEVEL SECURITY; -- Allow anonymous inserts (for website forms) CREATE POLICY "Allow anonymous inserts" ON newsletter_subscribers FOR INSERT TO anon WITH CHECK (true); -- Allow authenticated reads (for you to export) CREATE POLICY "Allow authenticated reads" ON newsletter_subscribers FOR SELECT TO authenticated USING (true);
In both index.html and the-3-2-1.html, find and replace the placeholder values:
const SUPABASE_URL = 'YOUR_SUPABASE_URL'; const SUPABASE_ANON_KEY = 'YOUR_SUPABASE_ANON_KEY';
Replace with your actual values from Supabase → Settings → API:
const SUPABASE_URL = 'https://yourproject.supabase.co'; const SUPABASE_ANON_KEY = 'eyJhbGciOi...(your anon key)';
When someone subscribes on your website, the form sends their email + source (which page they signed up from) to Supabase. The source field tells you whether they came from the homepage (homepage), the 3-2-1 hero section (the-3-2-1-hero), or the bottom CTA (the-3-2-1-footer).
Beehiiv handles the actual newsletter delivery, analytics, and subscriber management. Free up to 2,500 subscribers.
Go to beehiiv.com → Sign up free → Name your publication "The Signal" → Set your sender name as "Sunny Binjola" and sender email as your business email.
In Beehiiv Settings → Custom Domain → add newsletter.elevateaisystem.com. This means emails come from your domain (better deliverability) and the web version lives at your URL.
In Beehiiv → Grow → Subscribe Forms → Create a new form → Copy the form action URL. It looks like:
https://embeds.beehiiv.com/your-publication-id
Update the signup functions in index.html and the-3-2-1.html to submit to BOTH Supabase (your database) AND Beehiiv (for delivery). Here's the updated code for the homepage:
// Also subscribe via Beehiiv for delivery
const BEEHIIV_FORM = 'https://embeds.beehiiv.com/YOUR_PUBLICATION_ID';
fetch(BEEHIIV_FORM, {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({ email: email }),
mode: 'no-cors' // Beehiiv doesn't return CORS headers
}).catch(() => {}); // Silently handle — Supabase is the source of truth
Supabase is your database — you own the data, can query it, export it, see which source converts best. Beehiiv handles email delivery, open rates, click tracking, and unsubscribes. You get the best of both: data ownership + professional delivery.
Copy this structure into Beehiiv's editor as a reusable template. Every Tuesday, duplicate it and fill in the blanks.
Hey — here's this week's 3-2-1. Three AI developments that matter for your coaching business, two ideas you can use right now, and one tool worth trying.
[2-3 sentences: what happened + why it matters for coaches. Link to source.]
[2-3 sentences: what happened + why it matters for coaches. Link to source.]
[2-3 sentences: what happened + why it matters for coaches. Link to source.]
[One paragraph. Problem → idea → how to do it. Specific and concrete.]
[One paragraph. Problem → idea → how to do it. Specific and concrete.]
[What it does + specific use case for coaches + pricing + link. Your honest take.]
[Single CTA — rotate between: "Reply and tell me...", "Book a call", "Download the playbook", or "Try the tool"]
— Sunny
ElevateAI System · elevateaisystem.com
Under 800 words total. One CTA per issue. Write in your voice, not a newscaster's. Always coach-relevant — if a coach can't use it this month, cut it. Ship every Tuesday at 8am.
Your production rhythm so it never feels like a chore.
Scan AI news — X, Hacker News, Ben's Bites, The Neuron, or any AI newsletter you follow. Save 5-8 articles that caught your eye. Don't write yet, just collect.
Pick your 3 technologies, 2 ideas, 1 tool. Open Beehiiv, duplicate the template, fill in the blanks. Use Claude to help draft if needed — then edit for your voice.
Trim to under 800 words. Add links. Write the subject line (under 50 chars). Preview on mobile. Schedule for Tuesday 8am.
It sends. Reply to responses — every reply is a relationship. People who reply to your newsletter become clients.
[ ] Create Supabase table (run the SQL above) [ ] Copy your Supabase URL + anon key [ ] Paste credentials into index.html and the-3-2-1.html [ ] Upload both files to your hosting [ ] Test a signup on both pages — check Supabase table [ ] Create Beehiiv account (beehiiv.com) [ ] Name publication "The Signal" [ ] Set sender as Sunny Binjola + your email [ ] Optional: connect newsletter.elevateaisystem.com [ ] Get Beehiiv form action URL [ ] Add Beehiiv fetch call to both signup functions [ ] Create reusable template in Beehiiv editor [ ] Write and schedule Issue #001 [ ] Ship every Tuesday at 8am