CLAUDE.md
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.mduses thehomelayout from minima./jabberblocky/— Product subsite for the Jabberblocky game.jabberblocky/index.mdis the landing;jabberblocky/privacy.mdis 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: homefor the root andlayout: pagefor content pages. Both layouts are provided byminima— 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, setpermalinkexplicitly rather than relying on path-based defaults — keeps URLs stable when files move. _config.ymlexcludes: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) andjekyll-sitemap(generatessitemap.xml). Both are on GitHub Pages’ allow-list — adding a plugin outside that list will break the Pages build silently. baseurl: ""in_config.ymlmeans internal links should be absolute-from-root (/jabberblocky/), not theme-relative. Don’t changebaseurlto 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.