Store and serveany type of digital content
An open source S3 compatible storage solution with unlimited scalability, for any file type. With custom policies and permissions that are familiar and easy to implement.
Everything you need
for storage
S3 compatible storage with global CDN, image transformations, and fine-grained access controls powered by Postgres RLS.
Interoperable
Integrates with the rest of Supabase — Auth and Postgres work together.
Lightning fast
Thin API server layer built on Postgres permissions with content delivered via global CDN.
Multiple bucket types
Files, Analytics, or Vector buckets — choose the right storage model for your application.
Supabase is great because it has everything. I don't need a different solution for authentication, a different solution for database, or a different solution for storage.
Bucket types
for every application
Files buckets
- Store images, videos, documents, and more
- Serve fast from a global CDN
- Fine-grained access controls
- Image optimizations and transformations
Analytics buckets
- Apache Iceberg open table format
- Efficient query, partition, and transform
- Historical and time-series data
- Optionally expose via Postgres
Vector buckets
- Store and index vector embeddings
- Multiple distance metrics
- Metadata filtering and similarity queries
- RAG systems and AI-powered search
Simple and convenient
APIs
Built from the ground up for interoperable authentication. Fast and easy to implement using our powerful library clients.
// Upload an image to the "avatars" bucket
const spaceCat = event.target.files[0]
const { data, error } = await supabase
.storage
.from('avatars')
.upload('space-cat.png', spaceCat)// Upload an image to the "avatars" bucket
const spaceCat = event.target.files[0]
const { data, error } = await supabase
.storage
.from('avatars')
.upload('space-cat.png', spaceCat)Integrates natively
with Supabase Auth
Storage authorization is built around Postgres so that you can use any combination of SQL, Postgres functions, and even your own metadata to write policies.
create policy "Public Access"
on storage.objects for all
using ( bucket_id = 'avatars' );create policy "Public Access"
on storage.objects for all
using ( bucket_id = 'avatars' );Kickstart your next project
with production ready templates
View all examplesStripe Subscriptions Starter
The all-in-one subscription starter kit for high-performance SaaS applications, powered by Stripe, Supabase, and Vercel.
Next.js Starter
A Next.js App Router template configured with cookie-based auth using Supabase, TypeScript and Tailwind CSS.
AI Chatbot
An open-source AI chatbot app template built with Next.js, the Vercel AI SDK, OpenAI, and Supabase.
LangChain + Next.js Starter
Starter template and example use-cases for LangChain projects in Next.js, including chat, agents, and retrieval.
Flutter User Management
Get started with Supabase and Flutter by building a user management app with auth, file storage, and database.
Expo React Native Starter
An extended version of create-t3-turbo implementing authentication on both the web and mobile applications.