Supabase
Supabase ↗ is an open source Firebase alternative and a PostgreSQL database service that offers real-time functionality, database backups, and extensions. With Supabase, developers can quickly set up a PostgreSQL database and build applications.
Database Integrations allow you to connect to a database from your Worker by getting the right configuration from your database provider and adding it as secrets to your Worker.
To set up an integration with Supabase:
- 
You need to have an existing Supabase database to connect to. Create a Supabase database ↗ or have an existing database to connect to Supabase and load data from ↗.
 - 
Create a
countriestable with the following query. You can create a table in your Supabase dashboard in two ways:- Use the table editor, which allows you to set up Postgres similar to a spreadsheet.
 - Alternatively, use the SQL editor ↗:
 
CREATE TABLE countries (id SERIAL PRIMARY KEY,name VARCHAR(255) NOT NULL); - 
Insert some data in your newly created table. Run the following commands to add countries to your table:
INSERT INTO countries (name) VALUES ('United States');INSERT INTO countries (name) VALUES ('Canada');INSERT INTO countries (name) VALUES ('The Netherlands'); - 
Add the Supabase database integration to your Worker:
- Log in to the Cloudflare dashboard ↗ and select your account.
 - In Account Home, select Workers & Pages.
 - In Overview, select your Worker.
 - Select Integrations > Supabase.
 - Follow the setup flow, selecting the database created in step 1.
 
 - 
In your Worker, install the
@supabase/supabase-jsdriver to connect to your database and start manipulating data:Terminal window npm i @supabase/supabase-jsTerminal window yarn add @supabase/supabase-jsTerminal window pnpm add @supabase/supabase-js - 
The following example shows how to make a query to your Supabase database in a Worker. The credentials needed to connect to Supabase have been automatically added as secrets to your Worker through the integration.
import { createClient } from '@supabase/supabase-js';export default {async fetch(request, env) {const supabase = createClient(env.SUPABASE_URL, env.SUPABASE_KEY);const { data, error } = await supabase.from("countries").select('*');if (error) throw error;return new Response(JSON.stringify(data), {headers: {"Content-Type": "application/json",},});},}; 
To learn more about Supabase, refer to Supabase's official documentation ↗.
Was this helpful?
- Resources
 - API
 - New to Cloudflare?
 - Products
 - Sponsorships
 - Open Source
 
- Support
 - Help Center
 - System Status
 - Compliance
 - GDPR
 
- Company
 - cloudflare.com
 - Our team
 - Careers
 
- 2025 Cloudflare, Inc.
 - Privacy Policy
 - Terms of Use
 - Report Security Issues
 - Trademark