
Product · Marketing Technology · 2025
Mahara Labs platform
The marketing platform we run our own business on, before we sell it to anyone.
Challenge
Most multi-tenant products leak eventually, and they leak for the same reason: isolation is a filter the author has to remember to write, hundreds of times, forever. One omission is a cross-tenant disclosure. We wanted a platform where forgetting is not possible, and we wanted to find out what running it in anger actually costs — so we made ourselves the first customer rather than the vendor.
Approach
Enforced tenant scope in a Prisma client extension rather than per query. Forty-two models are registered; a model with a workspace column that is missing from the registry fails a build gate, because that exact omission caused a leak once.
Made the guard prove itself. It checks that a registered model actually has the column, not merely that it exists — a contract test reintroduces the bug and asserts the audit exits non-zero.
Built leads, contacts, segments, tags and a stage-based deal pipeline with stage history, on a shared event log with idempotency keys so a replayed webhook cannot double-write.
Shipped email, SMS, WhatsApp and Telegram campaign surfaces over a common send-job worker, with provider credentials wrapped in AES-256-GCM bound to their own row id so a restored dump cannot silently decrypt elsewhere.
Wrote an audit action for every mutation and a drift audit that fails the build when one is missing. Sixty-five actions are labelled.
Added an attention engine that surfaces what is going wrong — stale leads, failed sends, expiring credentials — with a real dismiss, acknowledge and snooze lifecycle rather than a badge.
Covered it with 153 end-to-end tests against a production build, plus automated accessibility and responsive scans that fail on any critical or serious violation.
Outcome
Running it ourselves found twelve defects that no amount of reading would have: server actions could not resolve their workspace at all, so every operator mutation failed; the audit trail dropped exactly the rows operator actions should have written; campaigns could not be created on any channel. All were shipping. Social publishing, ad management and the SEO module are on the roadmap and are not claimed here.
The stack we used.
- Next.js 16
- React 19
- TypeScript
- Prisma
- Supabase Postgres
- Supabase Auth
- Resend
- Twilio
- Groq
- Playwright
- axe-core
More work.

AskAutoDoctor
A multi-role automotive advisory marketplace at 141K+ lines of production code.

Tezline
An AI phone receptionist that answers a business's line, captures the caller, and notifies the team.

Quote-to-Closeout TMS
A 3PL freight forwarding TMS built on one canonical workflow from inquiry to closeout.
Our own product
We build for clients on the same bench.
The team, the stack and the standards behind this product are the ones your project gets.