2026-08-02-seo-foundation-session
Handoff — Adventure Weddings SEO foundation (2026-08-02)
Written mid-session to move machines. Plan: docs/plans/2026-08-02-001-feat-adventure-weddings-seo-foundation-plan.md — that document is the authority; this file is just the session state around it.
Where things stand
| Unit | State |
|---|---|
| U1 Repair CI | ✅ Merged — PR #5, main @ 34cd05c, CI green |
| U2 Post model + Markdown pipeline | 🟡 PR #6 open, CI green, awaiting merge |
| U3–U8 | Not started |
Also done outside the units:
- Google Search Console verified for
https://adventureweddings.love(URL-prefix property, HTML-file method, PR #4). File ispublic/googlee270fc2479589a08.html— never delete it. - Baseline not yet captured. Data takes 1–3 days from verification (2026-08-02). Capture from the plan’s Success Metrics table before U3–U7 ship, or the whole effort is unmeasurable.
Pick up here
cd ~/Projects/adventure-weddings
git checkout main && git pull
gh pr view 6 # merge if it still looks right
Then resume with /ce:work U3 from the monorepo.
~/Projects/adventure-weddings is a separate repo, not part of this monorepo. Clone it if the new machine doesn’t have it: git clone git@github.com:veganpolice/adventure-weddings.git.
Gotchas that will bite on a fresh machine
These were learned the hard way this session and are not discoverable from the code.
-
Merging to
maindoes NOT deploy. GitHub→Lovable sync moves code; publishing toadventureweddings.loveis a separate manual Publish click in the Lovable UI. Verify a deploy actually shipped by watchingx-deployment-idchange in the response headers. -
bun installdoes not work outside Lovable’s sandbox.bun.lockbakes in 654 URLs to Lovable’s private Artifact Registry (europe-west*-npm.pkg.dev/lovable-core-prod) and 403s everywhere else.BUN_CONFIG_REGISTRYdoes not override URLs already pinned in a lockfile, andbun addfails too. Use:npm install --legacy-peer-deps --no-package-lock --no-audit --no-fund--legacy-peer-depsis required —next-themes@0.3.0declares a React 16–18 peer while the app is on React 19. -
Never mix bun and npm in
node_modules. A partialbun installleaves a hybrid tree with wrong package versions, which produced a phantom lint error at a line number that didn’t exist. If anything looks impossible,rm -rf node_modulesand reinstall with the npm command above. -
Do not add dependencies without solving the lockfile problem first.
package.jsoncan be edited butbun.lockcannot be regenerated locally, and Lovable’s build may use--frozen-lockfile. This is why U2’s Markdown renderer is hand-written. -
Don’t commit
supabase/functions/mcp/index.tschurn. It’s auto-generated and bakes in the@lovable.dev/mcp-jsversion, so it changes whenever a local install resolves a different patch version. Revert it rather than committing. -
.output/is build output. Now gitignored as part of U2 — pull that change before running a build.
Open, unrelated to the units
- Domain access gap.
adventureweddings.loveis registered at iWantMyName, DNS is on a Cloudflare account nobody on the team can access (Google’s Cloudflare OAuth returns “not authorized”). It is not Aaron’s account and almost certainly not Lovable’s — the zone carries Lana’s Zoho email records and predates the Lovable project. Domain expires 2026-12-27. Lana should search her email for “iwantmyname” and “Cloudflare”. The registrar login is the credential that matters — it outranks Cloudflare. wwwis not redirected.www.adventureweddings.loveand the apex both return 200 with identical content (duplicate content). Needs a Cloudflare 301 — blocked on the access gap above.- ~1,676 formatting warnings.
npm run formatclears them, but it’s a ~1,700-change commit — do it as its own PR when Lana isn’t mid-edit in Lovable.