The Supabase Modules repository is a pnpm workspace managed using Turborepo. It includes the following applications:
There is no package/installable/CLI for the time being. The apps/** directory organizes by framework the modules source code and a Supabase project configuration for them.
For example, our Next.js app looks like this:
📂 docs
📂 apps
📂 next
📁 database
📁 client
📁 types
📁 utils
📁 supabase
📁 migrations
- The UI lives colocated in the route's
_componentsdirectory that belongs to the module demo'd. - The logic lives in the
/databasedirectory categorized by module name. - The database configuration lives in the
/supabasedirectory where migrations can be identified by module name i.e. profiles.sql.
- Node:
>=20, - Package manager:
pnpm@8.15.1
To install dependencies, run the following command from the root repository:
pnpm installPlease refer to .env.example when working with environment variables. This repository is local-first development, so you should set all of your development variables in .env.local located in the root repository.
If you want to connect to a remote Supabase instance you can set all of your variables in .env located in the root repository.
If you do not have these, you may have to run Supabase locally first before development. Read more on Your Supabase Instance.
For development, run the following command from the root repository:
pnpm db:start && pnpm devsupbaseCLI will start your Supabase Instance at the response portsdocswill be available in port 3001playgroundwill be available in port 3000
Remember to run
pnpm db:stopto save resources once you are done working with your local Supabase Instance.
If you intended to develop with a cloud hosted Supabase Instance you only need to run:
pnpm dev:remoteTo build, run the following command from the root repository:
pnpm buildExcited to hear that you are interested in contributing to this project! Please visit Contributing
To learn more about this project, please visit Supabase Modules Documentation.