Repository navigation
Epic: gosqlx.dev + README visual, performance & discoverability overhaul (audit 2026-10-14) #634
Copy link
Copy link
Open
Labels
Description
Executive summary
- Pages go blank after load (P0).
FadeIn.tsxswaps visible server HTML for anopacity:0motion tree after hydration; hero, /compare, /blog and scroll sections stay faint for seconds (500px hero showed only the version badge after 4s). Fixing it is the biggest win for LCP, perceived quality and crawler rendering. - Three SEO bugs need fixing now. Layout-level
canonical: '/'leaks to /docs/, /playground/, /privacy/ and 404; sitemap omits /compare and lists redirecting non-slash URLs; most pages have noog:image. - Some claims are wrong or unsourced (credibility risk before the HN launch, P0: Submit dev.to article to Hacker News + r/golang — top-of-funnel launch #442). Star count hardcoded "1.2k" (real: 120; CSP blocks the fetch), competitor numbers contradict across pages, Complex Multi-JOIN chart 574K vs table 376K, headline throughput 1.38M/1.40M/1.5M+ (the only 1.38M test is tokenizer-only).
- README headline snippet depended on an unreleased API. Resolved by tagging v1.15.0 at 31b5b1c; README also has ~14 badges (two retired), an overflowing install table, an empty adopters section and no demo media.
- Visually generic. Monochrome hero, 32px raster logo, three font families, text-initial dialect cards, raw-JSON demo, light mode via ~300 lines of overrides.
- More client code than static content needs. Sentry Replay/logs on every page, WASM instantiated on every home visit, static pages marked
'use client'. - No content engine. /blog is release notes only; no comparison pages, no served
llms.txt, no RSS, no awesome-list presence. - Order of work: ~6 hotfix PRs, then Phase 1 (correctness, SEO plumbing, motion/perf), Phase 2 (visual), Phase 3 (README and GitHub), Phase 4 (content/distribution), Phase 5 (measure). One generated metrics file checked in CI keeps every number consistent.
Scorecard (audit 2026-10-14)
| Area | Grade | Why |
|---|---|---|
| Visual | C | Coherent dark look but monochrome hero, weak mark, three font families, text-initial dialect cards, raw-JSON demo; light mode via overrides |
| Performance | D | Content hidden until hydration, WASM on every home visit, Sentry Replay in every bundle; probe FCP 6.2s (not yet confirmed in Lighthouse) |
| SEO | D | Canonicals to home on key pages, missing og:image, sitemap gaps, doubled brand in titles, short docs descriptions |
| Docs UX | C | Extensive content, but literal backticks, changelog-first quickstart, truncated TOC, title-only search, no edit/last-updated |
| Product pages | D | Contradictory unsourced competitor numbers, chart/table mismatch, CGo green check, concatenated AST leaves, VS Code says 10 rules vs 30 |
| README/GitHub | D | Headline snippet did not compile on the released tag, retired badges, overflow table, empty adopters, no demo/social preview, root clutter |
| Accessibility | C | Skip link/ARIA present; muted text fails AA, no :focus-visible, search modal focus, partial reduced-motion, no playground SSR h1 |
| Discoverability | D | No served llms.txt/RSS, /blog is a changelog, no comparison pages, no awesome-list listings, 120 stars |
99 verified findings: 9 P0, 39 P1, 38 P2, 13 P3.
Decisions and open questions
- v1.15.0: DECIDED. Tag v1.15.0 back-dated at commit 31b5b1c (2026-07-30), which contains ParseTree. Revert-README option dropped; Phase 3.6 no longer waits on tagging.
- Headline throughput: the only 1.38M comparison is a tokenizer-only sustained test. Change the headline to the measured stage-labelled figure (e.g. ~712 ns/op parse from tokens) before the HN launch? Recommended yes.
- Competitor numbers: remove now (recommended) or label as "unverified estimate" until the 4.1 harness exists? Which versions/corpora are fair?
- Sentry: is Session Replay or logs used? Check
sendDefaultPii: trueagainst /privacy copy. - WASM caching: is deferral alone enough, or schedule a content-hashed immutable WASM (touches
scripts/build-wasm.sh,wasm_exec.js)? - Brand: keep mascot as primary mark or adopt a flat SVG monogram? Who produces logo, demo GIF and social preview?
- Third-party marks: trademark terms for Anthropic/Cursor/VS Code/database logos; are text plus neutral glyphs acceptable?
- /blog to /changelog rename: OK to change indexed URLs (permanent redirects)? Who writes the 6 evergreen posts?
- Docs IA restructure (4.6): before or after the launch (moves URLs, needs redirects)?
- Repo admin actions: social preview, About text, topics, homepage need UI/admin; PAT-based step or manual?
- Tracked
.claude/settings.json: intentional? (render.yamlandglama.jsonmust stay at root.) - Unsourced claims: sources for dialect % values (95/85/80) in
DialectShowcase.tsx, "20,000+ concurrent ops", "800+ tests"; unsourced claims get dropped. - Review bandwidth: ~35 small PRs against a code-owner-review ruleset with one maintainer; batch Phase 1 into 3-4 merge windows. No
--adminmerges. - Search Console and Bing: are properties verified? A baseline is required before Phase 4 targets.
- Launch timing (P0: Submit dev.to article to Hacker News + r/golang — top-of-funnel launch #442): hold Show HN until HF-1..5, Phase 1, Phase 3 and 4.1/4.2 are done?
Tasks
Tasks
Hotfixes
- chore(website/ci): add typecheck and lint scripts + website CI workflow [HF-0] #635
- fix(website/seo): self-referencing canonicals on /docs, /playground, /privacy, 404 + sitemap fixes [HF-1] #636
- fix(website/perf): render content visible without JS; replace FadeIn with CSS server-component reveal [HF-2] #637
- fix(website/home): replace hardcoded '1.2k' GitHub stars with server-fetched real count [HF-3] #638
- fix(website/benchmarks): remove contradictory and unsourced competitor/benchmark numbers [HF-4] #639
- docs(readme): align with released v1.15.0 (ParseTree now released); fix stale v1.13.0 in doc.go files; README quickstart compile-check in CI [HF-5] #640
Phase 1 – Foundations
- feat(website/seo): pageMeta() helper, single-brand title template, home keyword title [1.1] #641
- feat(website/seo): hand-written meta descriptions for docs, blog and playground [1.2] #642
- feat(website/seo): structured data (SoftwareApplication on home, WebSite, TechArticle, BreadcrumbList) [1.3] #643
- feat(website/seo): per-page Open Graph images via next/og [1.4] #644
- feat(website/seo): serve llms.txt/llms-full.txt, RSS feed, robots.ts [1.5] #645
- fix(website/a11y): single <main> landmark and server-rendered playground <h1> [1.6] #646
- perf(website): server components for static pages, MotionConfig reducedMotion, static counters [1.7] #647
- perf(website/sentry): drop Session Replay and logs from the client bundle [1.8] #648
- perf(website/home): defer WASM load until user intent; SW only on /playground [1.9] #649
- perf(website): remove scroll bar, replace blur layers, lazy-load search [1.10] #650
- chore(website/ci): Lighthouse CI route coverage, error-level assertions and resource budgets [1.11] #651
- fix(website/docs): inline code backticks, TOC headings and reading time [1.12] #652
- docs(getting-started): lead with Step 1, move changelog dump and long Step 4 [1.13] #653
- fix(website/product): playground AST layout, compare polarity, VS Code rule count, editor theme [1.14] #654
- fix(website/a11y): contrast tokens, focus-visible, tap targets, theme toggle, search combobox [1.15] #655
- feat(website/docs): docs navigation, edit link, last updated, build-time search index [1.16] #656
- feat(website): metrics single source of truth and drift check (website side) [1.17a] #657
- chore(docs): generate README metrics block and version-banner drift check in CI [1.17b] #658
Phase 2 – Visual redesign
- feat(website/design): semantic design-token system, collapse legacy color tokens [2.1] #659
- feat(website/design): two-family type system and fluid type scale [2.2] #660
- feat(website/brand): flat SVG monogram mark for header, footer, favicon and OG [2.3] #661
- feat(website/home): hero redesign with solid headline, formatted-SQL demo and proof line [2.4] #662
- feat(website/home): home sections redesign (proof strip, integrations, dialect cards, performance) [2.5] #663
- feat(website/docs): docs index redesign with Start-here row and real item links [2.6] #664
- feat(website): light-mode parity, remove html.light override CSS [2.7] #665
Phase 3 – README & GitHub
- docs(readme): header with logo picture, value line and at most 6 badges [3.1] #666
- docs(readme): stacked install sections and one compile-checked quickstart [3.2] #667
- docs(readme): cut vanity sections, emoji feature table and fix doc links [3.3] #668
- docs(readme): demo GIF (VHS tape), before/after PNG, architecture SVG and logos [3.4] #669
- chore(repo): clean repo root (.playwright-mcp, screenshots) and decide tracked .claude/settings.json [3.5] #670
- docs(gosqlx): refresh pkg.go.dev doc comments for v1.15.0 (ParseTree) and extend examples [3.6] #671
- chore(github): social preview, About description, homepage URL and topics (maintainer, UI) [3.7] #672
Phase 4 – Content & discoverability
- feat(bench): reproducible competitor benchmark harness feeding metrics.json [4.1] #673
- feat(website/benchmarks): methodology and reproduce block [4.2] #674
- feat(website/compare): per-competitor alternative pages [4.3] #675
- feat(website): move /blog to /changelog with permanent redirects [4.4] #676
- content(website): launch /blog with six evergreen posts [4.5] #677
- docs(website): task-first guides and docs IA restructure with redirects [4.6] #678
- feat(website): llms-full.txt and raw-markdown alternates for docs [4.7] #679
- chore(distribution): awesome-go, awesome-mcp-servers, MCP registries, newsletters (no PR) [4.8] #680
- chore(launch): Show HN readiness checklist (no PR) [4.9] #681
Phase 5 – Measure & iterate
- chore(seo): Search Console + Bing verification, sitemap submission and 28-day baseline [5.1] #682
- chore(website/perf): field RUM and monthly production Lighthouse [5.2] #683
- chore(ci): claims-drift job and weekly GitHub signals [5.3] #684
Refs
- Plan: docs/superpowers/plans/2026-10-14-readme-website-audit-plan.md (audit plan, 2026-10-14; file not yet committed)
- Related: P0: Submit dev.to article to Hacker News + r/golang — top-of-funnel launch #442 (HN launch)
Reactions are currently unavailable
Activity
ajitpratap0 commentedon Oct 14, 2026
Automated run: W0 quality gates
ajitpratap0 commentedon Oct 14, 2026
Automated run: W1 hotfixes
next startchecked at ~406px: no horizontal scroll, no console errors. Non-blocking review items left open.gh repo edit --description.ajitpratap0 commentedon Oct 14, 2026
Automated run: W2 phase-1a
ajitpratap0 commentedon Oct 14, 2026
Automated run: W3 phase-1b
updated. Squash-merged, all checks green. Follow-ups: docs dateModified uses file mtime, breadcrumb hardcodes /blog/, aggregateRating risk. Rich Results not run.<div>. Squash-merged, checks green. Verified one main and one h1 on a local production build, not in a browser.Checkboxes: all seven rows were already ticked in the epic body, so the body was not edited.
ajitpratap0 commentedon Oct 14, 2026
Automated run: W4 phase-1c
ajitpratap0 commentedon Oct 14, 2026
Automated run: W5 tokens + repo hygiene
Epic checkboxes: #659 and #671 were already ticked in the body, so the body was not edited. #664 and #670 stay unticked until merged.