CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
What this is
Marketing/landing site for the Merchandice product studio (https://merchandice.in), built with Jekyll and deployed by GitHub Pages directly from the repo root of the default branch (no CI, no build step in the repo). CNAME holds the custom domain.
Stack (from _config.yml): Jekyll, theme minima, kramdown Markdown, plugins jekyll-sitemap and jekyll-seo-tag. Most content changes are made in the root-level .md files (index.md, contact.md, privacy-policy.md, terms-of-use.md, 404.md).
Building / previewing
There is no Gemfile, test suite, or linter. GitHub Pages builds the site on push. To preview locally you need the github-pages gem (or Jekyll plus minima, jekyll-sitemap, jekyll-seo-tag), then jekyll serve. Only use plugins on the GitHub Pages allowlist.
Architecture
- Layouts override the theme.
_config.ymlsetstheme: minima, but_layouts/default.htmland_layouts/page.htmlreplace minima’s layouts entirely.default.htmlcontains the full HTML shell (`
` from jekyll-seo-tag, Google Analytics via site.google_analytics, header nav, footer). page.html wraps content in <section class="hero">. Nav links are hardcoded in default.html, so adding a top-level page means adding a link there too.
- Styling lives in
assets/main.scss(empty front matter so Jekyll compiles it to/assets/main.css). It is a standalone design (CSS custom properties on:root, Space Grotesk/Space Mono fonts,.cards/.card/.card-logoclasses), not minima’s Sass. - Pages are root-level Markdown files with front matter
layout: page,title,permalink,description(description feeds the SEO tag). Raw HTML is used inside Markdown where needed (e.g. the product cards inindex.md). sitemap.xmlandrobots.txtare hand-written Liquid templates, not generated byjekyll-sitemap(the plugin skips generation when asitemap.xmlsource file exists).sitemap.xmlloops oversite.pagesand then lists external product URLs manually.
Adding a product
Products are separate apps on subdomains (or external URLs). Adding one touches three places, as in past commits:
- Add a logo to
assets/logos/(filenames contain spaces; reference them URL-encoded, e.g.lovelink%20logo.png). - Add a
<div class="card">to the.cardsblock inindex.md. - Add a
<url>entry under the “Product properties on subdomains” comment insitemap.xml.
Conventions
- Avoid introducing non-ASCII characters unless the file already uses them (
index.mdalready contains some). AGENTS.mdis generated by rulesync (rulesync.jsonc, targets Cursor and Codex); edit the rulesync sources rather thanAGENTS.mddirectly if that setup is still in use.