doc-site
Developer guide

Repository map

What each folder in asc-shopify-src and its theme submodule contains, which parts are live, and how the npm workspaces fit together.

asc-shopify-src is an npm workspaces monorepo run with Turbo. The theme is a git submodule at theme/.

Top level

PathContentsStatus
src/Workspace @repo/asc-modules. React booking form, storefront JavaScript, CSS and Tailwind. Webpack writes its output into theme/assets/Live
theme/Submodule Conversion-Kings/asc-shopify-theme, workspace @repo/theme. The Shopify themeLive
google-cloud-api/Workspace @repo/google-cloud-api. Express version of the membership pass and saved children APIReplaced in June 2026
misc/Workspace @repo/misc, plus four workspaces under misc/zapier-scripts/. One-off scripts, data exports, Zapier code steps, Zoho function copiesReference only
documentation/Original Markdown guides and the membership pass diagramSuperseded by doc-site/
doc-site/content/These docs, as Fumapress contentLive
assets/Screenshots used by documentation/Copied into doc-site/content/images/
mcps/MCP tool schema files for AI-assisted developmentNot used by the build
.husky/pre-commitFormats and builds on every commitLive
.github/workflows/sync-live-changes.ymlMerges main into stagingPartly failing, see Deployment
package.json, turbo.jsonWorkspaces and scriptsLive
postcss.config.jsPostCSS plugin chain used by webpackLive
.prettierrc.json, .prettierignore, .editorconfigFormattingLive
asc-layout.excalidraw, asc-layout.pngDecember 2024 system sketchOut of date
seo-urls.jsOne-off generator for the SEO footer menuNot used
components.jsonshadcn/ui settings. Its paths predate the move into src/Out of date
.shopifyignore, .shopify/From before the theme became a submoduleNot used
.vscode/Debug configuration for google-cloud-api/Out of date

src

PathContents
src/webpack.config.jsEntries, output to ../theme/assets/, bundle splitting, build-time environment variables
src/js/custom.jsLoaded on every page. Cart quantity and remove buttons, membership pass buttons, Hulk Forms relay to Zapier, video overlay
src/js/camp-booking.jsLoaded on product pages. Loads Google Maps and mounts the booking form
src/js/index.jsCSS-only entry. Imports every file in src/css/ except tw_out.css
src/js/date-picker.jsDate range picker. Nothing on the site uses it at present
src/components/React components for the booking form. ui/ holds shadcn/ui components
src/components/models/ParticipantDetailsSchema.tsxBooking form validation rules
src/css/Component CSS and tw_in.css, the Tailwind entry with brand colour variables
src/tailwind.config.jsTailwind content paths, safelist and brand colours
src/@types/zoho.tsCopy of the Zoho integration's types. Only Club is used
src/.env.exampleBuild-time variables
src/webpack-css.config.jsOld CSS-only config with paths that no longer resolve

theme

PathContents
theme/layout/theme.liquidLayout for every page except products
theme/layout/theme.product.liquidLayout for product pages. Adds the booking form
theme/templates/JSON templates. page.*.json for landing pages, product*.json for products, cart.json
theme/sections/Sections. ASC sections are mostly prefixed asc- or named for their feature, the rest are from Shopify's Dawn theme
theme/snippets/Snippets, including camp cards, menus and map data
theme/assets/Built bundles from src/, hand-written JavaScript and vendored libraries
theme/config/settings_schema.jsonTheme settings. ASC groups are prefixed ASC -
theme/config/settings_data.jsonCurrent setting values. Also written by the theme editor
theme/locales/en.default.jsonStorefront text strings
theme/shopify.theme.tomlShopify CLI environments
theme/.github/workflows/code-review.ymlAI pull request review

Theme structure covers the theme in more detail.

Workspaces

WorkspaceFolderScripts used
@repo/asc-modulessrcwatch, webpack:prod, postcss, postcss:build
@repo/themethemetheme-dev, theme-dev:no-sync, push:*, pull:*
@repo/google-cloud-apigoogle-cloud-apiLegacy
@repo/miscmiscNone
@repo/confirmation-emails, @repo/form-submissions, @repo/membership-pass, @repo/zoho-integrationmisc/zapier-scripts/*build, legacy

Most dependencies are declared in the root package.json and hoisted. src/components/ClubsAutocomplete.tsx imports lodash/debounce, which only resolves because @repo/misc depends on lodash. Add lodash to src/package.json before removing misc/.

All scripts are listed in npm scripts.

RepositoryRelationship
Conversion-Kings/asc-shopify-themeThe theme submodule
Conversion-Kings/asc-api-membership-passService the storefront calls for saved children and passes
Conversion-Kings/asc-api-src-zoho-integrationService Zapier and the booking form call
Conversion-Kings/asc-camp-sign-in-toolSeparate camp attendance app that reads Zoho. No dependency in either direction

On this page