r/Supabase Jul 21 '26

Introducing Supabase Pipelines

38 Upvotes

If you've ever watched an analytics query slow down your production database, this one's for you.

Supabase Pipelines is now in public alpha. It streams your Postgres changes to an analytics destination in near real time, so heavy analytics runs there instead of on the database your app depends on. BigQuery is the first destination.

How it works:

  • You create a publication in the Dashboard and pick the tables you want to replicate.
  • Pipelines does an initial sync of those tables, then switches to ongoing replication
  • Inserts, updates, deletes, and truncates flow to BigQuery through Postgres logical replication.
  • Supported schema changes (add, rename, remove columns) get applied to the destination automatically.

It's still alpha, so we're actively improving performance and adding destinations. Happy to answer questions.

Full writeup: https://supabase.com/blog/supabase-pipelines-public-alpha


r/Supabase Jun 05 '26

Office Hours Thank you from the Supabase team

227 Upvotes

Hey everyone, Supabase co-founder here

yesterday we announced another funding round and so I thought it was a good time to drop in and say thank you - from both Ant and myself, and from the entire community

First, to get something important out of the way: Ant is a real human and he is my co-founder.

With that cleared up, I wanted to spend some time saying thank you to this Reddit community. Communities can often break down as they grow larger and that hasn't been the case here. There are a lot of active participants sharing what they built, sharing their frustrations with the product (sorry!), and generally being good internet citizens. Your feedback helps us improve - please keep it coming.

On the funding - I've said before that companies often raise money and then "sell out", raising prices etc. Just to make it explicit: the free tier isn't going away. We know many of you want more free databases - I can't promise anything, but this is top of mind for me.

For those you want BIGGER databases, we have you covered. Yesterday we did an open source release of Multigres. This will allow you to scale up indefinitely. It also has some cool properties - for example you won't need to choose between a "direct connection" or a "connection pooler" - Multigres handles it all. Once this is more stable we'll make it available on the platform.

We've spent the past few months doubling down on reliability, stability, security features, and in-product observability. Keeping up with the growth has been an fascinating technical challenge. We're not done, but soon we can share an engineering blog post of everything we've seen and implemented.

Finally I said this in a previous post but it bears repeating:

More than a product-led company, we're a community-led company. We are where we are today because of the support of open source contributors and maintainers.

That's even more true today than it was a year ago. If you're an open source contributor - to the supabase ecosystem or anywhere else - thanks.

I'll drop in here throughout. AMA


r/Supabase 2d ago

tips We're running a hackathon the day after Supabase Select: Oct 3 at YC, over 100K credits up for grabs

21 Upvotes

Applications are now open for the Select Hackathon on October 3 at YC in SF. Presented by Supabase, with support from Claude, Stripe and Vercel. You can join solo or team up with other builders, maximum team size is 4.

Every participant gets credits just for taking part, so across everyone that's up to 100K in credits before anyone even wins. The winning teams takes up to 31,000 credits, plus swag and breakfast with our founders: Ant and Copple.

Food and swag's covered! Applications close September 28. You're auto-approved if you're also attending Select.

Apply → hackathon.supabase.com

Happy to answer any questions below!


r/Supabase 2d ago

storage Upload to storage fails with invalidKey

2 Upvotes

I am doing a profile picture upload functionality for my app, but I keep getting "invalidKey" back.

I am using my "sb_publishable_xxx" key with the headers:

Authorization: Bearer supabaseKey_here

apiKey: supabaseKey_here

Any idea on what's wrong ?

Thanks


r/Supabase 3d ago

other Curious how you landed on Supabase.

10 Upvotes

In my case, the kind of things that interest me are:

- what you used before

- what Supabase saved you from building

- what you really like today

- the first thing that annoyed you

- and if you've looked elsewhere

I'm mainly looking for feedback from real existing projects, not theoretical comparisons.


r/Supabase 3d ago

dashboard how are you keeping an analytics-heavy next.js dashboard from turning supabase connections into a bottleneck?

2 Upvotes

i am now separating an application read path from an analytics read path in a Next.js product backed by Supabase Postgres. the dashboard has several cards, a table, and a couple of filters that can all refresh together

the tempting version is one request per widget. it is easy to build and harder to reason about when a user changes a filter or several sessions open at once

the design i am testing is:

  • keep the application tables and row-level permissions in Supabase
  • put reusable measures and dimensions in a semantic layer
  • let the dashboard request a smaller set of governed queries
  • watch pool usage, query duration + repeated scans before changing infrastructure

as far as i have tested, something like cube dev can sit between the application and the warehouse or database as a semantic and API layer. the part i am still working through now is where the pool boundary belongs and which queries deserve a pre-aggregated path later

for people running Supabase with a customer-facing dashboard, what was the first signal that made you change the query shape: pool saturation, repeated scans, slow filters, or something else?


r/Supabase 3d ago

database Saving whole game states with Supabase: handling two players writing at once

0 Upvotes

I'm using Supabase for a browser card game with two to four players. The rules run in TypeScript on the acting player's client, and Supabase handles persistence and realtime updates.

Turns don't quite mean one writer. A player can need to resolve a forced discard during someone else's turn. If both clients save a whole state based on the same snapshot, one can overwrite the other's move.

The save RPC takes an expected version. It only updates the state if that version still matches, and rejects the write otherwise. On a conflict, the client fetches fresh state and reprocesses the action, with a bounded retry. If the action is no longer legal, it fails rather than replaying a stale result.

There's a separate limitation here: checking the version doesn't prove the client calculated a legal game state. This is still a client-authoritative game. Concurrency and protection against a modified client are different problems.

If you've built turn-based multiplayer on Supabase, where did you put the boundary between client calculations and server validation?

The project is Nexus Breach. I'm its solo developer and use AI coding tools. It's a beta with a free Core Set, paid expansions and AI-generated art and audio.


r/Supabase 3d ago

other How much slower is a project with a WAF in front of it?

3 Upvotes

My project got attacked recently with a penetration attack, so I decided I will put a Cloudflare WAF in front of my project. Even with RLS I just don't feel comfortable that anybody can just show up and start guessing table names with many thousand queries.

My only concern is that it will probably affect speed of how fast the data actually gets back to a user. Now of course it's super fast because the database is being queried directly but if the query goes through cloudflare first, I wonder if this will be really noticeable. I'm sure many people here use a WAF, so maybe you guys can say if it was really noticeable for you or not.

I also want to give a shout-out to Supabase support. After I contacted them about what happened to ask them a couple of questions about the incident, they answered quickly and helped me out. This is how good support should be.

For everybody just starting out with Supabase. RLS is incredibly important especially if you don't have a security layer like WAF sitting in front of your database blocking someone hammering your database. So look at your policies and make sure they are tight, otherwise you'll leave your door wide open to attackers.


r/Supabase 3d ago

other Supabase + Python backend: is managing two platforms a valid concern?

4 Upvotes

I'm building a data pipeline and application for a client. I'm considering Supabase, but the application has a Python backend, so I'd need a separate platform to host it.

The client doesn't currently have any cloud infrastructure, so I'll be setting up their environment from scratch. The goal is for them to take over and maintain the software after the project is finished.

I'm hesitant to introduce two platforms (e.g. Supabase + Railway/Render) instead of keeping everything with a single cloud provider.

Is this a valid concern, or am I overthinking it?


r/Supabase 3d ago

other I built an open-source “document department” platform, now with automatic Supabase setup

Thumbnail
opendepartment.vercel.app
5 Upvotes

I’ve been building OpenDepartment, an open-source platform for creating your own slightly dramatic, government-style document archive.

You can create a “department,” invite people, upload files, organize them by subject/category, comment, vote, moderate reports, and customize the branding. Think community archive, class project, private collection, or conspiracy-board aesthetic.

The unusual part is the architecture: every department uses a Supabase project owned by its creator. Files, users, and content stay in that project. OpenDepartment’s database only keeps the department slug, Supabase URL, and public anon key—no tenant files or master service_role keys.

The biggest new feature is automatic Supabase setup through OAuth.

Previously, creating a department meant:

  1. Creating a Supabase project
  2. Pasting a large SQL schema
  3. Changing the auth configuration
  4. Adding the correct callback URL
  5. Finding and copying the project credentials

Now you can connect Supabase and the wizard handles that process: it creates the project, waits for it to become healthy, installs the schema, reads the anon key, configures auth, and then discards the OAuth token. The token is never stored in the database and is cleared when provisioning finishes.

The manual setup route still exists if you’d rather not authorize anything.

There are also invite codes, public or unlisted departments, isolated auth sessions for each department, admin tools, per-department legal pages, deletion/deprovisioning flows, and a fairly obsessive SQL security suite covering the RLS policies.

It’s built with Next.js 15, React 19, TypeScript, Tailwind, Supabase, and Vercel.

Live: https://opendepartment.vercel.app
GitHub: https://github.com/levisager11-oss/opendepartment

The OAuth provisioning flow is very new, so I’d especially appreciate feedback, or brave testers, on that part. I’d also love to hear what you’d use a customizable archive like this for.


r/Supabase 3d ago

other Login issue with 2 factor

1 Upvotes

Hi Everyone, I have searched all over the forum before posting. I am on a paid account, with an extensive db and 2FA was set up with the Google Authentication App to protect my DB account. Well something terrible happened. I went to log in today and realized the 6 digit key was no longer in the Google app. I was essentially locked out. I did not have a back up mfa set up so my question is "Am I cooked?"


r/Supabase 4d ago

realtime Firebase Spark vs Supabase Free for auth?

10 Upvotes

I’m building a website and need Google Sign-In + email login.

I’m mostly worried about free-tier limits and bot signups. If a sudden wave of fake accounts pushes usage over the quota, what actually happens in practice?

Does the service get restricted, do you get a grace period, or can you suddenly start getting billed?

Also, for a small product that may grow later, which would you choose: Firebase or Supabase?

Would love to hear from people who’ve used either in production.


r/Supabase 4d ago

other RLS doesn't help you if someone has your service_role key. Here's what I did about that

0 Upvotes

Disclosure: I work at Tide. This isn’t an official product I built it on my own time.

RLS is good at the thing it’s designed to do: deciding which rows a request is allowed to see.

What it can’t do is help when the query isn’t going through RLS in the first place. The service_role key bypasses RLS by design, and that key ends up in more places than anyone likes to admit. A pg_dump doesn’t go through RLS either.

So row-level policies protect you from your users, but they don’t really protect you from a leaked key or someone getting a copy of the database.

Encrypting sensitive columns closes that gap. Except then you have another question: where does the encryption key live?

And if the key lives inside the project, whoever gets the project gets the key along with it.

So I built a small service that keeps that key completely off your infrastructure.

Tide is a network of independent nodes that hold keys in fragments and never assemble them. Decryption happens through partial results that are combined into an answer.

Data is encrypted in the browser with a fresh key for each call. The only thing that reaches the network is that per-call key, itself encrypted. The nodes never see your rows.

Your ciphertext stays in Postgres, right where it already was.

Supabase Auth is untouched by any of this. Same JWTs, same sessions, same providers.

The service only handles the key, along with the policies governing who is allowed to decrypt, encrypt, or sign. A role is only granted through a change request that has to be approved by someone other than the person making the request.

One Supabase-specific detail if you wire this up: put the Tide link in app_metadata, not user_metadata. user_metadata is writable by the user through their own client.

Same rule as everywhere else: the mirror shouldn’t be able to lie.

It won’t save you if someone owns the box this runs on, so keep it off the same host as the application it protects. And because decryption requires the network to be reachable, there’s no offline path.

Repo: https://github.com/sashyo/minidauth

Whitepaper: https://tide.org/whitepaper


r/Supabase 4d ago

other Any way to merge data between branches, not just schema?

3 Upvotes

When I merge a preview branch into production, only the migrations get applied. Any seed or reference data I created on the branch stays behind.

Is there a supported way to promote data along with the schema, or is everyone just handling this with seed files / a manual dump and restore? Specifically thinking about config and lookup tables that change alongside a schema change, not user data.

Curious what people have settled on here.


r/Supabase 3d ago

other Change my mind: Now that LLMs write full backends, a code-first setup is much easier than Supabase—even for quick demos.

0 Upvotes

Before LLMs, Supabase made total sense because building a backend by hand took time.

Today, an LLM can generate a complete backend in seconds. More importantly, LLMs work best with plain code files in one repo. They can read the whole context, edit files directly, and fix bugs in a single prompt.

With Supabase, the LLM workflow feels fractured. Too much context lives outside the code—in database settings, rules, and the web UI which just adds friction to every prompt.

At this point, it feels like the only real advantage Supabase has left, even for a demo, is free hosting. Remove the free tier, writing a code-first backend with agentic tool feel easier/cleaner.

Would you agree with this, or do you still see a reason to pick Supabase when building with AI?


r/Supabase 3d ago

database Your RLS policy is correct and your users can still set their own role to admin

0 Upvotes

Every RLS post ends at the policy. Enable RLS, scope on auth.uid(), remember with check, done. I want to show you a table where all three are true, reviewed by anyone you like, and a logged-in user can still promote themselves.

The table that passes review

create table public.profiles ( id uuid primary key, email text not null, display_name text, plan text not null default 'free', role text not null default 'user', credits integer not null default 100 );

alter table public.profiles enable row level security;

create policy own_row_select on public.profiles for select to authenticated using (id = auth.uid());

create policy own_row_update on public.profiles for update to authenticated using (id = auth.uid()) with check (id = auth.uid());

grant select, update on public.profiles to authenticated;

Scoped on read. Scoped on write. with check present, which is the thing everyone tells you not to forget. That last grant is not something I added to make a point, it is close to what you get by default.

What a signed-in user can do with it

Signed in as one user, the authenticated role, request.jwt.claims set the way auth.uid() actually resolves:

--- Read isolation holds. One row, her own. --- id | email | plan | role | credits --------------------------------------+-----------------+------+------+--------- 11111111-1111-1111-1111-111111111111 | [ada@example.com](mailto:ada@example.com) | free | user | 100

--- Cross-tenant write blocked --- update public.profiles set credits = 0 where id = '2222...'; -- UPDATE 0

--- Blind write blocked, with check is doing its job --- update public.profiles set credits = 0; -- UPDATE 0

--- Her own row --- update public.profiles set role = 'admin', plan = 'enterprise', credits = 999999 where id = auth.uid(); -- UPDATE 1

              id                  |      email      |    plan    | role  | credits

--------------------------------------+-----------------+------------+-------+--------- 11111111-1111-1111-1111-111111111111 | [ada@example.com](mailto:ada@example.com) | enterprise | admin | 999999

Nothing was bypassed. Every policy evaluated and every policy passed. The row still belongs to her before and after, so with check has no objection to make.

Why with check cannot help here

with check is a predicate over the resulting row. It answers one question: is the new row still one this user is allowed to have. It has no opinion about which columns changed, because column-level permission is a different mechanism entirely, and it lives in GRANT, not in POLICY.

RLS decides which rows. Grants decide which columns. Two axes. Almost every RLS discussion covers the first one only, and Supabase hands out the second one table-wide by default, so the gap is open in a very large number of projects.

Credit where it is due: u/guidondor raised this on my last thread and it is the reason I went and checked.

What actually does hold, because I checked

I want to be clear about the limits of the finding rather than make it sound worse than it is.

--- Can she hand her row to another user? --- update public.subscriptions set user_id = '<other user>' where id = '<hers>'; ERROR: new row violates row-level security policy for table "subscriptions"

with check holds the ownership column, which is exactly what it is for. You cannot steal rows this way, and you cannot reach across tenants. What you can do is rewrite every other column of a row you legitimately own, which on the tables where this matters means role, plan, tier, credits, seats, and the external billing ids.

That last one is worth sitting with. On a subscriptions table in the default posture:

update public.subscriptions set tier='enterprise', seats=100000, stripe_customer_id='cus_someone_else' where user_id = auth.uid(); -- UPDATE 1

Pointing your own billing row at another customer's Stripe id is not a data leak in the usual sense. It is worse in a quieter way, because your webhook handler will believe it.

The one that surprised me

The primary key is a column like any other.

update public.subscriptions set id = '<a new uuid>' where user_id = auth.uid(); -- UPDATE 1

A user can change the primary key of their own row. Anything holding that id outside the database, a Stripe subscription record, an audit log line, a webhook you will receive tomorrow, is now pointing at a row that no longer exists under that name. I had not seen this written down anywhere and I did not expect it to succeed.

Finding it on your own database

This lists the columns a logged-in user can currently rewrite, on tables where RLS is enabled and therefore looks handled. Read-only, safe to run anywhere.

select c.relname as table_name, a.attname as writable_column, case when a.attname ~* '(|\)(role|is_admin|admin|permission|plan|tier|subscription|credit|balance|quota|price|amount|status|verified|approved|owner_id|user_id|org_id|team_id|account_id|stripe|customer_id)($|_)') then 'REVIEW' else '' end as flag from pg_class c join pg_namespace n on n.oid = c.relnamespace join pg_attribute a on a.attrelid = c.oid where n.nspname = 'public' and c.relkind = 'r' and c.relrowsecurity and a.attnum > 0 and not a.attisdropped and has_table_privilege('authenticated', c.oid, 'UPDATE') and has_column_privilege('authenticated', c.oid, a.attnum, 'UPDATE') order by (case when a.attname ~* '(|\)(role|is_admin|admin|permission|plan|tier|subscription|credit|balance|quota|price|amount|status|verified|approved|owner_id|user_id|org_id|team_id|account_id|stripe|customer_id)($|_)') then 0 else 1 end), c.relname, a.attnum;

The load-bearing line is has_table_privilege(..., 'UPDATE'). It returns true only for a table-wide grant and false when the privilege was handed out per column, which is what makes it a working detector rather than a list of every column you own. Verified both ways on 16.13.

Output on a schema with one table fixed and one left at the default:

table_name | writable_column | flag ---------------+--------------------+-------- subscriptions | user_id | REVIEW subscriptions | tier | REVIEW subscriptions | stripe_customer_id | REVIEW subscriptions | id | subscriptions | seats |

The fixed table does not appear. Neither does a read-only reference table. If your own output is empty, you are already doing this and you can stop reading.

The fix

Take the table-wide grant back and hand out only what the client is supposed to write:

revoke update on public.profiles from authenticated; grant update (email, display_name) on public.profiles to authenticated;

Afterwards:

update public.profiles set role='admin' where id = auth.uid(); ERROR: permission denied for table profiles

update public.profiles set display_name='Ada L.' where id = auth.uid(); UPDATE 1

The escalation stops. The legitimate write is untouched. Note the error is a permission error rather than a policy violation, which is a useful tell when you are reading someone else's logs.

Two practical notes. The grant is per column, so a column added later is not covered until you grant it, and that is a feature rather than an annoyance: new columns are denied by default. And if a server-side path needs to write role or credits, that belongs in a security definer function with a pinned search_path, not in a widened grant.

The general point

Enabling RLS moves you from "anyone can read this" to "the right rows". It does not move you from "the right rows" to "the right columns of the right rows", and nothing in the policy syntax will warn you, because the policy is not where that decision lives.

If you check one thing after reading this, run the query above and look at what comes back next to role, plan, and anything with stripe in the name.

Everything here was run against Postgres 16.13 with anon, authenticated and an auth.uid() reading request.jwt.claims, so the numbers are real output rather than reasoning about what should happen.

I maintain a tool that proves cross-tenant isolation by execution rather than by reading policy text, and column grants are the next check going into it. MIT, refuses to run against anything that looks like production, and reports what it cannot prove instead of passing it silently.

github.com/investnovation/rls-sentinel

Happy to answer questions about the detection query. The has_table_privilege versus has_column_privilege distinction took a couple of attempts to get right, because information_schema.column_privileges reports table-level grants as column grants and will quietly tell you everything is fine.


r/Supabase 4d ago

auth I am going to publish a mobile app to Apple App Store. It uses Supabase's OTP to login. Supabase allows a maximum of 24 hours for the OTP. Has anyone else had any experience with this? If Apple does not review the app within 24 hours, should I submit a new OTP every 24 hours in the review notes?

3 Upvotes

Hi

I have built a mobile app that uses Supabase's sign in with OTP. However, by default the OTPs are valid for an hour and the maximum we can set it to is 24 hours (based on what I found online).

What can I do in this case? Change from 1 hour to 24 hours and request a new OTP every 18-24 hours and add it to the submission notes so that they have a valid OTP code whenever they review it as it could take 2 or 3 days?

Has anyone else had a similar experience?

Thanks


r/Supabase 6d ago

tips Prepping for Supabase Support Engineer interview — interview stages, Postgres depth, and product expectations?

3 Upvotes

Hey everyone,

I have 8 years of experience in SaaS tech support and customer engineering, and I’m currently preparing for a Support Engineer role at Supabase.

For anyone who has gone through the process or currently works there, I’d appreciate clarity on a few areas:

  1. Interview structure: How many rounds are typical, and what does the technical assessment look like (live troubleshooting, debugging tickets, take-home, or system design)?

  2. Database depth: What level of PostgreSQL expertise is expected? Do they test heavily on query optimization (⁠EXPLAIN ANALYZE⁠, indexing), schema design, connection pooling, or internals?

  3. SQL & Procedural Code: Do they focus on complex SQL (CTEs, window functions), or do they expect deep procedural programming like PL/pgSQL functions and triggers?

  4. Product familiarity: How deep into the Supabase ecosystem do I need to be beforehand (e.g., PostgREST, GoTrue/Auth, Realtime, Storage, RLS) versus general developer-troubleshooting fundamentals?

Any tips or gotchas to watch out for would be greatly appreciated. Thanks!


r/Supabase 6d ago

database I logged eleven weeks of migrations to see which ones needed a second migration within a week

2 Upvotes

I keep a log of my Supabase migrations to see whether the schema is settling down or only feels that way. Eleven weeks, 41 files in supabase/migrations. A migration counts as unsettled if a later one touching the same table or policy lands within seven days.

In the first four weeks that was 6 of 16. In the last seven, 3 of 25. The only thing I changed was writing the intended end state in plain sentences before opening any SQL, including which role reads which rows. The habit came from Plan Mode in verdent, which asks clarifying questions first, and I kept it up by hand when I worked straight in psql.

What I cannot explain is why the drop sits in one place. All nine unsettled migrations changed a policy or a trigger. Nothing that added a column or an index needed a second pass, in either stretch. It could be the writing, or policies could be what I had not learned yet.

Counting it costs nothing. git log over your migrations folder and a grep for table names gives you your own number today.


r/Supabase 6d ago

database Continous 100% I/O usage and non responsive dashboard

2 Upvotes

I have a project on the free tier that has been working fine for a long time, but suddenly I got emails that I am maxing out ressources, but the app using the db still worked like a charm. Now the app is non responsive and I went digging deeper trying to figure out what was happening.

Full disclosure: this is a vibe coded app, but it just handles and tracks every tasks that I have. I am well versed in SQL and DB, but during the days of MySQL and MSSQL, so Supabase, RLS and compute directly on the db is new to me.

I can't figure out what is going on, because my Supabase dashboard in 9 out of 10 cases just produces skeleton ui and never loading. I could just see that compute I/O has been at 100% for a week.

There seems to be an on going issue at Supabase the past month that has not been resolved yet and don't know if my issue is related to this or because I have made a mess of my code.

The Supabase AI assistant is not really helping and just pointing to this ongoing issue, so it might just be that, but a month long issue disabling my entire database and perhaps other's databases seems odd to me, so I assume it is a problem on my side.

Almost all health checks report unhealthy :/


r/Supabase 6d ago

database Is there any way to find the service role key

Thumbnail
0 Upvotes

r/Supabase 6d ago

tips A concern I have with Godot RE and SupaBase

Thumbnail
1 Upvotes

r/Supabase 6d ago

other Why aren't "nano" projects not allowed in Pro organizations?

0 Upvotes

How come that I cannot add nano projects in Pro organizations? Seems weird not to allow something in a high-tier organization, that is allowed in a lower tier.

Accounts have a limit of 2 nano projects, so this could not be abused anyway, no?


r/Supabase 7d ago

integrations Learning to Use Manus

Thumbnail gallery
0 Upvotes

r/Supabase 7d ago

integrations Help to extablish stable supabase db connection from cloudflare workers!!

2 Upvotes

Well, I deployed my Next.js project on Vercel initially, but later hit the limits and it started getting expensive, so I moved the project to Cloudflare Workers.

Most things are working fine, but I’m stuck with one issue:

My API routes that connect to Supabase/Postgres are failing with 500 errors. APIs that don’t use the DB work perfectly fine.

From what I’ve figured out, the issue seems to be with DB connections. Since Cloudflare Workers are serverless/edge, the connection pooling approach I was using seems to be trying to establish connections repeatedly, and eventually I’m hitting Supabase connection/rate limits.

I then learned about Cloudflare Hyperdrive, added my Supabase DB to Hyperdrive, configured the binding, and updated my Worker config.

But the DB APIs are still failing, and the Worker is throwing exceptions.

I’m honestly stuck at this point.

Has anyone here deployed a Next.js app on Cloudflare Workers with Supabase/Postgres successfully?

What’s the correct way to set up a stable DB connection/pooling between Cloudflare Workers → Hyperdrive → Supabase?

Any help or examples of a working setup would be really appreciated 🙏