mirror of
https://github.com/supabase/supabase.git
synced 2026-10-05 09:25:06 +03:00
Add two new blog posts (#37752)
* New blog posts, still need images * New blog posts, still need og images * Added Firebase form to Firebase migration guides * move blog post to alternatives page * revert linkgs * add og image * add soshi logo --------- Co-authored-by: Francesco Sansalvadore <f.sansalvadore@gmail.com>
This commit is contained in:
1 parent
2976d572e1
commit
3c20bb8ade
9 files changed
+284
-42
No files matched your search
@@ -88,4 +88,4 @@ For more advanced migrations, including the use of a middleware server component
|
||||
|
||||
## Enterprise
|
||||
|
||||
[Contact us](https://forms.supabase.com/enterprise) if you need more help migrating your project.
|
||||
[Contact us](https://forms.supabase.com/firebase-migration) if you need more help migrating your project.
|
||||
@@ -67,4 +67,4 @@ If the bucket doesn't exist, it's created as a `non-public` bucket. You must set
|
||||
|
||||
## Enterprise
|
||||
|
||||
[Contact us](https://forms.supabase.com/enterprise) if you need more help migrating your project.
|
||||
[Contact us](https://forms.supabase.com/firebase-migration) if you need more help migrating your project.
|
||||
@@ -211,4 +211,4 @@ The result is two separate JSON files:
|
||||
|
||||
## Enterprise
|
||||
|
||||
[Contact us](https://forms.supabase.com/enterprise) if you need more help migrating your project.
|
||||
[Contact us](https://forms.supabase.com/firebase-migration) if you need more help migrating your project.
|
||||
@@ -1,69 +1,121 @@
|
||||
---
|
||||
title: Supabase vs Firebase
|
||||
description: Supabase is the Postgres development platform with a SQL based Database, Auth, and Cloud Functions
|
||||
author: ant_wilson
|
||||
author: prashant
|
||||
tags:
|
||||
- comparison
|
||||
date: '2022-05-26'
|
||||
date: '2025-08-20'
|
||||
toc_depth: 3
|
||||
---
|
||||
|
||||
## What is Firebase?
|
||||
|
||||
Now owned by Google, Firebase is a collection of tools aimed at mobile and web developers. At its core is the Firestore database.
|
||||
|
||||
Firestore allows you to store “documents”. These are collections of key:value pairs where the value can be another sub-document. Document based storage is perfect for unstructured data, since two documents in a collection do not necessarily need to have the same structure.
|
||||
|
||||
Firebase also offers other things that web developers find useful like an auth service for user management, and wrappers for other Google services such as Cloud Functions, and File Storage.
|
||||
Firebase and Supabase both promise to give teams a full‑featured backend without managing servers. Firebase, owned by Google, combines a NoSQL database with authentication, file storage and serverless functions. Supabase is an open‑source alternative [built on Postgres](/docs/guides/database/overview) that offers similar services—[auth](/docs/guides/auth), [storage](/docs/guides/storage), [real‑time](/docs/guides/realtime), and [functions](/docs/guides/functions), but with the predictability of SQL and the freedom to self‑host. Choosing between them depends on how your application models data, how you plan to scale, and your tolerance for vendor lock‑in.
|
||||
|
||||
## What is Supabase?
|
||||
|
||||
Supabase is the Postgres development platform. Instead of being built around a document-based datastore, Supabase offers a relational database management system called PostgreSQL. This comes with a few advantages:
|
||||
Supabase is an open‑source backend platform that runs on **Postgres**. Each project comes with a dedicated Postgres database, an auto‑generated REST and GraphQL API, real‑time subscriptions, and storage, all tied together with **Row‑Level Security (RLS)**. RLS policies are written in SQL and allow you to define granular access rules using the same language you use for your data. Because Supabase’s core services are built on open technologies like Postgres and GoTrue, you can run Supabase locally or host it yourself using Docker or community tools such as Kubernetes or Terraform.
|
||||
|
||||
- It’s open source, so there is zero lock in.
|
||||
- You can query it with SQL, a proven and powerful query language.
|
||||
- It has a long track record of being used at scale.
|
||||
- It’s the database of choice for transactional workloads (think apps and websites, or other things that require near-instant responses to queries).
|
||||
- It comes with decades of [useful postgres extensions and plug-ins](https://supabase.com/docs/guides/database/extensions).
|
||||
## What is Firebase?
|
||||
|
||||
At Supabase we’ve always been huge fans of Firebase - so we started adding a few things on top of PostgreSQL in an attempt to reach feature parity, including:
|
||||
Firebase is a managed platform owned by Google. It includes Cloud Firestore (a document‑oriented NoSQL database), authentication, Cloud Storage for files and Cloud Functions for backend logic. Firestore stores data as JSON‑like documents grouped in collections. The SDKs automatically cache documents on the device so apps can read, write and listen to data while offline; changes are synchronized when the device reconnects[.](https://firebase.google.com/docs/firestore/manage-data/enable-offline#:~:text=Cloud%20Firestore%20supports%20offline%20data,to%20the%20Cloud%20Firestore%20backend) Firestore supports *collection group queries*, which let you query across collections with the same name. To handle relational data you often denormalize documents or perform multiple queries in code.
|
||||
|
||||
- Auto-generated API - [query your data straight from the client](https://supabase.com/docs/guides/api#rest-api-overview).
|
||||
- Realtime - [changes in your data will be streamed directly to your application](https://supabase.com/docs/reference/dart/subscribe).
|
||||
- Auth - [a simple to integrate auth system and SQL based rules engine](https://supabase.com/auth).
|
||||
- Functions - [javascript and typescript functions that deploy out globally](https://supabase.com/edge-functions).
|
||||
- Storage - [hosting images, videos, and pdfs easily](https://supabase.com/storage).
|
||||
## Core architecture and database
|
||||
|
||||
## How are they similar?
|
||||
| Feature | Firebase | Supabase |
|
||||
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
|
||||
| **Database type** | Document database (Cloud Firestore) | Relational database (Postgres) |
|
||||
| **Data model** | Schemaless JSON; subcollections; no native joins | Structured tables with foreign keys and indexes |
|
||||
| **Transactions** | Supports transactions and batched writes | Full ACID transactions built into Postgres; you can execute complex joins, subqueries and data transformations in SQL |
|
||||
| **Offline support** | Firestore caches actively used data on the client so you can read/write while offline; changes sync when connectivity returns | Supabase clients use Postgres directly; offline access requires your own caching strategy and works with Zero, Electric, |
|
||||
| **API access** | Client SDKs for web, Android, iOS and server environments; REST/gRPC endpoints | Auto‑generated REST API via PostgREST and GraphQL API via pg_graphql |
|
||||
| **Self‑hosting** | Not supported; services run on Google Cloud | Fully self‑hostable via Docker or on your own cloud |
|
||||
|
||||
Both Firebase and Supabase are based on the idea of bringing a superior developer experience to databases. With both platforms you can spin up a new project from directly inside the browser without the need to download any extra tools or software to your machine. Both platforms come with a useful dashboard UI for debugging your data in realtime, which is especially useful for fast iterations when in development.
|
||||
Firestore’s schemaless design makes it easy to prototype. As data relationships grow more complex, you must handle joins in the client or denormalize your data. Supabase’s Postgres foundation gives you SQL’s expressive power, foreign keys, and indexes from day one.
|
||||
|
||||
Both Firebase and Supabase have invested heavily in client side libraries so you can communicate with your database directly from the client. Firebase has their [Firebase Javascript SDK](https://github.com/firebase/firebase-js-sdk) and Supabase has [supabase-js an isomorphic client](https://github.com/supabase/supabase-js/) that can be used both on the client also on the server in a node-js environment.
|
||||
## Authentication and user management
|
||||
|
||||
## How are they different?
|
||||
| Feature | Firebase | Supabase |
|
||||
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
|
||||
| **Login methods** | Email/password, phone, anonymous and OAuth providers; additional SAML and OpenID Connect support requires upgrading to *Firebase Authentication with Identity Platform* | Email/password, OAuth providers (Google, GitHub, Apple, etc.), SMS and custom providers |
|
||||
| **Enterprise auth** | The Identity Platform upgrade enables multi‑factor auth, SAML and OIDC | SSO, SAML and OIDC are available on Pro and Enterprise plans without changing SDKs |
|
||||
| **Access control** | Security Rules use a domain‑specific language and differ for Firestore, Storage and Functions | Row‑Level Security (RLS) policies written in SQL control access across the database |
|
||||
| **Offline auth** | The client SDK persists auth tokens locally and handles session renewal | Session management integrates with Postgres; tokens are validated on the server |
|
||||
| **Customization** | Custom auth requires writing Cloud Functions or backend services | You can write custom policies and logic in SQL; column‑level security enables field‑level restrictions |
|
||||
|
||||
Firebase and Supabase differ in several ways. The main one being that Firebase is a document store, whereas Supabase is based on PostgreSQL - a relational, SQL-based database management system.
|
||||
Firebase Authentication is easy to set up for email/password and social logins. Enterprise features such as SAML/OIDC and blocking functions require upgrading to the Identity Platform and come with new usage limits[.](https://firebase.google.com/docs/auth#:~:text=iOS%20%20%20135%20Web,192%20Unity) Supabase Auth integrates with Postgres, so you can enforce complex policies using SQL and upgrade to SSO or enterprise auth features without changing products.
|
||||
|
||||
There are some other important differences.
|
||||
## Serverless functions and backend logic
|
||||
|
||||
### Open Source
|
||||
| Feature | Firebase | Supabase |
|
||||
| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
|
||||
| **Runtime** | Cloud Functions run on Google’s infrastructure. You write code in JavaScript or TypeScript and deploy through the Firebase CLI; Python support is available in the second‑generation runtime | Edge Functions run on Deno and are globally distributed at the edge for low‑latency execution |
|
||||
| **Languages** | JavaScript, TypeScript and Python (2nd gen) | TypeScript (via Deno); you can also call third‑party APIs or write SQL from functions |
|
||||
| **Triggers** | HTTP requests, Firestore, auth events, Storage, pub/sub and scheduled jobs | HTTP requests, scheduled jobs and other triggers; functions can call Postgres directly through the `supabase-js` client |
|
||||
| **Cold start** | Functions run in a managed environment; cold starts can vary depending on region and load | Edge Functions start quickly because Deno’s runtime is lightweight and runs close to users |
|
||||
|
||||
Supabase is open source. Along with the hosted cloud platform, you can also take the Supabase stack and host it inside your own cloud or run it locally on your machine. There is no vendor lock in.
|
||||
Firebase Cloud Functions integrate tightly with other Firebase products and support a wide range of triggers. Supabase Edge Functions are TypeScript functions that run on Deno at edge locations. They talk directly to your Postgres database, which simplifies tasks like handling webhooks or building custom APIs.
|
||||
|
||||
### Pricing
|
||||
## Storage and file management
|
||||
|
||||
[Firebase charges for reads, writes and deletes](https://firebase.google.com/pricing), which can lead to some unpredictability, especially in the early stages of a project when your application is in heavy development. Supabase [charges based on the amount of data stored](https://supabase.com/pricing), with breathing room for unlimited API requests and an unlimited number of Auth users.
|
||||
| Feature | Firebase | Supabase |
|
||||
| ----------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| **Underlying platform** | Cloud Storage for Firebase (built on Google Cloud Storage) | S3‑compatible object store integrated with Postgres |
|
||||
| **Resumable uploads** | The web SDK provides `uploadBytesResumable()`and methods to pause, resume or cancel an upload | Built‑in support for resumable uploads; each upload is recorded in a Postgres table |
|
||||
| **Access control** | Security Rules use a separate rules language for Storage | Storage metadata is stored in Postgres and protected by the same RLS policies as the rest of your data |
|
||||
| **Image tools** | No built‑in transformations (you can add Firebase Extensions for resizing) | Built‑in image transformations and CDN delivery |
|
||||
| **Free tier** | Spark plan includes 5 GB of Cloud Storage in select regions; additional usage is billed by region and operation | Free plan allows files up to 50 MB and 1 GB total storage; Pro/Team plans allow up to 500 GB per file and include CDN |
|
||||
|
||||
### Performance
|
||||
Firebase Storage is reliable and integrates with the auth SDK. Pricing depends on region and includes separate charges for storage, bandwidth and operations. Supabase Storage integrates with Postgres: metadata is stored in a table, so you can apply the same RLS policies you use elsewhere[.](/docs/guides/storage/security/access-control#:~:text=Supabase%20Storage%20is%20designed%20to,RLS) Free plans include 50 MB per file, and Pro plans raise that limit to hundreds of gigabytes.
|
||||
|
||||
We created a benchmarking repo where you can compare the performance of both services in different scenarios. Our most recent results show that [Supabase outperforms Firebase by up to 4x](https://github.com/supabase/benchmarks/issues/8) on number of reads per second, and 3.1x on writes per second.
|
||||
## Open source vs. proprietary
|
||||
|
||||
## How do I migrate from Firebase to Supabase?
|
||||
| Feature | Firebase | Supabase |
|
||||
| ------------------ | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| **Core platform** | Proprietary managed services hosted by Google; client SDKs are open source. No self-hosting option. | Fully open source; core components such as Postgres, GoTrue and PostgREST are licensed under permissive licenses, and you can run Supabase yourself |
|
||||
| **Self‑hosting** | Not available | Supported via CLI and Docker; community tools exist for Kubernetes, Terraform and other platforms |
|
||||
| **Governance** | Maintained by Google | Community‑driven with a public roadmap and contribution model |
|
||||
| **Vendor lock‑in** | Tight coupling to Google Cloud products | Portable architecture; you can move between Supabase Cloud and self‑hosted deployments without rewriting your app |
|
||||
|
||||
Since Firebase is document based, migrating into a relational database requires you to map your data structure across into a SQL schema. Luckily we’ve built a [handy conversion tool to do it for you](https://supabase.com/docs/guides/migrations/firestore-data).
|
||||
Firebase provides a polished, fully managed experience. Supabase embraces open source: you can inspect the code, contribute to improvements and, if needed, host your own Supabase instance.
|
||||
|
||||
We also have guides and tools for [migrating Firebase Auth to Supabase Auth](https://supabase.com/docs/guides/migrations/firebase-auth) for [migrating Firebase Storage files to Supabase Storage](https://supabase.com/docs/guides/migrations/firebase-storage).
|
||||
## Pricing and cost comparison
|
||||
|
||||
These are by far the most complete Firebase to Postgres migration tools available anywhere on the web.
|
||||
| Feature | Firebase | Supabase |
|
||||
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| **Free tier** | Spark plan includes a limited free quota—for example, Firestore allows 50,000 document reads and 20,000 writes per day, Storage includes 5 GB in select regions and Cloud Functions are limited | Supabase’s free plan includes unlimited API requests, 50,000 monthly active users, 500 MB database storage, 1 GB file storage and 5 GB bandwidth |
|
||||
| **Billing model** | Pay‑as‑you‑go; you pay per document read, write, delete and per function invocation[.](https://firebase.google.com/docs/firestore/pricing#:~:text=Document%20reads%2050%2C000%20per%20day,transfer%2010%20GiB%20per%20month) Pricing varies by region and can be hard to predict | Transparent tiered pricing: pay for database storage, file storage, and compute. There are no charges for API requests, and you can track usage from the dashboard |
|
||||
| **Self‑hosting** | Not supported | Available—self‑hosting lets you control costs and comply with regulatory requirements |
|
||||
|
||||
You can [try Supabase for free](https://supabase.com/dashboard). If you require Enterprise level support with your project or migration, please get in touch using our [Enterprise contact form](https://forms.supabase.com/enterprise).
|
||||
Firebase’s usage‑based pricing can surprise teams as their apps grow because every document read, write or listener contributes to cost[.](https://firebase.google.com/docs/firestore/pricing#:~:text=Document%20reads%2050%2C000%20per%20day,transfer%2010%20GiB%20per%20month) Supabase offers predictable tiers and does not bill per request, which can simplify budgeting[.](/pricing#:~:text=Get%20started%20with%3A)
|
||||
|
||||
## Ecosystem, extensibility and community
|
||||
|
||||
| Feature | Firebase | Supabase |
|
||||
| ------------------------ | --------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
|
||||
| **Platform integration** | Deep integration with Google Cloud services such as BigQuery, Cloud Functions and Firebase ML | Built on Postgres; you can leverage Postgres extensions, listen to database events and integrate with third‑party services |
|
||||
| **Extensions** | Firebase Extensions provide pre‑built functionality (e.g., image resizing, Stripe sync) | Postgres extensions (50+ preconfigured) add features like full‑text search, vector similarity and custom data types |
|
||||
| **SDKs** | Official SDKs for web, Android, iOS, Unity, C++ and more | Official JavaScript client and community clients for Go, Rust, Dart and other languages |
|
||||
| **Community** | Support via GitHub issues, Stack Overflow and Firebase Summit | Active open‑source community with GitHub discussions, the SupaSquad advocacy program and third‑party integrations |
|
||||
| **Self‑hosting tools** | None | Community‑maintained packages for Terraform, Kubernetes and BYO cloud |
|
||||
|
||||
Firebase benefits from Google’s ecosystem and has mature SDKs for many platforms. Supabase leverages the Postgres ecosystem and open‑source contributions; you can extend it with Postgres extensions or third‑party packages.
|
||||
|
||||
## Scalability and performance
|
||||
|
||||
Firestore scales automatically and handles real‑time synchronization for simple use cases. Queries are shallow and cannot traverse relationships; collection group queries allow searching across collections with the same name[.](https://firebase.blog/posts/2019/06/understanding-collection-group-queries/#:~:text=In%20the%20past%2C%20you%20could,are%20in%20a%20single%20subcollection) Firestore caches data on the client so offline access is good. Deep querying often requires multiple reads or denormalized data, which can increase costs[.](https://firebase.google.com/docs/firestore/pricing#:~:text=Document%20reads%2050%2C000%20per%20day,transfer%2010%20GiB%20per%20month)
|
||||
|
||||
Supabase inherits Postgres’s mature scaling features. You can perform joins, subqueries and full‑text search in a single SQL statement. Transactions guarantee consistency, and indexes keep queries fast. Real‑time updates are delivered via Postgres logical replication, and connection pooling and read replicas can be added as your load grows. Because Supabase is built on a relational database, data remains strongly consistent, and performance tuning is well understood in the Postgres ecosystem.
|
||||
|
||||
## Migrating from Firebase to Supabase
|
||||
|
||||
Many teams start with Firebase for fast prototyping and switch to Supabase when their data model becomes relational or costs become unpredictable. A typical migration involves two phases:
|
||||
|
||||
1. **Run both services side by side.** Export your Firestore collections and import them into Supabase—initially as JSON or JSONB columns—while your app continues to read from Firebase. Then incrementally swap Firebase SDK calls for Supabase queries.
|
||||
2. **Normalize your data.** Refactor JSON into proper Postgres tables, add foreign keys and indexes and write RLS policies. This is when you begin to enjoy SQL’s power and simplified code.
|
||||
|
||||
Supabase provides [open‑source migration tools](/docs/guides/platform/migrating-to-supabase). There is a utility for [migrating Firebase Authentication to Supabase Auth](/docs/guides/platform/migrating-to-supabase/firebase-auth) by exporting users and re‑creating them in Postgres, another for [copying Firestore collections to Postgres tables](/docs/guides/platform/migrating-to-supabase/firestore-data), and a tool for [migrating files from Cloud Storage to Supabase Storage](/docs/guides/platform/migrating-to-supabase/firebase-storage). These tools are maintained on GitHub and have been used by startups to migrate tens of thousands of users with minimal downtime.
|
||||
|
||||
## Conclusion
|
||||
|
||||
Firebase offers an excellent developer experience for prototypes and simple applications. It excels at real‑time synchronization and has a generous free tier. Supabase provides a similar developer experience with a relational core. By building on Postgres and open‑source components, Supabase gives you SQL queries, ACID transactions, RLS and the option to self‑host. For teams that anticipate complex data relationships, need fine‑grained access control, or want predictable costs and open‑source flexibility, Supabase is a compelling alternative.
|
||||
|
||||
Need help migrating from Firebase to Supabase? [Contact](https://forms.supabase.com/firebase-migration) our Firebase Migration Team.
|
||||
@@ -0,0 +1,175 @@
|
||||
---
|
||||
title: 'Supabase Auth: Build vs. Buy'
|
||||
description: 'The reasons why (and why not) to use Supabase Auth instead of building your own.'
|
||||
categories:
|
||||
- auth
|
||||
tags:
|
||||
- auth
|
||||
date: '2025-08-12:10:00'
|
||||
toc_depth: 2
|
||||
author: prashant
|
||||
image: supabase-auth-build-vs-buy/supabase-auth-build-vs-buy-og.png
|
||||
thumb: supabase-auth-build-vs-buy/supabase-auth-build-vs-buy-og.png
|
||||
---
|
||||
|
||||
Authentication appears in nearly every application but is rarely the core value proposition. Yet development teams often spend weeks or months building, testing, and maintaining auth systems. Let's explore the real costs of building authentication from scratch versus using a solution like Supabase Auth.
|
||||
|
||||
## How Supabase Auth works under the hood
|
||||
|
||||
Before diving into the cost analysis, it's important to understand what Supabase Auth is:
|
||||
|
||||
1. **Postgres-native authentication**: Supabase Auth stores users directly in your Postgres database in the `auth.users` table, not in a separate service
|
||||
2. **JWT-based**: Authorization give you total control over security
|
||||
3. **Row Level Security integration**: Seamlessly connects authentication with Postgres's RLS policies
|
||||
4. **Hybrid token architecture**: Supabase Auth issues stateless JWTs for access control, while maintaining refresh tokens and session data in your Postgres database for secure, persistent login
|
||||
|
||||
## The hidden costs of building your own auth
|
||||
|
||||
When teams decide to build authentication, they're often thinking about the initial implementation only. But auth requires ongoing maintenance that can drain resources from your core product development. You need to consider:
|
||||
|
||||
- The time investment required to build auth from scratch
|
||||
- The ongoing maintenance required to keep auth functioning properly
|
||||
- The security risks associated with running auth systems yourself
|
||||
- The considerable time and skills involved in adding new authentication protocols
|
||||
|
||||
Even if you were to begin your auth investments using open-source projects, it’s typical for these open-source projects to be abandoned. This requires significant investments in upkeep and maintenance on your part.
|
||||
|
||||
### Time investment
|
||||
|
||||
Building basic authentication functionality typically requires:
|
||||
|
||||
- **2-4 weeks** for a senior developer to implement email/password login, session management, and password reset functionality
|
||||
- **1-2 weeks** for implementing each additional auth provider (Google, GitHub, etc.)
|
||||
- **1-2 weeks** for security reviews and penetration testing
|
||||
- **1-3 weeks** for implementing MFA and other security features
|
||||
- **8+ weeks** for implementing SAML (which, itself, requires significant maintenance investment)
|
||||
|
||||
This assumes you already have expertise in security best practices, JWT handling, and session management.
|
||||
|
||||
### Ongoing maintenance
|
||||
|
||||
Authentication isn't a "build once and forget" component:
|
||||
|
||||
- Security vulnerabilities require immediate attention
|
||||
- Auth providers regularly update their APIs and requirements
|
||||
- Password storage standards evolve
|
||||
- Compliance requirements change over time
|
||||
- User management features grow more complex as you scale
|
||||
- New features, such as supporting one-time access codes, become more important
|
||||
|
||||
Borrowing engineering time to maintain auth systems is a sub-optimal use of resources.
|
||||
|
||||
### Security risks
|
||||
|
||||
Authentication is security-critical infrastructure where mistakes can be catastrophic:
|
||||
|
||||
- Token management vulnerabilities, such as session tokens
|
||||
- Password storage failures, such as weak hashing
|
||||
- Session handling issues
|
||||
- CSRF/XSS vulnerabilities
|
||||
|
||||
These issues often aren't apparent until a breach occurs, with potentially devastating consequences. For most businesses, the time spent hardening and re-hardening auth systems, to say nothing of the time required and reputational hit caused by having to fix compromised auth systems, is simply not worth it when weighed against other priorities.
|
||||
|
||||
## The Supabase Auth approach
|
||||
|
||||
Supabase takes a different approach by providing authentication that's:
|
||||
|
||||
1. **Integrated with your database**: Supabase Auth is deeply integrated with your Postgres instance via the `auth` schema. It stores user data in the `auth.users` table, manages tokens with Postgres functions and triggers, and integrates seamlessly with Row Level Security (RLS) for fine-grained access control, all without requiring you to manage auth logic in your own code.
|
||||
2. **Open source**: No vendor lock-in, with the ability to self-host if needed.
|
||||
3. **Developer-focused**: Simple APIs with client libraries for major frameworks.
|
||||
4. **Secure**: Supabase maintains security best practices for token issuance, password hashing (using `bcrypt`), and provider updates so you don’t have to monitor every standards update. However, developers are still responsible for securely handling user data and managing secure client environments.
|
||||
5. **Extensible**: Edge Functions enable custom auth logic to implement post-signup profile creation, role assignment based on domains, and third-party webhooks for things like sending Discord invites or syncing with your CRM.
|
||||
|
||||
### Time to market
|
||||
|
||||
Using Supabase Auth typically means:
|
||||
|
||||
- **30 minutes to 2 hours**: Basic implementation time for email/password auth
|
||||
- **15-30 minutes**: Adding each additional provider (Google, GitHub, etc.)
|
||||
- **1-2 days**: Implementing row-level security policies
|
||||
- Security updates handled by Supabase
|
||||
|
||||
This represents a 90-95% reduction in time-to-production compared to building from scratch.
|
||||
|
||||
### Cost comparison
|
||||
|
||||
Beyond the direct engineering time, there's the opportunity cost of resources diverted from your core product:
|
||||
|
||||
| Activity | Build (hours) | Supabase Auth (hours) |
|
||||
| ------------------------- | ------------------ | --------------------- |
|
||||
| Initial implementation | 160-320 | 4-16 |
|
||||
| Adding social providers | 40-80 per provider | 0.5-1 per provider |
|
||||
| Security updates (yearly) | 40-120 | 0 |
|
||||
| User management features | 80-160 | 0-8 |
|
||||
| Total first year (est.) | 320-680 | 4-24 |
|
||||
|
||||
At an average engineering cost of $150/hour, that's $47,400-$98,700 saved in the first year alone. For most companies, the 320-680 hours invested in building their own auth system could be channeled towards, at minimum, one category-defining feature.
|
||||
|
||||
### Flexibility
|
||||
|
||||
Supabase Auth supports:
|
||||
|
||||
- Email/password authentication
|
||||
- Magic link (passwordless) login
|
||||
- Phone auth via Twilio integration
|
||||
- OAuth providers (Google, GitHub, Azure, Apple, etc.)
|
||||
- Custom claims and user metadata
|
||||
- JWT and session-based auth
|
||||
- Row-level security integration
|
||||
- Passkey support (coming soon)
|
||||
|
||||
All without writing the underlying authentication code yourself.
|
||||
|
||||
## Choosing between Supabase Auth and Auth0
|
||||
|
||||
Many teams evaluate Supabase Auth against Auth0, another popular authentication service. Here's how they compare:
|
||||
|
||||
| Feature | Supabase Auth | Auth0 |
|
||||
| ------------------------ | ---------------------------------------------- | ----------------------------------------- |
|
||||
| **Architecture** | Postgres-native, self-hostable | Cloud-only SaaS, proprietary |
|
||||
| **Pricing Model** | Based on compute and storage | Per monthly active user (MAU) |
|
||||
| **Database Integration** | Direct Postgres RLS | Separate system from your database |
|
||||
| **Enterprise Features** | Self-hosting for compliance | Built-in SAML, LDAP, compliance tools |
|
||||
| **Developer Experience** | Code-first, flexible APIs, Supabase UI Library | Dashboard-driven, extensive UI components |
|
||||
| Open Source | Fully open source | Closed source |
|
||||
| **Customization** | Full source code access | Rules, Actions, and Hooks |
|
||||
|
||||
**Choose Supabase Auth when:**
|
||||
|
||||
- You're already using Postgres and want direct database integration
|
||||
- You need cost predictability at scale (no per-user pricing)
|
||||
- You value open source and potential self-hosting
|
||||
- You prefer a code-first, API-driven approach
|
||||
|
||||
**Choose Auth0 when:**
|
||||
|
||||
- You need enterprise features like SAML and LDAP out of the box
|
||||
- You have complex multi-tenant B2B requirements
|
||||
- You need extensive compliance certifications immediately
|
||||
|
||||
Both are excellent choices, but Supabase Auth typically offers significant cost advantages at scale while providing deeper database integration.
|
||||
|
||||
## When should you build your own auth?
|
||||
|
||||
Despite the advantages of Supabase Auth, there are legitimate reasons to build your own:
|
||||
|
||||
1. **Specialized compliance requirements**: If you have unique regulatory needs that off-the-shelf solutions don't address
|
||||
2. **Deep integration with legacy systems**: When you need authentication tightly coupled with existing proprietary systems
|
||||
3. **Extremely unique authentication flows**: For highly specialized authentication requirements not supported by existing providers
|
||||
|
||||
## Making the decision
|
||||
|
||||
When considering whether to build or buy authentication, ask yourself:
|
||||
|
||||
1. Is authentication a core differentiator for our product?
|
||||
2. Do we have security expertise on our team?
|
||||
3. Are we prepared to maintain this critical infrastructure indefinitely?
|
||||
4. Could the engineering time be better spent on our core value proposition?
|
||||
|
||||
For most applications, authentication is essential infrastructure but not a competitive advantage. Using Supabase Auth lets you focus on what makes your application unique while leveraging battle-tested security.
|
||||
|
||||
## Getting started
|
||||
|
||||
- [Read the documentation](/docs/guides/auth). Implementing Supabase Auth takes just a few lines of code.
|
||||
- Try our [quickstart guide](/docs/guides/getting-started/quickstarts/nextjs). Supabase offers framework-specific packages that handle auth state, protected routes, and server-side rendering.
|
||||
- [Contact us](/contact/sales) if you want a more detailed analysis of Supabase Auth for your business, including pricing estimates and comparisons.
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 20 KiB |
@@ -0,0 +1,4 @@
|
||||
<svg width="141" height="60" viewBox="0 0 141 60" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M21.7124 10.6971C26.1636 9.4477 29.7562 10.1504 31.8647 10.6971C33.9734 11.2437 39.0492 12.103 43.188 13.5867C47.327 15.0705 48.2642 17.5699 48.2642 19.6004C48.2642 21.6315 48.3423 32.4076 48.3423 36.3123C48.3423 40.217 47.8737 42.1691 45.9995 43.1844C44.1252 44.1996 35.3783 48.1047 32.645 49.1981C29.9118 50.2913 26.9441 50.1353 25.1479 49.5106C23.351 48.8855 12.4183 44.9027 9.91943 43.9656C7.42075 43.0284 7.0298 40.2952 7.02979 37.0936V22.9578C7.02984 17.1012 8.20174 15.3833 10.4663 14.5242C12.7311 13.6652 17.261 11.9466 21.7124 10.6971ZM24.7866 35.5213C24.5166 35.5238 24.2461 35.5268 23.9761 35.5311C23.923 35.6371 23.8723 35.7406 23.8208 35.8436C23.7571 36.417 23.7721 36.7021 24.0737 37.201C24.85 37.9568 25.5276 38.0828 26.5747 38.0926C27.0294 38.016 27.244 37.8879 27.5688 37.5623C27.6772 37.1392 27.6431 36.741 27.5688 36.3123C27.3425 35.9615 27.1984 35.8763 26.8071 35.7459L26.4751 35.6873C26.0562 35.5914 25.6732 35.531 25.2427 35.5164C25.0877 35.5183 24.937 35.5195 24.7866 35.5213ZM16.1675 34.282C16.1675 34.7505 16.1676 34.7509 16.4214 35.0535C16.5472 35.1628 16.6694 35.2688 16.7915 35.3748C17.244 35.7821 17.5749 35.9826 18.1841 36.0496C19.171 36.0664 19.8073 36.0379 20.5796 35.3943C20.8526 35.0628 20.853 35.0627 20.853 34.4383L20.6675 34.6336L20.3843 34.907L20.0815 35.2488C19.5486 35.5642 19.2771 35.5844 18.6665 35.5994C17.6976 35.5982 17.201 35.3053 16.5083 34.6434C16.3922 34.5207 16.2801 34.4011 16.1675 34.282ZM24.2749 28.4344C22.9257 28.4344 21.8317 29.8846 21.8315 31.6727C21.8316 33.4609 22.9257 34.9109 24.2749 34.9109C25.624 34.9107 26.7173 33.4608 26.7173 31.6727C26.7171 29.8847 25.6239 28.4346 24.2749 28.4344ZM11.0132 32.0955C10.3945 32.0071 9.93639 31.9829 9.60693 32.5643C9.62356 33.3249 9.86394 33.7432 10.3882 34.282C11.0286 34.7943 11.7643 34.9389 12.5747 34.907C13.0433 34.5947 13.0437 34.5944 13.106 34.3016C13.1047 34.1887 13.1033 34.0791 13.1021 33.9695C13.1033 33.8567 13.1047 33.747 13.106 33.6375C13.0437 33.3447 13.0433 33.3444 12.5747 33.032C12.2592 32.938 11.9463 32.8331 11.6372 32.7195C11.4356 32.5053 11.2278 32.2967 11.0132 32.0955ZM13.3608 25.9705C12.0118 25.9709 10.9185 27.4207 10.9185 29.2088C10.9186 30.9967 12.0119 32.4458 13.3608 32.4461C14.71 32.4461 15.8041 30.9969 15.8042 29.2088C15.8042 27.4205 14.7101 25.9705 13.3608 25.9705ZM23.9536 29.3504C24.4041 29.3506 24.7697 29.7907 24.77 30.3338C24.77 30.8772 24.4043 31.318 23.9536 31.3182C23.5028 31.3182 23.1372 30.8773 23.1372 30.3338C23.1376 29.7906 23.503 29.3504 23.9536 29.3504ZM25.52 30.4734C25.7531 30.4735 25.9427 30.6632 25.9429 30.8963C25.9427 31.1294 25.7532 31.3182 25.52 31.3182C25.287 31.318 25.0983 31.1293 25.0981 30.8963C25.0984 30.6633 25.287 30.4736 25.52 30.4734ZM13.0405 26.8865C13.491 26.8868 13.8558 27.3267 13.856 27.8699C13.8559 28.4132 13.4911 28.854 13.0405 28.8543C12.5898 28.8543 12.2242 28.4134 12.2241 27.8699C12.2243 27.3266 12.5898 26.8865 13.0405 26.8865ZM14.6069 28.0096C14.8402 28.0096 15.0298 28.1992 15.0298 28.4324C15.0295 28.6655 14.84 28.8543 14.6069 28.8543C14.3739 28.8543 14.1853 28.6654 14.1851 28.4324C14.1851 28.1992 14.3737 28.0096 14.6069 28.0096Z" fill="#7E7E7E"/>
|
||||
<path d="M67.1423 41.384C65.6276 41.384 64.3156 41.1493 63.2063 40.68C62.1183 40.1893 61.2543 39.528 60.6143 38.696C59.9956 37.864 59.6436 36.9253 59.5583 35.88H64.3263C64.4116 36.2427 64.561 36.5733 64.7743 36.872C65.009 37.1493 65.3183 37.3733 65.7023 37.544C66.1076 37.6933 66.5556 37.768 67.0463 37.768C67.5796 37.768 68.0063 37.704 68.3263 37.576C68.6676 37.4267 68.9236 37.2347 69.0943 37C69.265 36.7653 69.3503 36.52 69.3503 36.264C69.3503 35.8587 69.2223 35.5493 68.9663 35.336C68.7316 35.1227 68.3796 34.952 67.9103 34.824C67.441 34.6747 66.8756 34.536 66.2143 34.408C65.4463 34.2373 64.6783 34.0453 63.9103 33.832C63.1636 33.5973 62.4916 33.3093 61.8943 32.968C61.3183 32.6267 60.849 32.1893 60.4863 31.656C60.145 31.1013 59.9743 30.4293 59.9743 29.64C59.9743 28.68 60.241 27.816 60.7743 27.048C61.3076 26.2587 62.0756 25.64 63.0783 25.192C64.081 24.7227 65.297 24.488 66.7263 24.488C68.753 24.488 70.3423 24.936 71.4943 25.832C72.6463 26.728 73.329 27.9333 73.5423 29.448H69.0623C68.9343 29.0213 68.6676 28.7013 68.2623 28.488C67.857 28.2533 67.345 28.136 66.7263 28.136C66.0223 28.136 65.489 28.2533 65.1263 28.488C64.7636 28.7227 64.5823 29.032 64.5823 29.416C64.5823 29.672 64.6996 29.9067 64.9343 30.12C65.1903 30.312 65.553 30.4827 66.0223 30.632C66.4916 30.7813 67.0676 30.9307 67.7503 31.08C69.0516 31.3573 70.1716 31.656 71.1103 31.976C72.0703 32.296 72.817 32.7653 73.3503 33.384C73.8836 33.9813 74.1396 34.856 74.1183 36.008C74.1396 37.0533 73.8623 37.9813 73.2863 38.792C72.7316 39.6027 71.9316 40.2427 70.8863 40.712C69.841 41.16 68.593 41.384 67.1423 41.384ZM83.3675 41.384C81.8102 41.384 80.4129 41.0213 79.1755 40.296C77.9382 39.5707 76.9569 38.5787 76.2315 37.32C75.5062 36.04 75.1435 34.5893 75.1435 32.968C75.1435 31.304 75.5062 29.8427 76.2315 28.584C76.9569 27.304 77.9382 26.3013 79.1755 25.576C80.4342 24.8507 81.8315 24.488 83.3675 24.488C84.9462 24.488 86.3542 24.8507 87.5915 25.576C88.8289 26.3013 89.8102 27.304 90.5355 28.584C91.2609 29.8427 91.6235 31.2933 91.6235 32.936C91.6235 34.5787 91.2609 36.04 90.5355 37.32C89.8102 38.5787 88.8289 39.5707 87.5915 40.296C86.3542 41.0213 84.9462 41.384 83.3675 41.384ZM83.3675 37.224C84.0075 37.224 84.5729 37.064 85.0635 36.744C85.5755 36.424 85.9809 35.944 86.2795 35.304C86.5782 34.664 86.7275 33.8747 86.7275 32.936C86.7275 31.9973 86.5782 31.208 86.2795 30.568C85.9809 29.928 85.5862 29.448 85.0955 29.128C84.6049 28.808 84.0395 28.648 83.3995 28.648C82.7595 28.648 82.1835 28.808 81.6715 29.128C81.1809 29.448 80.7862 29.928 80.4875 30.568C80.1889 31.208 80.0395 31.9973 80.0395 32.936C80.0395 33.8747 80.1889 34.664 80.4875 35.304C80.7862 35.944 81.1809 36.424 81.6715 36.744C82.1835 37.064 82.7489 37.224 83.3675 37.224ZM99.951 41.384C98.4364 41.384 97.1244 41.1493 96.015 40.68C94.927 40.1893 94.063 39.528 93.423 38.696C92.8044 37.864 92.4524 36.9253 92.367 35.88H97.135C97.2204 36.2427 97.3697 36.5733 97.583 36.872C97.8177 37.1493 98.127 37.3733 98.511 37.544C98.9164 37.6933 99.3644 37.768 99.855 37.768C100.388 37.768 100.815 37.704 101.135 37.576C101.476 37.4267 101.732 37.2347 101.903 37C102.074 36.7653 102.159 36.52 102.159 36.264C102.159 35.8587 102.031 35.5493 101.775 35.336C101.54 35.1227 101.188 34.952 100.719 34.824C100.25 34.6747 99.6844 34.536 99.023 34.408C98.255 34.2373 97.487 34.0453 96.719 33.832C95.9724 33.5973 95.3004 33.3093 94.703 32.968C94.127 32.6267 93.6577 32.1893 93.295 31.656C92.9537 31.1013 92.783 30.4293 92.783 29.64C92.783 28.68 93.0497 27.816 93.583 27.048C94.1164 26.2587 94.8844 25.64 95.887 25.192C96.8897 24.7227 98.1057 24.488 99.535 24.488C101.562 24.488 103.151 24.936 104.303 25.832C105.455 26.728 106.138 27.9333 106.351 29.448H101.871C101.743 29.0213 101.476 28.7013 101.071 28.488C100.666 28.2533 100.154 28.136 99.535 28.136C98.831 28.136 98.2977 28.2533 97.935 28.488C97.5724 28.7227 97.391 29.032 97.391 29.416C97.391 29.672 97.5084 29.9067 97.743 30.12C97.999 30.312 98.3617 30.4827 98.831 30.632C99.3004 30.7813 99.8764 30.9307 100.559 31.08C101.86 31.3573 102.98 31.656 103.919 31.976C104.879 32.296 105.626 32.7653 106.159 33.384C106.692 33.9813 106.948 34.856 106.927 36.008C106.948 37.0533 106.671 37.9813 106.095 38.792C105.54 39.6027 104.74 40.2427 103.695 40.712C102.65 41.16 101.402 41.384 99.951 41.384ZM108.432 41V17.96H113.232V27.176C113.744 26.3653 114.438 25.7147 115.312 25.224C116.187 24.7333 117.211 24.488 118.384 24.488C119.75 24.488 120.891 24.776 121.808 25.352C122.726 25.928 123.419 26.7707 123.888 27.88C124.358 28.968 124.592 30.2907 124.592 31.848V41H119.824V32.296C119.824 31.1013 119.568 30.1733 119.056 29.512C118.566 28.8507 117.776 28.52 116.688 28.52C116.048 28.52 115.462 28.68 114.928 29C114.395 29.32 113.979 29.7787 113.68 30.376C113.382 30.952 113.232 31.6453 113.232 32.456V41H108.432ZM126.573 41V24.872H131.373V41H126.573ZM128.973 23.016C128.119 23.016 127.426 22.7707 126.893 22.28C126.359 21.7893 126.093 21.1707 126.093 20.424C126.093 19.656 126.359 19.0267 126.893 18.536C127.426 18.0453 128.119 17.8 128.973 1Line truncated
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 8.3 KiB |
@@ -0,0 +1,4 @@
|
||||
<svg width="148" height="60" viewBox="0 0 148 60" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M24.8232 10.698C29.2746 9.44855 32.8671 10.1513 34.9756 10.698C37.0843 11.2447 42.1601 12.103 46.2988 13.5867C50.4378 15.0705 51.375 17.5699 51.375 19.6003C51.375 21.6307 51.4531 32.4072 51.4531 36.3123C51.4531 40.217 50.9846 42.1701 49.1104 43.1853C47.2357 44.2007 38.4891 48.1047 35.7559 49.198C33.0226 50.2912 30.0549 50.1352 28.2588 49.5105C26.4616 48.8853 15.5291 44.9027 13.0303 43.9656C10.5316 43.0283 10.1406 40.2952 10.1406 37.0935V22.9587C10.1406 17.1017 11.3125 15.3832 13.5771 14.5242C15.8419 13.6651 20.3718 11.9475 24.8232 10.698ZM27.8975 35.5222C27.6274 35.5247 27.3569 35.5277 27.0869 35.532C27.0339 35.638 26.9831 35.7415 26.9316 35.8445C26.868 36.4176 26.8831 36.7023 27.1846 37.2009C27.9608 37.9567 28.6385 38.0827 29.6855 38.0925C30.1402 38.0159 30.3548 37.8879 30.6797 37.5623C30.788 37.1391 30.754 36.741 30.6797 36.3123C30.4534 35.9616 30.3091 35.8772 29.918 35.7468L29.5859 35.6882C29.167 35.5923 28.7841 35.5309 28.3535 35.5164C28.1986 35.5182 28.0479 35.5204 27.8975 35.5222ZM19.2783 34.282C19.2783 34.7506 19.2784 34.7508 19.5322 35.0535C19.6582 35.1629 19.7801 35.2695 19.9023 35.3757C20.3549 35.783 20.6857 35.9836 21.2949 36.0505C22.2818 36.0673 22.9182 36.0388 23.6904 35.3953C23.9638 35.0634 23.9639 35.063 23.9639 34.4382L23.7783 34.6335L23.4951 34.907L23.1924 35.2488C22.6594 35.5642 22.388 35.5854 21.7773 35.6003C20.8085 35.5991 20.3119 35.3053 19.6191 34.6433C19.5031 34.5206 19.391 34.4011 19.2783 34.282ZM27.3857 28.4353C26.0365 28.4353 24.9424 29.8853 24.9424 31.6736C24.9425 33.4617 26.0366 34.9119 27.3857 34.9119C28.7348 34.9116 29.828 33.4616 29.8281 31.6736C29.8281 29.8854 28.7348 28.4356 27.3857 28.4353ZM14.124 32.0955C13.5053 32.0071 13.0472 31.9828 12.7178 32.5642C12.7343 33.3251 12.9747 33.7431 13.499 34.282C14.1395 34.7943 14.8751 34.9389 15.6855 34.907C16.1541 34.5946 16.1546 34.5944 16.2168 34.3015C16.2156 34.1887 16.2141 34.079 16.2129 33.9695C16.2141 33.8567 16.2156 33.7469 16.2168 33.6375C16.1546 33.3449 16.1538 33.3451 15.6855 33.033C15.37 32.939 15.0571 32.834 14.748 32.7205C14.5463 32.5061 14.3388 32.2968 14.124 32.0955ZM16.4717 25.9705C15.1227 25.9708 14.0294 27.4207 14.0293 29.2087C14.0294 30.9967 15.1227 32.4457 16.4717 32.446C17.8209 32.446 18.9149 30.9969 18.915 29.2087C18.915 27.4205 17.8209 25.9705 16.4717 25.9705ZM27.0645 29.3513C27.515 29.3515 27.8807 29.7915 27.8809 30.3347C27.8807 30.878 27.515 31.3189 27.0645 31.3191C26.6137 31.3191 26.2482 30.8781 26.248 30.3347C26.2482 29.7913 26.6138 29.3513 27.0645 29.3513ZM28.6309 30.4744C28.8641 30.4744 29.0537 30.664 29.0537 30.8972C29.0534 31.1302 28.8639 31.3191 28.6309 31.3191C28.3979 31.319 28.2093 31.1301 28.209 30.8972C28.209 30.664 28.3977 30.4745 28.6309 30.4744ZM16.1514 26.8865C16.6018 26.8867 16.9666 27.3267 16.9668 27.8699C16.9668 28.4132 16.602 28.854 16.1514 28.8542C15.7006 28.8542 15.335 28.4134 15.335 27.8699C15.3352 27.3266 15.7007 26.8865 16.1514 26.8865ZM17.7178 28.0095C17.951 28.0095 18.1405 28.1992 18.1406 28.4324C18.1404 28.6655 17.9509 28.8542 17.7178 28.8542C17.4847 28.8542 17.2961 28.6654 17.2959 28.4324C17.296 28.1992 17.4846 28.0096 17.7178 28.0095Z" fill="#7E7E7E"/>
|
||||
<path d="M70.2531 41.384C68.7385 41.384 67.4265 41.1493 66.3171 40.68C65.2291 40.1893 64.3651 39.528 63.7251 38.696C63.1065 37.864 62.7545 36.9253 62.6691 35.88H67.4371C67.5225 36.2427 67.6718 36.5733 67.8851 36.872C68.1198 37.1493 68.4291 37.3733 68.8131 37.544C69.2185 37.6933 69.6665 37.768 70.1571 37.768C70.6905 37.768 71.1171 37.704 71.4371 37.576C71.7785 37.4267 72.0345 37.2347 72.2051 37C72.3758 36.7653 72.4611 36.52 72.4611 36.264C72.4611 35.8587 72.3331 35.5493 72.0771 35.336C71.8425 35.1227 71.4905 34.952 71.0211 34.824C70.5518 34.6747 69.9865 34.536 69.3251 34.408C68.5571 34.2373 67.7891 34.0453 67.0211 33.832C66.2745 33.5973 65.6025 33.3093 65.0051 32.968C64.4291 32.6267 63.9598 32.1893 63.5971 31.656C63.2558 31.1013 63.0851 30.4293 63.0851 29.64C63.0851 28.68 63.3518 27.816 63.8851 27.048C64.4185 26.2587 65.1865 25.64 66.1891 25.192C67.1918 24.7227 68.4078 24.488 69.8371 24.488C71.8638 24.488 73.4531 24.936 74.6051 25.832C75.7571 26.728 76.4398 27.9333 76.6531 29.448H72.1731C72.0451 29.0213 71.7785 28.7013 71.3731 28.488C70.9678 28.2533 70.4558 28.136 69.8371 28.136C69.1331 28.136 68.5998 28.2533 68.2371 28.488C67.8745 28.7227 67.6931 29.032 67.6931 29.416C67.6931 29.672 67.8105 29.9067 68.0451 30.12C68.3011 30.312 68.6638 30.4827 69.1331 30.632C69.6025 30.7813 70.1785 30.9307 70.8611 31.08C72.1625 31.3573 73.2825 31.656 74.2211 31.976C75.1811 32.296 75.9278 32.7653 76.4611 33.384C76.9945 33.9813 77.2505 34.856 77.2291 36.008C77.2505 37.0533 76.9731 37.9813 76.3971 38.792C75.8425 39.6027 75.0425 40.2427 73.9971 40.712C72.9518 41.16 71.7038 41.384 70.2531 41.384ZM86.4784 41.384C84.921 41.384 83.5237 41.0213 82.2864 40.296C81.049 39.5707 80.0677 38.5787 79.3424 37.32C78.617 36.04 78.2544 34.5893 78.2544 32.968C78.2544 31.304 78.617 29.8427 79.3424 28.584C80.0677 27.304 81.049 26.3013 82.2864 25.576C83.545 24.8507 84.9424 24.488 86.4784 24.488C88.057 24.488 89.465 24.8507 90.7024 25.576C91.9397 26.3013 92.921 27.304 93.6464 28.584C94.3717 29.8427 94.7344 31.2933 94.7344 32.936C94.7344 34.5787 94.3717 36.04 93.6464 37.32C92.921 38.5787 91.9397 39.5707 90.7024 40.296C89.465 41.0213 88.057 41.384 86.4784 41.384ZM86.4784 37.224C87.1184 37.224 87.6837 37.064 88.1744 36.744C88.6864 36.424 89.0917 35.944 89.3904 35.304C89.689 34.664 89.8384 33.8747 89.8384 32.936C89.8384 31.9973 89.689 31.208 89.3904 30.568C89.0917 29.928 88.697 29.448 88.2064 29.128C87.7157 28.808 87.1504 28.648 86.5104 28.648C85.8704 28.648 85.2944 28.808 84.7824 29.128C84.2917 29.448 83.897 29.928 83.5984 30.568C83.2997 31.208 83.1504 31.9973 83.1504 32.936C83.1504 33.8747 83.2997 34.664 83.5984 35.304C83.897 35.944 84.2917 36.424 84.7824 36.744C85.2944 37.064 85.8597 37.224 86.4784 37.224ZM103.062 41.384C101.547 41.384 100.235 41.1493 99.1259 40.68C98.0379 40.1893 97.1739 39.528 96.5339 38.696C95.9152 37.864 95.5632 36.9253 95.4779 35.88H100.246C100.331 36.2427 100.481 36.5733 100.694 36.872C100.929 37.1493 101.238 37.3733 101.622 37.544C102.027 37.6933 102.475 37.768 102.966 37.768C103.499 37.768 103.926 37.704 104.246 37.576C104.587 37.4267 104.843 37.2347 105.014 37C105.185 36.7653 105.27 36.52 105.27 36.264C105.27 35.8587 105.142 35.5493 104.886 35.336C104.651 35.1227 104.299 34.952 103.83 34.824C103.361 34.6747 102.795 34.536 102.134 34.408C101.366 34.2373 100.598 34.0453 99.8299 33.832C99.0832 33.5973 98.4112 33.3093 97.8139 32.968C97.2379 32.6267 96.7685 32.1893 96.4059 31.656C96.0645 31.1013 95.8939 30.4293 95.8939 29.64C95.8939 28.68 96.1605 27.816 96.6939 27.048C97.2272 26.2587 97.9952 25.64 98.9979 25.192C100.001 24.7227 101.217 24.488 102.646 24.488C104.673 24.488 106.262 24.936 107.414 25.832C108.566 26.728 109.249 27.9333 109.462 29.448H104.982C104.854 29.0213 104.587 28.7013 104.182 28.488C103.777 28.2533 103.265 28.136 102.646 28.136C101.942 28.136 101.409 28.2533 101.046 28.488C100.683 28.7227 100.502 29.032 100.502 29.416C100.502 29.672 100.619 29.9067 100.854 30.12C101.11 30.312 101.473 30.4827 101.942 30.632C102.411 30.7813 102.987 30.9307 103.67 31.08C104.971 31.3573 106.091 31.656 107.03 31.976C107.99 32.296 108.737 32.7653 109.27 33.384C109.803 33.9813 110.059 34.856 110.038 36.008C110.059 37.0533 109.782 37.9813 109.206 38.792C108.651 39.6027 107.851 40.2427 106.806 40.712C105.761 41.16 104.513 41.384 103.062 41.384ZM111.543 41V17.96H116.343V27.176C116.855 26.3653 117.548 25.7147 118.423 25.224C119.298 24.7333 120.322 24.488 121.495 24.488C122.86 24.488 124.002 24.776 124.919 25.352C125.836 25.928 126.53 26.7707 126.999 27.88C127.468 28.968 127.703 30.2907 127.703 31.848V41H122.935V32.296C122.935 31.1013 122.679 30.1733 122.167 29.512C121.676 28.8507 120.887 28.52 119.799 28.52C119.159 28.52 118.572 28.68 118.039 29C117.506 29.32 117.09 29.7787 116.791 30.376C116.492 30.952 116.343 31.6453 116.343 32.456V41H111.543ZM129.683 41V24.872H134.483V41H129.683ZM132.083 23.016C131.23 23.016 130.537 22.7707 130.003 22.28C129.47 21.7893 129.203 21.1707 129.203 20.424C129.203 19.656 129.47 19.0267 130.003 18.536C130.537 1Line truncated
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 8.3 KiB |
@@ -5,9 +5,16 @@
|
||||
<link>https://supabase.com</link>
|
||||
<description>Latest news from Supabase</description>
|
||||
<language>en</language>
|
||||
<lastBuildDate>Fri, 18 Jul 2025 00:00:00 -0700</lastBuildDate>
|
||||
<lastBuildDate>Tue, 12 Aug 2025 00:00:00 -0700</lastBuildDate>
|
||||
<atom:link href="https://supabase.com/rss.xml" rel="self" type="application/rss+xml"/>
|
||||
<item>
|
||||
<guid>https://supabase.com/blog/supabase-auth-build-vs-buy</guid>
|
||||
<title>Supabase Auth: Build vs. Buy</title>
|
||||
<link>https://supabase.com/blog/supabase-auth-build-vs-buy</link>
|
||||
<description>The reasons why (and why not) to use Supabase Auth instead of building your own.</description>
|
||||
<pubDate>Tue, 12 Aug 2025 00:00:00 -0700</pubDate>
|
||||
</item>
|
||||
<item>
|
||||
<guid>https://supabase.com/blog/launch-week-15-top-10</guid>
|
||||
<title>Top 10 Launches of Launch Week 15</title>
|
||||
<link>https://supabase.com/blog/launch-week-15-top-10</link>
|
||||
|
||||
Reference in new issue
Block a user