Frontend deployment (Vercel)
How the Thirdfy web app at thirdfy.com is built and released on Vercel, including the v2.5.16 deploy pipeline changes.
What users see
The production app runs at https://thirdfy.com (Base mainnet). Staging for Base Sepolia is https://testnet.thirdfy.com when the testnet branch is deployed.
| Branch | Environment | URL |
|---|---|---|
main | Production | https://thirdfy.com |
testnet | Base Sepolia staging | https://testnet.thirdfy.com |
develop | Integration | No automatic Vercel deploy by default |
Vercel project
Use the Vercel project thirdfy-v2 only. Do not link the CLI or Git integration to legacy names such as thirdtrade-v2. Production domains include thirdfy.com, www.thirdfy.com, and mainnet.thirdfy.com.
Repository: thirdfy/thirdfy-v2.
Release flow (operators)
- Land feature work in a PR to
develop. - Open a promotion PR
develop→mainand bumppackage.jsonversionandsrc/utils/version.tsFRONTEND_VERSIONtogether (same semver). - Merge to
main. Vercel builds and deploys production automatically. - Tag the release
vX.Y.Zon GitHub (release title exactlyvX.Y.Z). - Keep
testnet(anddevelop, if you use it) on the same app version when you cut a production release.
Do not run vercel deploy --prod from a laptop for normal releases. Use the Git merge path above.
What changed in v2.5.16 (deploy speed and reliability)
Release v2.5.16 improved Vercel build time and queue behavior without changing product features on the site.
Package manager: pnpm
Install on Vercel uses pnpm with a frozen lockfile (pnpm-lock.yaml). Local development:
Build script: build-vercel.sh
Vercel runs sh build-vercel.sh after install. The script:
| Step | Production (main) | Testnet (testnet branch) |
|---|---|---|
| GraphQL codegen | Runs when VITE_INFO_GRAPH and VITE_BLOCKS_GRAPH are set in the Vercel project | Same |
| Wagmi contract hooks | Uses committed src/generated.ts (mainnet) | Runs wagmi-generate:testnet at build time |
| Typecheck | Non-blocking tsc | Same |
| Vite | production mode | testnet mode |
Codegen and typecheck run on Vercel using environment variables already configured under thirdfy-v2 → Settings → Environment Variables (GRAPH_AUTH_TOKEN, VITE_INFO_GRAPH, VITE_BLOCKS_GRAPH for Production).
Less queue contention
vercel.json disables automatic deploys for the develop branch and uses an Ignored Build Step so doc-only or version-only pushes do not start a full build on non-main branches. main always builds.
If production sits in Queued, cancel stuck preview deploys in the Vercel dashboard so the production slot is free.
One Git hook per repo
Only thirdfy-v2 should be connected to thirdfy/thirdfy-v2 on GitHub. Disconnect or remove duplicate Vercel projects that also watch the same repository.
Expected deploy duration
Healthy production deploys are often about 5 to 7 minutes when the dependency cache is warm. Cold or contended builds can take longer. Check the deployment log in Vercel for install time versus Vite build time.
After v2.5.16, production logs should show:
Local build (developers)
Match production assets before opening a PR that touches contracts or GraphQL:
Commit src/graphql/generated/ and src/generated.ts when you change queries or contract addresses so mainnet Vercel builds stay deterministic.
Smoke test after production deploy
After a main merge, verify:
- Site loads at https://thirdfy.com
- Wallet connect (Privy)
- Swap and bridge (LiFi)
- Agents directory and deposit flows you rely on
- RPC:
POST /api/rpc-proxy-mainnetwitheth_chainIdreturns Base mainnet (0x2105)
Related docs
- Thirdfy Agent CLI for API and automation
- For users for product entry points