Project Structure
Overview of the codebase organization.
Directory Structure
Section titled “Directory Structure”Directory.github/workflows/ Github workflows
- daily-netlify-build-on-change.yml Workflow to control daily builds
Directorypublic/ Static assets served as-is
- …
Directoryscripts/
- generate-theme-css.js Build script for building customCSS from site.config.json
Directorysrc/
Directoryassets/ Assets processed by Astro
- …
Directorycomponents/ Reusable components
Directoryui/ Shadcn base components
- …
Directorycontent-collections/ Astro content collections files
Directoryblog/
- …
Directorypages/
- …
Directorypreachers/
- …
Directoryseries/
- …
Directorysermons/
- …
- site.config.json Site configuration file
Directorydata/ Nanostores, schemas, types, and data fetching
- …
Directorylayouts/
- …
Directorylib/ Shadcn util
- …
Directorypages/ Main routes
Directory[…blog]/
- [post].astro Route for Blog content collection items
- index.astro Route for Page content collection item with type
blog
Directory[…events]/
- index.astro Route for Page content collection item with type
event
- index.astro Route for Page content collection item with type
Directory[…pages]/
- index.astro Route for Pages content collection items
Directory[…sermons]/
- [post].astro Route for Sermons content collection items
- index.astro Route for Page content collection item with type
sermons
Directoryapi/
- subscribe.ts Handles subscribe form
- 404.astro
- index.astro Homepage
Directorystyles/ CSS
- …
Directoryutils/ Utility functions & hooks
- …
- content.config.ts Content Schemas
- .env Env variables (Resend, Google Calendar)
- .pages.yml PagesCMS configuration
- netlify.toml Netlify configuration
- astro.config.mjs Astro configuration
- …
Key Files
Section titled “Key Files”Configuration
Section titled “Configuration”| File | Purpose |
|---|---|
.github/workers/daily-netlify-build-on-change.yml | Github workflow |
src/content-collections/site.config.json | Site Configuration |
src/content.config.ts | Content Collections Configuration |
.env | Environment variables (Resend, Google Calendar) |
.pages.yml | PagesCMS Configuration |
netlify.toml | Netlify configuration |
astro.config.mjs | Astro configuration |