A demo storefront showcasing the brickwork-ssg
static-site engine. The engine is embedded here as a git submodule at engine/;
this repo holds only the site's content (config.json, pages/, assets/, shared/).
Provenance: this repository was extracted from a larger private project and later separated alongside the independent
brickwork-ssgengine. The current commit history does not reflect the full development timeline.
git clone --recurse-submodules <this-repo-url>
npm run build # -> build/ (runs: node engine/cli.js build)Cloned without submodules? Fetch the engine:
git submodule update --init --recursiveBeyond the built-in components and product generator, this site exercises the engine's site-extension surface without modifying the engine:
- A site component —
components/blocks/testimonials/, mapped bycomponents/registry.jsonand rendered on the home page. It declares its own sub-component (testimonials.json→testimonial) and uses the build-script helpers (raw,escapeHtml). - A site generator — a
pages/guidestemplate page drives the data-onlygenerators/guides.js(mapped ingenerators/registry.json) to emit a static "buying guide" page per entry via thegenerate(ctx, options)contract. - Product pages — a
pages/product-detailtemplate page turns theproductscollection into one detail page each via the built-inproductsgenerator. - Site tests —
test/demo.test.js, run withnpm test(=ssg test) after a build, on top of the engine's standard checks. - Theming —
assets/css/global.cssreskins the storefront by overriding the engine's--bw-*CSS variables (no component edits).
npm test # build, then run standard checks + test/*.test.jsnpm --prefix engine install # one-time: install the engine's admin deps
npm run admin # http://localhost:3000git -C engine fetch
git -C engine checkout <commit-or-tag>
git add engine && git commit -m "bump engine"Every image in this repo is generated, so the MIT license covers it cleanly:
shared/assets/images/hero.jpgandlogo.pngare emitted bytools/generate-brand-assets.py(pip install pillow numpy, thenpython tools/generate-brand-assets.py). It is a dev-time tool — the images are committed, andnpm run builddoes not run it.shared/products/*/shape-*.pngare placeholder product shots.
Third-party assets are loaded from a CDN rather than vendored: Bootstrap and
Bootstrap Icons (both MIT) and the Cinzel / Montserrat webfonts (SIL OFL 1.1).
The one exception is the Viber glyph inlined in
components/contactIcons/contactIcons.build.js, a copy of the Bootstrap Icons
"telephone" path.
If you swap in a photo, record its source and license here — don't leave an unattributed stock image in the tree, since MIT would then be sublicensing artwork this repo has no right to sublicense.
The static output is in build/. Point any static host (Netlify, GitHub Pages, …)
at build command npm run build and publish directory build/.