- Install Docker Desktop
- Get a copy of .env for the Next App and .env.local for Supabase and Prisma (they should always be in sync)
- Setup ngrok with the following config
version: "3"
agent:
authtoken: <your-token>
tunnels:
first:
addr: 3000
proto: http
domain: <your-next-static-domain>
second:
addr: https://localhost:54321
proto: http
domain: <your-supabase-static-domain>
- Set the site_url to your next ngrok url in config.toml
- Set the additional_redirect_urls to ["https:///auth/callback"] in config.toml
- Request that your next ngrok url be added to HCaptcha and Google OAuth
- Set FUNCTIONS_URL secret in Supabase Vault to your supabase ngrok url
- Setup NEXT_PUBLIC_HOST to your next ngrok url in both .env and .env.local
- Run
ngrok start --all
ornpx nx@latest shared:local-proxy
- Run
npx nx@latest shared:db
to start the local supabase containers - Run
CREATE ROLE "service" WITH LOGIN PASSWORD '<password>';
in the supabase dashboard
- Set the credentials for service in the MY_PRISMA_URL in both the .env .env.local files
- You'll need to run
npx nx@latest shared:db
again for the changes to take effect
- Run
npx nx@latest shared:init
to initialize the database and apply schema migrations - Run
npx nx@latest shared:functions
to start the supabase edge functions runtime - Navigate to your next ngrok url in your browser to start using the app
If any migration fails to apply you can go to the project.json for the shared project go to npx nx@latest shared:rollback-failed-migration
and edit the command with the name of the failed migration. Afterwords running npx nx@latest shared:migrate
should work if the migration is successful.
✨ Your new, shiny Nx workspace is almost ready ✨.
Learn more about this workspace setup and its capabilities or run npx nx graph
to visually explore what was created. Now, let's get you up to speed!
Click here to finish setting up your workspace!
To run the dev server for your app, use:
npx nx dev goaltime
To create a production bundle:
npx nx build goaltime
To see all available targets to run for a project, run:
npx nx show project goaltime
These targets are either inferred automatically or defined in the project.json
or package.json
files.
More about running tasks in the docs »
While you could add new projects to your workspace manually, you might want to leverage Nx plugins and their code generation feature.
Use the plugin's generator to create new projects.
To generate a new application, use:
npx nx g @nx/next:app demo
To generate a new library, use:
npx nx g @nx/react:lib mylib
You can use npx nx list
to get a list of installed plugins. Then, run npx nx list <plugin-name>
to learn about more specific capabilities of a particular plugin. Alternatively, install Nx Console to browse plugins and generators in your IDE.
Learn more about Nx plugins » | Browse the plugin registry »
Nx Console is an editor extension that enriches your developer experience. It lets you run tasks, generate code, and improves code autocompletion in your IDE. It is available for VSCode and IntelliJ.
Learn more:
- Learn more about this workspace setup
- Learn about Nx on CI
- Releasing Packages with Nx release
- What are Nx plugins?
And join the Nx community: