myCAIO Homepage Card & Vercel Routing Fix

Shipped the gold-themed myCAIO Fractional CAIO card on the homepage and fixed Vercel SPA rewrites that were 404ing the /blog route in production.

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.

Sean Weldon builds apps and custom software at 22Atlas.

Start your build

More about Sean