Lightening Tech Evidence, not opinion

Web Development & Engineering

Membership and subscription site

Paid tiers, gated content and recurring billing — built around the cases that actually decide whether the revenue survives month three.

From
$1,200–$7,000
Typical time
3–7 weeks
Usually bought by
Creators, coaches

What this actually solves

There are two people who arrive at this page. The first has knowledge and wants to sell it more than once — a coach, an instructor, somebody who is tired of trading hours for money and wants the same material to earn from a hundred people at once. The second already has a membership running informally, usually in a messaging group, and it has quietly become unmanageable. They are tracking who paid in a spreadsheet, chasing people who did not, removing people manually, and losing an evening a week to admin that produces nothing.

Both of them are buying the same thing — a system that collects money on a schedule without anybody remembering to ask, and opens the right doors to the right people without anybody checking a list.

What makes this different from an ordinary payment page is worth being blunt about. Recurring billing is not a one-off payment repeated. A one-off payment either succeeds or fails and then it is over. A subscription lives for years, and during those years cards expire, banks decline, people upgrade halfway through a month, people cancel and expect to keep access until the period they paid for ends, refunds get requested, and the payment provider sends notifications that occasionally arrive twice or not at all. The subscription part is the hard part, and it is almost entirely invisible in a demo.

What we do, and in what order

  1. Define the tiers and the access rules precisely. What each tier gets, what happens at the boundary between them, and what a former member can still see after cancelling. Alongside that, the billing rules — the cancellation policy, whether downgrades refund or wait, what a free tier can reach, and whether there is a trial. This document is what the build is checked against later, and vague answers here become disputes with members later. Two to three days.
  2. Choose the route honestly, then set up billing. Plugin or custom, decided against the rules above rather than against what makes a bigger invoice. Then products, prices and the subscription objects configured in the billing provider, along with the retry schedule for failed cards and the hosted customer portal for card updates and cancellation. All of it exercised in test mode, where every failure case can be triggered deliberately without real money. Two to four days.
  3. Build authentication and the access layer. Sign-up, login, password reset, and the single place that answers whether this person may see this thing right now. That check belongs in one place rather than sprinkled through templates, and it needs a clear answer for how quickly a cancelled member loses an already-open session. Three to five days.
  4. Handle the billing events properly, including the ugly ones. The webhook endpoint that receives subscription events is written to be idempotent — the same event arriving twice must not grant access twice or send two emails — and it records what it has already processed. Payment succeeded, payment failed, subscription updated, subscription cancelled, refund issued. The database keeps only what it needs and treats the billing provider as the source of truth for the rest, so there are not two versions of who is a paying member. Three to five days.
  5. Gate the content, wire the emails, and build the owner's view. Content locked by tier, video served through a host that issues signed, expiring playback links rather than a hidden URL. Welcome, renewal, card-failed and cancellation emails. Then a panel where the owner can see who is a member, which tier, and what is coming in — because without that they will ask for it in month one anyway. One to two weeks.
  6. Run the failure cases before launch. A card declined at renewal and the full retry sequence played out. A mid-cycle upgrade and the proration checked. A cancellation and access confirmed to end when the policy says it does. A duplicated webhook. Each of these is triggered on purpose in test mode and the outcome verified. Two to three days.

What moves the price

The range is $1,200–$7,000 over 3–7 weeks, and it is driven by three things.

How many tiers and how complex the boundaries. Two tiers with a clean line between them is straightforward. Several tiers, annual and monthly variants, discount codes, trials and grandfathered legacy pricing multiply both the build and the testing, because every combination is a case somebody will eventually be in.

What kind of content sits behind the wall. Written material and downloads are cheap to gate. Video is the expensive one, because it needs a proper host, signed playback, and a decision about how far to go on protection — and it brings a monthly running cost that belongs in your budget from the start rather than as a discovery after launch.

Whether there is a community layer. Discussion, comments, member directories or messaging turn a content site into a social product, with moderation, notifications and abuse handling attached. It is frequently the right thing to add later rather than at launch.

What usually goes wrong

Only the happy path gets built. Somebody pays, gets in, and the demo works beautifully. The trouble starts around month three, when cards begin failing at renewal for entirely ordinary reasons. With no retry sequence and no card-failed email, those members simply stop paying and quietly keep or quietly lose access, and the owner's revenue erodes without a single alarm. It is the most common expensive omission in this service, and it is invisible precisely for as long as the site is new.

Video is treated as protected because the link is hard to guess. An unlisted URL is not access control. The member who receives it can forward it to a group chat of two hundred people in one action, and nothing about the paywall applies to any of them. Protection has to come from short-lived signed links tied to a logged-in session and locked to your domain — and you should be told plainly that no method stops a determined screen recorder, so you can price and plan accordingly.

Webhooks are processed as if they arrive exactly once. Payment providers retry delivery when they do not get a clean acknowledgement, so the same event genuinely does arrive twice. Handled naively, that grants a membership twice, sends two welcome emails, or double-counts revenue in the owner's dashboard. Recording processed event identifiers and making the handler safe to run again is a small piece of work that prevents a category of bug which is otherwise nearly impossible to reproduce on demand.

See where the site stands before you brief anyone.

If the site is already live, start from what it scores rather than from a guess. The audit reports what it checked, what it found, and — the part most tools leave out — what it could not check, and why.

See the website audit Talk about this work

Questions people ask before they commit.

Do I need a custom build or will a WordPress plugin do?
If your tiers are straightforward, your content is written and video, and you are early, a plugin such as MemberPress or Restrict Content Pro is genuinely the better purchase and gets you live far sooner. Custom earns its cost when the access rules are unusual, when membership has to drive something else in your business, when you need a community or app alongside it, or when you have outgrown what a plugin will let you change.
What happens when a member's card fails?
A retry sequence, which is the single most valuable thing in the whole build. The card is retried on a schedule over a set number of days, the member is emailed each time with a link to update it, and access is suspended only at the end of that sequence rather than instantly. Cards fail constantly for boring reasons — expiry, a replacement card, a bank flagging a foreign charge — and most of those members stay if they are given a chance to notice.
Can members upgrade or downgrade mid-month?
Yes, and how the money is adjusted is a decision you make rather than one that happens to you. Upgrading usually charges the difference for the remaining days and starts the higher tier immediately. Downgrading usually takes effect at the next renewal rather than issuing a refund. Whichever you choose, it gets written into the specification and into the member-facing wording, because a proration surprise is one of the fastest ways to lose a paying member.
How is the video actually protected?
Through a proper video host that issues short-lived signed playback links tied to the session, plus domain restriction so the player only works when embedded on your site. That defeats casual sharing, which is almost all of it. It does not defeat somebody screen-recording their own screen, and anyone who tells you their system does is selling you something. The honest goal is making sharing inconvenient enough that paying is easier.
Who deals with cancellations and card changes?
The billing provider's own hosted customer portal, wherever possible. It handles updating a card, viewing invoices, and cancelling, and it stays current with card rules and regional payment regulation without anybody maintaining it. Building those screens yourself means owning that maintenance forever in exchange for slightly nicer styling.
Does this include writing the content?
No. This is the machinery — tiers, access rules, billing, emails, the member area and your admin view. The lessons, videos or resources behind the paywall are yours. What we will do is design the structure so adding to it later does not need a developer, because a membership that requires a support ticket to publish anything stops getting published to.

Often taken together.

Start with the brief, not the invoice.

Send what you are trying to achieve. You get a written scope, a price and a date — or an honest “this is not the right service for that”.

Talk about Membership / subscription site All Web Development & Engineering services