← All work
Product Engineering·2025·Subme·Built for a client

Tiered subscriptions built for creators, not enterprises

hooks/useMembershipTier.tsLive
1"use client"
2
3function useMembershipTier(): MembershipLevel | null {
4 const router = useRouter();
5 const hasBackstageContent = useSchematicFlag("back-stage-content");
6 const hasCrewContent = useSchematicFlag("crew-member-content");
7 const hasVipContent = useSchematicFlag("vip-access-content");
8
9 useEffect(() => {
10 // Listen for plan-changed events and refresh access
11 const handlePlanChange = (event: PlanChangedEvent) => {
12 router.refresh()
13 }
14 window.addEventListener("plan-changed", handlePlanChange as EventListener);
15 return () => {
16 window.removeEventListener("plan-changed", handlePlanChange as EventListener);
17 }
18 }, [router]);
19
20 if (hasVipContent) return 3;
21 if (hasCrewContent) return 2;
22 if (hasBackstageContent) return 1;
23 return null;
24}
3access tiers, live earnings

Creators run tiered, paid subscriptions with a live earnings dashboard — no enterprise platform overhead.

The problem

Independent creators wanted tiered paid content (VIP, Crew, Backstage) without adopting an enterprise membership platform built for someone else's business model.

Our approach

We built a creator subscription platform with Stripe-powered recurring billing, tier-based content visibility and commenting logic, and a real-time dashboard showing live earnings.

Behind the build

Building subscription tiers required careful permission management because every piece of content depended on the user's membership level. The most satisfying part was watching upgrades instantly unlock content without requiring users to log in again or refresh manually.

— North Foundry, on building this

Built with

Next.jsClerkSanityStripe

Next project

A full-service Amazon growth agency's site, built to book calls

→