The Open Source Firebase Alternative | Supabase

image

Supabase is an open source Firebase alternative. Start your project with a Postgres database, Authentication, instant APIs, Edge Functions, Realtime subscriptions, and Storage.

backed by

Your browser can't play this video. Learn more

Build faster and focus on your products

Database Every project is a full Postgres database, the world's most trusted relational database.Learn more about /databaseLearn moreAuthentication Add user sign ups and logins, securing your data with Row Level Security.Storage Store, organize, and serve large files. Any media, including videos and images.Learn more about /storageLearn more

Join the community

Supported by a network of early advocates, contributors, and champions.

What can you build with supabase?

There are many example apps and starter projects to get going

Svelte kanban board

A Trello clone using Supabase as the storage system.

joshnuss

Next.js Realtime chat app

Next.js Slack clone app using Supabase realtime subscriptions

supabase

Next.js Subscription and Auth

The all-in-one starter kit for high-performance SaaS applications.

Vercel

Expo Starter

Template bottom tabs with auth flow (Typescript)

codingki

NestJS example

NestJS example using Supabase Auth

hiro1107

Example app of real-time chat using supabase realtime api

shwosner

Instant APIs that do the hard work for you

We introspect your database to provide APIs instantly. Stop building repetitive CRUD endpoints and focus on your product.

TypeScript Support Type definitions built directly from your database schemaExplore more about /docs/client/generating-typesExplore moreInstall from CDN Use Supabase in the browser without a build processExplore more about /docs/client/initializingExplore moreLocal emulator Develop locally and push to production when you're readyExplore more about /docs/guides/self-hostingExplore moreSupabase CLI Manage Supabase projects from your local machineExplore more about https://github.com/supabase/cliExplore more

import { createClient } from '@supabase/supabase-js'
// Initialize const supabaseUrl = 'https://chat-room.supabase.co'const supabaseKey = 'public-anon-key'const supabase = createClient(supabaseUrl, supabaseKey)

// Create a new userconst { user, error } = await supabase.auth.signUpWithPassword({
  email: 'example@email.com',
  password: 'example-password',
})
import { createClient } from '@supabase/supabase-js'
// Initialize const supabaseUrl = 'https://chat-room.supabase.co'const supabaseKey = 'public-anon-key'const supabase = createClient(supabaseUrl, supabaseKey)

// Get notified of all new chat messagesconst realtime = supabase
  .from('messages')
  .on('INSERT', message => {
    console.log('New message!', message)
  })
  .subscribe()
import '@supabase/supabase-js'
// Initialize const supabaseUrl = 'https://chat-room.supabase.co'const supabaseKey = 'public-anon-key'const supabase = createClient(supabaseUrl, supabaseKey)

// Get public rooms and their messagesconst publicRooms = await supabase
  .from('rooms')
  .select(`
    name,
    messages ( text )
  `)
  .eq('public', true)
import { createClient } from '@supabase/supabase-js'
// Initialize const supabaseUrl = 'https://chat-room.supabase.co'const supabaseKey = 'public-anon-key'const supabase = createClient(supabaseUrl, supabaseKey)

// Create a new chat roomconst newRoom = await supabase
  .from('rooms')
  .insert({ name: 'Supabase Fan Club', public: true })
import { createClient } from '@supabase/supabase-js'
// Initialize const supabaseUrl = 'https://chat-room.supabase.co'const supabaseKey = 'public-anon-key'const supabase = createClient(supabaseUrl, supabaseKey)

// Update multiple usersconst updatedUsers = await supabase
  .from('users')
  .eq('account_type', 'paid')
  .update({ highlight_color: 'gold' })

Build your app without leaving the dashboard

Your browser can't play this video. Learn more

Your browser can't play this video. Learn more

Your browser can't play this video. Learn more

Manage your data with the familiarity of a spreadsheet

You don’t have to be a database expert to use Supabase. Our table editor makes Postgres easy to use, even for non-techies. You can do everything right in our dashboard.

In-built SQL editor for when you need greater control

Write, save, and execute SQL queries directly on our dashboard, with templates to save you time. Run common queries and even build applications using our growing list of templates.

User management as straight-forward as it can be

Easily manage your users with Supabase Auth, with email logins, magic links, and third-party logins. Create complex access policies with SQL rules to fit your unique business needs.