myCAIO Homepage Card & Vercel Routing Fix

By Sean Weldon

Atlas Development Log — myCAIO Homepage Card & Vercel Routing Fix

Overview

Added a third service card to the sean-weldon.com homepage for the myCAIO (Fractional Chief AI Officer) service. The card uses a gold theme to match the Obsidian Authority design of the mycaio.html page. Also debugged and fixed Vercel routing issues that were causing the /blog route to return 404.


1. Objectives

Success looks like: Three cards on homepage (AI Engineering, myCAIO, Web Presence) with working navigation to all service pages and blog.


2. Key Developments

Technical Progress:

System Improvements:

Integrations Added:


3. Design Decisions

Gold Theme Color Palette

GoldTexture Pattern Design

Card Ordering

Vercel Routing Strategy


4. Challenges & Solutions

Blog Route 404

Static Pages Breaking When Blog Fixed

WebFetch Returning False 404s


5. Code Changes

File Change
src/types/index.ts Added 'gold' to theme and texture union types
src/components/ui/BackgroundTextures.tsx Created GoldTexture component
src/components/ui/Card.tsx Added gold theme styles and GoldTexture rendering
src/pages/Home.tsx Added Briefcase import, myCAIO segment to SEGMENTS array
vercel.json Fixed routing with explicit static rewrites before SPA catch-all

6. Next Steps


7. Session Notes

Vercel Routing Pattern for Hybrid Sites:

{
  "framework": null,
  "rewrites": [
    { "source": "/static-page", "destination": "/static-page.html" },
    { "source": "/spa-route", "destination": "/index.html" },
    { "source": "/:path*", "destination": "/index.html" }
  ]
}

Key insight: Order matters. Static pages must be explicitly routed FIRST, then SPA routes, then catch-all. The cleanUrls option alone doesn't handle this correctly with framework: null.

Testing tip: Use curl -sI https://url to verify actual HTTP status rather than relying on browser or WebFetch which may cache or have rendering issues.