LovableLemon SqueezyBeginner7 min read

How to Sell Digital Products from Your Lovable App

Add Lemon Squeezy to your Lovable app to sell digital products, courses, or downloads with zero backend complexity.

Before you start

  • A Lovable account with an existing app
  • A Lemon Squeezy account with a product created
  • Your Lemon Squeezy API key

Step by step

1

Create a product in Lemon Squeezy

Go to your Lemon Squeezy dashboard and create a product with pricing. Copy the checkout URL.

# Lemon Squeezy → Products → + New Product
# Name: Your Product
# Price: $49 (one-time) or $19/month
# Copy the Checkout URL
2

Create a sales page

Ask Lovable to build a product landing page with a buy button.

Paste this into Lovable:

Create a product sales page with:
1. A hero section with product name, tagline, and price
2. Feature list with icons
3. Social proof section with testimonials
4. A large 'Buy Now — $49' button that links to the Lemon Squeezy checkout URL
5. A FAQ section
6. Clean, modern design with good typography
3

Add the checkout overlay

Instead of redirecting, you can embed the Lemon Squeezy checkout as an overlay.

Paste this into Lovable:

Add the Lemon Squeezy JavaScript embed to the app:
1. Add <script src='https://app.lemonsqueezy.com/js/lemon.js' defer></script> to the head
2. Change the Buy button to use class 'lemonsqueezy-button' and set href to the checkout URL
3. This opens the checkout as an overlay without leaving the page
4

Handle the post-purchase redirect

After purchase, Lemon Squeezy redirects to your success URL. Create that page.

Paste this into Lovable:

Create a /purchase-success page that:
1. Shows a thank you message with confetti animation
2. Provides a download link or access instructions
3. Has a button to go to the dashboard
4. Looks celebratory and on-brand
5

Set up the webhook for delivery

Use Lemon Squeezy webhooks to grant access or deliver files after purchase.

Paste this into Lovable:

Create a Supabase Edge Function called 'lemon-webhook' that:
1. Receives Lemon Squeezy webhook events
2. On 'order_created' event, extracts the customer email
3. Grants the user access in the database (set has_purchased = true)
4. Returns 200 to acknowledge

Common errors

Checkout overlay doesn't appear

The Lemon Squeezy JavaScript didn't load.

Fix: Make sure the script tag has 'defer' attribute and is in the document head, not the body.

Webhook not firing

Lemon Squeezy isn't sending events to your endpoint.

Fix: Go to Lemon Squeezy → Settings → Webhooks and add your Edge Function URL. Make sure it's a public HTTPS URL.

Purchase not reflected in app

The webhook handler isn't matching users correctly.

Fix: Match by email address from the Lemon Squeezy event, not by user ID.

Related guides

Weekly Newsletter

Get next week's fix before you need it.

Join developers getting weekly vibe coding tips, error fixes, and tool updates.

Subscribe on Substack →