A full-stack SaaS CRM built from scratch — multi-tenant architecture, Stripe subscription billing, team invitations via email, client management, follow-up tracking, document storage, and a complete marketing site. Built entirely on WordPress and PHP.
The brief for Gather360 came from a simple observation: most CRM software is either too expensive, too complicated, or both. The big players charge per seat, bury features in enterprise tiers, and take weeks to onboard. Small businesses end up managing clients in spreadsheets because nothing else fits.
We set out to build something different — a clean, fast, multi-tenant CRM that a small business owner could sign up for, invite their team, and be using in under ten minutes. One fixed monthly price, unlimited users, no per-seat fees, no unnecessary complexity.
The product needed to be built as a proper SaaS platform — meaning subscription billing via Stripe, a 14-day free trial, secure multi-tenant data isolation, and a clean front-end application that felt nothing like a WordPress site. Alongside the app itself, we also needed a full marketing site to sell it — homepage, features, pricing, and about pages — all SEO-optimised and structured for Google from day one.
Full client profiles with activity timelines, last touched indicators, custom tags, and archive/restore.
Multiple contacts per client with role, phone, email, and full note history linked to each individual.
Tasks assigned to team members with due dates, priorities, and client/contact links — nothing falls through.
Timestamped notes on every client, plus document storage via the WordPress Media Library — all linked and searchable.
Role-based access for multiple users, email-based invite system, and team dashboard visibility per account.
Invite by email, set a password on a clean front-end page, in the team immediately — no WP admin required.
Every account is fully isolated. No tenant can ever see another's data — enforced at every database query.
Stripe Checkout for sign-up, webhook-driven activation, Customer Portal for billing management, and 14-day free trial.
The entire Gather360 app is built as a set of custom WordPress page templates — no plugin framework, no page builders. The app shell handles routing via querystring (?view=dashboard|clients|client&id=X|team|billing|settings|search), with all data operations handled through AJAX endpoints. Every database query is scoped to the logged-in user's account ID, enforcing complete tenant isolation at the data layer. The UI feels like a native web app — because it is one.
When a new user completes registration, they are redirected to a Stripe Checkout Session created server-side via the official Stripe PHP SDK. Stripe handles the entire payment UI and card storage — we never touch card data. Once payment is confirmed, a Stripe webhook fires to our dedicated endpoint, activates the account, and sets the subscription status in the database. The in-app billing page connects to the Stripe Customer Portal for invoice history and plan management. Test and live keys are managed through a custom WP Admin settings page — no hardcoded credentials.
Rather than requiring invitees to already have a WordPress account, the invitation system creates a pending invite with a unique token, sends a branded email with a secure link, and when the invitee clicks it they land on a clean front-end page to set their name and password. They are immediately added to the account and logged in — no WP admin, no back-and-forth. Account owners can see pending invites in the team dashboard with the ability to resend or cancel at any time.
Alongside the app, we built a full marketing site — homepage with live dashboard screenshots, feature showcase, pricing page, and about page. Every page was built with SoftwareApplication schema telling Google exactly what Gather360 is and what it costs, plus FAQPage schema, BreadcrumbList schema, and on-page SEO throughout. Google Search Console verified on launch day with sitemap submitted and key pages indexed immediately.
The platform launched with a clean transition from Stripe test mode to live mode via the WP Admin Stripe settings page — no code changes required. Webhook endpoints were verified in the Stripe dashboard, the 14-day trial flow was tested end-to-end, and the platform went live with active subscriptions from day one. Ongoing support continues as the product grows.
Custom SaaS CRM Development Case Study: This case study details how Mako Digital designed and built Gather360 — a full-stack multi-tenant SaaS CRM for UK small businesses. The project included a complete custom web application built on WordPress and PHP, featuring multi-tenant architecture with full data isolation, Stripe Checkout subscription billing with webhook activation, an email-based team invitation system, client management, contact directories, follow-up tracking, notes, document storage, and a reporting dashboard.
The project also included a full marketing site with homepage, features, pricing, and about pages — all built with SoftwareApplication schema markup, on-page SEO, Google Search Console setup, and sitemap submission. Gather360 is live at gather360.co.uk with a 14-day free trial and a single flat monthly price — unlimited users, no per-seat fees. If you have a SaaS idea or need a custom web application built for your business, this is the kind of project we do.
From SaaS platforms to custom business tools — if you can describe it, we can build it.