Add querygym.com Astro marketing site (full redesign)#7
Merged
radinhamidi merged 1 commit intomainfrom Apr 29, 2026
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
web/site/src/data/methods.jsonwith paper links.<details>for copy.Dashboard CTA prominence (required by memory
project_web_layout.md)Dashboard ↗external link visible on every page.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.ymltriggers onweb/**,package.json,pnpm-workspace.yamlchanges. Steps:pnpm install --frozen-lockfile→pnpm -F @qg/site build→ uploaddist/as artifact. No Python steps.Cloudflare Pages — to configure once
querygym-sitels3-lab/QueryGym, branchmainweb/sitecd ../.. && pnpm install --frozen-lockfile && pnpm -F @qg/site buildweb/site/distquerygym.com(+www.querygym.comredirect)Python package isolation — verified locally
python -m build[tool.setuptools.packages.find])querygym/(unchanged from main)Test plan
pnpm installsucceeds (lockfile updated for@qg/site).pnpm -F @qg/site buildsucceeds → 6 static pages.dashboard.querygym.com, leaderboard →leaderboard.querygym.com, docs →querygym.readthedocs.io, GitHub → repo, papers → arXiv.python -m build: zero leaks, wheel unchanged.Marketing Site Buildworkflow.Out of scope (PR3)
_config.yml,_layouts/, rootindex.md,Gemfile,docs/leaderboard.html,.github/workflows/pages.yml.querygym.comzone (cross-origin redirects from old GH Pages URLs).🤖 Generated with Claude Code