How-to guides
Gate content
What you'll get
Content on your site that requires a login (free or paid) to view. Members sign up with email (magic link, no password). Paid tiers integrate with Stripe — visitors see a checkout, sign up, get access. Access control is enforced server-side — gated pages aren't fetchable without a valid session, not just hidden in HTML.
In the hosted builder
Add a "Pro members only" tier for $10/month. Gate the /pro pages — anyone without a Pro subscription should see a paywall.
You'll connect Stripe (one-time OAuth) if you haven't already. The builder creates the Pro tier, sets up /pro/* as gated, generates the paywall page, and wires the Stripe checkout. Test it from an incognito tab — you'll see the paywall.
For a free members-only area:
Make /downloads only accessible to logged-in members. No paid tier needed.
Result
- Visitors hitting a gated page without a session land on a sign-in / upgrade screen.
- Sign-in is magic-link by default — visitor enters email, gets a link, clicks it, they're in.
- Paid tiers get a Stripe Checkout flow before the magic-link.
- Once a member has access, the gated page renders normally.
- Logged-in state persists across pages on your site.
- Your dashboard shows member list, plan, signup date, and lifetime value.
What "server-side enforcement" means
Anyone can View Source on a public site and read everything in the HTML. SiteShip's gated pages aren't rendered at all for non-members — the request hits the worker, the worker checks the session cookie, and if it's not a valid member it returns the paywall page instead. The gated content never leaves the server. This is why a "JS overlay that hides content" doesn't count as gating — it's still in the HTML.
Under the hood
Membership reference — tier definitions, magic-link flow, Stripe wiring, member dashboard, custom claims, member-only data fetched at render time, paywall customization.