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.
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'); - 
Configure the Supabase database credentials in your Worker:
You need to add your Supabase URL and anon key as secrets to your Worker. Get these from your Supabase Dashboard ↗ under Settings > API, then add them as secrets using Wrangler:
Terminal window # Add the Supabase URL as a secretnpx wrangler secret put SUPABASE_URL# When prompted, paste your Supabase project URL# Add the Supabase anon key as a secretnpx wrangler secret put SUPABASE_KEY# When prompted, paste your Supabase anon/public key - 
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 added as secrets to your Worker.
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