OIDC SSO

SAML

SCIM Sync

Group Mapping

Audit Export

Delegated Admin

Evidence Pack

Say yes to the security questionnaire.

Single sign-on, directory sync, an audit trail they can pull into their own SIEM, and a portal so their IT admin stops emailing you. These are the controls procurement often requires before a larger customer can buy, built on everything in Professional. Coming soon.

60 modules and 173 implementation recipes. Every module runs on a clean clone with no vendor keys.

Coming Soon

One payment. Lifetime updates. Unlimited projects. Prices in AUD.

The same foundation runs UnitBuddy, a live Australian SaaS. unitbuddy.com.au

zero vendor keys realtime out of the box type-safe end to end npm run verify

What SaaSZero Enterprise gives you.

Professional plus SSO, SCIM, audit exports, and delegated administration. Coming soon.

Self-service SSO for the customer’s IT team

OIDC and SAML, with domain ownership proved by DNS TXT or a well-known URL and no third-party service in the loop. A domain can only ever be claimed by one organization, and that collision is refused at configuration time rather than at sign-in.

SSO registration hardened against SSRF

Staging a connection and fetching the discovery document are two separate steps. A discovery URL off the issuer origin is refused, and so is a document pointing its endpoints at a different host.

SAML defaults set to refuse, not accept

SHA-1 signatures rejected, unsigned timestamps rejected, IdP-initiated sign-in off, consumed assertion IDs remembered for 15 minutes, RSA keys under 2048 bits refused. Certificates rotate through pending, active and retired with several live at once, so a rotation costs no downtime.

SCIM users and groups, including a custom Groups endpoint

Better Auth brings /Users. The Groups endpoint did not exist, so the pack implements it: POST, GET, PUT, PATCH, DELETE and List with proper ListResponse, including the member-remove filter form that Entra ID and Okta actually send.

Directory groups that cannot escalate

A group can never create a membership, never change an owner, and when no mapped group remains a person falls back to member rather than silently losing access. Two mapped groups resolve to the higher role.

Reconciliation that exposes silent sync failures

Four lists: people in a directory group with no membership here, members no group claims, groups with no mapping, and sync events that changed nothing, naming the attribute that was dropped.

An audit trail the application cannot edit or delete

No code path edits or deletes an audit row. A correction is a new row referencing the original, within 30 days, and both appear in an export. Truncation is never silent: over 100,000 rows the run and the file both say so.

Exports they can schedule into their own SIEM

Daily, weekly or monthly, delivered as a signed HMAC-SHA256 POST to a target in their own organization, with three attempts before the schedule stops and alerts. Every file carries a SHA-256 checksum you can re-verify against storage.

Delegated admin, scoped from the resource

Their admin changes roles and reads their own audit trail without ever touching another tenant. Member changes need password re-authentication inside a 15 minute window, and the last owner cannot be removed or demoted, including by themselves.

A security questionnaire head start

14 seeded documents: 8 answered questions covering authentication, authorization, audit immutability, data location, encryption and subprocessors, plus 6 policy templates. Templates are labelled as templates in three places and the server re-adds the label if it is stripped.

What you get

This is the app you clone.

Not a landing page with a login button bolted on. A working multi-tenant product with a dashboard, a control plane, and every module reachable from the nav.

Projects and tasks
Realtime projects and tasks, scoped to the active organization, with search and limits already applied.
Platform admin control plane
Platform totals, global kill switches and rollout flags, behind a password step-up.
Module catalog with live demos
Every module says what it ships, with a live demo you can run against your own deployment.

Authentication

Passwords, passkeys, MFA, OTP, OAuth, and session management—already wired

Better Auth handles credentials, sessions, MFA, and passkeys. SaaSZero adds the bridge that hands the verified session to your Convex functions, so an authenticated query works on the first run. Each method is its own page and component, so you can delete the ones you do not want.

Email and password

Sign up, sign in, reset, and verify, with a password step-up for sensitive writes.

Passkeys

WebAuthn registration, listing, and deletion. Sign in with face or fingerprint.

Two-factor (MFA)

TOTP authenticator enrollment plus backup codes, with a dedicated challenge route.

Magic link

One-click email sign-in that runs through the same transactional email queue.

Email OTP

Short-lived numeric sign-in codes delivered by email.

Phone OTP

SMS verification codes, gated behind an environment flag.

Social OAuth

Google and GitHub out of the box, plus a generic provider for any custom IdP.

Google One Tap

Returning users sign in from Google’s One Tap prompt when it is enabled.

Multi-session

Several accounts signed in at once, with per-device session management.

Anonymous sessions

Let people try the product as a guest, then upgrade the session on sign-up.

Username

Optional handles alongside email identity.

Last login method

Remember how someone signed in last time and hint it on the form.

Sign in with Ethereum

Wallet-based sign-in via SIWE for crypto-native products.

Admin plugin

List, promote, ban, and impersonate users from the platform admin.

Account security

Recovery flows, active session review, and connected account management.

Recipe

Firebase bridge

Keep Firebase as the identity source and exchange it for a Better Auth session.

Recipe

Referral codes

Invite, attribute, and reward. Built on top of the invitation flow.

Multi tenancy

Tenant isolation enforced in every public function

Better Auth owns organizations, members, and invitations. SaaSZero owns the resources keyed by organizationId. There are no duplicate tenancy tables to drift apart. Every public function validates its arguments, authenticates the caller, then authorizes a typed permission against the stored key, never the one the browser sent.

Organizations and teams

Personal and team organizations, with an active organization per session.

Roles and permissions

Owner, admin, and member out of the box, with typed permissions you can extend.

Invitations

Invite by email, accept through a dedicated route, and manage pending invites.

Audit trail

Every panel mutation is recorded and searchable behind a password step-up.

API keys

Scoped programmatic access for your customers' own integrations.

Outbound webhooks

HMAC-signed delivery with retries, so customers can react to your events.

Tenancy test suite

convex-test cases that assert cross-organization reads and writes are refused.

Platform admin

Overview, user projection, audit explorer, and integration labs.

Feature overrides

Flip a capability for one organization without shipping a deploy.

included, not an upsell

Enterprise includes everything in SaaSZero Professional.

This pack is not a separate product. It is the full Professional kit with the enterprise features added on top: identity, tenancy, billing, usage metering, AI with tenant-scoped RAG, automations, notifications, search, admin and the operations consoles.

See everything in Professional

All 60 modules

60 modules, wired into the running app.

Nothing here is a placeholder or a TODO. Every module below is wired, tested, and reachable from the running app. Filter by the library it ships from.

Organization overview

Home dashboard

The signed-in home screen. Live activity, organization health and pending work for the current tenant, updating in realtime as teammates act.

Projects & tasks

Your team’s work

The reference product domain: projects and tasks scoped to an organization, with roles, plan limits, search, attachments and an audit history. Copy this pattern for your own resources.

Component labs

Prove integrations live

Executable documentation. One-click smoke tests prove feature access, workflows, analytics, errors and email against your own deployment, using debug adapters until real keys are set.

Settings & members

Account & team

Profile, organization switching, invitations, role changes, ownership transfer and sign-in security, in one settings surface every tenant gets.

Sign-in & identity

How people access your product

Every way into your product: email and password, MFA, passkeys, magic links, one-time codes, social login and multi-device sessions, all under Better Auth.

Organizations

Multi-tenant teams

The multi-tenant spine. Personal and team organizations with members, invitations and roles; every product row is keyed to its organization so tenants cannot see each other.

Two-factor (MFA)

TOTP + backup codes

Authenticator-app enrollment with a verification challenge after password sign-in, plus backup codes for when the phone is gone.

Passkeys

WebAuthn

Register, list and delete passkeys, then sign in with a fingerprint or face instead of a password. Standard WebAuthn, no extra service.

Magic link

Passwordless email

One-click sign-in links sent by email. Delivery runs through the same transactional email queue as the rest of the product, previewable locally.

Email OTP

Sign-in codes

Six-digit sign-in codes by email, for people who prefer a code to a link.

Phone OTP

SMS codes

SMS verification codes behind an environment flag, with codes logged locally so the flow is testable before an SMS provider exists.

Social OAuth

Google & GitHub

Google and GitHub sign-in that switch on when provider secrets are set, with the matching buttons appearing on the sign-in form.

Username

Optional handle

Optional public handles alongside email identity, for products where people are seen by name.

Anonymous

Guest sessions

Guest sessions for demos and trials, off by default, so someone can try the product before creating an account.

Multi-session

Device sessions

Several accounts or devices signed in at once, with a settings screen to review and revoke each session.

Last login method

Sign-in hint

Remembers how each person signed in last time and highlights that method on the form next visit.

Google One Tap

Env-gated

Google's returning-user prompt for one-tap sign-in, switched on by environment flag when you want it.

SIWE

Wallet sign-in

Sign-In with Ethereum for crypto-native products: wallet-based identity through the same session authority as every other method.

Generic OAuth

Custom IdP

Point identity at any custom OIDC or OAuth provider. The escape hatch for when a customer brings their own IdP.

BA Admin plugin

List · role · ban · impersonate

Operator tooling over accounts: list users, change roles, ban and unban, and impersonate for support. Separate from tenant-facing roles.

Firebase Auth bridge

Firebase identity · BA session

Keep Firebase as the identity source for phone, Google and email sign-in, and exchange its verified token for a session here. A migration path, not a rewrite.

Referral codes

Invite · attribute · reward

Invite codes with attribution: each user gets a unique code, sign-ups are credited to the referrer, and a reward hook fires.

Instagram OAuth

Login with Instagram

Instagram Business Login through the generic OAuth path, with the missing-email case handled and a helper for calling the Graph API afterwards.

Transactional email

Resend component

One chokepoint for every outbound email, with local previews before a provider is set, and Resend delivery, sandbox protection and templates after.

Analytics

PostHog + debug

A typed event catalog with redaction and consent state. Events log locally until a PostHog key is present.

Error reporting

Sentry + console

A global error boundary and intentional test exceptions. Errors go to the console until a Sentry DSN is set.

Durable workflows

Journal + replay jobs

Durable multi-step jobs that journal each step and replay after a deploy or crash. The pattern behind exports and every long-running task.

Private files

Convex · R2 · S3

Private file uploads with authorized URLs, attached to product records. Storage on Convex by default, with complete Cloudflare R2 and Amazon S3 paths.

Collaborative editor

ProseMirror OT sync

Real multiplayer rich-text editing with tenant-scoped access checks, server-side creation and plain-text search over document content.

Feature access

Flags & limits

The feature policy: plan defaults, kill switches, percentage rollouts, per-organization overrides and usage windows, every decision carrying a reason the UI can show.

Platform admin

Control plane

The platform control plane: users, organizations, an audit explorer and password step-up before any privileged change.

Just like SQL

SQL → Convex indexes

A translation guide from SQL habits to Convex indexes — joins, unions, distinct, group-by and filters — each with a live demo on real data.

Merging streams

Stream deep dive

A deep dive on composing query streams: merging, joining, filtering and paginating across indexes without loading whole tables.

TanStack Tables

Sort, search, filter

A realtime product table with column sorting, global search, filters and pagination. The pattern for every data grid you will build.

TanStack Forms

Validated product create

Schema-validated create and edit forms wired to server mutations, demonstrated on the same product catalog the tables render.

Rate Limiter

Token bucket · fixed window

Transactional rate limits at the function boundary: token buckets for bursts, fixed windows for quotas, per-user keys, already protecting the hot paths.

Migrations

Zero-downtime backfills

Resumable, batched backfills that rewrite live tables without downtime. The same machinery this codebase used for its own schema changes.

Action Retrier

Exponential backoff

Retries with exponential backoff for flaky third-party calls, ending in exactly one completion callback.

Workpool

Bounded background queues

Named background queues with parallelism caps, so a burst of jobs drains in order instead of stampeding a downstream API.

Architecture guide

Authz · ownership · tenancy

The written contract for the codebase: authentication versus authorization, ownership planes, tenancy rules and copy-paste examples for each.

Integrations guide

Provider matrix

The provider matrix: what runs with no keys, what each vendor adds, how to remove one, and the smoke test that proves it.

Polar billing

Merchant of record

Subscription billing with Polar as merchant of record behind a provider-agnostic adapter, webhook ingestion, and a bridge from plan to feature entitlements. A debug adapter simulates the whole path offline.

Stripe subscriptions

Checkout · Portal · Tax

The Stripe path: subscription checkout, the customer portal, signed webhooks and tax collection, feeding the same entitlement bridge as Polar.

Stripe Connect

Marketplaces & platforms

Marketplace and platform payments: onboarding sellers, routing charges between parties, and taking a platform fee.

Paddle billing

Merchant of record

Paddle as merchant of record: hosted checkout, subscriptions and VAT handled for you, mapped into the same feature entitlements.

Lemon Squeezy

Merchant of record

Lemon Squeezy as merchant of record for indie pricing: overlay or hosted checkout and subscription webhooks into the same entitlement bridge.

AI agent & chat

Convex Agent component

Persistent chat threads with real model replies and retrieval over the organization's own documents, with citations. A debug assistant answers offline until a key is set.

Usage metering

Per-user + aggregate

Per-user daily usage counters for chat, API calls and exports, with an aggregate path that keeps dashboards and plan limits fast at scale.

Presence

Who's online

Who is online, where, right now: heartbeat-driven presence with away detection, scoped to the organization.

Automations

Zapier-lite, native

When-this-then-that inside your product: record changes, inbound webhooks, cron ticks and meter thresholds trigger emails, signed webhooks, agent runs or tasks.

Background agents

AI that acts

Scheduled AI agents that act on the tenant's data — weekly summaries, task triage, anomaly watch — journaled so failed runs replay instead of vanish.

Usage-based billing

Meters → invoices

From meter to invoice: immutable usage events, hourly window close, a push to your billing provider, and quotas that warn at 80 percent and block at 100.

Notifications

Bell + digests

An in-app notification center with a live unread badge, per-user preferences, muted types, and daily or weekly email digests.

Global search

Cmd+K everything

One command palette over projects, tasks, documents, products and members, always scoped to the organization you are in.

saaszero CLI

add / remove modules

A written specification for module add and remove tooling: the removability contract, module manifests and marked regions, with notifications and search as the pilot scope.

API keys

Programmatic access

Customer-facing API tokens: generated once, stored only as digests, scoped to an organization and rate limited per key.

Outbound webhooks

HMAC + retries

Let customers subscribe to your events: signed deliveries, retries with backoff, and dead-letters that stay visible with their last status code.

Account security

Recovery & sessions

Password reset and recovery flows plus session review, with credential material living only in the identity layer, never in product tables.

Helpdesk

Example app · support queue

A complete support desk assembled from shipped modules: SLA timers, transactional replies, notifications, search and an audit trail. Three new tables, no new infrastructure.

CRM

Example app · deal pipeline

A complete deal pipeline assembled from shipped modules: a reactive board, bulk stage moves that fire automations, a live table and a computed forecast. Four new tables, no new infrastructure.

The stack

Convex and Better Auth at the core; email, analytics, errors, files, and billing behind adapters

A clean clone runs with no vendor keys at all. Without vendor keys, email renders locally, analytics stays in a redacted debug log, and errors go to the console. Set a key and the production adapter takes over behind the same interface.

Next.js 16
React 19
Convex
Better Auth 1.6
TypeScript strict
Tailwind CSS v4
shadcn/ui sources
Vitest and Playwright

Optional providers

ResendEmail
PostHogAnalytics
SentryErrors
Convex File StorageDefault
Cloudflare R2Recipe
VercelHosting

Pricing

One payment. The whole codebase.

No seats, no subscription, no usage tier. You buy the source and it stays yours.

Coming soon

  • Full source, yours to edit and own
  • All 60 modules, nothing locked
  • 173 implementation recipes
  • Private GitHub repository access
  • Lifetime updates, no renewal
  • Unlimited projects, commercial use
  • Client and freelance work allowed
  • Support on the template codebase
Coming Soon

Not for sale yet. Email sales@unitbuddy.com.au to hear when it ships.

Not sure yet? Ask first.

Because you get the complete source on purchase, there are no refunds. So it is worth being certain before you buy, not after. Email me for a product walkthrough or architecture questions; I will also tell you if SaaSZero is a poor fit for your project.

sales@unitbuddy.com.au

Licence, in one line

Use it for your own products and for client work, on as many projects as you like. You may not resell it or publish the source.

Read the licence

Two packs

One pack today. Enterprise on the way.

Professional combines the SaaS foundation and operations consoles that were previously sold separately. Enterprise adds SSO, SCIM and audit exports on top, and is coming soon.

Professional

The SaaS foundation and operations consoles, together in one pack.

$249

AUD once

In every pack

  • Full source, yours to keep
  • All 60 base modules
  • 173 implementation recipes
  • Lifetime updates, no renewal
  • Unlimited projects, commercial use

Operations consoles

  • 14 day dunning window
  • Email delivery log
  • Broadcasts with preview
  • Stuck signup cohorts
  • GDPR export and erasure

Enterprise · not included

  • OIDC and SAML sign-on
  • SCIM users and groups
  • Append-only audit trail
  • Delegated admin portal
this page

Enterprise

Professional plus SSO, SCIM, audit exports, and delegated administration. Coming soon.

Coming soon

In every pack

  • Full source, yours to keep
  • All 60 base modules
  • 173 implementation recipes
  • Lifetime updates, no renewal
  • Unlimited projects, commercial use

Operations consoles

  • 14 day dunning window
  • Email delivery log
  • Broadcasts with preview
  • Stuck signup cohorts
  • GDPR export and erasure

Enterprise

  • OIDC and SAML sign-on
  • SCIM users and groups
  • Append-only audit trail
  • Delegated admin portal

One payment. Lifetime updates. Unlimited projects. All prices in AUD.

Questions before you buy?

For anything not covered below, email .

You are running locally in about five minutes and can be deployed to a live URL the same day, because the Vercel path is certified and takes six documented steps. What nobody can honestly promise you is a launch date, since that depends on the product you are building, not the foundation under it. What SaaSZero removes is the roughly twenty weeks of foundation work before your first real feature: auth and tenancy, feature gates and admin, workflows and files and email, billing and usage metering, then AI and automations. That part is already merged, tested, and documented.
Next.js 16 with React 19 on the front, Convex for the realtime database and server functions, and Better Auth for identity. Tailwind CSS v4 with owned shadcn/ui sources for the UI. Convex components handle the email queue, rate limits, workflows, migrations, and aggregates. Optional providers are Resend for email, PostHog for analytics, Sentry for errors, and Polar or Stripe for billing.
Convex gives you realtime subscriptions, transactional server functions, file storage, and scheduled work in one place, with end to end types and no migration scripts to babysit. SaaSZero pairs it with Better Auth so tenancy and identity are not your problem either. If you want SQL, this is not the kit for you.
A step-by-step guide for one real outcome, such as seat-limited teams, dunning and failed payment recovery, or hardening an outbound webhook against SSRF. Each recipe names the hard part it handles, the files it touches, and the ordered steps. There are 173 of them across 60 modules, and they are versioned with the code rather than written once and left to rot.
It runs. A clean clone starts with no vendor keys at all, and you can click the whole thing end to end: sign up, create an organization, invite a teammate, upload a private file, flip a feature flag, and watch the audit trail record it.
Better Auth owns credentials, sessions, MFA, passkeys, organizations, members, and invitations. SaaSZero owns the user projection, the product resources keyed by organizationId, the feature policy, and the audit trail. There are no duplicate tenancy tables. Every function re-authorizes against the stored organizationId, so an active organization ID from the client is context only, never permission.
Typescript throughout, in strict mode, including noUncheckedIndexedAccess. Run npm run verify to check doctor, types, lint, unit tests, and the production build in one command.
You get every update and release pushed to the repository, with no renewal. You can also raise issues and feature requests on GitHub.
You receive a license key. Activate it with your GitHub username and you are invited to the private repository. Clone it, run npm install, point it at a Convex deployment, and you are running locally in a few minutes.
Yes, for as many of your own and your clients' projects as you like. That is what it is for.
No. Publishing the source would break the license, since the codebase is the product.
No. Please read the license for the details.
No. You get the complete codebase on purchase and there is no way to verify it has not been used. If you have doubts, get in touch before you buy and I will walk you through the product in full so you can decide.
Yes, for anything related to the template codebase itself. I cannot help with your own business logic or with customizations you have made on top.
first sign-up = superAdmin

The deal does not stall on the IT review.

OIDC and SAML, SCIM users and groups, append-only audit with scheduled delivery, and delegated admin. Coming soon — email sales@unitbuddy.com.au to hear when it ships.

One payment. Lifetime updates. Unlimited projects.