Skip to content

feat(home): Phase D — conversion (proof band, named founder, Process nav, Book-a-call)#11

Merged
spokodev merged 1 commit into
mainfrom
feat/growth-phase-d
Jul 7, 2026
Merged

feat(home): Phase D — conversion (proof band, named founder, Process nav, Book-a-call)#11
spokodev merged 1 commit into
mainfrom
feat/growth-phase-d

Conversation

@spokodev

@spokodev spokodev commented Jul 7, 2026

Copy link
Copy Markdown
Owner

Summary

Phase D of the growth roadmap — convert. The site was technically pristine but commercially quiet; this surfaces the buried OSS proof, names the founder for authority, and makes the engagement path discoverable.

  • D1 — Home upstream proof band (highest-leverage): new components/home/upstream-proof-band.tsx between Hero and ProjectGrid. Data-driven off aggregates() (113 merged PRs / 97 repos) with a 12-brand logo wall reusing BrandIcon — Node.js, Mozilla, MongoDB, Redis, Puppeteer, React Router, GraphQL, ESLint, Solid, XState, Mantine, Vitest. CTA → /upstream.
  • D2 — Hero: restored the "small team of engineers" sub (user preference).
  • D3 — Process nav + Book-a-call: Process added to primary nav (union widened, nav.process key, mobile numbering now computed); new env-gated components/cta/book-a-call.tsx wired into /process CTA + home ContactSection (renders only when NEXT_PUBLIC_CAL_URL is set — live in prod).
  • D4 — Named founder: /about names Yaroslav (principal engineer, 14 yrs) with small-team + network framing; JSON-LD founder Person enriched with description + sameAs.
  • D6 — Footer social: GitHub link (simple-icons mark), structured for LinkedIn/X later, synced with JSON-LD sameAs.

i18n

EN + UK hand-authored; DE/ES/FR/NL/PL/PT via DeepL (pnpm translate), including forced re-translation of the changed hero sub + about bio so all 8 locales carry the new copy. pnpm translate:check clean.

Governance

Reconciled the local (gitignored) CLAUDE.md: the stale "NEVER public pricing" rule is superseded by "pricing signal on /process is allowed" (matches the already-shipped €15k–€60k bands); positioning updated to "small team led by Yaroslav + network".

Test plan

  • pnpm typecheck + pnpm lint + pnpm build clean (152 static pages, zero MISSING_MESSAGE)
  • Dev smoke: proof band renders 12 brand logos + data-driven "113 merged PRs across 97"; Process in nav; hero shows "small team of engineers"
  • Prod (after deploy): / shows proof band; /about names Yaroslav; nav has Process; Book-a-call button appears on /process + home contact (env-gated); footer GitHub link resolves
  • DE/UK spot-check: hero "kleines Team"/"невелика команда", about "Yaroslav geleitet"/"веде Ярослав"

Deferred (user-gated, not blocking)

  • Testimonials (D5): rendering wired, lib/testimonials.ts still [] — needs real attributed quotes + permission.
  • LinkedIn / X handles → footer + JSON-LD sameAs.
  • Founder photo (user opted out for now).

🤖 Generated with Claude Code

…nav, Book-a-call)

Convert the technically-pristine-but-commercially-quiet site: surface the
buried OSS proof, name the founder for authority, make the engagement path
(Process + pricing signal + booking) discoverable.

D1 — Home upstream proof band (highest-leverage)
New `components/home/upstream-proof-band.tsx`, mounted between Hero and
ProjectGrid. Data-driven off `aggregates()` (113 merged PRs / 97 repos —
never drifts from the enriched snapshot) with a 12-brand logo wall reusing
`BrandIcon` (Node.js, Mozilla, MongoDB, Redis, Puppeteer, React Router,
GraphQL, ESLint, Solid, XState, Mantine, Vitest — all real simple-icons).
CTA links to /upstream. Named + quantified credibility no competitor fakes.

D2 — Hero framing
Restored the "small team of engineers" hero sub (user preference) over the
"one engineer + network" wording.

D3 — Process nav + Book-a-call
- Added Process to the primary nav (widened NavItem union, new
  `common.nav.process` key, mobile Contact row number now computed from
  `items.length` instead of a hardcoded "04").
- New reusable `components/cta/book-a-call.tsx` — env-gated on
  NEXT_PUBLIC_CAL_URL (renders null in local dev, live in prod), links
  straight to the self-hosted Cal.com discovery event. Wired into the
  /process CTA block and the home ContactSection so booking no longer
  hides behind the 5-step form's budget gate.

D4 — Named founder
/about now names Yaroslav (principal engineer, 14 yrs, sysadmin→QA→
product→engineering) with a small-team + specialist-network framing.
Enriched the JSON-LD founder Person with `description` + `sameAs` (GitHub).

D6 — Footer social
Added a GitHub link to the footer (simple-icons mark — lucide-react v1
dropped brand icons), structured to accept LinkedIn/X once handles arrive,
kept in sync with the JSON-LD `sameAs`.

i18n: EN + UK hand-authored; DE/ES/FR/NL/PL/PT filled via DeepL
(`pnpm translate`) — including forced re-translation of the changed hero
sub + about bio so all 8 locales carry the new "small team" + named-founder
copy. `pnpm translate:check` clean.

Governance: reconciled the (gitignored, local) CLAUDE.md — the stale
"NEVER public pricing" rule is superseded by "pricing signal on /process
is allowed" (matches the already-shipped €15k–€60k bands), and the
positioning line updated to "small team led by Yaroslav + network".

Verified: pnpm typecheck + lint + build clean (152 static pages, zero
MISSING_MESSAGE). Dev smoke: proof band renders 12 brand logos + the
data-driven "113 merged PRs across 97" line; Process in nav; hero shows
"small team of engineers".

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@spokodev
spokodev merged commit 0c98d5c into main Jul 7, 2026
2 checks passed
@spokodev
spokodev deleted the feat/growth-phase-d branch July 7, 2026 12:36
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