Skip to content

GHL Free Stack

GHL-Free Stack + Slick Purchase/Intake/Onboarding Sequence

Section titled “GHL-Free Stack + Slick Purchase/Intake/Onboarding Sequence”

Replaces every GHL function with free/cheap alternatives that run on your existing Hostinger VPS + Supabase + n8n + Framer (dwadlane.com).

Section titled “Replaces every GHL function with free/cheap alternatives that run on your existing Hostinger VPS + Supabase + n8n + Framer (dwadlane.com).”

Net monthly cost: ~$0 beyond your existing Hostinger VPS + Stripe per-transaction fees. This is more aligned with your Claude-first, infra-focused identity than GHL ever was.


1. THE REPLACEMENT MAP (every GHL function → free/cheap alt)

Section titled “1. THE REPLACEMENT MAP (every GHL function → free/cheap alt)”
Function GHL did Replacement Cost Notes
CRM / contact management Folk (free tier, 1,000 contacts) OR NocoDB self-hosted on your VPS (free, unlimited) $0 Folk is slicker out-of-box; NocoDB is the power move since Supabase stays your source of truth
Pipeline / deal stages Supabase table + a simple Softr or NocoDB view $0 You already have Supabase; n8n updates stage fields
Email nurture / automation Resend (free 3,000/mo, 100/day) + n8n to orchestrate $0 Resend is developer-grade, slick API, n8n has a native node. Upgrade to paid only if you exceed 3k/mo
Calendar booking cal.com (free cloud tier) OR self-host on VPS (free, unlimited) $0 Open-source Calendly alternative; embeds cleanly in Framer
Payments / checkout Stripe (per-transaction only, no monthly fee) ~2.9%+$0.30/txn Embed Stripe Checkout / Payment Links directly on dwadlane.com — slick, hosted, no code
Forms / intake Tally (free, near-unlimited) OR Fillout (free tier) OR n8n Form Trigger (self-host, free) $0 Tally is the best free form builder; webhook → n8n → Supabase
E-signature (SOW, MNDA, DPA) DocuSeal (open-source, self-host on VPS) $0 Full DocuSign replacement, free, API + webhooks for n8n
Affiliate / referral program Self-host Reflio (open-source, free) OR a DIY Supabase + n8n referral tracker $0 For starting out, a simple ?ref=DWAD123 tracked in Supabase + manual Wise payouts is enough
Client portal Softr (free 50 users) OR custom Framer + Supabase portal $0 Custom Framer portal is the slickest, most on-brand option — you’re a Framer user
Analytics / funnel tracking Plausible self-host (free) OR Framer built-in $0 Privacy-friendly, fast, self-hosted
SMS / WhatsApp (optional) Wati (you have it) or skip varies Only if you want async client comms

What you keep from the original stack: ScoreApp (lead magnet — still the best tool for it), n8n, Claude, Supabase, Metabase, Placid/Bannerbear (graphics), Carbone/Gotenberg (PDF, self-hosted), Loom.

Optional upgrade: if ScoreApp feels like too much, you can replace it with a Tally form + n8n + Claude scoring combo for $0 — but ScoreApp’s instant-results-page and shareable graphic are worth it for the viral loop. Keep ScoreApp.


dwadlane.com (Framer)
├── /audit ← sales page (Asset 1)
├── /score ← embedded ScoreApp scorecard (lead magnet)
├── /pricing ← 3 tiers, Stripe Checkout buttons
├── /book ← embedded cal.com (scoping + interview booking)
└── /portal/[id] ← custom client portal (Framer + Supabase, gated)
├── status checklist (signed? intake done? interview booked?)
├── deliverables (PDF, Loom, score graphic) when ready
└── referral link + shareable graphic
n8n (on Hostinger VPS) — the brain
├── ScoreApp webhook → Supabase + Resend (nurture email 1)
├── Stripe webhook → Supabase (create engagement) + Resend (welcome email)
├── DocuSeal webhook → Supabase (mark signed)
├── Tally webhook → Supabase (store intake)
├── cal.com webhook → Supabase (store interview)
├── Claude analysis (on all-3-complete trigger)
├── Carbone/Gotenberg → PDF
├── Placid → shareable graphic
└── Resend → all delivery/nurture emails
Supabase — single source of truth (Postgres)
├── contacts, engagements, scorecard_results, intake, interview_notes,
│ analysis_drafts, deliverables, referrals
└── Metabase reads from here for the portal dashboards

Supabase stays the system of record. n8n writes to it; everything reads from it. This is cleaner than GHL ever was because you own the data model.


3. THE SLICK PURCHASE → INTAKE → ONBOARDING SEQUENCE

Section titled “3. THE SLICK PURCHASE → INTAKE → ONBOARDING SEQUENCE”

Designed to feel premium and frictionless. The bar: a client should be able to go from “I want this” to “my interview is booked” in under 4 minutes, with zero emails back-and-forth.

  • Visitor lands on dwadlane.com/audit (Asset 1 sales page).
  • Two entry points: “Get my AI Readiness Score” (→ ScoreApp, free) or “See pricing” (→ /pricing).
  • Both paths lead to the same place eventually; the score path is warmer.

Step 2 — The free scorecard (ScoreApp, embedded on Framer)

Section titled “Step 2 — The free scorecard (ScoreApp, embedded on Framer)”
  • Embedded ScoreApp on dwadlane.com/score (iframe or subdomain — feels native, not third-party).
  • 21 questions, 7 min, instant 0–100 score + radar + shareable graphic.
  • Email gate to reveal full results → captures lead.
  • ScoreApp webhook → n8n → Supabase (scorecard_results) + Resend (Email 1: their score + the audit offer) + tag in Supabase if score 40–79 (hot lead).
  • Shareable score graphic (Placid) generated and included in the email so they can post it → referral loop starts even before they pay.

Step 3 — The purchase (Stripe, embedded on Framer)

Section titled “Step 3 — The purchase (Stripe, embedded on Framer)”
  • On dwadlane.com/pricing, three tiers as cards: Snapshot $1,500 / Opportunity $3,000 / Deep Dive $5,000.
  • Each “Get started” button opens a Stripe Checkout (Payment Link or embedded Checkout) — Stripe hosts the modal, handles card/PayNow/GCash (Stripe PH supports GCash and GrabPay), sends receipt automatically.
  • For 50/50 tiers (Opportunity & Deep Dive): Stripe Checkout with a 50% deposit + a saved payment method; n8n sends the second invoice on delivery. (Or use Stripe Invoicing for the second half — free, automated.)
  • Stripe webhook (checkout.session.completed) → n8n:
    1. Creates engagement row in Supabase (status: won, tier, client details from Stripe).
    2. Upserts contacts row.
    3. Triggers the welcome sequence (Step 5).
    4. Generates a unique portal URL (/portal/[engagement_id]) — magic link, no login.
  • Slick detail: the Stripe success page can redirect to their personal portal URL immediately, so right after paying they land on a branded “You’re in — here’s what happens next” page. Premium feel, zero friction.

Step 4 — The onboarding portal (Framer + Supabase, the centerpiece)

Section titled “Step 4 — The onboarding portal (Framer + Supabase, the centerpiece)”

This is the slick part. Right after payment, the client lands on their personal portal at dwadlane.com/portal/[id]. It’s a Framer page that reads from Supabase via the Supabase JS client (gated by the engagement ID in the URL — a “magic link”).

The portal shows a 3-step checklist that updates in real time as n8n marks each step complete:

YOUR AI OPPORTUNITY AUDIT — [Client Company]
Engagement ID: #ENG-2026-014 · Tier: Opportunity Audit · Delivery: 14 days
✓ Payment received — $1,500 (deposit)
✓ Welcome email sent
STEP 1 — Sign your engagement letter & MNDA [ 3 min ]
→ [Sign with DocuSeal] Status: ⏳ Pending
STEP 2 — Complete your intake questionnaire [ 15 min ]
→ [Open intake form] Status: ⏳ Pending
STEP 3 — Book your stakeholder interview(s) [ 1 min ]
→ [Book with cal.com] Status: ⏳ Pending
⏱️ Your 14-day delivery clock starts when all 3 are done.
Current estimated delivery: [DATE, calculated live]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
QUESTIONS? Reply to your welcome email or WhatsApp: [link]
  • Each step’s button deep-links to the right tool (DocuSeal packet, Tally intake, cal.com booking).
  • Webhooks update the checklist live: DocuSeal → n8n → Supabase signed=true → portal shows ✓. Same for Tally and cal.com. The client refreshes and sees progress — it feels alive and professional.
  • When all 3 are done, the portal auto-flips to a “We’re working” state with an estimated delivery date, and n8n sends a confirmation email.
  • When deliverables are ready, the portal shows the final state: PDF download, Loom embed, score graphic, debrief booking link, referral link.

Why this is better than GHL: it’s your branded experience on your domain, fully custom, and it costs nothing. GHL portals are generic; this is on-brand and impressive.

Step 5 — The welcome email (Resend, via n8n)

Section titled “Step 5 — The welcome email (Resend, via n8n)”

Sent the instant Stripe confirms payment. Clean, personal, action-focused.

Subject: You’re in — your AI Opportunity Audit starts now

Hi [FIRST],

Welcome. Here’s exactly what happens next — you can also track everything on your personal portal: dwadlane.com/portal/[id]

3 things to do now (under 5 minutes each):

  1. Sign your engagement letter & NDA → [DocuSeal link]
  2. Complete your intake questionnaire → [Tally link]
  3. Book your interview → [cal.com link]

Your 14-day delivery clock starts the moment all three are done — so the faster these, the faster your roadmap.

What you’ll get: your AI Readiness Score (0–100), a ranked opportunity matrix, a 30/60/90 roadmap, an ROI projection, a recorded walkthrough, and a live debrief.

Your single point of contact: me. Reply here or WhatsApp: [link].

— Dwad

[Portal link] · [Calendar] · [Intake form]

  • Sent via Resend (n8n node) — delivers in seconds, tracks opens/clicks.
  • All links also live in the portal, so they’re never searching their inbox.

Step 6 — Intake & signature (DocuSeal + Tally)

Section titled “Step 6 — Intake & signature (DocuSeal + Tally)”
  • DocuSeal (self-hosted on your VPS): sends the engagement letter + MNDA (and DPA for Deep Dive) as a single e-sign packet. Client signs on their phone in 2 minutes. Webhook → n8n → Supabase marks signed=true + stores signed PDF in Supabase Storage.
  • Tally (free): the deep intake form — 7 dimensions + use-case inventory. Conditional logic (Deep Dive shows stakeholder-roster section). Webhook → n8n → Supabase intake_responses.
  • Both update the portal checklist live. No “did you get my email?” friction.
  • cal.com (free cloud tier or self-host): client books their interview slot(s) directly from the portal. cal.com can enforce “1 interview for Snapshot, 2–3 for Opportunity, 5–6 for Deep Dive” via event types.
  • cal.com webhook → n8n → Supabase interview_booked=true + creates a calendar event + sends a prep email to the client (interview prep guide from the welcome packet).
  • Reminders: n8n + Resend sends 24h and 1h reminders (no separate tool needed).

When DocuSeal signed + Tally complete + cal.com booked all = true, n8n:

  1. Sets engagement.status = in_progress, clock_start_date = now().
  2. Calculates target_delivery_date = clock_start + 14 days.
  3. Sends a “clock started” email: “Your audit is officially underway — estimated delivery [DATE].”
  4. Updates the portal to the “We’re working” state.

Step 9 — Analysis & delivery (same as Asset 3, GHL removed)

Section titled “Step 9 — Analysis & delivery (same as Asset 3, GHL removed)”
  • n8n triggers Claude analysis → Carbone PDF → Placid graphic → portal populated → Loom recorded → delivery email via Resend.
  • Delivery email links to the portal (where PDF, Loom, graphic, debrief booking all live) rather than attaching files — cleaner, trackable, and the portal is the “wow” moment.

Step 10 — Debrief + referral (Resend + Supabase tracker)

Section titled “Step 10 — Debrief + referral (Resend + Supabase tracker)”
  • Debrief booked via cal.com (portal link).
  • After debrief, n8n generates the client’s referral link (dwadlane.com/audit?ref=[code]), stores in Supabase referrals table, and sends the referral-prompt email with their shareable score graphic.
  • Anyone who arrives with ?ref= and pays → Stripe webhook notes the ref code → n8n attributes → 30 days after payment → you pay via Wise.

4. THE DIY REFERRAL TRACKER (replaces GHL Affiliate Manager)

Section titled “4. THE DIY REFERRAL TRACKER (replaces GHL Affiliate Manager)”

For a solo starting out, you don’t need Rewardful/Tolt. A simple tracker costs $0:

  • Supabase table: referrals (ref_code, referrer_contact_id, referred_contact_id, engagement_id, status, commission_earned, commission_paid, paid_at)
  • Link format: dwadlane.com/audit?ref=DWAD123 — Framer reads ?ref= from the URL, stores it in localStorage (so it persists across the scorecard and purchase), and n8n includes it in the Stripe metadata.
  • Stripe webhook includes the ref code in session metadata → n8n writes the referral row.
  • Commission calc: n8n computes 15% of the paid amount (or $400 flat, whichever greater) + 15% of any retainer.
  • Payout: you review the referrals table weekly and pay via Wise manually (automate later with the Wise API if volume grows).
  • Disclosure: the referral email includes the FTC-compliant disclosure line (Asset 4).

This is genuinely all you need until you have 20+ referrers. Then upgrade to Tolt ($29/mo) or Rewardful ($49/mo) for self-service affiliate dashboards.


You don’t need to re-read them — here’s every GHL reference and its replacement:

Asset Was (GHL) Now (replacement)
Asset 1 (sales page) “Book via GHL calendar” “Book via cal.com” embedded on dwadlane.com
Asset 1 footer GHL referral block Resend-sent referral email + Supabase tracker; portal-hosted referral link
Asset 3 (n8n pipeline) GHL upsert contact, GHL email, GHL affiliate Supabase upsert, Resend email, Supabase referral tracker
Asset 4 (legal) Payment methods incl. GHL payments Stripe (primary) + Wise (bank transfer); DocuSeal for e-sign
Asset 6 (ops runbook) GHL pipeline stages, GHL custom fields Supabase engagements.status field + NocoDB/Folk view; same stage names
Asset 7 (sales bridge) “Move to Won in GHL” n8n auto-creates engagement on Stripe webhook; you track stage in Supabase/NocoDB

Stage names stay the same (Lead → Qualified → Proposal → Won → In Progress [Intake/Interviews/Analysis/Review/Delivery prep] → Delivered → Debrief → Retainer → Nurture) — they’re just a status field in Supabase now, viewed in NocoDB or Folk.


  1. Week 1 — Data layer: Supabase schema (from Asset 3) + set up Resend + connect n8n. Create the Framer /audit, /score, /pricing pages.
  2. Week 2 — Purchase flow: Stripe account + Payment Links for the 3 tiers + Stripe webhook → n8n → Supabase (create engagement). Test a $1 purchase end-to-end.
  3. Week 3 — Onboarding portal: Build the Framer portal template (/portal/[id]) reading from Supabase. Self-host DocuSeal + Tally intake + cal.com booking. Wire all 3 webhooks → Supabase → portal checklist.
  4. Week 4 — Analysis pipeline: Claude nodes (Asset 3 prompts) + Carbone PDF + Placid graphic. Test on your LMS data.
  5. Week 5 — Delivery + portal final state: Loom integration + delivery email (Resend) + portal “ready” state + debrief booking.
  6. Week 6 — Referral + nurture: Supabase referral tracker + ?ref= persistence + nurture email sequence (Resend + n8n). Run 2 pilot audits.

Cost to launch: $0/month (Hostinger VPS you already have + Stripe transaction fees only). Add ScoreApp ($49/mo if you keep it; or replace with Tally+n8n for $0). Add Folk Pro or Tolt later only when volume justifies it.


7. WHY THIS STACK IS ACTUALLY BETTER THAN GHL

Section titled “7. WHY THIS STACK IS ACTUALLY BETTER THAN GHL”
  • You own the data. Supabase is your source of truth — no per-contact pricing, no export headaches, no lock-in.
  • Fully on-brand. Every touchpoint lives on dwadlane.com — your domain, your design, your portal. GHL portals scream “GHL.” Yours screams “Dwad Lane.”
  • Slicker purchase. Stripe Checkout embedded on Framer is faster and more premium than GHL’s funnel/checkout.
  • Infinitely customizable. Want a custom portal animation, a conditional intake flow, a specific email trigger? You just build it in n8n/Framer. No GHL feature limits.
  • Costs nothing. GHL is $97–$297/mo. This is $0/mo until you scale.
  • It matches your identity. You’re a technical builder with a Claude-first stack. A self-hosted, open-source, API-driven stack is the authentic move — and a great case study for the kind of AI-first automation you’re selling.

The audit you deliver to clients is literally built on the same philosophy you’re selling them. That’s a compelling story when they ask “how do you run your own business?”