feat(website): comprehensive website revamp — performance, design, UX, new pages#514
feat(website): comprehensive website revamp — performance, design, UX, new pages#514ajitpratap0 merged 9 commits intomainfrom
Conversation
…fix extraction gaps Addresses multiple issues from the v1.14.0 comprehensive project review: P0 — Critical: - Add UnsupportedStatement AST node with Kind and RawSQL fields to replace DescribeStatement misuse for Snowflake stubs (USE, COPY INTO, PUT, GET, LIST, REMOVE, CREATE STAGE/STREAM/TASK/PIPE/etc.) - Add EXTRACT(field FROM source) parser support (was missing entirely) - Fix all 7 extraction gap tests (CASE, CAST, IN, BETWEEN, EXTRACT, recursive CTEs) — previously t.Skip() stubs, now passing P1 — High: - Add AST.HasUnsupportedStatements() for stub detection - Formatter emits "-- UNSUPPORTED: ..." comment for unmodeled statements instead of producing corrupt SQL - Remove stale "CREATE TABLE not implemented" comment from coverage tests - Add TODO(v2-cleanup) markers to 5 overlapping coverage test files P2 — Medium: - Reconcile Validate() empty-input behavior (parser.ValidateBytes now rejects empty input, matching gosqlx.Validate) - Fix ParseBytes string→byte→string round-trip (now threads []byte directly to tokenizer) - Deprecate pkg/sql/monitor in favor of pkg/metrics (v2.0 removal) - Add v2.0 removal timeline to 3 deprecated parser APIs All tests pass with -race across the full project (20 files, +361/-103). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…, new pages Major overhaul of the GoSQLX website driven by a full audit (Lighthouse, accessibility, competitive analysis, performance traces, mobile UX testing). Performance: - Convert 7 homepage components from client to server components - Replace Framer Motion FadeIn with lightweight CSS IntersectionObserver (FadeInCSS) - Extract GitHubStarButton/GitHubStarCount as tiny client islands - Expected LCP improvement from ~893ms to <400ms Design System: - 12 new semantic design tokens (bg, brand, text, border layers) - Glass cards: increased opacity, inset highlight, deeper shadows - Typography: Space Grotesk (headings) + Inter (body), JetBrains Mono (code) - Prose contrast improved (body opacity 0.7 → 0.8) New Pages & Sections: - /compare/ — Feature matrix + perf bar chart vs pg_query, vitess, sqlparser - DialectShowcase — 8 dialect cards with compliance % and status badges - PerformanceSection — Animated horizontal bar chart (CSS-only, scroll-triggered) - TrustSection — 5 metric cards + 3 integration cards (Claude, VS Code, Cursor) - Hero MiniPlayground — Live WASM-powered SQL parser embedded in hero Docs & UX: - Cmd+K search modal with Fuse.js (SearchModal + search-index) - Code block CopyButton (hover-to-reveal, clipboard feedback) - DocNavigation (prev/next article links) - Reading time estimate on articles - Mobile sidebar scroll lock Accessibility (Lighthouse 96 → targeting 100): - Logo alt text, cursor-pointer on interactive elements - Mobile menu: body scroll lock + full opacity background - Text contrast: zinc-300 → zinc-200 on cards, code font 13→14px Dark/Light Mode: - ThemeToggle with localStorage persistence + system preference detection - Inline script prevents flash of wrong theme - Full light mode CSS token overrides Benchmarks: - Visual bar charts (ParseChart, CompetitorChart) above tables - Tables in collapsible "View raw data" toggles Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
# Conflicts: # pkg/sql/parser/expressions_literal.go
|
Claude finished @ajitpratap0's task —— View job Code Review Complete ✅I've completed a comprehensive review of this website revamp PR. Here's my detailed feedback: Todo List
🎯 Overall AssessmentExcellent work! This is a well-architected, comprehensive website revamp that demonstrates strong engineering practices. The performance optimizations and design improvements are thoughtful and well-implemented. ✅ StrengthsPerformance Optimizations
Code Quality
Accessibility
Security
|
The light mode was broken because all 300+ component class strings use hardcoded dark-mode Tailwind utilities (text-white, text-zinc-300, bg-white/[0.06], border-white/[0.06]). The CSS custom property overrides were useless since components don't reference them. Fix: add a comprehensive html.light CSS layer that overrides every hardcoded dark-mode class — text colors, backgrounds, borders, glass cards, buttons, navbar (including dynamic rgba bg), footer, search modal, code blocks (kept dark per convention), accent colors, badges, bar charts, and section borders. Also fix Navbar to detect light class via MutationObserver and swap the hardcoded rgba(9,9,11) bg to rgba(250,251,252) in light mode. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Claude finished @ajitpratap0's task —— View job Code Review Complete ✅I've completed a comprehensive review of this website revamp PR. Here's my detailed feedback: Todo List
🎯 Overall AssessmentExcellent work! This is a well-architected, comprehensive website revamp that demonstrates strong engineering practices. The performance optimizations and design improvements are thoughtful and well-implemented. ✅ StrengthsPerformance Optimizations
Code Quality
Accessibility
Security
|
…cascade Tailwind v4 compiles utilities inside @layer which wins the CSS cascade over unlayered selectors. Our html.light overrides were being ignored. Fix: add !important to all light mode color/bg/border overrides. Also preserve dark code block styling inside pre/textarea elements by undoing text color overrides with inherit. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Claude finished @ajitpratap0's task —— View job Code Review Complete ✅I've completed a comprehensive review of this website revamp PR. Here's my detailed feedback: Todo List
🎯 Overall AssessmentExcellent work! This is a well-architected, comprehensive website revamp that demonstrates strong engineering practices. The performance optimizations and design improvements are thoughtful and well-implemented. ✅ StrengthsPerformance Optimizations
Code Quality
Accessibility
Security
|
…adges Audit of all 21 page/component files found remaining light mode gaps: - Add slate-200 through slate-600 text color overrides (playground tabs) - Add bg-slate-700/800/900/950 background overrides - Add border-slate-500/700/800 border overrides - Add bg-zinc-800/900/950 background overrides - Add bg-surface override for docs sidebar - Keep playground editor dark in light mode (convention) via scoped overrides targeting the h-[calc(100vh-64px)] container - Reduce hero gradient opacity from 0.3 to 0.15 in light mode - Fix ThemeToggle: remove non-functional light:/dark: pseudo-classes, simplify to standard classes that work with CSS overrides Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Claude finished @ajitpratap0's task —— View job Code Review Complete ✅I've completed a comprehensive review of this website revamp PR. Here's my detailed feedback: Todo List
🎯 Overall AssessmentExcellent work! This is a well-architected, comprehensive website revamp that demonstrates strong engineering practices. The performance optimizations and design improvements are thoughtful and well-implemented. ✅ StrengthsPerformance Optimizations
Code Quality
Accessibility
Security
|
Two fixes: 1. Remove forced-dark overrides on playground — it now responds to the theme toggle like every other page. CodeMirror editor keeps its own oneDark theme regardless. 2. Add CSS exceptions so text-white stays truly white inside accent-colored backgrounds (bg-accent-indigo, bg-accent-green, bg-brand). Fixes the docs "Get Started" button which had dark text on indigo bg in light mode. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Claude finished @ajitpratap0's task —— View job Code Review Complete ✅I've completed a comprehensive review of this website revamp PR. Here's my detailed feedback: Todo List
🎯 Overall AssessmentExcellent work! This is a well-architected, comprehensive website revamp that demonstrates strong engineering practices. The performance optimizations and design improvements are thoughtful and well-implemented. ✅ StrengthsPerformance Optimizations
Code Quality
Accessibility
Security
|
…0.95 Lighthouse CI failed with accessibility 0.93 (threshold: 0.95). Root cause: text-zinc-400/500 on dark backgrounds gives only ~4.3:1 contrast ratio, below WCAG AA minimum of 4.5:1. Changes: - MiniPlayground: inactive tabs zinc-500 → zinc-400, labels zinc-400 → zinc-300 - TrustSection: heading and labels zinc-400 → zinc-300 - DialectShowcase: subtitle zinc-400 → zinc-300 - AnimatedBars: value labels zinc-400 → zinc-300 - PerformanceSection: footnote zinc-500 → zinc-400 All text now passes WCAG AA (4.5:1 minimum contrast on dark backgrounds). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Claude finished @ajitpratap0's task —— View job Code Review Complete ✅I've completed a comprehensive review of this website revamp PR. Here's my detailed feedback: Todo List
🎯 Overall AssessmentExcellent work! This is a well-architected, comprehensive website revamp that demonstrates strong engineering practices. The performance optimizations and design improvements are thoughtful and well-implemented. ✅ StrengthsPerformance Optimizations
Code Quality
Accessibility
Security
|
…abel
Two specific Lighthouse accessibility failures from the CI report:
1. color-contrast (2.17:1): The <code> inside MiniPlayground's output
<pre> had text-zinc-300 which got overridden to dark gray (#4B5563)
by the global light mode CSS, but the <pre> bg stays dark (#1E1E2E).
Fix: use inline style={{ color: '#D4D4D8' }} on all code-block
<pre> and <textarea> elements so the color can't be overridden.
2. select-name: The dialect <select> was wrapped in a <label> with no
visible text. Lighthouse couldn't associate them.
Fix: add explicit <label> with "Dialect:" text + aria-label on select.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Claude finished @ajitpratap0's task —— View job Code Review Complete ✅I've completed a comprehensive review of this website revamp PR. Here's my detailed feedback: Todo List
🎯 Overall AssessmentExcellent work! This is a well-architected, comprehensive website revamp that demonstrates strong engineering practices. The performance optimizations and design improvements are thoughtful and well-implemented. ✅ StrengthsPerformance Optimizations
Code Quality
Accessibility
Security
|
Summary
Comprehensive overhaul of the GoSQLX website based on a full audit covering Lighthouse scores, performance traces (LCP breakdown), accessibility scanning, competitive analysis (Drizzle, sqlc, Prisma), and mobile UX testing across all pages.
/compare/page with feature matrix vs competitors, DialectShowcase (8 dialects), TrustSection (metrics + integrations), animated performance bar charts, live WASM mini-playground in hero.Changes
New Files (19)
app/compare/page.tsx+CompareContent.tsxcomponents/home/MiniPlayground.tsxcomponents/home/PerformanceSection.tsx+AnimatedBars.tsxcomponents/home/TrustSection.tsx+GitHubStarCount.tsxcomponents/home/DialectShowcase.tsxcomponents/home/GitHubStarButton.tsxcomponents/ui/FadeInCSS.tsxcomponents/ui/SearchModal.tsxcomponents/ui/ThemeToggle.tsxcomponents/docs/CopyButton.tsxcomponents/docs/DocNavigation.tsxcomponents/docs/DocsSearchTrigger.tsxcomponents/benchmarks/BarChart.tsxcomponents/benchmarks/CompetitorChart.tsx+ParseChart.tsxlib/search-index.tsModified Files (21)
globals.csslayout.tsxsuppressHydrationWarningpage.tsxfonts.tsHero.tsxNavbar.tsx7 home components'use client', FadeIn → FadeInCSSBenchmarksContent.tsxdocs/[...slug]/page.tsxSidebar.tsxmdx-components.tsxFooter.tsx+constants.tsTest Plan
next buildpasses — 51 pages generated, 0 TypeScript errorsfmt.Printlnhits are in code display strings)/compare/page renders correctly with feature matrixBreaking Changes
None. All changes are additive. Original components (StatsBar, SocialProof, FadeIn) are preserved in the codebase.
Audit Methodology
This PR was driven by a comprehensive audit including:
🤖 Generated with Claude Code