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
verifyworkflow 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
.htaccessfile for Apache)- …
Directoryscripts/ helper scripts behind the
npm runcommands- …
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.mdis 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:
| Layer | Folder | Decides | You edit it to… |
|---|---|---|---|
| Content | src/content/ | What the page says: text, images, links, options | Change copy, lists, buttons, images |
| Pages | src/pages/[...lang]/ | Which sections a page shows and in which order | Reorder, add, or remove sections |
| Design | src/layouts/, src/styles/ | How each section looks and behaves | Change 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/andfrench/hold the same files. Each language reads only its own folder, so keep both in step when you add or rename a file.-index.mdis the content of a list or landing page, for examplesrc/content/blog/english/-index.mdfor the blog list pages.- Every other file is one entry, and its name becomes the URL:
src/content/solutions/english/cost-optimization.mdis/solutions/cost-optimization/. - Files that start with
_are ignored.src/content/_file_format.mdexplains 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:
| Shortcut | Real 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.