Skip to content

Add Work page + instrument the readiness funnel (analytics, shareable results, mailto fallback, SEO)#1

Draft
demirelo wants to merge 1 commit into
mainfrom
fix/10x-funnel-and-work
Draft

Add Work page + instrument the readiness funnel (analytics, shareable results, mailto fallback, SEO)#1
demirelo wants to merge 1 commit into
mainfrom
fix/10x-funnel-and-work

Conversation

@demirelo

@demirelo demirelo commented Jul 7, 2026

Copy link
Copy Markdown
Owner

Top-of-funnel work on the brand site and the /ai-readiness check, per the progfi 10x plan (moves 1, 2, 3, 6 for the site, plus the new Work page you asked for). All client-side, no backend, no dependencies added.

What changed

A. New /work/ page (your new request)

A curated "Work" page in the site's editorial voice (Fraunces + amber, dark hero / cream project grid), driven by an editable PROJECTS[] array at the bottom of work/index.html — trim/reorder freely. Linked from the homepage nav + footer and the check's footer.

Exact selection shipped (please trim):

# Entry Link shown Note
1 AI Readiness Check live → /ai-readiness/ this site's own check
2 implement Source (public) implement-skill
3 opinions none — flagged "Private repo — link on request" PRIVATE (per your follow-up); tagged product / RAG / podcasts
4 analog-ready Source (public)
5 mac-posture-audit Source (public), ★21
6 Floors Simulator live + Source (both public)
7 Floors Curve Designer live only (github.io) PRIVATE repo — live tool is public, repo link omitted
8 poseidon Source (public)
9 rs-proximity-bracket Source (public)

Excluded per the guardrails: anything private/client-specific (Darkbloom, floors client sims beyond the public simulator, ftoken/raac/perpetua sims, research-private repos). All public live/repo URLs were checked and return 200.

B. Funnel analytics (ai-readiness/index.html)

A tiny track() layer firing four events: check_started, check_completed (+level), booking_click (+level), email_click (+level). It sends only an event name + the result level (one digit) + path — never the answers. ANALYTICS_ENDPOINT is left blank with a TODO(omer); while blank, track() is a strict no-op (nothing is sent). Supports a plain JSON beacon, or Plausible-style, via ANALYTICS_PROVIDER. No provider was signed up.

C. Durable + shareable result

Answers are encoded in the URL hash (#a=3241335221); the result now survives reload, and opening a shared link re-renders that exact result. Adds a "Copy my result link" button and a per-level page title (We scored L2 — Emerging …).

D. Mailto dead-end fix

A "Copy email text" button next to the mailto button, for desktop-webmail users whose browser silently no-ops mailto:. Copies the same pre-filled subject/body as plain text.

E. SEO / link hygiene

sitemap.xml (home, check, work — Darkbloom deliberately excluded, it's noindex), robots.txt, and a placeholder og-image.svg referenced from all three pages' OG/Twitter meta. Repo homepage set to https://progfi.xyz and topics added via gh repo edit (applied directly — reversible metadata, not part of this diff).

Verification

  • Both edited/new script blocks pass node --check.
  • Analytics defaults to off; privacy copy in the footer/chip updated to stay accurate whether or not analytics is later enabled.

Deferred — needs omer's decision

  • Trim the Work list — confirm the 9 entries above; decide whether to keep the two private-repo entries (opinions, Floors Curve Designer) live now or wait until each repo/demo is public. opinions currently shows no link (flagged private); Floors Curve Designer shows only its public live tool.
  • Pick an analytics provider and set ANALYTICS_ENDPOINT (+ ANALYTICS_PROVIDER). Recommend GoatCounter or Plausible (privacy-respecting, no cookie banner). Until then, no events are sent.
  • OG image: og-image.svg is a placeholder — most social scrapers (LinkedIn, X) don't render SVG. Convert to a 1200×630 PNG at /og-image.png and repoint the og:image/twitter:image metas. (Left as SVG because no image tooling/deps were run.)
  • Per-level OG cards (plan move 2): true per-level share images need static per-level pages or a serverless OG renderer — GitHub Pages can't vary the <head> by hash for crawlers. Deferred; the hash-restore + copy-link + per-level <title> deliver the shareable-result value today.
  • Optional: instrument the homepage's "Start a conversation" email clicks too (kept analytics scoped to the check for this PR).

🤖 Generated with Claude Code

…hareable results, mailto fallback, SEO)

Top-of-funnel improvements to the brand site and the /ai-readiness check.

New:
- work/ — a curated "Work" page listing select public projects in the site's
  editorial voice, driven by an editable PROJECTS[] array. Linked from nav +
  footer on the homepage and the check.
- sitemap.xml, robots.txt, og-image.svg (placeholder) — SEO/link hygiene.

ai-readiness/index.html:
- Funnel analytics: a no-op-until-configured track() layer firing
  check_started, check_completed(+level), booking_click, email_click.
  ANALYTICS_ENDPOINT is left blank with a TODO — no provider signed up.
- Durable/shareable result: answers are encoded in the URL hash (#a=NNNNNNNNNN)
  so a result survives reload and can be shared; a shared link re-opens the exact
  result. Adds a "Copy my result link" button and sets a per-level page title.
- Mailto dead-end fix: a "Copy email text" button next to the mailto button for
  webmail-on-desktop users whose browser no-ops mailto:.
- OG/Twitter share meta added to the head.
- Footer privacy promise amended to reflect the (opt-in) anonymous analytics.

Homepage: Work link in nav + footer; OG image meta.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant