A membership site is a website where paying members unlock content or features behind a login. To build one with AI, describe your tiers, prices and what each tier sees. The builder creates sign-up and login, gated pages, Stripe subscription checkout confirmed by webhooks and an admin area. Payments start once you add your Stripe keys.
- Decide tiers, prices and exactly what each tier unlocks before you prompt. The access rules are the core of the build.
- Members sign up with the site's own accounts, and access is checked on the server, so locked content never reaches a non-member's browser.
- Subscriptions run on your own Stripe account. Payment is confirmed by a verified webhook, never by the success page, and the status is stored on each member's record.
- Host video on a video platform and embed it. Uploads are capped at 25 MB per file and count toward your storage.
- Plan for failed payments and cancellations from day one; Stripe's events tell the site when to warn, retry or remove access.
- A membership must stay online, so run it on a paid WisyLink plan. The free plan is for building and testing the first version.
What a membership site needs
Memberships are often assembled from five tools: a site builder, a membership add-on, a payment processor, an email service and a community app. Each one has its own login, its own fees and its own idea of who is a member. Built as one app, the parts are:
- Public pages
- A sales page, pricing and teasers of the content. These are what search engines and new visitors see.
- Accounts
- Sign-up, login, password reset and a member account page.
- Access rules
- Which tier sees which pages, downloads and features, checked on every request.
- Billing
- Checkout, renewals, plan changes, cancellations and failed payments, through your payment provider.
- Content
- Articles or lessons, downloads, embedded video and, optionally, comments or chat.
- Admin
- A member list with plan and status, manual access grants and a content editor.
WisyLink builds all of these as one app from your description, on its own address with HTTPS. The trade-off is ownership: the access logic is your app's logic, so you test it as carefully as you'd test a checkout.
Choose your model: tiers, monthly vs annual, trials
Keep it to three tiers or fewer; every extra tier is another column in your access rules and another decision for a visitor on the pricing page.
- Free and paid. A free tier with an account and a few lessons works as a lead magnet; paid tiers unlock the rest. Free members are still accounts you store and protect, and they count toward your database.
- Paid only. Simpler to run and explain. Good when your audience already knows you.
- Two paid tiers. Content in the lower tier, access to you in the upper one: live Q&A, feedback, a members' chat.
Can you charge monthly and yearly prices? Yes. In Stripe each tier simply gets two prices, one billed monthly and one yearly, and the site stores which one each member chose. Monthly suits a steady stream of new content; yearly suits a library people work through at their own pace, and a discount for paying upfront improves your cash flow and keeps members for a full year.
Stripe also supports free and discounted trials. If you offer one, decide whether members must enter a card to start it, and what happens at the end. Stripe sends a trial-ending event, three days before by default, which the site can use to send a reminder.
Build it: steps and a prompt template
- Write a one-page access matrix: tiers down the side, content and features across the top, a tick where access is allowed.
- Open a new WisyLink chat and paste the prompt below, edited with your tiers, prices and content.
- When the build finishes, read its final note. It says how to reach the admin area and which Integrations to fill: typically your Stripe keys and webhook signing secret, plus SMTP for emails. Payments and emails stay inactive until you do. Never paste keys into the chat.
- Enter your Stripe test-mode keys first. Integrations shows step-by-step setup instructions, including the webhook address to register in Stripe.
- Run the whole journey with Stripe's test cards: sign up, subscribe, open a locked lesson, switch plans, cancel, and simulate a declined renewal.
- Swap in your live keys, buy your own cheapest tier with a real card, then refund it.
- Move to a paid WisyLink plan before you invite members. Free links last 30 days plus a week marked for deletion, member accounts included.
Build a membership site called The Sourdough School for my online baking courses.
Public: a homepage that sells the membership, a pricing page, and a lesson library where everyone sees each lesson's title and a two-paragraph teaser.
Tiers: Free (account only, first 3 lessons), Baker ($12/month or $120/year: all lessons and PDF recipe cards), Pro Baker ($29/month or $290/year: everything in Baker plus monthly live Q&A pages and a members' chat).
Accounts: email and password sign-up, login, password reset by email, and an account page showing plan, status, renewal date and a "Manage subscription" button that opens the Stripe customer portal.
Payments: Stripe Checkout for subscriptions, confirmed only by a verified Stripe webhook. Store plan, status and current period end on the member. If a payment fails, show a banner asking the member to update their card; remove paid access when the subscription is canceled or unpaid.
Content: lessons are saved records with title, slug, tier, teaser, body and an optional embedded video URL. Recipe cards are private PDF downloads for Baker and above.
Admin: a login-protected area to add and edit lessons, see members by plan and status, and grant free access with an end date.
Email: welcome and payment-failed emails through my SMTP account. Design: warm, editorial, easy to read on phones.
On the free Community plan, one build fills the 5-hour usage window and builds aim for a working first version. A membership is a large app, so build it in stages: accounts, tiers and gated lessons first; payments second; chat and extras last. Paid plans allow fuller builds and shorter waits between them. See AI website builder prompt templates for structuring bigger requests.
Accounts, roles and gated pages
WisyLink sites run their own accounts. Passwords are stored hashed, sessions live in a secure cookie, and roles such as member and admin are part of your app. There's no shared platform login for your visitors; your members belong to your site. Social sign-in with Google or similar providers is possible with your own OAuth credentials under Integrations. Single sign-on for companies isn't something to plan on.
Gating is decided on the server for every request. A non-member opening a Baker lesson gets the teaser and an upgrade prompt; the full text is never in the page they receive. That matters: paywalls that only hide content with styling leave it in the page source for anyone to read. Member pages are also marked so they're never served from a shared cache to someone else.
Two practical notes. First, the admin login: the build's final note tells you how to get in, either with credentials it created or by making the first account registered the admin. In the second case, register yours before you share the link. Second, search engines see what a logged-out visitor sees, so write teasers that stand on their own and are worth ranking.
If each customer should see only their own documents, invoices or project files, rather than a shared library, you're building a portal instead; see how to build a client portal without code.
Stripe subscriptions: webhooks, cancellations, failed payments
Subscriptions run on your own Stripe account; WisyLink never holds your money or your Stripe account. The flow the build sets up:
- A member picks a plan. The site records the attempt with the member's ID and opens Stripe Checkout.
- Stripe takes the payment on its own hosted page.
- Stripe sends a webhook to your site. The site verifies its signature with your signing secret, finds the member and stores the plan, status and renewal date.
- Pages check that stored status. The success page a member lands on after paying proves nothing by itself, because anyone can open that URL.
Stripe's guide to subscription webhooks describes the events to handle. The ones that matter most:
| Event | What happened | What the site does |
|---|---|---|
invoice.paid | A first payment or renewal succeeded | Extends access once the subscription is active |
invoice.payment_failed | A payment was declined | Emails the member and shows an "update your card" banner |
customer.subscription.updated | Plan change, renewal or a status change such as past due | Updates the stored plan and status |
customer.subscription.deleted | The subscription ended | Removes paid access and keeps the free account |
customer.subscription.trial_will_end | A trial ends soon | Sends a reminder |
Cancellations and plan changes. Can members cancel or change plans themselves? Yes: ask for a "Manage subscription" button that opens Stripe's customer portal. It's a Stripe-hosted page you switch on in your Stripe Dashboard, where customers update cards, switch plans, view invoices and cancel, immediately or at the end of the period. Changes there come back to your site as the events above.
Failed payments. When a renewal fails, the subscription becomes past due and Stripe can retry; enable Smart Retries in your Stripe settings. Decide your grace policy in advance. A common policy is to keep access during the retry period with a visible warning, and remove it when Stripe marks the subscription canceled or unpaid, as Stripe's guide recommends.
Refunds and disputes. Decide whether a refund ends access immediately and whether a dispute freezes the account. If you change your domain later, check that the webhook address registered in Stripe still reaches the site.
Selling one-off products alongside memberships works the same way, with one-time Checkout payments; see the online store guide.
Delivering content: articles, downloads and video
| Content type | Where to host it | Why |
|---|---|---|
| Articles and lessons | Saved records in the site's database | Each gets its own page and appears without a rebuild; a record holds up to 256 KB, plenty for long text |
| PDFs, worksheets, templates | Private files in the site's storage | Opened through short-lived links only for members whose tier allows it; up to 25 MB per file, and each download counts toward bandwidth |
| Images inside lessons | Public files, or images you attach to the build | Fast to serve, and reading public files doesn't count toward bandwidth; anyone with the image URL can view it |
| Video courses | A video host that supports private or domain-restricted embeds, embedded in the lesson page | The 25 MB file cap makes video uploads impractical, and video hosts handle streaming quality on every device |
| Audio and podcasts | A podcast host for public episodes; private files for short member-only clips | Same file cap and bandwidth logic as video |
| Live sessions | A meeting link shown only on the right tier's page | The link is part of the gated page, so only that tier sees it |
Storage, database and bandwidth caps depend on your WisyLink plan, and the Resources panel shows how full each one is. Accounts that stay over capacity risk having links suspended, so keep heavy media on the platforms built for it.
Community features: comments and live chat
Community is often why people stay subscribed after they've consumed the content.
- Comments on lessons are saved records tied to the member who wrote them. Ask for posting to be limited to members, a per-member rate limit, and hide and delete buttons for you.
- Live chat uses realtime channels. Private channels require a signed-in member, and the site only grants chat access to tiers that include it. Live messages are momentary, so ask for each message to be saved too, which gives members a scrollback.
- Threads work like a small forum: topics, replies and member profiles. "Community forum" is one of WisyLink's listed use cases.
- Notifications of replies go by email through your SMTP account.
Decide who moderates before you open the doors. A report button feeding an admin queue costs one sentence in your prompt and saves hours later.
Running it: member admin, emails, churn and privacy
- Member admin. Filter members by plan and status, and look someone up by their exact email; there's no free-text search across large member lists. Ask for manual grants with an end date, for scholarships, partners or goodwill gestures.
- Emails. Welcome, password reset and payment-failed emails go through your SMTP account. Stripe can send receipts and invoices itself, so don't duplicate them.
- Churn. The Stripe portal can collect cancellation reasons and offer a coupon to people about to cancel. On your side, store each member's last login, list the members who haven't been back in 30 days, and reach out before they cancel. A background job, which runs every 30 to 60 minutes, can email you a weekly summary.
- Privacy. You're collecting names, emails and payment status, so publish a privacy notice. Running the membership someone paid for and sending marketing emails rest on different legal grounds; the European Commission's overview of legal grounds explains contract and consent. Ask for a separate, unticked box for newsletters and a way for members to delete their account. This is general guidance, not legal advice.
- Costs. Budget for your WisyLink plan, Stripe's fees, a video host and any email service, and compare them with what you'd pay a developer; see how much it costs to build a web app.
To grow the free tier, pair the membership with a lead magnet; a quiz that collects emails works well for courses.
Build your membership site with WisyLink
Write your access matrix, then describe your tiers, prices and content in one message. WisyLink builds the accounts, gated pages, Stripe subscription flow and admin area as one hosted app, and you keep refining it by chat. Test the whole journey in Stripe's test mode before a single member pays.
Start free on the Community plan, no card required, and build your first version. Before you invite members, compare the paid plans: they keep the site live while you're subscribed and allow fuller builds, and your own domain works on any plan.
F.A.Q.
