Teams and dev deployments are here! Now you can invite your friends and coworkers to collaborate with you within a team. Iterate faster with a personal, live-updating dev deployment and deploy your functions to production when you’re ready.
The changes in this release are:
- Meet
npx convex dev
- Convex Teams
- Breaking: Regenerate your Project Configuration
- Breaking:
npx convex push
→npx convex deploy
- Breaking: New Client Configuration
- Breaking:
npx convex deactivate
is gone - Small Improvements
Let us know if you have any questions or feedback in the Convex Slack Community!
Meet npx convex dev
This release includes a brand new command for local development: npx convex dev
.
This command watches your local filesystem. When your Convex functions change, it pushes them to your personal dev deployment and updates your generated code. Use this for iterating on your code and testing locally before deploying functions to production.
This is now our recommended development workflow. It has two huge advantages over the old npx convex push
flow:
- Your functions are synced automatically. You no longer have to remember to push after every edit. Just leave
npx convex dev
running! - Your dev deployment is separate from your project running in production. Now you can iterate within your dev deployment and only deploy to production once everything is working.
Convex Teams
This release also adds support for Convex teams. Teams are groups of developers working together on Convex projects. You can create teams and invite new members in the dashboard.
Everyone in the team can manage the team’s projects in the dashboard and CLI. Each team member gets their own dev deployment when they run npx convex dev
but can deploy to the same, single production deployment.
Invite your friends and coworkers and get collaborating!
Breaking: Regenerate your Project Configuration
To support teams and dev deployments, we’ve changed how project configuration works. Now:
- You no longer need a
.env.local
file. We now use a machine-wide token instead. - Convex uses a new format for
convex.json
.
To update your project’s configuration:
- Delete
convex.json
and.env.local
. - Run
npx convex reinit
and select your project.
This will recreate your convex.json
with our new format.
Breaking: npx convex push
→ npx convex deploy
We’ve renamed npx convex push
to npx convex deploy
to better indicate that this command deploys to your project in production. This is in contrast to npx convex dev
, which pushes your functions to a personal, dev deployment.
We’ve also renamed the environment variable for deploying from Netlify and Vercel from CONVEX_ADMIN_KEY
to CONVEX_DEPLOY_KEY
. The hosting documentation has the new instructions for configuring hosting.
Breaking: New Client Configuration
The constructors to ConvexReactClient
and ConvexHttpClient
have changed. Now you must pass in a clientConfig
object from a generated convex/_generated/clientConfig.ts
file like:
import clientConfig from "../convex/_generated/clientConfig";
const convex = new ConvexReactClient(clientConfig);
This new client configuration is important for switching your app between your dev and production deployments. Normally your clientConfig.ts
file will have a URL that connects your app to the dev deployment used in npx convex dev
. When you deploy to production with npx convex deploy
, this file will be overwritten with a URL to connect to your production deployment.
This also means that when you’re deploying your project, first do the Convex deployment and then bundle your app with a command like:
npx convex deploy && npm run build
npx convex deploy
will deploy your Convex functions to your project and update clientConfig.ts
with your production deployment’s URL. Then npm run build
(or whatever build command you project uses) can build a production version of your project.
Breaking: npx convex deactivate
is gone
We’ve decided to sunset npx convex deactivate
. Instead, to delete a project, use the “Delete Project” button in the dashboard.
Keep in mind that deleting a project will delete its production deployment and the dev deployments for everyone on your team. We’ve moved this functionality to the dashboard to be consistent with the rest of team management.
Small Improvements
- There is a new, experimental
npx convex import
command that imports CSV and JSON files into Convex. npx convex login
now generates better device names.- All tables now have a
by_creation_time
index by default. - New projects now have a “NEW” badge in the dashboard to make them easier to find.
- Fixed a bug where
new Date(timestamp)
would return the wrong result in Convex query and mutation functions.