Case Study: Custom Membership Platform for AVSAB

Client: American Veterinary Society of Animal Behavior (AVSAB)

Custom Membership Platform for AVSAB

The Challenge

AVSAB, the professional organization for veterinarians and animal behaviorists dedicated to improving animal welfare through behavioral science, needed a complete membership platform. They needed to manage five distinct membership levels, each with different pricing and benefits, and new applicants had to go through a review and approval process before gaining access.

Members needed the flexibility to pay annually on autopay or with a one-time payment, and to switch between the two. The organization also needed searchable directories so the public could find qualified animal behavior professionals by location, plus automated systems to handle renewals, reminders, and expirations without consuming staff time.

Our Solution

FatLab built a complete custom membership platform from scratch, with no off-the-shelf membership software sitting between AVSAB and their members. The system handles the full membership lifecycle: applicants sign up and pay online, enter a review queue for board approval, and once activated, get access to a self-service dashboard where they can manage their profile, payment method, directory listing, and subscription preferences.

Automated daily processes handle renewals, send reminder emails at 30, 15, and 1 day before expiration, and expire lapsed memberships without staff intervention. Searchable directories with interactive maps help the public find qualified consultants, speakers, and student chapters by location.

What We Built

  • A complete custom membership platform with 5 tiers, online payments, and board approval workflow
  • Searchable member directories with interactive maps for finding animal behavior professionals
  • Automated membership lifecycle handling renewals, reminders, and expirations daily
  • A self-service member dashboard for managing profiles, payments, and directory visibility
  • 7 branded email templates covering the entire member communication journey
  • Sync tools keeping payment records and membership data in agreement automatically
  • 11 web forms covering registration, conferences, speaker applications, and advertising

Project Overview

The American Veterinary Society of Animal Behavior (AVSAB) is the professional organization for veterinarians and animal behaviorists working to improve animal welfare through evidence-based behavioral science. AVSAB serves a specialized community of professionals across multiple disciplines, from board-certified veterinary behaviorists to veterinary technicians and students, all united by a commitment to humane, science-based approaches to animal behavior.

When AVSAB engaged FatLab, they needed more than a website with a membership plugin bolted on. They needed a platform that could handle five distinct membership tiers with different pricing structures and directory eligibility rules, process payments through both recurring subscriptions and one-time annual payments, route new applicants through an administrative approval workflow, power searchable directories with geographic mapping, and automate the day-to-day lifecycle management that keeps a professional society running.

Off-the-shelf solutions like WooCommerce Memberships or MemberPress could handle pieces of this. Still, none could deliver the full picture without heavy customization that would create long-term maintenance problems.

FatLab built the entire membership platform from scratch. The result is a system that AVSAB fully owns and controls: nearly 800 active members managed through a custom plugin, Stripe handling all billing, automated cron jobs managing renewals and expirations, and a self-service dashboard that puts members in control of their own experience.

The Membership Platform

Registration and Approval Flow

New members do not simply sign up and gain instant access. AVSAB's membership requires verification, so the registration process follows a multi-step flow that balances ease of use with administrative oversight. Applicants complete a Gravity Forms registration form that collects their professional credentials, their selected membership tier, and payment information. Stripe processes the initial payment at the time of application, and the applicant is added to a pending review queue visible to AVSAB administrators.

From the admin side, a purpose-built approval interface lets board members review pending applications, verify credentials, and activate memberships with a single action. Upon approval, the system triggers a welcome email, activates the member's account, and grants access to member-only resources and directory listings. This workflow ensures that every AVSAB member has been vetted by the organization while keeping the applicant experience straightforward.

Dual Payment Model

Not every membership organization fits neatly into a single recurring subscription model. AVSAB needed both options: recurring Stripe subscriptions that auto-renew annually, and one-time annual payments for members who prefer to pay each year manually. FatLab built both payment paths into the platform, allowing members to convert between them directly from their dashboard.

This flexibility matters for a professional society where some members prefer set-it-and-forget-it billing. In contrast, others need to route payments through institutional accounts or simply prefer more control. The system tracks both payment types through a unified membership record, so administrators see a consistent view regardless of how a member pays.

Automated Lifecycle Management

A daily cron job handles the routine administrative work that would otherwise consume staff time. The automation covers the full membership lifecycle. Board members receive automatic renewals without any action required; subscription members receive reminders 30 days before renewal; and members approaching expiration receive graduated reminders at 30, 15, and 1 day before their membership lapses. Members who do not renew will automatically expire at the end of their term.

This graduated reminder system keeps members informed without overwhelming them, and the automatic expiration ensures that lapsed members lose access to member-only resources and directory listings without requiring staff intervention.

Technical Implementation

Custom Theme Architecture

The AVSAB theme is built on Bootstrap 5 with an ITCSS-inspired SCSS architecture spanning over 50 source files. The compiled output produces 176KB of CSS and 79KB of JavaScript, optimized for the complex layout requirements of a membership-driven site with directories, dashboards, and public-facing content.

The theme's functions.php follows a modular pattern, weighing in at just 60 lines that load 18 separate include modules. Each module handles a discrete area of functionality, from custom post types to shortcode registration to AJAX endpoint definitions. This approach keeps the codebase navigable and allows updating one area of functionality without risking others.

Navigation uses both a custom ARIA-compliant walker for accessibility and a Bootstrap 5 nav walker for responsive menu behavior, ensuring the site works correctly for assistive technology users while maintaining the dropdown and mobile navigation patterns members expect.

Custom Membership Plugin

The centerpiece of the platform is a dedicated AVSAB Membership Management plugin that provides the administrative backend for managing nearly 800 active members across 5 tiers:

Membership Tier Description
Veterinarian Licensed veterinary professionals
Vet Tech Veterinary technicians and technologists
Affiliate Allied professionals and researchers
Student Chapter Organized student groups at veterinary schools
Individual Student Individual students in veterinary programs

The plugin's admin interface includes an approval workflow for processing new member applications, a statistics dashboard powered by Chart.js that visualizes membership trends, tier distribution, and renewal rates, a searchable member list with filtering by tier, status, and payment type, and a board member management system that tracks leadership positions and handles their automatic renewals.

Six WP-CLI sync utilities provide command-line tools to keep Stripe and WordPress data in sync. Each utility supports a dry-run mode for safe testing before making changes:

Utility Purpose
Sync Subscriptions Pull current subscription status from Stripe into WordPress
Match Subscriptions Link WordPress member records to their corresponding Stripe customers
Check Expired Identify members whose terms have lapsed in Stripe but remain active in WordPress
Check One-Time Verify payment status for members on one-time annual billing
Check Canceled Detect Stripe subscription cancellations not yet reflected in WordPress
Cleanup Legacy Reconcile historical records from before the custom platform was deployed

Stripe Integration

The platform's payment layer is built around a dedicated Stripe integration class spanning 863 lines. This is not a wrapper around a plugin. It is a purpose-built integration that handles the full scope of AVSAB's billing requirements.

Webhook processing handles real-time events from Stripe. Successful payments trigger membership activation or renewal, failed payments trigger notification emails, and subscription cancellations update the member's WordPress record. The integration maintains customer synchronization between Stripe and WordPress, keeping member records consistent across both systems.

Members access their billing through Stripe's Billing Portal, redirected from the AVSAB dashboard, where they can update payment methods, view invoice history, and manage their subscription. The renewal checkout flow handles both subscription renewals and one-time payment conversions. A dedicated student transition workflow manages the process when student members graduate and need to convert to a professional tier with different pricing.

The integration is environment-aware, with separate configuration for development and production Stripe accounts, ensuring that testing never touches live billing data.

Member Directories and Maps

AVSAB operates multiple searchable directories, each serving a different purpose within the veterinary behavior community:

Directory Purpose
Consultant Directory Connect pet owners with qualified animal behavior consultants
Speakers Bureau Help event organizers find qualified presenters on animal behavior topics
Chapter Directory List active student chapters at veterinary schools
Student Directory Connect students with mentors and peers in the field

All directories use AJAX-powered filtering that lets visitors narrow results by location, ABVP board certification status, telehealth availability, and other criteria without page reloads. Results update in real time as filters are applied.

The directories integrate with Google Maps Geocoding to plot member locations on interactive maps with custom markers. The geocoding system uses a multi-fallback approach. It first attempts to geocode a member's full address, then falls back to city and state, then to state alone, ensuring that members appear on the map even with incomplete address data. This layered approach means the map is always populated with useful geographic information rather than showing gaps where address data is imperfect.

Email Notification System

The platform sends 7 branded HTML email templates that cover the entire member communication lifecycle. These are fully designed emails with AVSAB branding, not plain-text notifications:

Template Trigger
Payment Success Successful payment processed through Stripe
Application Received New membership application submitted
Payment Declined Stripe payment attempt fails
Cancellation Confirmation Member cancels their subscription
Welcome Administrator approves a new member application
Renewal Reminder 30 days before subscription renewal date
Expiration Reminders Graduated series at 30, 15, and 1 day before membership expiration

The email system splits into two categories. Transactional emails are triggered by immediate events (payments, applications, cancellations) and lifecycle emails are triggered by the daily cron job (renewal reminders, expiration notices). A development email override routes all messages to a test address during staging, preventing accidental member communication during development.

Plugin Stack

The site runs 24 active plugins, each serving a defined role in the platform:

Category Key Plugins Role
Custom AVSAB Membership Management Member lifecycle, approval workflow, directories, dashboards, WP-CLI sync
Payment Stripe integration (custom) Billing, webhooks, customer sync, billing portal
Content Management ACF Pro (159 fields, 5 field groups) 10 flexible content layouts, member profile fields, directory data
Forms Gravity Forms (11 forms) Membership signup with Stripe, conference registration, speakers bureau applications, contact, support, newsletter, advertiser forms
Authentication Theme My Login Custom login, registration, and password reset pages
Visualization Chart.js Admin statistics dashboard with membership analytics
Maps Google Maps Geocoding Interactive member location maps with custom markers
Email Elastic Email Transactional and lifecycle email delivery
Performance Breeze, Imagify Page caching and image optimization
SEO Yoast SEO Search optimization and metadata management

Security and Infrastructure

The site is hosted on FatLab's managed cloud infrastructure with 2GB of memory allocation, providing the headroom needed for membership processing, directory queries, and Stripe webhook handling. FatLab handles all server-level operations as part of ongoing maintenance, so AVSAB's team stays focused on their members rather than infrastructure.

Breeze handles page caching with Varnish integration, while Imagify optimizes uploaded images to keep page weights manageable across the image-heavy directory listings. Cloudflare Enterprise provides WAF protection, CDN distribution, and DDoS mitigation at the application layer.

Elastic Email handles all outbound email delivery, ensuring that the 7 branded email templates and transactional notifications reach members reliably with proper authentication (SPF, DKIM) to avoid spam filtering.

The membership platform demands a layered security approach. Stripe handles all payment card data, so no card numbers ever touch the WordPress server; webhook signatures are verified before processing; and the WP-CLI sync utilities include dry-run modes that let administrators preview changes before committing them to the database. PCI compliance responsibilities remain with Stripe, while FatLab maintains the server-side security stack that protects member data and application integrity.

Results and Impact

What makes the AVSAB platform notable is what it does not use. There is no WooCommerce installation, no MemberPress license, no third-party membership SaaS sitting between AVSAB and their members. FatLab built the entire membership platform as custom WordPress code that AVSAB owns outright. This means no recurring SaaS fees beyond hosting and Stripe's standard processing rates, no feature limitations imposed by a third-party plugin's roadmap, and no risk of a plugin vendor deprecating functionality on which AVSAB depends.

The platform manages nearly 800 active members across 5 tiers, processes payments through both recurring subscriptions and one-time annual payments, automates the full membership lifecycle through daily cron jobs, powers searchable directories with interactive Google Maps, and handles every communication touchpoint through branded email templates. Six WP-CLI utilities give administrators command-line tools for data reconciliation, and 11 Gravity Forms cover everything from membership signup to conference registration and advertising inquiries.

The custom approach required more upfront development than installing an off-the-shelf plugin. Still, the result is a platform that fits AVSAB's specific operational model rather than forcing the organization to adapt to a plugin vendor's assumptions about how memberships should work. Every feature, from the dual payment model to the student transition workflow to the graduated expiration reminders, exists because AVSAB needed it, not because a plugin vendor decided to include it.

Results

  • nearly 800 active members managed through the custom platform
  • 5 membership tiers with automated Stripe billing and payment flexibility
  • Searchable directories with AJAX filtering and interactive Google Maps
  • Automated lifecycle management reducing administrative workload
  • 11 Gravity Forms handling registration, conferences, applications, and advertising
  • Zero reliance on third-party membership SaaS, and AVSAB owns the entire system