Two different jobs.
A business application needs somewhere to run and somewhere to keep its records. Those are related responsibilities, but they are not the same thing.
I use Vercel to deliver an application to the people using it and run its server-side code. Supabase provides a PostgreSQL database, authentication, file storage, and ways to work with that data.
What happens when you use an app.
Imagine opening a page to review a customer request. The screen is one part of the job. Behind it, the application needs to establish who you are, retrieve the right record, and decide what you are allowed to do with it.
- You open the application.Your browser requests the page and displays the interface.
- The application handles the request.Code running through Vercel can validate the request and apply the business rules.
- The database provides the permitted records.Supabase stores the data. The application’s access controls determine which records the request can reach.
- The result appears on your screen.You can review the information and take the next action.
What Vercel handles.
Application hosting
Vercel serves the web application. In a Next.js project, that can include pages rendered on the server and the code behind forms or other actions.
Deployments and previews
A deployment puts a version of the application online. Preview deployments give me a place to check a change before it reaches the production site.
Server functions
Server-side code can validate a form, read a permitted record, or call another service. That is also where sensitive credentials belong, outside the visitor’s browser.
What Supabase handles.
The database
PostgreSQL stores structured records and the relationships between them. A customer, an order, and a support request can be connected without copying the same information into several places.
Identity and access
Authentication establishes who a user is. Authorization determines what that user may read or change. Row Level Security can enforce record-level rules in the database when configured correctly.
Files and updates
Storage holds files used by an application. Realtime subscriptions can let an interface respond to database changes, where that behavior is useful.
The platforms don’t finish the job.
Using managed services gives me useful building blocks. I still have to make the application dependable for the people using it.
- Design the data around the business and its workflow.
- Keep credentials on the server and limit access to what each task needs.
- Make failures visible, especially when a form or transaction has not completed.
- Check changes before release and plan for recovery.
- Monitor usage, costs, and the parts that depend on outside services.
Hosting and a database are part of the system. Responsibility for the finished work still belongs to the person building it.
The choice starts with the work.
I use this combination for business applications, including dashboards, client workflows, and internal tools. It is a starting point for a technical decision, not a reason to rebuild something that already works.
The useful questions are what the application needs to do, which systems it must connect to, who can access its data, and who will maintain it.