One command
Add Convex to any Ashlr Stack project with a single command. Stack runs the auth flow, verifies the credential, and writes every secret slot into Phantom.
stack add convex
Or describe what you're building and let Claude pick it up via stack recommend:
stack recommend "serverless postgres for a B2B SaaS" Auth flow
Paste a long-lived API key once. Stack verifies it against the provider's API before writing to Phantom.
How-to: Create a deploy key in the Convex dashboard and paste it.
Secret slots
stack add convex writes these 1 secret
slot into your Phantom vault:
CONVEX_DEPLOY_KEY
The values never leave Phantom in plaintext. Your .env file references slot
names, and stack exec -- <cmd> swaps them in at process-spawn time via
Phantom's local proxy.
Related providers in Database
- Supabase — Postgres + Auth + Storage. Full upstream provisioning via the Management API.
- Neon — Serverless Postgres. Creates a project and pools the connection string.
- Turso — Edge SQLite (libSQL). Creates a database in your default org.
- Upstash — Serverless Redis + Kafka. Management token stored in Phantom.
- Firebase — Realtime DB + Auth. Service-account JSON stored verbatim in Phantom.
FAQ
Do I need a Convex account to use it with Stack?
Yes — Stack provisions Convex on your behalf, but it authenticates as you. Paste a long-lived API key once. Stack verifies it against the provider's API before writing to Phantom. If you don't have a credential yet, create one at https://dashboard.convex.dev and paste it once.
Where does Stack store my Convex credentials?
In Phantom Secrets, an E2E-encrypted local vault. Stack writes the secret slot names (CONVEX_DEPLOY_KEY) into .stack.toml — the actual values live only in Phantom and never touch disk in plaintext.
Can I rotate or revoke this integration later?
Yes. Run `stack remove convex` to pull the Convex service back out (Phantom secrets deleted, MCP entry removed, .stack.toml cleaned up). Rotate the underlying Convex credentials in their dashboard — https://dashboard.convex.dev — and Stack's next `doctor --fix` will pick up the new values.