This document defines where files live and why.
Do not add new top-level folders without updating this file.
Root Level
index.html→ Generated docs hub (homepage)*.html→ Generated documentation pages (flat at root)README.md→ Project overview and getting startedPROJECT_BRIEF.md→ Project brief and requirementsPROJECT_PROGRESS.md→ Progress tracker for ongoing workCLAUDE.md→ Claude Code development rules (authoritative)assets/→ All project assets (CSS, fonts, icons, images, video)design-system/→ Design system framework (shared across projects)brand-book/→ Brand preview page (brand tokens now live inassets/css/design-system.css)templates/→ Component and page templatescms/→ Documentation markdown source and generatortools/→ Live tool apps (CPM calculator, SVG cleaner, display ad preview)src/→ Source files (pages, JS)themes/→ Client theme overrides (one CSS file per client)cdn/→ Webflow project code (JS + CSS served via CDN)studio/→ By Default agency website. Self-contained marketing site (not a docs site). Sharesassets/css/design-system.cssfrom the parent for design tokens; everything else lives insidestudio/. Layer:app. Seestudio/README.mdfor full details and CLAUDE.md §18 for studio-mode rules.index.html→ Home page (master feed, Barba level 0)about.html,contact.html→ Level 1 destination pageswork/→ Case study pages (level 2)articles/→ Article pages (level 2)templates/page-template.html→ Studio page template (use this, not roottemplates/)assets/css/studio.css→ Studio layout, grid, transitions, componentsassets/css/bd-video.css→ Video component stylesassets/js/→studio.js,studio-barba.js,studio-contact.js,bd-video.jsapps-script/→ Google Apps Script utilities
assets/
Single source of truth for all assets. No duplication.
css/design-system.css→ Core design system framework (tokens, utilities, layout primitives)css/docs-site.css→ Docs-site layout, navigation, page chrome, components, auth UIjs/auth.js→ Authentication module (Netlify Identity)js/auth-config.js→ Auth role hierarchy and settingsjs/theme-config.js→ Theme registry (maps clientFolder → CSS path + Google Fonts URL)js/theme-loader.js→ Dynamic theme loading/unloading modulefonts/→ Web fontsicons/→ Favicons and app iconsimages/→ All images, organised by type:logos/→ Site and publication logosog/→ Open Graph social sharing imagesillustrations/→ Decorative and UI illustrationssvg-icons/→ SVG component icons
video/→ Video assets
design-system/
The design system styleguide preview.
index.html→ Styleguide preview (renders with default tokens)
The design system CSS (assets/css/design-system.css) lives in the assets folder alongside other stylesheets.
brand-book/
Brand preview page. Brand tokens now live directly in assets/css/design-system.css.
index.html→ Brand preview page (logo, palette, typography, icons)
themes/
Client theme overrides. Each file overrides design system semantic tokens and the neutral colour scale for a specific client brand. Themes are loaded dynamically by theme-loader.js based on the user's auth identity.
theme-template.css→ Starter template (copy and customise per client)
Register themes in assets/js/theme-config.js. See Setup — Client Theming for usage.
cdn/
JavaScript and CSS files served to Webflow projects via CDN (jsdelivr). Each subfolder represents a Webflow site. Global scripts shared across sites live in assets/js/bd/.
studio/→ By Default agency website CDN assets (bydefault.studio). See CLAUDE.md §18.js/→ Page-specific scripts (homepage, hero, blog, case study, etc.)css/→ Page-specific styles (hero section)
fifa-wc26/→ FIFA World Cup 2026 interactive stadium mapjs/→ Map script
la-interactive-map/→ LA interactive mapjs/→ Map script
Additional project folders can be added as needed. Project overview docs are generated to projects/ from cms/projects-*.md.
src/
src/js/
- JavaScript modules and scripts
src/pages/
- HTML page files
templates/
component-template.js→ JavaScript component templatecomponent-template.css→ CSS component templatepage-template.html→ HTML page template
cms/
- Markdown documentation files (source of truth for generated HTML)
docs.config.js→ Project-specific doc settings (fonts, footer, description) — stays when generator is upgradedclients/→ Client-specific markdown documentation (one subfolder per client)generator/→ Documentation site engine (replaceable — drop in a new version to upgrade)template.html→ HTML template used for generationgenerate-docs.js→ Generator script (outputs HTML to project root)VERSION→ Current engine version
CSS Loading Order
The generated HTML loads CSS in this order:
assets/css/design-system.css→ Brand tokens, framework tokens, utilities, layout primitivesassets/css/docs-site.css→ Docs-site layout, navigation, page chrome, components, auth UIthemes/client-name.css→ Client theme overrides (optional, must load last)
New docs-site CSS goes in assets/css/docs-site.css. New core/foundation CSS goes in assets/css/design-system.css. See CLAUDE.md §17 — Layer Discipline for the rules that govern this split.
Studio CSS Loading Order
Studio pages load CSS differently from docs pages:
../assets/css/design-system.css→ Shared foundation + core tokens (read-only from studio's perspective)assets/css/studio.css→ Studio layout grid, components, transitions (loads last, cascade wins)
Studio does not load docs-site.css or client themes. See CLAUDE.md §18 — Studio Mode.
tools/
Live tool apps. Each tool is a standalone HTML page.
cpm-calculator.html→ CPM & Spend Calculatorsvg-cleaner.html→ Browser-based SVG cleaner UIdisplay-ad-preview.html→ Celtra ad preview sandbox
The SVG cleaner CLI script lives at assets/js/svg-clean.js.
Notes
Empty folders are tracked using to preserve structure in the template.
Favicons
Favicons live in assets/icons/.
They are referenced directly in the HTML <head> and are treated as brand assets, not part of the design system.