Additional Info
File Structure
The source files have the following setup. There will be additional components and pages that will vary depending on the theme.
src/assets/- Images and other assetssrc/components/- Individual components used throughout the sitesrc/config/- Configuration files for site datasrc/data/- Content collectionssrc/js/- JS utility functionssrc/layouts/- Astro layouts, used for multiple pagessrc/pages/- Pages / routes of the site. If you see something like[slug].astro, that means it is a dynamic route, and likely pulled from content collections.src/styles/- Global styles
Code Tree
There is a code tree like this included in the README.md of each theme.
.├── public/│ ├── favicons/│ │ └── favicon.ico│ └── robots.txt├── src/│ ├── assets/│ │ └── images/│ ├── components/│ │ ├── Component/│ │ │ ├── ComponentVariant1.astro│ │ │ ├── ComponentVariant2.astro│ ├── config/│ │ └── navData.json.ts│ ├── content/│ │ └── (content collections)│ ├── js/│ │ └── (various JS utility functions)│ ├── layouts/│ │ ├── BaseHead.astro│ │ └── BaseLayout.astro│ ├── pages/│ │ ├── (website pages)│ │ ├── 404.astro│ │ ├── index.astro│ │ └── rss.xml.ts│ ├── styles/│ │ ├── tailwind-theme.css│ │ └── global.css│ └── content.config.ts├── .gitignore├── .prettierrc.mjs├── astro.config.mjs├── keystatic.config.tsx├── package.json├── README.md└── tsconfig.jsonOther Useful Resources
- Recommended VSCode extensions
- Cool animation example using Animejs in Astro
Astro Notes
Astro looks for .astro or .md files in the src/pages/ directory. Each page is exposed as a route based on its file name.
There’s nothing special about src/components/, but that’s where we like to put any Astro/React/Vue/Svelte/Preact components.
Any static assets, like images, can be placed in the public/ directory. Cosmic Themes also frequently uses src/assets/ for images when using Astro asssets for image optimization.
Commands
All commands are run from the root of the project, from a terminal:
| Command | Action |
|---|---|
npm install | Installs dependencies |
npm run dev | Starts local dev server at localhost:3000 |
npm run build | Build your production site to ./dist/ |
npm run preview | Preview your build locally, before deploying |
npm run astro ... | Run CLI commands like astro add, astro check |
npm run astro -- --help | Get help using the Astro CLI |
Astro Docs
Feel free to check out the Astro documentation.