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.

BranchEnvironmentURL
mainProductionhttps://thirdfy.com
testnetBase Sepolia staginghttps://testnet.thirdfy.com
developIntegrationNo 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)

  1. Land feature work in a PR to develop.
  2. Open a promotion PR developmain and bump package.json version and src/utils/version.ts FRONTEND_VERSION together (same semver).
  3. Merge to main. Vercel builds and deploys production automatically.
  4. Tag the release vX.Y.Z on GitHub (release title exactly vX.Y.Z).
  5. Keep testnet (and develop, 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:

corepack enable
pnpm install

Build script: build-vercel.sh

Vercel runs sh build-vercel.sh after install. The script:

StepProduction (main)Testnet (testnet branch)
GraphQL codegenRuns when VITE_INFO_GRAPH and VITE_BLOCKS_GRAPH are set in the Vercel projectSame
Wagmi contract hooksUses committed src/generated.ts (mainnet)Runs wagmi-generate:testnet at build time
TypecheckNon-blocking tscSame
Viteproduction modetestnet 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:

Running "install" command: `corepack enable && pnpm install --frozen-lockfile`

Local build (developers)

Match production assets before opening a PR that touches contracts or GraphQL:

pnpm run codegen && pnpm run wagmi-generate:mainnet   # mainnet
pnpm run codegen && pnpm run wagmi-generate:testnet   # testnet
bash build-vercel.sh                                   # full local build

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:

  1. Site loads at https://thirdfy.com
  2. Wallet connect (Privy)
  3. Swap and bridge (LiFi)
  4. Agents directory and deposit flows you rely on
  5. RPC: POST /api/rpc-proxy-mainnet with eth_chainId returns Base mainnet (0x2105)