ProjectsWork with meWritingAboutSay hi →
ON THIS PAGE01/07
  1. 01The problem
  2. 02Constraints
  3. 03What I shipped
  4. 04The hard parts
  5. 05Result
  6. 06What I'd do differently
  7. 07Takeaway
ON THIS PAGE01/07
  1. 01The problem
  2. 02Constraints
  3. 03What I shipped
  4. 04The hard parts
  5. 05Result
  6. 06What I'd do differently
  7. 07Takeaway
All writing
Membership & Shop — memberships, merch, and donations on PH-native rails
Case study

Membership & Shop — memberships, merch, and donations on PH-native rails

A community needed to grow up fast — memberships, a merch shop, recurring donations. Standard checkout tools don't play nicely in the Philippines, so I built one that does.

eBy eloi·March 25, 2026·4 min read
SHARE
Client
Private — community / non-profit
Role
Design · Full-stack · Payments
Year
2024
Stack
Next.js · PayMongo · Prisma · Cloudflare

The problem

A growing community needed three things at once: paid memberships (with tiered access), a merch shop, and recurring donations. And they needed all of it to work smoothly for Filipino payers — the target audience mostly pays via GCash or e-wallets, not credit cards.

The blocker: the big platforms don't fit here.

  • Patreon / Memberful — support cards well, but not GCash or PH e-wallets directly. Payment friction kills conversion.
  • Shopify — good for the shop, no first-class memberships, and its subscription apps are USD-priced with per-transaction fees that don't make sense at PHP price points.
  • Custom Stripe integration — same GCash gap. Stripe doesn't do GCash in this market.

They needed all three flows in one platform, on PH-native rails, without stitching together three tools.

Constraints

  • Membership approval flow required. Not every payment automatically grants membership — some tiers required admin verification (e.g., verifying the applicant belongs to the community they claim to represent). Approval queue had to be first-class.
  • Recurring donations, not just one-off. Sustaining donors are the backbone. Monthly billing needed to be reliable, retryable on failure, easy to cancel (no dark patterns).
  • PH-native payment rails. GCash, cards, e-wallets — through PayMongo — with webhook signature verification (PH payment providers have less-mature webhook infra, so verification and retries matter).
  • Content platform included. Members expected events, a media library, and a way to publish updates. Not just a paywall.
  • Delivered launch-ready. Own domain, hosting, email, admin training. The community didn't have a technical operator on staff.

What I shipped

  • Role-based membership with tiers (visitor → member → sustaining donor → admin), each with a distinct dashboard view. Admin approval queue for tiers that require verification.
  • Unified checkout for one-off orders (merch, event tickets) and recurring donations.
  • PH-native payments via PayMongo — GCash, cards, GrabPay, Maya, all in one flow. Webhook signatures verified server-side; failed deliveries retried with idempotency keys.
  • Media library, events calendar, and a CMS layer — the community publishes updates, event details, and photo galleries without needing dev involvement.
  • Own domain, hosting, and email handed over ready — DNS on Cloudflare, hosting on Vercel, transactional email via Resend from their own domain.

The hard parts

Membership approval that doesn't feel bureaucratic. Approval queues can become bottlenecks that kill conversion. I designed the flow so the payment happens first, then the tier grant waits for approval. If the applicant isn't approved, the payment gets refunded automatically within 48h. Applicants get progress emails at each step. Feels like an application, not a black hole.

Recurring billing on PH rails. Recurring card charges are still less mature here than in the US or EU. PayMongo supports card tokens, but reliability requires retry-with-backoff on failed charges, grace-period logic (member keeps access for 5 days after a failed charge while retries run), and a self-service update-card flow.

Webhook verification. Payment webhooks arriving from PayMongo need signature verification, idempotency, and retry-friendly processing. Standard Stripe patterns adapted for a less-standard provider.

Result

Members + monthly donations · PH-native rails. The community runs the platform themselves — admin queue, event publishing, media library — without needing dev support day-to-day.

What I'd do differently

Should've added a self-serve tier-upgrade flow earlier. Right now, upgrading from member to sustaining donor requires cancelling and re-subscribing. A proper “upgrade in place” (with proration) would remove a small but real friction point.

Takeaway

The gap between what global platforms support and what your audience actually pays with is the highest-leverage place a Filipino builder can work. The tech isn't harder — it's just less written about, so you're doing integration work that a US developer never has to think about.

NEWER POST

Secure File Vault — end-to-end encrypted drops for a fabrication studio

Case study
OLDER POST

Laundry POS + Ops — 40k+ loads processed across a multi-branch chain

Case study
KEEP READING

You might also like

  • Case studyJun 30, 2026

    Local Business POS — built for Filipino retailers, priced for them too

    Filipino retailers were stuck between global POS tools that don't fit and paper ledgers that don't scale. So I built one that speaks their language — GCash, Maya, BIR receipts.

  • Case studyJul 20, 2026

    Client Portal — one branded hub for an agency drowning in tabs

    Leads in one tool, chats in another, campaigns somewhere else. The agency needed a single branded place that answered "what's actually happening this week?" So I built it.

designed, built & shipped
by one person.
Site
ProjectsWritingWork with meProcessAbout
Where
Philippines
Working worldwide
GMT+8 · async-friendly
Talk
eloi · made with care · © 2026
Privacy·Terms·Sub-processors
Available for new projects