California Forever — Disambiguation Hub
This is the single entry point for everything California Forever. The client owns four related but separate properties; each lives in its own sub-folder. Before acting on any "California Forever" request, identify which property it's about and route to that sub-folder's README + CLAUDE.md.
The Properties
| Property | Production URL | What it is | Sub-folder |
|---|---|---|---|
| Main site | californiaforever.com | The flagship marketing site. Vision, plan, blog, press, pledge, In the Media. Custom Tailwind theme. Phase II shipped. | main-site/ |
| Solano site | solano.californiaforever.com | Solano County community-facing site. Locally-defensive, fact-based content (jobs, homes, transportation, water, taxpayer protections). Plumbweb child theme. | solano-site/ |
| Solano archive | solanostaging.flywheelsites.com | Read-only archive of the original Plumb-built Solano site. Backup snapshot for the client. Lives under the legacy Flywheel slug solanostaging ("Solano Staging" in the admin — name is misleading, it's the archive). Never works on this. |
solano-archive/ |
| Brand Guide | california-forever-brand-guide.vercel.app | Digital brand guide site (Next.js on Vercel). Colors, typography, voice, photography, applications. First client implementation of G&M's brand-guide product. | brand-guide/ |
All four are tied to the same client (Jan Sramek CEO, Anders Engnell Chief of Staff). Each has its own scope, codebase, and hosting — don't assume a request about "California Forever" applies to all of them.
Routing — pick the right sub-folder
Use these cues, in order:
- URL mentioned? Match the domain:
-
californiaforever.com(no subdomain or path) →main-site/-solano.californiaforever.com→solano-site/-solanostaging.flywheelsites.com→solano-archive/(read-only — flag if anyone asks to edit it) -california-forever-brand-guide.vercel.app→brand-guide/ - Topic cue:
- Phase II features (blog, press, pledge, press kit, In the Media, team popup), retainer fixes, Slide Presentation →
main-site/- Solano-specific content (jobs, homes, transportation, water, taxpayer protections), Spanish translation toggle, /solano/ sub-section planning →solano-site/- Brand colors, typography, voice, the Slack/brandbot →brand-guide/ - Local URL hint?
-
californiaforever.local→main-site/-solano-californiaforever.local→solano-site/-solano-archive-californiaforever.local→solano-archive/ - Still ambiguous? Ask. Don't guess.
Property identity card (verified May 7, 2026)
The post-cleanup canonical mapping for each property — useful when checking pull/push targets, looking up SSH aliases, or confirming an unknown URL. The full convention is <property>-californiaforever everywhere we control the slug; Flywheel slugs are immutable (client owns the account).
| Property | Local folder | .local URL |
Local ID | Flywheel slug | Flywheel hash | sites.json id | WP table prefix |
|---|---|---|---|---|---|---|---|
| Main | californiaforever |
https://californiaforever.local |
QcYISrxM- |
national-california-forever-site |
4qx5llvyu7 |
californiaforever |
wp_uehzvxt6g1_ |
| Solano | solano-californiaforever |
https://solano-californiaforever.local |
hw36b0MQCm |
local-solano-cf-site |
gjag0ffq74 |
solano-californiaforever |
wp_ed7b43hthk_ |
| Solano archive | solano-archive-californiaforever |
https://solano-archive-californiaforever.local |
M6YoSLdfO |
solanostaging |
ejsm9036pm |
solano-archive-californiaforever |
wp_ed7b43hthk_ |
| Brand Guide | n/a (Next.js, lives in ~/Projects/california-forever-brand-guide/) |
http://localhost:3000 |
n/a | n/a | n/a | n/a | n/a |
Each Local site's Flywheel pairing (hostConnections.remoteSiteId) is the verified hash above. Pull/push routes correctly: pulling Solano lands in solano-californiaforever/, pulling the archive lands in solano-archive-californiaforever/.
Historical gotcha — folder labels USED to lie
Before May 6, 2026, the Local folder names were misleading:
~/Local Sites/solanocaliforniaforevercom/actually held the Plumb archive content (despite the name suggesting it was the active solano subdomain).~/Local Sites/staging-solanocaliforniaforever/actually held the active production content (despite "staging" in the name).
The Local↔Flywheel hostConnections were always correctly wired — it was just the folder labels that lied. The May 6 cleanup swapped folder contents to match the names. Now folder name = content = Flywheel pairing for all three sites.
If you encounter old project notes that reference solanocaliforniaforevercom or staging-solanocaliforniaforever, treat those as historical — the modern names are solano-californiaforever (active) and solano-archive-californiaforever (archive).
Shared context
- Client contacts: Jan Sramek (CEO, direction/approvals), Anders Engnell (Chief of Staff, primary day-to-day)
- G&M team: Brooke (PM), Eric (dev), Mike (design), Kristin (design)
- Basecamp: Questions go in the CF Basecamp project
- Harvest project: Retainer #3 2026 (id
48006319, client California Forever, Inc.) — current active retainer; most non-Phase-II hours bill here. Older retainers (#1 2026id46967165,#2 2026id47512257,#1 2025id46811179) are inactive but still searchable for historical entries. - Master doc: California Forever - Master
- Waiting on client:
WAITING-ON-CLIENT.mdat the parent root tracks blocked items across all four properties.
Active initiatives (May 7, 2026)
- Spanish translation toggle — Active. Anders' May 5 ask: prominent Spanish toggle on Solano (and main). Track A (simple GTranslate, customized) live on main CF prod 2026-05-07; Solano local-only. Track B (custom AI workflow) parked. Architecture overview:
SPANISH-TRANSLATION-OVERVIEW.md(read this first for any GTranslate work). Scope + Track B email thread:main-site/Retainer/2026-05-06-spanish-translation-scope.md. Todoist project: California Forever — Spanish Translation (6gXVf5mM6PgM8WJv). - Blog list layout — Parked on
fix/blog-list-layoutawaiting Mike's design review. - Blog archive —
/category/archive/page live, awaiting Jan's next batch of older posts. - Pledge Slack interactivity — Code shipped, awaiting client to enable Interactivity in their Slack app.
See WAITING-ON-CLIENT.md for the full blocked-items list.