CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

What this repo is

The official website for Jabberwocky Studios, served by GitHub Pages at the custom domain jabberwockystudios.co (bound via the root CNAME file). The site is a Jekyll project using the minima theme and the github-pages gem pinned to the version GitHub Pages runs in production (~> 232).

Pages-side, builds happen automatically on push to main via GitHub’s Pages build pipeline — there is no separate CI/build workflow checked in. Local builds exist only to preview changes before pushing.

Site structure (architectural intent)

  • / (root) — Jabberwocky Studios company landing. index.md uses the home layout from minima.
  • /jabberblocky/ — Product subsite for the Jabberblocky game. jabberblocky/index.md is the landing; jabberblocky/privacy.md is the App Store / Play Store-facing privacy policy (permalink /jabberblocky/privacy, no trailing slash — referenced from app store submissions, do not change the URL casually).
  • Future products are expected to follow the same /<product>/ subpath pattern under the same Jekyll site.

The Jabberblocky game itself lives in a separate repo (~/Coding/jb1) and is not built into this site. This repo is marketing / legal pages only. If the user later asks to host the game here under /jabberblocky/play/ or similar, that’s a deliberate new decision — confirm before wiring it up.

Common commands

Ruby + Bundler required. First-time setup:

bundle install

Local preview (auto-reloads on file changes; serves at http://127.0.0.1:4000):

bundle exec jekyll serve --livereload

One-shot build into _site/:

bundle exec jekyll build

Drafts (files under _drafts/) require --drafts:

bundle exec jekyll serve --drafts

There are no tests, linters, or formatters configured. Don’t invent ones unless asked.

Conventions worth knowing

  • Page front-matter uses layout: home for the root and layout: page for content pages. Both layouts are provided by minima — do not add custom layouts under _layouts/ without a reason; the site is intentionally minimal.
  • Permalinks on subpath pages are explicit (permalink: /jabberblocky/privacy). When adding new pages under a product subpath, set permalink explicitly rather than relying on path-based defaults — keeps URLs stable when files move.
  • _config.yml excludes: Gemfile, Gemfile.lock, README.md, vendor. Add new build-only or dev-only files to this list rather than relying on .gitignore.
  • Plugins in use: jekyll-seo-tag (writes meta tags / OG tags from front-matter) and jekyll-sitemap (generates sitemap.xml). Both are on GitHub Pages’ allow-list — adding a plugin outside that list will break the Pages build silently.
  • baseurl: "" in _config.yml means internal links should be absolute-from-root (/jabberblocky/), not theme-relative. Don’t change baseurl to a non-empty value without auditing every internal link.

Privacy policy is load-bearing

jabberblocky/privacy.md is referenced from App Store / Play Store submission metadata. Changes to its URL, headings, or substantive claims (data collection, third-party SDKs, children’s privacy) must be reviewed with the user before merge — these are legal commitments, not copy edits. The “Last updated” date should be bumped whenever substantive content changes.

Pre-launch posture

Jabberblocky has not publicly launched. Marketing copy is placeholder (<!-- TODO: replace with real product copy -->). When the user asks to “fill out the Jabberblocky page” or similar, expect a real content pass against the game’s actual featureset — cross-reference ~/Coding/jb1/docs/ai/jb1-user-features.generated.json if available, and confirm copy with the user before publishing.