You clicked a deploy button and now have the OpenSync frontend running on Vercel or Netlify. The frontend is deployed, but the app won't work until you complete the backend setup.
- Forks the OpenSync repository to your GitHub account
- Deploys the React frontend to Vercel or Netlify
- Prompts you for environment variables (which you may not have yet)
- Set up the Convex backend (database and functions)
- Create your WorkOS authentication account
- Configure OAuth redirect URIs
- Set up OpenAI for embeddings
Complete these steps to get OpenSync fully working:
# Clone your forked repo locally
git clone https://github.com/YOUR_USERNAME/opensync.git
cd opensync
npm install
# Initialize Convex (creates a new project)
npx convex devThis will:
- Prompt you to log in to Convex (create account if needed)
- Create a new Convex project
- Deploy the schema and functions
- Give you a deployment URL like
https://happy-animal-123.convex.cloud
Keep this terminal running during development.
- Convex project created
- Note your Convex URL:
https://____________.convex.cloud
- Go to dashboard.workos.com and create a project
- Enable Email + Password authentication in Authentication section
- Add redirect URIs in the Redirects section:
https://your-deployed-url.vercel.app/callback
https://your-deployed-url.netlify.app/callback
Replace with your actual deployed URL from Vercel or Netlify.
-
Copy your Client ID (
client_xxxxx) from API Keys -
Configure CORS (Required for production):
- In the WorkOS Dashboard, go to Authentication page
- Click "Configure CORS" or find "Allowed web origins" section
- Add your deployed URL:
https://your-deployed-url.vercel.app https://your-deployed-url.netlify.app- This prevents CORS errors when the app authenticates users
- WorkOS project created
- Email + Password auth enabled
- Redirect URI added for your deployed URL
- CORS origins configured
- Note your Client ID:
client_____________
- Go to platform.openai.com/api-keys
- Create a new API key
- Copy it (you won't see it again)
- OpenAI API key created
- Note your API key:
sk-____________
In the Convex dashboard:
- Select your project
- Go to Settings > Environment Variables
- Add these variables:
| Name | Value |
|---|---|
WORKOS_CLIENT_ID |
client_xxxxx (from step 2) |
OPENAI_API_KEY |
sk-xxxxx (from step 3) |
- WORKOS_CLIENT_ID set in Convex
- OPENAI_API_KEY set in Convex
npx convex deployThis deploys your backend to production.
- Convex backend deployed
In your Vercel or Netlify dashboard, update environment variables:
Vercel: Project Settings > Environment Variables
Netlify: Site settings > Environment variables
| Variable | Value |
|---|---|
VITE_CONVEX_URL |
https://your-project.convex.cloud (from step 1) |
VITE_WORKOS_CLIENT_ID |
client_xxxxx (from step 2) |
- VITE_CONVEX_URL set
- VITE_WORKOS_CLIENT_ID set
Trigger a new deployment in Vercel or Netlify to pick up the new environment variables.
Vercel: Deployments > Redeploy
Netlify: Deploys > Trigger deploy
- Frontend redeployed with correct environment variables
- Visit your deployed URL
- Click "Get Started" to sign in
- Create an account or sign in
- You should see the empty dashboard
- Go to Settings and generate an API key
- Can sign in with WorkOS
- Dashboard loads correctly
- Can generate API key in Settings
Once your instance is working, install a plugin to sync coding sessions:
For Claude Code:
npm install -g claude-code-sync
claude-code-sync loginFor OpenCode:
npm install -g opencode-sync-plugin
opencode-sync loginFor Codex CLI:
npm install -g codex-sync
codex-sync loginEnter your Convex URL and API key when prompted.
The app detected missing environment variables. Check that:
VITE_CONVEX_URLis set in Vercel/NetlifyVITE_WORKOS_CLIENT_IDis set in Vercel/Netlify- You redeployed after setting the variables
This happens when WorkOS CORS is not configured:
- Go to WorkOS Dashboard > Authentication page
- Click "Configure CORS" button
- Add your deployed URL to allowed origins:
https://your-deployed-url.vercel.app - Save and try logging in again
- Check WorkOS redirect URI matches your deployed URL exactly
- Check
WORKOS_CLIENT_IDis set in Convex environment variables - Verify CORS is configured (see above)
- Run
npx convex deployto sync changes
- Verify
WORKOS_CLIENT_IDmatches between Convex and frontend - Run
npx convex deployafter changing Convex env vars
- Check plugin is authenticated:
claude-code-sync statusoropencode-sync status - Check Convex dashboard logs for errors
- Verify API key is valid in OpenSync Settings
- Verify
OPENAI_API_KEYis set in Convex environment variables - Run
npx convex deploy - Wait a minute (embeddings generate asynchronously)
- Full setup guide for detailed configuration
- Plugin development guide to build your own sync plugin
- API reference for programmatic access
- install.md for local development setup
Open an issue on GitHub with:
- Your deployment platform (Vercel or Netlify)
- Which step you're stuck on
- Any error messages from browser console or Convex logs