perfectdesign.

Business systems

Membership management system development

A membership system has one job before all the others: to say who is a member today, on what terms, and what that entitles them to. Everything else follows from getting that answer right.

In short

A membership system keeps three things apart that organisations routinely collapse into one: the membership itself, the person who signs in, and whether the last payment succeeded. Model them separately and renewals, lapses, reinstatements and member-only access all become ordinary workflows with clear rules. Model them together and you get a system where cancelling a card quietly erases a twenty-year member, or where somebody who left last year still walks through the door.

Written for a committee member, association manager or business owner turning a membership process into a system · 7 min read

Three things a membership system must keep apart

Most membership problems trace back to one design shortcut: treating the login, the subscription and the membership as the same object. It feels tidy at the start and it fails in every direction later. A member who pays by bank transfer has no subscription. A household membership has three logins and one membership. A member suspended by the committee still has a perfectly valid password.

  • The membership is the relationship between your organisation and a member. It has a number, a category, a start date, a current period and a status that only your rules may change.
  • The account is a credential a person uses to sign in. It may belong to a member, to a staff administrator, or to somebody whose membership ended last year and whose access should have ended with it.
  • The payment state is what a bank or a gateway last told you. It is evidence towards a decision about membership, and on its own it is not the decision.

Keep them apart and the awkward cases stop being awkward. A failed renewal payment becomes a membership in grace with a task attached, rather than a member deleted by an automated job. A committee suspension becomes a status change with a reason and a date, rather than somebody quietly changing a password.

Membership, account and payment state. Collapse the three and cancelling a card can quietly erase a twenty year member. A full text version follows.

Membership, account and payment state

Editorial framework. Collapse the three and cancelling a card can quietly erase a twenty year member.

Basis: Perfect Design: business systems explained. Reviewed .

Read the graphic as text
  • The membership. A number, a category, a period and a status
  • The account. A credential somebody uses to sign in
  • The payment state. What the gateway last told you, nothing more
Download this infographic (SVG)

What the member record has to hold

The record is the part people underestimate, because the first version always looks like a contact list. What separates a system from a spreadsheet is that it holds the history as well as the present: the category somebody joined under, every period they have held, the tier changes, the suspensions, who approved what and when. Those are the questions that arrive years later, usually from an auditor or a member disputing something.

Membership is also not always one person. Corporate, household, family and life memberships each need a holder and a set of people who inherit entitlement from it, with a rule for what happens when the holder leaves. Decide that early, because retrofitting a one-to-many relationship onto a record built for individuals is one of the more expensive corrections.

Members and logins are not the same thing

Approving a membership and granting an account are two steps, and the rule connecting them belongs to your organisation rather than to the software. Usually an approved membership entitles somebody to an account, access is granted against a verified email, and access can be revoked without touching the membership record. That separation is what lets you suspend access during a dispute, give a company secretary a login without making them a member, or keep a lapsed member's history intact while their access stops.

The messy cases are worth naming during scoping: two records for the same person, a shared inbox used as a login, a member who changes employer and expects their membership to follow, and accounts nobody can match to a current membership. Every one of those needs a decision and a reconciliation queue. Accounts and portals covers the sign-in layer underneath. How staff permissions are modelled is a separate topic again, and worth treating as one.

Tiers, entitlements and effective dates

A tier is a named set of terms: what it costs, what it includes, who may hold it. An entitlement is what a specific member has right now, for a period with a start and an end. Keeping the two separate means you can change next year's tier without rewriting what somebody is owed this year, and you can answer the only question that matters at the door, which is what this member is entitled to today.

The table below walks the lifecycle for a fictional club with an annual membership and separate portal accounts. The roles, policies and responses are assumptions used for illustration, and the last column describes evidence to collect at acceptance rather than tests anybody has passed.

Worked member lifecycle for a fictional club with annual membership
Workflow stepAssumed actorProposed system responseExceptionAcceptance evidence to collect
Approve an applicationMembership coordinatorCreate the membership status and the agreed entitlement once the decision is recordedA portal login on its own does not prove that a membership was ever approvedApplication, decision and entitlement records for each approval route
Renew membershipMember and billing ownerReconcile the renewal event with the next entitlement periodAn unpaid or disputed renewal follows the agreed grace policy rather than stopping access immediatelyBilling-status and membership-period tests across success, failure and late payment
Cancel membershipMembership coordinatorEnd the entitlement on the agreed policy date while retaining the permitted recordsShared or unmatched accounts need reconciling before access is removedStatus-transition and access-revocation observations, including the retained history

Notice what the middle column does not say. It does not say the member was let in because a payment succeeded. Payment status, membership period, entitlement and account access are four separate facts, reconciled according to rules your organisation agrees, and the system should be able to show all four for any member on any date.

What Malaysians actually carry. There are roughly five e-money accounts and two debit cards for every credit card in the country. A checkout designed around credit cards is designed around the smallest group. A full text version follows.

What Malaysians actually carry

Published statistic. There are roughly five e-money accounts and two debit cards for every credit card in the country. A checkout designed around credit cards is designed around the smallest group.

Source: Bank Negara Malaysia: Payment Statistics, Table T2.2 Cards and Users, end-2025. Reviewed .

Read the graphic as text
  • E-money accounts: 188m. Wallets, card and network based
  • Debit cards: 55m.
  • Credit cards: 12m.

Chart scale: In circulation at the end of 2025, in millions.

Download this infographic (SVG)

Renewal, lapsing and coming back

Renewal is a sequence rather than an event: a period approaches its end, a reminder goes out, a payment is attempted or a transfer arrives, the period is extended, the entitlement follows, and somebody is told. Each of those steps can fail independently. A renewal paid by cheque that nobody has banked, a card that fails on the third retry, a member who renews into a tier that no longer exists: these are normal, and a system that only models success will hand them all to a human anyway.

Lapsing and cancelling are different decisions and should look different in the record. A lapse is the passage of time with no renewal, usually after a grace period you set. A cancellation is somebody choosing to end the membership, with an effective date that may not be today. Reinstatement is the third rule people forget: when a lapsed member returns, do they rejoin at their old number with their history and joining date intact, or start again? Both are defensible. Only one can be true in the code.

Five states a membership moves through. Decide once whether a returning member keeps their history, because only one answer can be true in code. A full text version follows.

Five states a membership moves through

Editorial framework. Decide once whether a returning member keeps their history, because only one answer can be true in code.

Basis: Stripe: Subscriptions overview. Reviewed .

Read the graphic as text
  • Active. A current period with an entitlement behind it
  • In grace. Renewal unpaid, access under your own rule
  • Lapsed. Time passed and no renewal was recorded
  • Cancelled. Somebody chose to end it, from a stated date
  • Reinstated. Back again, with the old number or a new one
Download this infographic (SVG)

Member-only access

Whatever membership entitles people to has to be enforced at the moment of use, and checked against the entitlement rather than against a label on the account. That applies to a members-only rate at checkout, a document library, an event booking, a directory listing or a physical door code. The check is the same question each time: does this person hold an active entitlement covering this thing, today?

Two practical notes. First, decide what a lapsed member keeps: usually their own records and receipts, rarely the benefits. Second, member pricing needs a rule for what happens when membership ends between booking and attending. Where benefits are bought or booked, the money side belongs with payment and checkout, which should read entitlement rather than duplicate it.

Records that survive a committee change

Associations and clubs change officers, often every year or two, and the outgoing treasurer takes their spreadsheet knowledge with them. The system is what remains, so it has to be readable by somebody who arrives with no history: statuses in plain language, a visible audit trail of who approved, renewed, suspended or cancelled what and why, and reports that answer the standing questions without anybody building them again. Current members by tier, periods expiring soon, failed renewals, unmatched accounts and open exceptions cover most of what a new committee asks for.

The e-Invoice mandate is already fully live. Every phase has passed. If a system issues invoices, e-Invoice is not an upcoming project, it is a current obligation with a turnover threshold attached. A full text version follows.

The e-Invoice mandate is already fully live

Published statistic. Every phase has passed. If a system issues invoices, e-Invoice is not an upcoming project, it is a current obligation with a turnover threshold attached.

Source: Inland Revenue Board of Malaysia: e-Invoice implementation timeline. Reviewed .

Read the graphic as text
  • Above RM100 million. Mandatory since 1 August 2024
  • RM25 million to RM100 million. Mandatory since 1 January 2025
  • RM5 million to RM25 million. Mandatory since 1 July 2025
  • Up to RM5 million. Mandatory since 1 January 2026
  • Under RM3 million. Exempt, unless the company belongs to a larger group
Download this infographic (SVG)

What to bring to a scoping conversation

Bring your current member list and its condition, your categories and what each one includes, how people join and who approves them, your renewal and grace rules, what happens on lapse and reinstatement, what membership unlocks, who administers it, and the reports your committee actually reads. That is enough to size the work honestly and to say whether a product would serve you better than a build. If you would rather start from the current process, talk it through with us.

What you get

What is actually delivered

01

Member record and history

Identity, membership number, category, join date, current and past periods, status changes and who approved them, held as history rather than overwritten.

02

Tier and entitlement model

Tiers defined separately from what a given member holds today, with effective dates, so changing next year does not rewrite this year.

03

Joining and approval workflow

Application, review, decision and the record of it, including the routes that skip the form because somebody joined at an event.

04

Renewal, grace and reinstatement

Reminders, renewal attempts, your grace policy, lapse handling and an agreed rule for what a returning member keeps.

05

Member-only access

Entitlement checked at the point of use for content, rates, bookings or listings, with account access separable from membership status.

06

Administration console

The coordinator view: search, approve, amend, suspend, reinstate and reconcile, with an audit trail. See admin dashboards.

07

Reporting and exports

Members by tier, periods expiring, failed renewals, unmatched accounts and open exceptions, with a full export you can take elsewhere.

08

Handover

Code, database and accounts in your name, with the membership rules documented so the next committee can read them.

How it runs

Agree the rules, then build the lifecycle

Membership projects are decided by policy rather than by screens, so the lifecycle and its exceptions go in writing before anything is built.

  1. 01

    Map the membership as it runs today

    Categories, how people join, who decides, how renewals are chased, and the cases that always end up handled by hand.

  2. 02

    Write the lifecycle rules

    Statuses and their transitions, grace periods, lapse, cancellation dates, reinstatement, and what each tier entitles a member to.

  3. 03

    Prototype the awkward cases

    A working version on a live link where a failed renewal, a suspended member and a returning member can be walked through before the build is committed.

  4. 04

    Build and connect

    The approved scope, with renewal payments and any CRM or accounting connection whose access and terms are confirmed.

  5. 05

    Migrate the existing members

    The current list cleaned, duplicates resolved and historical periods loaded, with a reconciliation you can check before going live.

  6. 06

    Hand over and support

    Accounts and code to you, the rules documented for the next committee, and ongoing care if you would rather we kept running it.

Proof

Work you can click through

VITALE is a Perfect Design concept prototype, not client work. It is shown here because it demonstrates the mechanics this page describes: a tier ladder with qualification rules, a member-facing workspace, an itemised statement and a re-runnable back-office process, built as one working platform.

Concept prototypes are labelled as prototypes everywhere they appear. They demonstrate what we can build, not work delivered for that named client. More client work is going live and will be added as it does.

How we work

The parts people ask about before they commit

How we build

React first, other languages when a project needs them

We build in React by preference, on both web and mobile, and we work in other languages when a project genuinely calls for it.

Timeline

Project dependent, and often quicker than expected

Timelines are project dependent. A focused build can go live in about a week, while a larger platform takes longer once scope is agreed.

Ongoing care

Quoted with the project, not bolted on

For a more complex website or a system with a real backend, ongoing care starts from RM 250 a month, with the plan confirmed against what was actually launched. Care is quoted with the project, not bolted on afterwards.

Getting hold of us

Normally under one working day

We normally respond to a support request in under one working day, and we work to solve problems as fast as we can. That is how we normally work rather than a contractual guarantee, and responding is not the same as resolving. If your operation needs a formal response or resolution commitment, we can write one into your scope.

Ownership

Everything belongs to your business

You own everything we build for you: the code, the content, the domain, the hosting account and every third-party account opened for the project. There is no lock-in. If you move to another provider, everything goes with you and we help with the handover.

  • Source code, handed over in your own repository
  • Domain and DNS, registered to your business
  • Hosting and every service account, in your name
  • Analytics, search and ad accounts, with us as a manager you can remove
  • All content, media and data in the system

Questions

Asked about membership systems

Straight answers to what people ask before they commit. Anything else, message us.

What does a membership system cost?

Website packages are published openly on the pricing page, but a membership system is quoted against its scope rather than sold as a package. The figure moves with how many categories and entitlement rules you have, whether renewals are collected online, how much member history has to be migrated, and how much of the work is the administration side.

Can members join and renew online?

Yes, and it is usually where the time saving is. Online joining needs a decision about what is automatic and what a coordinator still approves, and online renewal needs your grace and failure rules agreed first. We also keep a manual route, because there will always be a member who pays by transfer at an event.

Can you import our existing member list?

Usually, and the honest part of that answer is the condition of the data. Duplicates, missing join dates, people recorded under two email addresses and periods nobody can reconstruct are all normal. We inventory the list first, agree what is authoritative, and give you a reconciliation to check before the system goes live rather than after.

What happens to a member who lapses and rejoins?

That is your rule to set and it is worth setting deliberately. The two common answers are reinstatement, where they keep their number, joining date and history, and rejoining as new. Some organisations also charge differently for each. Whichever you choose, the record should show both the gap and the decision, because somebody will ask about seniority later.

Can different tiers see different things?

Yes. Entitlement is checked at the point of use, so a rate, a document, an event or a listing can each be restricted to the tiers that include it. The design work is in deciding what a lapsed or suspended member retains, since the usual answer is their own records but none of the benefits.

Can our committee administer it without a developer?

That is the intent. Approvals, amendments, suspensions, reinstatements and reports are ordinary screens with an audit trail behind them, and tiers and periods are data rather than code wherever that is sensible. What we would not do is make every rule editable, because a rule somebody can change by accident is a rule you will spend a weekend reconstructing.

How long does it take?

Timelines are project dependent. A focused build can go live in about a week, while a larger platform takes longer once scope is agreed. For membership work the pacing item is normally agreeing the lifecycle rules and cleaning the existing list, not building the screens.

Where to go next

Tell us what you need built

We will show you the closest thing we have already built, then scope the real version against your requirements.