12
Chapter 12

Web & Payments

Your website sells. Your app delivers. These are two different jobs on two different platforms with different rules. Understanding the limits of each saves you from mistakes that cost weeks.

12 min read|Comparison|Shaen Hawkins
YOUR WEBSITE projectfluency.com Pricing Page $9.99/mo Standard Subscribe You keep ~97% $12.60 checkout STRIPE payment.success sub.created sub.cancelled payment.failed Sends webhooks webhook YOUR BACKEND webhook-receiver Edge function verify signature parse event type update database grant access send confirmation Supabase User now active

Your Website — The Storefront

Your website has one job: convince visitors that your product is worth trying. It is not the product itself — it is the window display, the sign, and the door that invites people in.

No-code website builders like Webflow, Framer, or Squarespace let you build professional sites without writing code. Webflow is popular with solo founders, but it has hard limits you should know before planning around features it cannot deliver.

Embed Block Blindness

Some builders (like Webflow) cannot see inside custom code blocks via their API. If you need to update content inside an embed automatically, you cannot. Manual Designer edits only.

No Auto-Publishing

You can create and update pages via API, but publishing requires clicking a button in the Designer. No fully automated content deployment.

AI Page Building

Connected AI tools can now build full pages in some platforms — sections, content, styling — without touching the Designer. Evolving fast. Embed limitation still applies.

Stripe — Your Cash Register

Payment processors like Stripe or Paddle handle money. You create products, set prices, and the processor manages everything: checkout, credit card processing, subscription renewals, failed payment retries, receipts, refunds, and tax calculations.

What is less obvious is the piece that matters most: the webhook.

Webhook

A message that one system automatically sends to another when something happens. When your payment processor handles a transaction, it sends a webhook to your backend saying "someone just paid." Without this, money gets collected but your product never finds out — the cash register rings but nobody in the kitchen hears it.

Restaurant Analogy

Your payment processor is the cash register and receipt printer. The webhook is the kitchen ticket printer — when the register rings up an order, the kitchen printer automatically prints the ticket so the cooks know what to make. Without the printer, money comes in but no food goes out.

Different Prices in Different Places

Channel Price Fee You Keep
Website (Direct) $12.99 ~3% ~$12.60
iPhone (Apple IAP) $12.99 15% (Small Biz) ~$11.04
Android (Google Play) $12.99 15% (first $1M) ~$11.04

Many apps charge different prices depending on where you buy. $12.99 on the website, $14.99 in the app. This is legal, common, and increasingly expected — Spotify, YouTube Premium, and many others do exactly this. Recent US court rulings specifically allow you to tell users about the cheaper option.

The strategy: make your website pricing the primary offer. Use the app pricing to capture people who would rather pay right there than switch to a browser. Accept the Apple/Google tax as the cost of convenience.

Your webhook receiver is the most critical piece of your payment infrastructure. Without it, you are collecting money but not granting access.

User Pays
Payment checkout
Webhook Fires
Stripe → your backend
DB Updated
Subscription active
Access Granted
User sees premium
Topics Covered
WebflowStripeWebhooksApple IAPGoogle Play BillingWeb vs App PricingPayment FlowCross-Platform Auth