Skip to main content

Decision: wiseaiagency.com — Keep as Hostname Rewrite

Context

wiseaiagency.com is the parent/meta-brand hub for the WiseAI Agency portfolio (ChurchWiseAI, FuneralWiseAI, VetWiseAI, and future verticals). The site serves its pages via a Next.js middleware hostname rewrite inside churchwiseai-web:

wiseaiagency.com/* → NextResponse.rewrite('/wiseaiagency/*')

Pages live at src/app/wiseaiagency/ as a named route segment within the churchwiseai-web monorepo. The rewrite runs at the Vercel edge, making the path transparent to users.

During the jiggly-bubble sprint (2026-05-04), the question was explicitly raised: should wiseaiagency.com be a separate Vercel project with its own deploy pipeline?

Decision

Keep wiseaiagency.com as a hostname rewrite inside churchwiseai-web. Do not split into a separate Vercel project.

Reasoning

1. Single deploy cadence is correct for a solo founder

A solo founder with 7+ surfaces does not benefit from per-project deploy pipelines unless there is a genuine reason for independent cadence. wiseaiagency.com shares:

  • The same Supabase client and environment variables
  • The same brand-family component library (src/components/brand-family/)
  • The same middleware (hostname routing for all 6 properties in one file)
  • The same Vercel project env vars and secrets

Splitting would require duplicating env vars, managing separate deploy hooks, and adding CI complexity for zero operational benefit.

2. The hostname rewrite is already verified and working

The middleware block at src/middleware.ts (isWiseAIAgency branch) is tested and live. It correctly handles:

  • wiseaiagency.com//wiseaiagency
  • wiseaiagency.com/[city]/wiseaiagency/[city] (new city SEO pages)
  • wiseaiagency.com/playground/wiseaiagency/playground
  • Static assets, shared API routes, and auth paths pass through correctly

3. No independent deploy cadence needed

The argument for a separate Vercel project would be: "I want to deploy wiseaiagency.com without deploying churchwiseai.com." That use case does not exist for this portfolio. All surfaces deploy together from main.

4. No domain isolation requirement

There is no requirement to isolate wiseaiagency.com at the network level (separate CDN, separate error budgets, separate rate limits). The Vercel project serves all 6 hostnames and handles each correctly at the edge.

When to revisit

Revisit this decision if:

  1. wiseaiagency.com requires a significantly different deploy cadence — e.g., a separate team or contractor works only on the agency hub and needs to deploy without access to churchwiseai admin routes.
  2. Bundle size or cold start times become an issue — if the monorepo grows to the point that wiseaiagency.com pages have poor cold-start performance because of shared bundle weight.
  3. Security isolation is required — if a vulnerability in churchwiseai.com's admin routes creates unacceptable risk for the agency hub (unlikely given current isolation model).

Code reference

  • Middleware: churchwiseai-web/src/middleware.tsisWiseAIAgency block (lines ~140–161 as of 2026-05-04)
  • Pages: churchwiseai-web/src/app/wiseaiagency/
  • City pages: churchwiseai-web/src/app/wiseaiagency/[city]/page.tsx
  • robots.ts: churchwiseai-web/src/app/robots.tsisWiseAIAgency branch
  • sitemap.ts: churchwiseai-web/src/app/sitemap.tsgetWiseAIAgencyRoutes() function

Comment in middleware

The middleware block now includes an inline comment:

ARCHITECTURE DECISION (2026-05-04): wiseaiagency.com is a hostname rewrite, NOT a separate Vercel project. Do not change to a separate project without checking knowledge/decisions/2026-05-04-wiseaiagency-rewrite.md.