Skip to content
New: Customize your theme with an AI assistant. Read the guide

File Structure

Skill level: Everyone · Time: 5 minutes

You don’t need to understand every folder. Most changes happen in the places marked in bold below.

  • Directoryconsultiz/
    • Directory.cursor/ rules for the Cursor editor
      • …
    • Directory.github/ GitHub Copilot instructions and a verify workflow for GitHub Actions
      • …
    • Directory.vscode/ recommended VS Code extensions and settings
      • …
    • Directory.windsurf/ rules for Windsurf
      • …
    • Directorydocs/
      • section-ownership.md every section component, its content file, and the pages that use it
    • Directorypublic/ files served as they are (favicons, social image, videos, PDFs, the .htaccess file for Apache)
      • …
    • Directoryscripts/ helper scripts behind the npm run commands
      • …
    • Directorysrc/
      • Directoryassets/
        • Directoryimages/ your images (logos, photos, icons), optimized at build time
          • …
      • Directoryconfig/ site-wide settings
        • config.toml site name, URL, contact details, forms, SEO, cookies, motion
        • fonts.json fonts
        • language.json languages
        • menu.en.json header and footer links (English)
        • menu.fr.json header and footer links (French)
        • social.json social media links
      • Directorycontent/ all text, images, and options
        • Directorysections/ default content of every reusable section
          • Directoryenglish/
            • …
          • Directoryfrench/
            • …
        • Directoryhomepage/ the three homepages (main, corporate consulting, tax and accounting)
          • …
        • Directorysolutions/ industries/ solution and industry pages (-index.md is the list page)
          • …
        • Directoryblog/ people/ careers/ … one folder per page or collection
          • …
        • _file_format.md the frontmatter fields every page accepts, with comments
      • Directoryi18n/ small interface text (labels, form messages, footer text)
        • en.json
        • fr.json
      • Directorylayouts/
        • Base.astro the page shell (head, header, footer, scripts)
        • Directorycomponents/
          • Directorysections/ one component per section
            • …
          • Directorycards/ cards used inside sections and lists
            • …
          • Directorywidgets/ smaller parts (forms, page header, breadcrumbs, cookie banner)
            • …
          • Directoryglobal/ header, footer, logo, head tags
            • …
        • Directoryhelpers/ icon components
          • …
        • Directoryshortcodes/ components you can use inside MDX files
          • …
      • Directorylib/ helper code (content loading, i18n, SEO, AI files)
        • …
      • Directorypages/
        • Directory[…lang]/ one file per route (which sections a page shows, in which order)
          • …
      • Directorystyles/
        • theme.css colors, type scale, breakpoints
        • base.css buttons.css … global styles
      • content.config.ts fields allowed in each collection
      • sections.schema.ts fields allowed in each section and page block
      • page-content.schema.ts fields of the solution, industry, and case study pages
    • AGENTS.md CLAUDE.md instructions for AI assistants
    • CHANGELOG.md what changed in each version
    • NEXTJS-TO-ASTRO-GUIDE.md a developer guide to the theme’s structure, for React and Next.js developers
    • PUBLIC-VALUES-NEEDED.md the demo values to replace before launch
    • README.md editing map, override rules, and launch notes
    • astro.config.mjs
    • netlify.toml vercel.json vercel.sh wrangler.toml hosting settings
    • package.json package-lock.json

The Three Layers

Consultiz keeps three jobs apart. Knowing which layer you need saves a lot of searching:

LayerFolderDecidesYou edit it to…
Contentsrc/content/What the page says: text, images, links, optionsChange copy, lists, buttons, images
Pagessrc/pages/[...lang]/Which sections a page shows and in which orderReorder, add, or remove sections
Designsrc/layouts/, src/styles/How each section looks and behavesChange markup, styles, or behavior

Global settings sit beside them in src/config/.

How Content Folders Are Named

Every content folder has one subfolder per language, and a few file name rules:

  • english/ and french/ hold the same files. Each language reads only its own folder, so keep both in step when you add or rename a file.
  • -index.md is the content of a list or landing page, for example src/content/blog/english/-index.md for the blog list pages.
  • Every other file is one entry, and its name becomes the URL: src/content/solutions/english/cost-optimization.md is /solutions/cost-optimization/.
  • Files that start with _ are ignored. src/content/_file_format.md explains the frontmatter fields every page accepts.

A few folders hold the content of one specialized page rather than a list: industry-style-01/, industry-style-02/, solution-style-01/, and solution-style-02/. See Pages.

Path Shortcuts In Code

Component files import each other through shortcuts defined in tsconfig.json:

ShortcutReal folder
@/components/*src/layouts/components/*
@/shortcodes/*src/layouts/shortcodes/*
@/helpers/*src/layouts/helpers/*
@/*src/*

There is no src/components/ folder: @/components/sections/faq/FaqCentered.astro is src/layouts/components/sections/faq/FaqCentered.astro.

Type something to search...