From da5b7c03fd208c21ba17c8a97bb3d5dd963fb2da Mon Sep 17 00:00:00 2001 From: Brandon Corbett Date: Tue, 20 Oct 2026 20:45:14 -0400 Subject: [PATCH] docs(compare): describe organization roles and SMS support precisely --- src/content/docs/compare/better-auth.mdx | 4 ++-- src/content/docs/compare/clerk.mdx | 8 ++++---- src/content/docs/compare/supabase-auth.mdx | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/content/docs/compare/better-auth.mdx b/src/content/docs/compare/better-auth.mdx index 653197e..a38c4df 100644 --- a/src/content/docs/compare/better-auth.mdx +++ b/src/content/docs/compare/better-auth.mdx @@ -76,14 +76,14 @@ Better Auth column as of October 2026. | Passkeys | Yes, primary sign-in method (WebAuthn via SimpleWebAuthn) | Yes, `@better-auth/passkey` plugin (SimpleWebAuthn); add to an existing account by default, passkey-first registration configurable | | Magic links | Yes | Yes, `magicLink` plugin; you supply the email sender | | Email OTP | Yes | Yes, `email-otp` plugin | -| SMS OTP | Yes (Twilio or AWS) | Yes, `phone-number` plugin; you supply the SMS sender | +| SMS OTP | Yes when self-hosted, through your Twilio or AWS account; not on managed instances | Yes, `phone-number` plugin; you supply the SMS sender | | TOTP | Yes, as step-up / second factor | Yes, `twoFactor` plugin (TOTP, OTP, backup codes); passwordless users need `allowPasswordless: true` | | Passwords | No, by design | Yes, built in | | Social and OIDC login | Yes, instance-wide; CLI presets for Google, GitHub, Microsoft (Entra ID), GitLab | Yes, built-in social providers and a `generic-oauth` plugin | | SAML enterprise SSO | No | Yes, `@better-auth/sso` plugin | | SCIM directory sync | No | Yes, `@better-auth/scim` plugin | | Acts as an OAuth/OIDC provider | No | Yes, `oauth-provider` plugin | -| Organizations | Yes: memberships, scoped roles, active organization on the session | Yes, `organization` plugin: roles, invitations, teams, custom access control | +| Organizations | Yes: memberships with per-organization roles and scopes, and an active organization on the session | Yes, `organization` plugin: roles, invitations, teams, custom access control | | Prebuilt UI | Built-in auth routes (`AuthRoutes` in React; equivalents in Angular, Vue, Svelte), or headless | No official components in the core docs; community projects such as Better Auth UI exist | | Admin dashboard | Yes, open source app you run | `admin` plugin APIs; dashboard via Better Auth Infrastructure (paid service, free Starter tier) | | Third-party compliance attestations | None for Seamless Auth itself | Not applicable to the library; it runs inside your own boundary | diff --git a/src/content/docs/compare/clerk.mdx b/src/content/docs/compare/clerk.mdx index 87aed53..f794778 100644 --- a/src/content/docs/compare/clerk.mdx +++ b/src/content/docs/compare/clerk.mdx @@ -24,8 +24,8 @@ decide. ## Choose Clerk If - **You want no auth infrastructure to run at all.** Clerk operates the service, the database, - email and SMS delivery, and upgrades. Seamless Auth's managed path also removes this, but its - self-hosted path, the reason most people look at it, means you operate it. + email and SMS delivery, and upgrades. Seamless Auth's managed path removes most of this (it has no + SMS sender), but its self-hosted path, the reason most people look at it, means you operate it. - **You need password sign-in.** Clerk supports passwords alongside passwordless methods. Seamless Auth has no password flow, by design. - **You need SAML enterprise SSO or SCIM directory sync today.** Clerk offers SAML and OIDC @@ -70,13 +70,13 @@ production. | Passkeys | Yes, primary sign-in method (WebAuthn via SimpleWebAuthn) | Yes, paid plan. Added after sign-up, max 10 per account | | Magic links | Yes | Yes (email links) | | Email OTP | Yes | Yes | -| SMS OTP | Yes (Twilio or AWS) | Yes, paid plan, US and Canada enabled by default | +| SMS OTP | Yes when self-hosted, through your Twilio or AWS account; not on managed instances | Yes, paid plan, US and Canada enabled by default | | TOTP | Yes, as step-up / second factor | Yes, MFA on a paid plan | | Passwords | No, by design | Yes | | Social and OIDC login | Yes, instance-wide; CLI presets for Google, GitHub, Microsoft (Entra ID), GitLab | Yes; free plan limited to 3 social connections | | SAML enterprise SSO | No | Yes, paid plan, per connection | | SCIM directory sync | No | Yes (Directory Sync), paid plan | -| Organizations | Yes: memberships, scoped roles, active organization on the session | Yes: roles, permissions, invitations, verified domains; limits on the free tier | +| Organizations | Yes: memberships with per-organization roles and scopes, and an active organization on the session | Yes: roles, permissions, invitations, verified domains; limits on the free tier | | Prebuilt UI | Built-in auth routes (`AuthRoutes` in React; equivalents in Angular, Vue, Svelte), or headless | Extensive components (sign-in, sign-up, user profile, organization switcher) and hosted Account Portal | | Admin dashboard | Yes, open source app you run (bundled on the managed path) | Yes, the Clerk Dashboard | | Third-party compliance attestations | None for Seamless Auth itself | SOC 2 report on Business plan; HIPAA BAA on Enterprise | diff --git a/src/content/docs/compare/supabase-auth.mdx b/src/content/docs/compare/supabase-auth.mdx index 6cbcc86..0cca970 100644 --- a/src/content/docs/compare/supabase-auth.mdx +++ b/src/content/docs/compare/supabase-auth.mdx @@ -52,7 +52,7 @@ status. its API gateway. Seamless Auth stores its own data in its own Postgres and works with whatever database and backend your app already uses. - **You need organizations and memberships as a built-in model.** Seamless Auth ships organizations, - memberships, scoped roles, and an active organization on the session. In Supabase you model tenants + memberships with per-organization roles and scopes, and an active organization on the session. In Supabase you model tenants yourself in tables and enforce them with RLS (Supabase's own "organizations" are for billing your Supabase account, not for your end users). - **You want sign-in to go through your backend.** Seamless Auth clients call your backend's `/auth` @@ -75,13 +75,13 @@ Supabase column as of October 2026. | Passkeys | Yes, primary sign-in method (WebAuthn via SimpleWebAuthn) | Experimental (beta since May 2026): registered by a signed-in user; JS needs an opt-in flag; Flutter and Swift also experimental | | Magic links | Yes | Yes | | Email OTP | Yes | Yes | -| SMS OTP | Yes (Twilio or AWS) | Yes (Twilio, MessageBird, Vonage) | +| SMS OTP | Yes when self-hosted, through your Twilio or AWS account; not on managed instances | Yes (Twilio, MessageBird, Vonage) | | TOTP | Yes, as step-up / second factor | Yes, TOTP MFA; phone MFA is a paid add-on | | Passwords | No, by design | Yes | | Social and OIDC login | Yes, instance-wide; CLI presets for Google, GitHub, Microsoft (Entra ID), GitLab | Yes, about 20 providers plus custom OAuth2 and OIDC | | SAML enterprise SSO | No | Yes, Pro plan and above; self-hosted setup documented | | SCIM directory sync | No | Not documented | -| Organizations for your end users | Yes: memberships, scoped roles, active organization on the session | No built-in model; build with tables and RLS (SAML connections carry an `sso_provider_id` usable in RLS) | +| Organizations for your end users | Yes: memberships with per-organization roles and scopes, and an active organization on the session | No built-in model; build with tables and RLS (SAML connections carry an `sso_provider_id` usable in RLS) | | Prebuilt UI | Built-in auth routes (`AuthRoutes` in React; equivalents in Angular, Vue, Svelte), or headless | Copy-in auth blocks from the shadcn-based Supabase UI Library; the older `auth-ui-react` package is archived | | Admin dashboard | Yes, open source app you run (bundled on the managed path) | Supabase Studio (hosted dashboard; self-hosted Studio runs a single project) | | Third-party compliance attestations | None for Seamless Auth itself | SOC 2 Type 2 and HIPAA for the hosted platform, reports and BAA on Team and Enterprise |