The source code for The Guild's website and its edge infrastructure.
website/— the website, built with Astro. Deployed to Cloudflare Pages on every push tomaster(pull requests get preview deployments). This one project also contains the Hive site (docs, blog, product updates, originally vendored fromgraphql-hive/docs): its implementation and content live inwebsite/src/hive/, its routes inwebsite/src/pages/graphql/hive/, so the whole domain builds and ships as one Cloudflare Pages deployment.packages/website-router/— the Cloudflare Worker that servesthe-guild.dev: it routes product-site paths (such as/graphql/yoga-server) to their own deployments, handles redirects, and merges the product sitemaps into one.packages/website-helper-worker/— the Worker behindutils.the-guild.dev(contact form, newsletter subscription).
pnpm install # from the repository root
cd website
pnpm dev # http://localhost:4321pnpm dev serves the whole site, including the Hive pages under /graphql/hive. pnpm build in
website/ runs astro check, builds the static site into dist/, and finishes with the Hive
post-build steps (sitemap, redirects, headers, search index — see
website/scripts/hive/).
Posts live in website/src/content/blog/ as MDX files:
- Add a new
.mdxfile (or a folder with anindex.mdxfor posts with colocated assets), following the frontmatter of the existing posts:title,tags,authors,date,description, and optionallyimagefor the social preview. - Larger assets go in
website/public/blog-assets/<your-post-slug>/. - First-time authors: add yourself to
website/src/components/blog-authors.ts. - Open a pull request; the preview deployment lets you review the rendered post.
The blog index also pulls in the Hive blog feed at build
time, and a snapshot of the Stellate blog from website/src/lib/stellate-blog.json.
pnpm lint # eslint (includes MDX)
pnpm prettier # format everything
pnpm prettier:check