Unclassified

Vercel Project Topology

Overview

IntegrateWise requires two independent Vercel projects to deploy the marketing site and product web app. Each project has its own Git configuration, deployment pipeline, and domain mapping.

AppLocationVercel ProjectRoot PathEnvironmentStatus
Marketingapps/marketingintegratewise-live-marketingapps/marketingspineworkspace.com/marketing → integratewise.ai✅ Active
Web (Product)apps/webintegratewise-live-webapps/webspineworkspace.com/web → app.integratewise.ai🔄 Create project

Git Deployment Status

All projects have Git auto-deployment enabled in their vercel.json:

{
  "git": {
    "deploymentEnabled": true
  }
}

Deployment Flow

  1. Push to main branch triggers automated preview/production deployments
  2. Each app deploys from its app-level root (e.g., apps/marketing for marketing)
  3. No manual vercel deploy steps required

Creating Missing Projects

integratewise-live-web (Product App)

  1. Go to Vercel Dashboard → spine-workspace-2a626284 team

  2. Create project:

    • Project Name: integratewise-live-web
    • Import from Git: https://github.com/integratewise/integratewise-live
    • Root Directory: apps/web (configure in project settings)
    • Framework Preset: Next.js (auto-detected)
    • Build Command: pnpm run build
    • Install Command: pnpm install --frozen-lockfile
  3. Environment variables (inherit from team):

    • NEXT_PUBLIC_* vars: sync from root monorepo settings
    • AUTH_* vars: inherited team scope
  4. Custom Domains (after first deployment):

    • Add app.integratewise.ai → production domain
    • Marketing routes requests for /app/* to this project

Domain Routing

Apex Domain: integratewise.ai

Route all traffic to the marketing project:

integratewise.ai → integratewise-live-marketing

Marketing landing subdomains

Public solution landing hosts also route to the marketing project. The
project's host-conditional rewrites render the matching solution at the host
root, without turning the host into an authenticated Workbench projection.

customer-success.integratewise.ai → /solutions/customer-success
finance.integratewise.ai          → /solutions/finance
product-engineering.integratewise.ai → /solutions/product-engineering
…                                 → matching public solution page

Add every hostname listed in apps/marketing/lib/solution-taxonomy.ts to the
marketing Vercel project and configure its DNS record before release. Do not
add brandstore, book-of-records, or orgmemory: those are internal-only
operational concepts, not public marketing pages.

App Subdomain: app.integratewise.ai

Route to the web project:

app.integratewise.ai → integratewise-live-web

Portfolio Subdomain: portfolio.integratewise.ai

Route to the portfolio project:

portfolio.integratewise.ai → integratewise-live-portfolio

Canonical Connector Ownership

Each service maintains a single canonical connection via Spine:

  • Platform web app (integratewise-live-web): identity authority, Gateway contracts, workspace discovery
  • Marketing (integratewise-live-marketing): public site, read-only connectors, platform link-outs
  • Portfolio (integratewise-live-portfolio): standalone showcase, no Spine integration

User sign-in flow:

  1. Sign in via marketing or app subdomain
  2. Session credential issued by platform/web (POST /api/v1/auth/session)
  3. Shared iw_session cookie honored across all subdomains (domain: .integratewise.ai)
  4. Connectors (Vercel, Railway, Cloudflare) communicate through platform only — never directly to marketing or portfolio

Troubleshooting

Marketing Previews Canceled

Root cause: git.deploymentEnabled: false in apps/marketing/vercel.json

Fix: Set to true (already applied in this branch)

New Project Deployments Fail

  1. Verify root directory in Vercel settings (e.g., apps/web not .)
  2. Check environment variables are synced from team scope
  3. Confirm NEXT_PUBLIC_* vars match root package.json env.d.ts exports

Domain Routing Not Working

  1. Add DNS CNAME records pointing subdomains to Vercel:
    • app.integratewise.ai → cname.vercel-dns.com.
    • portfolio.integratewise.ai → cname.vercel-dns.com.
  2. Verify custom domain in each Vercel project's settings
  3. Check Vercel project links are correct (right root directory, right Git branch)

References