Skip to content

Project Structure

Overview of the codebase organization.

  • 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
      • 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
FilePurpose
.github/workers/daily-netlify-build-on-change.ymlGithub workflow
src/content-collections/site.config.jsonSite Configuration
src/content.config.tsContent Collections Configuration
.envEnvironment variables (Resend, Google Calendar)
.pages.ymlPagesCMS Configuration
netlify.tomlNetlify configuration
astro.config.mjsAstro configuration