Solano CF — Project Brief

What Happened

On March 31, 2026, Anders Engnell (Chief of Staff, CF) emailed Brooke and Eric requesting a new Solano website ASAP. He linked a Google Doc with full website direction and copy. Jan Sramek (CEO) replied-all with additional direction and an open question for G&M.

Brooke forwarded the full chain to Mike, Kristin, and Eric flagging it as high priority.


Email Chain Summary (chronological)

1. Anders Engnell — 8:06 AM PDT

2. Jan Sramek — 8:09 AM PDT

3. Jan Sramek — 8:23 AM PDT (the big one)

Jan started writing additional requirements but paused to ask G&M a strategic question first:

Open Question for G&M:

There is a clear tension between making this a sub-section of the main website vs. making this a separate domain. I like the simplicity of a separate domain. But we end up replicating a lot of functionality. What do you recommend?

Jan's 6 Additional Requirements:

  1. Newsletter signup — local newsletter form prominently on all pages (likely bottom)
  2. Buildout map — preserve the scaling buildout map currently on solano.cf.com homepage (they'll update the map but same concept)
  3. Dirt-to-city animation — preserve the homepage animation showing fields transforming into city
  4. Community testimonials — preserve existing homepage testimonials. Add a "Supporters" section to the menu (but no "add supporter" functionality — that's handled by #6)
  5. "In the Media" section — show only news tagged as "local". Also show at bottom of homepage
  6. Break Ground page — feature "Join the Call to Break Ground" prominently in nav. Don't redirect to main site — replicate the functionality 1:1

Open Question That Needs a Response

Subdomain vs. sub-section of main site?

Jan is asking G&M to weigh in. Key tension: - Separate domain (solano.californiaforever.com): Simpler, cleaner campaign landing experience - Sub-section of main site: Avoids duplicating newsletter, news, Break Ground, supporters functionality

Considerations for our response:


What the Google Doc Contains

Full website outline with: - 8 pages: Home, Jobs, Homes, Transportation, Water, Taxpayer Protections, Benefits to Suisun Residents, FAQ - Complete copy for every page (headlines, body, stats, CTAs) - Art direction per page (colors, backgrounds, typography, photo direction) - Global elements: Quote module (top of every page), report link shelves, persistent nav CTA, newsletter signup, Meta Pixel - Design system: Colors (Navy, Beige, Linen, Blue, Brick, Sand, Sky, Green), Typography (Milo Serif OT + Outfit) - Key messaging: Fact-based, resident-focused, addressing local concerns (water, taxes, traffic, jobs, farmland, Travis AFB)

See copy-doc.md for the full document.


Existing Local Site

Note (post-cleanup): What was originally documented here as ~/Local Sites/solanocaliforniaforevercom/ turned out to actually contain the Plumb archive content, not the active subdomain (folder labels were swapped). After the May 6/7 cleanup, the active solano.californiaforever.com site lives in ~/Local Sites/solano-californiaforever/ and the archive lives in ~/Local Sites/solano-archive-californiaforever/. See parent README.md "Historical gotcha" for the full story.


What We've Done (March 31)

  1. Read full email chain and Google Doc
  2. Reviewed both live sites (californiaforever.com and solano.californiaforever.com) to inventory existing functionality
  3. Built internal pros/cons analysis — saved as pros-and-cons.md and shared as Google Doc for team review: https://docs.google.com/document/d/19DKqFkVkTlS0uZ6YQTIRjvuzExvHlPDM8ejfm_QjKgA/edit
  4. Eric replied to Jan/Anders acknowledging receipt, told them team is meeting tomorrow and will send recommendation. Asked Jan to hold additional direction until then.

What We've Done (April 1)

  1. Refined Google Doc with comparison table (subdomain vs sub-section factors)
  2. Internal team meeting — decided to recommend sub-section (californiaforever.com/solano/)
  3. Researched SEO subdomain vs subdirectory data — research consistently favors subdirectories
  4. Drafted recommendation email to Jan/Anders — saved to Desktop as cf-solano-site-structure-recommendation.md
  5. Key points in recommendation: SEO compounding, code efficiency (main site already LLM/SEO tuned), no content duplication, scalability, Shopify Plus as real-world example, 301 redirects from old subdomain URLs
  6. Decision: Sub-section approach. Recommendation sent to client, awaiting their response.

Key Findings from Site Research

What We've Done (April 6)

  1. Client sent feedback with 8 items for Solano site updates
  2. Reviewed all 8 items for clarity — 6 are actionable, 2 need clarification
  3. Sent message to Anders asking for clarification on: - Nav structure (item 5): Asked for example or Loom — two-tier nav with Suisun Expansion + Solano Shipyard unclear - Solano Shipyard page (item 6): Asked whether to replicate all content/images from main site or just layout with new content — lots of content on that page including FAQs, don't want to overbuild
  4. Offered a phone call to talk through it (402.880.5637)
  5. ~~Working on the other 6 items~~ ✓ All 6 completed: - ✓ Jobs supporter: Danny Bernardini photo + quote - ✓ Transportation supporter: Camille Robinson photo + quote - ✓ Homes supporter: Jesus Gonzalez photo + quote - ✓ Removed supporter tiles from Water, Taxpayer Benefits, Benefits to Suisun, FAQ - ✓ Front page: gradient text backdrop behind hero text - ✓ Front page: Camille Robinson as homepage supporter
  6. Uploaded and optimized 3 supporter photos (800px, ~530KB total) with WP thumbnails generated
  7. Enabled headshot display on page-quote blocks (was hidden via CSS)
  8. Wired hero CTA buttons as smooth-scroll anchor links to stat/content sections on all 6 interior pages
  9. Audited all placeholder links — found 13 total # links across the site - 6 hero CTAs → resolved as anchor links to #details - 7 remaining need client-provided URLs (global CTAs + report shelf PDFs)
  10. Added "Missing Links" tab to block mapping spreadsheet with full inventory
  11. Drafted client message (saved to Desktop as cf-solano-missing-links-message.md) asking for the 6 remaining URLs
  12. CSS committed: smooth scroll, anchor offset, hero text backdrop, headshot display
  13. Built Solano Shipyard overview page (ID: 5309) with content from main site:
    • Page Hero (centered, wind turbines aerial image from CF)
    • Callout (China shipbuilding stat)
    • Text + Link Cards (4 pillars: Location, Scale, Innovation, Workforce)
    • History section + 3 Report Shelves (1989 study, General Plans, ENGEO — PDFs needed)
    • FAQ accordion (3 Q&A about the shipyard)
    • CTA Banner (Partner with us)
  14. Two-tier nav on feature/two-tier-nav branch (WIP):
    • Desktop (>1200px): Grouped containers with linen backgrounds — Suisun Expansion group (7 tabs) + Solano Shipyard group
    • Mobile/tablet (<=1200px): Section toggle buttons (SUISUN EXPANSION / SOLANO SHIPYARD) + horizontal scrollable tab bar
    • Figma exploration file: https://www.figma.com/design/NUx3NHnAf3FoIrq2Wby34Y
    • Remaining: White space gap between 900-1200px at the breakpoint transition needs fixing
  15. Logged 2h to Harvest (Retainer #2 2026 → Web Updates: Dev)
  16. Todoist cleared and restocked with 9 outstanding items in 3 sections

What We've Done (April 7)

  1. Morning — site pushed to production. Anders confirmed the Shipyard overview page looked good and sent final URLs for 5 of 6 outstanding CTA/report links. Wired all 5 up and pushed to production.
  2. "Learn more" button routing resolved — Anders clarified it should route to the Transportation page. Updated the global CTA banner on all 7 relevant pages; hidden on Transportation itself to avoid self-link.
  3. Afternoon — second round of client revisions (Anders's 8-item list). Worked through all 8 items plus the Learn More routing fix: - ✓ Transportation now first tab under Suisun Expansion (desktop + mobile + WP menu) - ✓ Transportation page new headline + body copy - ✓ Hero subtitle bumped 1.8rem → 2.4rem desktop, 15px → 18px mobile (site-wide) - ✓ Fixed distorted text — root cause was a double-escaped \\u2019 in two quote strings (Jobs + Transportation) rendering as literal \u2019. Swept every page to confirm nothing else affected. - ✓ Headshots on page-quote blocks enlarged 48px → 140px desktop (110px mobile), switched to headshot size for sharper render - ✓ Benefits link-cards converted from slick carousel → 2-column grid via new link-cards-overrides.css (with !important padding-top override to beat theme's default block spacing) - ⚠️ Stats + boxes on Water / Taxpayer / Benefits: Water is fully populated from existing page copy. Taxpayer stat-block REMOVED after I fabricated three fake "stats" ($0 / 100% / "Locked in") from the page's qualitative claims — Eric caught it, I removed the fabricated content. Benefits stat-block reduced to just the real 4,000+ acres stat. Needs real Taxpayer numbers and a specific Benefits tax revenue projection from client to finish.
  4. Critical lesson — never fabricate data. Added a "Critical Rules" section to the project CLAUDE.md and a feedback memory file at ~/.claude/projects/.../memory/feedback_never_fabricate_data.md. Rule: if source content is missing, stop and ask — never invent numeric stats from qualitative claims, even when the underlying claim is accurate.
  5. Basecamp reply drafted at ~/Desktop/anders-solano-apr7-reply.txt — item-by-item status, clean distinction between "complete" and "needs your input", three explicit questions for the client (Taxpayer numbers / Benefits projection / re-add supporter tiles?).
  6. Two atomic commits pushed to feature/two-tier-nav: - Add: April 7 client revisions — nav reorder, larger subtitles/headshots, link-cards grid - Add: Critical rule to never fabricate content or stats
  7. Late afternoon — client approval + merge to main. Anders responded at 15:37 CST with final notes: Jobs/Homes stat block good, Water/Taxpayer approved as-is, remove the Benefits stat block entirely, "Good to publish." Removed the remaining Benefits stat-block (SQL only, no code change). Fast-forwarded feature/two-tier-nav (7 commits) into main locally and pushed origin/main. main and feature/two-tier-nav are both at bf211ae.
  8. New publish-confirmation Basecamp reply drafted at ~/Desktop/anders-solano-publish-reply.txt (short, addresses only Anders's 4 approval bullets). Stale earlier draft deleted.
  9. Deploy still pending on Eric's side: code is on origin/main ready to pull. All content changes still only in local DB — needs WP Migrate DB Pro sync from local → prod to actually publish. Cache purge after.

Next Steps

  1. ~~April 1 — Internal team meeting (Eric, Mike, Kristin, Brooke) to decide subdomain vs sub-section recommendation~~ ✓ Done
  2. ~~Send recommendation to Jan/Anders with rationale~~ ✓ Email drafted, ready to send
  3. ~~Awaiting client response — Jan/Anders to confirm sub-section approach or flag concerns~~ ✓ Client confirmed, site is built
  4. ~~Awaiting client clarification on nav structure (item 5) and Solano Shipyard page scope (item 6)~~ ✓ Building both — nav on feature branch, Shipyard page built
  5. ~~Complete the 6 actionable feedback items~~ ✓ Done
  6. ~~Awaiting 6 URLs from client~~ ✓ 5 of 6 received and wired April 7. Only "Learn more" remained and Anders resolved it (route to /transportation/).
  7. Post Basecamp reply draft from Desktop to Anders — captures April 7 revision status + three outstanding content questions
  8. Awaiting from client (blocks closing Taxpayer/Benefits pages): real numeric stats for Taxpayer Protections, specific annual tax revenue projection for Benefits to Suisun, decision on whether to re-add supporter tiles on Water/Taxpayer/Benefits
  9. Client plans to add more supporters after Tuesday (April 7)
  10. Plan 301 redirect map from solano.californiaforever.com URLs to new /solano/ paths - Keep subdomain active as redirect-only endpoint - 301 each old URL to its new equivalent (e.g., /faqcaliforniaforever.com/solano/faq/) - Google transfers nearly all ranking signals via 301s - Net positive: merges subdomain authority into main domain instead of leaving it isolated - Current Solano site has broken pages (Break Ground 404s) — migration is a chance to clean up link structure