Skip to content

Add querygym.com Astro marketing site (full redesign)#7

Merged
radinhamidi merged 1 commit intomainfrom
feat/marketing-site
Apr 29, 2026
Merged

Add querygym.com Astro marketing site (full redesign)#7
radinhamidi merged 1 commit intomainfrom
feat/marketing-site

Conversation

@radinhamidi
Copy link
Copy Markdown
Member

Summary

PR2 of the website rollout (after #5 leaderboard, before #TBD Jekyll decommission). Lands web/site/ — a Cloudflare Pages-deployable Astro site that replaces the current Jekyll setup at querygym.com.

Full redesign: visual language refined from the Jekyll baseline (purple→pink gradient, Inter font, dark-mode toggle via @qg/shared) but content is rewritten for marketing rather than as a README render.

Pages

  • / — hero with animated query → reformulation card, features grid, ecosystem map (Library / Dashboard / Leaderboard / Docs), 30-second quickstart, methods preview, dashboard CTA strip.
  • /install — pip + Docker + Python + CLI, all with copy buttons.
  • /methods — full method grid sourced from web/site/src/data/methods.json with paper links.
  • /reproducibility — leaderboard + schema CTAs, submission flow snippet, link to /cite.
  • /cite — BibTeX for both papers (WWW 2026 Demos + SIGIR 2026 Reproducibility) inside <details> for copy.
  • /about — lab, authors, license, contributing.

Dashboard CTA prominence (required by memory project_web_layout.md)

  • Header nav has a Dashboard ↗ external link visible on every page.
  • Hero has the dashboard as the primary CTA (white pill button), Get Started as secondary.
  • End-of-home gradient strip with another large dashboard CTA.

Hero animation

Pure CSS — two text spans cross-fade on an 8s loop (what causes diabetes? → expanded form). No framer-motion, no client JS, no layout shift.

CI

.github/workflows/site-build.yml triggers on web/**, package.json, pnpm-workspace.yaml changes. Steps: pnpm install --frozen-lockfilepnpm -F @qg/site build → upload dist/ as artifact. No Python steps.

Cloudflare Pages — to configure once

Field Value
Project name querygym-site
Repo ls3-lab/QueryGym, branch main
Root directory web/site
Build command cd ../.. && pnpm install --frozen-lockfile && pnpm -F @qg/site build
Output directory web/site/dist
Custom domain querygym.com (+ www.querygym.com redirect)

Python package isolation — verified locally

Check Result
python -m build Builds cleanly
sdist leak grep no leak (web/, package.json, pnpm-lock all excluded by MANIFEST + [tool.setuptools.packages.find])
Wheel file count 36 files, all under querygym/ (unchanged from main)

Test plan

  • pnpm install succeeds (lockfile updated for @qg/site).
  • pnpm -F @qg/site build succeeds → 6 static pages.
  • All in-page links resolve: dashboard → dashboard.querygym.com, leaderboard → leaderboard.querygym.com, docs → querygym.readthedocs.io, GitHub → repo, papers → arXiv.
  • python -m build: zero leaks, wheel unchanged.
  • CI on this PR runs Marketing Site Build workflow.
  • Cloudflare Pages preview deploy renders correctly.
  • Lighthouse on preview ≥ 95.
  • Visual QA on 320 / 768 / 1280 / 1920 widths.

Out of scope (PR3)

  • Deleting Jekyll: _config.yml, _layouts/, root index.md, Gemfile, docs/leaderboard.html, .github/workflows/pages.yml.
  • Disabling GitHub Pages in repo settings.
  • Cloudflare Bulk Redirects on the querygym.com zone (cross-origin redirects from old GH Pages URLs).
  • DNS cutover from current Jekyll site to the new CF Pages site.

🤖 Generated with Claude Code

PR2 of the website rollout. Lands web/site/ as a Cloudflare Pages-
deployable Astro site that replaces the current Jekyll setup. Visual
language is refined from the Jekyll baseline (purple→pink gradient,
Inter, dark-mode toggle from @qg/shared) but content is rewritten
for marketing rather than as a README render.

Pages:
- /                — hero with animated query → reformulation card,
                     features grid, ecosystem map (Library/Dashboard/
                     Leaderboard/Docs), 30-second quickstart, methods
                     preview, dashboard CTA strip.
- /install         — pip + Docker + quickstart + CLI, with copy buttons.
- /methods         — full methods grid with paper links, sourced from
                     web/site/src/data/methods.json.
- /reproducibility — leaderboard + schema CTAs, submission flow,
                     pointer to /cite.
- /cite            — both BibTeX entries (WWW 2026 Demos + SIGIR 2026
                     Reproducibility) with copy via <details>.
- /about           — lab, authors, license, contributing.

The Dashboard CTA is visible on every page (header nav `Dashboard ↗`
link, plus prominent placement in the hero and an end-of-home gradient
strip), per the requirement in CLAUDE.local.md /
project_web_layout.md memory.

Hero animation is pure CSS — two text spans cross-fade on a 8s loop
(original query / expanded query). No framer-motion, no client JS.

CI workflow site-build.yml triggers on web/** changes and uploads
the dist/ as an artifact for review preview.

Static `_redirects` in web/site/public/ handles same-origin paths
(/leaderboard → leaderboard.querygym.com, /QueryGym/* → /).
Cross-origin Cloudflare bulk redirects on the zone are PR3 work.

Python package isolation: verified via `python -m build`. Sdist has
no web/* or pnpm-* leaks; wheel still 36 files all under querygym/.

Cloudflare Pages project (configured manually in CF dashboard):
- Project: querygym-site
- Repo: ls3-lab/QueryGym, branch: main
- Root dir: web/site
- Build cmd: cd ../.. && pnpm install --frozen-lockfile && pnpm -F @qg/site build
- Output dir: web/site/dist
- Custom domain: querygym.com (and www. as a redirect)

Out of scope for this PR (PR3 of the rollout): deleting Jekyll
files (_config.yml, _layouts/, index.md, Gemfile, docs/leaderboard.html,
.github/workflows/pages.yml) and disabling GitHub Pages.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@radinhamidi radinhamidi merged commit 87555a9 into main Apr 29, 2026
2 checks passed
@radinhamidi radinhamidi deleted the feat/marketing-site branch April 30, 2026 05:20
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