mirror of
https://github.com/chobbledotcom/chobble-client.git
synced 2026-07-17 20:16:27 +01:00
No description
- JavaScript 92.8%
- Nix 5.1%
- Shell 2%
- SCSS 0.1%
The @chobble/js-toolkit devDependency resolves from the chobble-template git submodule (file:./chobble-template/packages/js-toolkit). On a fresh checkout the submodule is empty, so `bun install` fails with "ENOENT: failed opening cache/package/version dir for package @chobble/js-toolkit". Changes: - Add a SessionStart hook (.claude/) that initialises the submodule and runs `bun install`, so web sessions and fresh checkouts work out of the box - prepare-dev: reuse the in-repo chobble-template submodule when present so build/serve/test work offline without a redundant network clone - utils: fix `shell()` (`sh -- -c` -> `sh -c`); the stray `--` broke find.deleteByExt, leaving stale .md files in the dev build - Pin biome to 2.3.11 in the lint scripts to match the config schema and ignore the template submodule's nested config, so linting is reproducible - Apply the resulting biome formatting fix in scripts/utils.js - README: correct the build/deploy docs (Bunny CDN, _site/ output, Bun + submodule local-dev steps) which referenced a nonexistent ./bin/build - .gitignore: allow .claude/settings.json and .claude/hooks to be committed Claude-Session: https://claude.ai/code/session_012VkoyaCFwvJpzSPFU4DGxS Co-authored-by: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| .github/workflows | ||
| .image-cache | ||
| _data | ||
| chobble-template@c655c5b87f | ||
| css | ||
| pages | ||
| scripts | ||
| .envrc | ||
| .gitignore | ||
| .gitmodules | ||
| .jscpd.json | ||
| .pages.yml | ||
| biome.json | ||
| bun.lock | ||
| bunfig.toml | ||
| CLAUDE.md | ||
| flake.nix | ||
| package.json | ||
| README.md | ||
Chobble Client Site Builder
Quick static site generator that combines the Chobble Template with your content.
Quick Start
- Add your content - Edit markdown files and images in the relevant folders
- Push to GitHub - The site builds automatically via GitHub Actions
- Deploy happens automatically - Site deploys to Bunny CDN (staging for branches, production for
main)
What Goes Where
The .pages.yml defines all your content types:
pages/- Static pages with navigationnews/- Blog posts with datesproducts/- Shop items with prices and Etsy linkscategories/- Product categoriesteam/- Team member profilesreviews/- Customer testimonialsevents/- Upcoming eventsmenus/,menu-categories/,menu-items/- Restaurant menu systemsnippets/- Reusable content bitsimages/- All your images
How It Works
When you push to GitHub:
- GitHub Actions merges your content with the template
- Builds the static site with Eleventy
- Deploys to Bunny CDN
Configuration
Set these GitHub secrets for your repo:
BUNNY_ACCESS_KEY,BUNNY_PRODUCTION_*/BUNNY_STAGING_*(storage zone name, password, pull zone ID) - For deploymentFORMSPARK_ID- For contact forms (optional)BOTPOISON_PUBLIC_KEY- For spam protection (optional)INDEXNOW_KEY- For IndexNow search submission (optional)NTFY_TOPIC- For build-failure notifications (optional)
Local Development
This project uses Bun. The Chobble Template is vendored as the
chobble-template git submodule, which provides the @chobble/js-toolkit
dependency and the Eleventy build.
git submodule update --init # populate chobble-template (first checkout only)
bun install # install dependencies
bun run serve # dev server with hot reload
bun run build # build the site into _site/
bun run test # run the template test suite
Cloning with git clone --recurse-submodules initialises the submodule for you.
If bun install fails with ENOENT ... @chobble/js-toolkit, the submodule
hasn't been checked out yet - run the git submodule update --init step above.