addedPIXELS addedPIXELS since '14
← back to work
Case 03 SaaS & marketing site Masonic Tracker Ongoing, since 2025

Multi-tenant SaaS,
built for
Freemasonry.

Two codebases, one product. The platform itself runs lodges, chapters, provinces, ranks, appointments, events, calendar sync, charity tracking and Stripe billing. Alongside it, the public marketing site sells the thing. Built ground-up for a vertical that didn't have a product. Whatever a subscription does, your data stays yours.

Masonic Tracker
2 codebases
platform + marketing
35
database tables
258
commits in 7 months
100%
surplus to charity
where we started

Freemasonry didn't have a product built for it.

Freemasonry has a structure most software pretends doesn't exist. Lodges, chapters, provinces, ranks, appointments. Each with their own conventions. People hold ranks, take appointments, attend each other's meetings, log charity work, and care a great deal about who can see which bit of any of that.

The off-the-shelf alternatives were a tangle of paper diaries, generic calendars, half-fitting CRMs, and forum threads. Nothing modelled the domain. Nothing handled the privacy properly. Nothing returned the surplus to the Masonic Charitable Foundation.

The brief was to build the product that should have existed. A SaaS people would actually subscribe to, with the domain modelled properly, with charity as a first-class concept, and with a public site that explains it without sounding like an enterprise vendor.

what we built

One platform. Nine jobs, properly.

Multi-tenant workspaces

Path-based and subdomain tenancy. Per-province, per-lodge isolation with seamless workspace switching for members in more than one.

  • Path tenancy
  • Subdomain support
  • Workspace switching

Domain model

The actual structure of Freemasonry, modelled properly. Lodges, chapters, provinces, ranks, appointments, provincial officers.

  • Lodges & chapters
  • Provinces
  • Ranks & appointments
  • Provincial officers

Events & visits

Calendar entities with proper privacy modes. Members can log visits, plan appointments, and run meetings without leaking detail to the wrong audience.

  • Events
  • Visits
  • Meetings
  • Privacy modes

Calendar sync

iCal feeds with per-visibility tokens. Each member's diary appears in their own calendar app, with the right things hidden from the wrong audiences.

  • iCal feeds
  • Per-visibility tokens
  • Reminder prefs
£

Subscription billing

Stripe-driven monthly and annual billing. Trial periods, cancellation flows, payment-method management, annual savings, all reconciled to the member.

  • Stripe subs
  • Trials
  • Annual savings
  • Cancellations

Your data stays yours

If a subscription lapses, nothing disappears. The workspace stays in place, fully readable, members and history intact. Resume any time and write access turns straight back on.

  • Read-only on lapse
  • Full history preserved
  • Members & data intact
  • Resume any time

Charity tracking

Charitable transactions are a first-class concept. Members log donations, the platform tracks the surplus, the surplus goes to the Masonic Charitable Foundation. Public-facing transparency reporting.

  • Charitable transactions
  • Gift Aid
  • MCF reporting
  • Surplus tracked

Checklists & reminders

Custom checklist templates per workspace. Items, deadlines, reminders driven by scheduled jobs so things actually happen on time.

  • Custom templates
  • Reminders
  • Scheduled jobs

Communications

Queued email with templated HTML and plain-text variants. Slack webhooks for ops. SMTP integration. All async, all retried, all logged.

  • Queued email
  • Slack webhooks
  • SMTP
  • Async retries

Security & auth

Two-factor auth with backup codes. Role-based access control. Audit logging on sensitive paths. Soft deletes for compliance. Granular visibility per entity. Built to current industry discipline throughout.

  • 2FA + backup codes
  • RBAC
  • Audit logs
  • Soft deletes
  • Granular visibility
the second codebase

A public site that sells the thing properly.

The platform needed somewhere to land. So the second codebase is the marketing site, sat alongside the SaaS in production, doing the job of explaining the product to a Masonic audience without sounding like a vendor.

Lightweight. Fast. Accessible. No tracking by default. The charity-first promise is on the homepage, the price (£2.50 a month, or £25 a year, with a 30-day trial that doesn't ask for a card) is on the pricing page, and the FAQ answers the actual questions members ask.

by the numbers

What "two codebases" actually looks like.

258
commits in 7 months
Active build, ongoing iteration. Not a "delivered and forgotten" project.
35
database tables
Members, lodges, chapters, provinces, ranks, events, charity transactions.
221
PHP files
Routes, classes, helpers, controllers. Across the platform application.
8
background jobs
Trial expiries, subscription syncs, email queue, Slack notifications, reminders.
9
marketing pages
Home, features, pricing, transparency, about, FAQ, contact, legal.
2
codebases shipped
The SaaS itself and its public site. Both in active production.
£2.50
per month, or £25 annually
30-day trial. No card up front. Charity-first pricing.
100%
surplus to MCF
Every penny of surplus revenue goes to the Masonic Charitable Foundation.
how it's built

The stack, briefly.

// application

Backend

  • PHP 8.2 application
  • MariaDB
  • Redis caching & sessions
  • Stripe SDK
  • Cron-driven jobs
// frontend

Platform UI

  • Bootstrap 5 + custom CSS
  • System dark mode
  • Apple-inspired UI patterns
  • Mobile-first member portal
  • Print-friendly reports
// marketing site

Public site

  • Alpine Linux container
  • Nginx + PHP-FPM
  • Supervisord
  • Gzip, caching, lazy loading
  • WCAG 2.1 AA
// integrations

Services

  • Stripe (subs, trials, payment methods)
  • Slack webhooks for ops
  • iCal feeds, tokenised
  • SMTP / Mailhog
// security

Security

  • 2FA with backup codes
  • Role-based access control
  • Audit logs on sensitive paths
  • Soft deletes for compliance
  • Granular per-entity visibility
// hosting

Operations

  • Docker Compose
  • Cron sidecars
  • Redis-backed sessions
  • PHP-FPM behind Nginx
  • Two services in production
the bit that matters

A product that didn't exist, now does.

This isn't a website. It isn't a CMS. It isn't a Stripe wrapper. It's a vertical SaaS shipped in seven months, with two codebases in production, a working subscription business model, and a charity-first commercial promise.

  • Domain-aware product
  • Subscription business model
  • Charity-first pricing
  • Privacy that respects the vertical
  • Two codebases, both shipped
  • Active feature iteration
  • Marketing site converting
  • Surplus going to the MCF

If you've got a niche, an audience that's been quietly underserved, and an idea for the product nobody's built yet, this is the kind of build we like most.

Got a niche product idea? Tell us → See another case study
Got a niche product idea?

Drop us a line.

If you've got a vertical that's been quietly underserved and an idea for the product nobody's built yet, we'd love to hear about it. No funnel.

[email protected]

Reach us

Other places