An open-source starter template for building high-performance, content-driven church websites with Astro. Pure SSG, SEO-ready, built with Tailwind CSS, Markdown content, ready to integrate with any CMS
Demo URL: https://maucariapacom-church-starter.pages.dev
- Pure Static Site Generation (SSG): Fast, SEO-friendly pages generated at build time
- Content-Driven Architecture: Content managed via Markdown files using Astro Content Collections
- Mobile-First Responsive Design: Tailwind CSS for beautiful, responsive layouts
- SEO Optimized: Complete meta tags, JSON-LD Schema, and sitemap.xml
- CMS-Ready Structure: Easily integrate with headless CMS solutions
- Comprehensive Church Website Sections: All essential pages for a complete church website
- Accessibility Focus: WCAG compliant design and markup
- Modern UI Components: Reusable components with hover states and micro-interactions
- Integrated Church Icon: Custom SVG church icon used throughout the site
- Image Optimization: Proper image organization and fallback handling
maucariapacom-church-starter/
├── public/
│ ├── uploads/ # Images directories (staff, events, sermons, etc.)
│ │ ├── staff/ # Staff profile images
│ │ ├── events/ # Event images
│ │ ├── sermons/ # Sermon thumbnail images
│ │ ├── ministries/ # Ministry logo images
│ │ └── blog/ # Blog post images
│ ├── favicon.svg
│ ├── robots.txt
│ └── site.webmanifest
├── src/
│ ├── assets/ # Astro-processed assets
│ ├── components/ # Reusable Astro components
│ │ ├── Global/ # Header, Footer, Navigation
│ │ ├── Sections/ # Page sections (Hero, Events, etc.)
│ │ └── UI/ # UI components (Button, Card, SEO)
│ ├── content/ # Astro Content Collections
│ │ ├── config.ts # Collection schemas
│ │ ├── staff/ # Staff member profiles
│ │ ├── events/ # Church events
│ │ ├── sermons/ # Sermon content
│ │ ├── ministries/ # Ministry descriptions
│ │ ├── blog/ # Blog posts
│ │ └── siteInfo/ # Site configuration content
│ ├── layouts/ # Page layouts
│ ├── pages/ # Astro pages
│ └── utils/ # Utility functions
├── astro.config.mjs
├── tailwind.config.cjs
└── tsconfig.json
- Node.js 18 or later
- npm or yarn
-
Clone this repository:
git clone https://github.com/MauCariApa-com/maucariapacom-church-starter.git cd maucariapacom-church-starter
-
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open your browser and navigate to
http://localhost:4321
All content is stored in Markdown (.md
) files in the src/content/
directory.
- Create a new file in
src/content/staff/
with a.md
extension (e.g.,john-smith.md
) - Add the required frontmatter fields:
---
name: "John Smith"
title: "Youth Pastor"
image: "/uploads/staff/john-smith.webp"
email: "john@example.com"
phone: "+1-555-1234"
bio: "John has been serving in youth ministry for 10 years."
order: 3
draft: false
---
Detailed biography and information about John goes here...
- Create a new file in
src/content/events/
with a.md
extension - Add the required frontmatter fields:
---
title: "Youth Summer Camp"
date: 2025-07-15
endDate: 2025-07-20
time: "9:00 AM - 5:00 PM"
location: "Camp Wilderness"
image: "/uploads/events/summer-camp.webp"
summary: "A week-long adventure for teens to grow in faith and have fun!"
tags: ["youth", "summer", "camp"]
registrationRequired: true
registrationLink: "https://example.com/register"
draft: false
---
## About Summer Camp
Join us for an exciting week of activities, worship, and spiritual growth...
- Create a new file in
src/content/sermons/
with a.md
extension - Add the required frontmatter fields:
---
title: "Walking in Faith"
date: 2025-02-02
speaker: "Rev. Dr. John Smith"
series: "Faith Foundations"
scripture: "Proverbs 3:5-6"
audioUrl: "https://example.com/sermons/walking-in-faith.mp3"
videoUrl: "https://www.youtube.com/embed/example789"
image: "/uploads/sermons/walking-in-faith.webp"
summary: "Learn how to trust God completely and walk confidently in His plan."
tags: ["faith", "trust", "guidance"]
draft: false
---
## Sermon Overview
Content of your sermon goes here...
See src/content/config.ts
for the complete schema definitions for all content types.
- Homepage (
/
): Hero section, service times, about preview, recent events/sermons - About Us (
/about-us
): Mission, values, history, staff preview - Staff (
/staff
): Complete staff directory with contact information - Ministries (
/ministries
): All church ministries with detailed pages - Sermons (
/sermons
): Sermon archive with audio/video support and filtering - Events (
/events
): Upcoming and past events with registration support - Blog (
/blog
): Church blog with filtering and search - I'm New (
/im-new
): First-time visitor information - Contact (
/contact
): Contact forms, location, staff contacts - Giving (
/giving
): Online giving information and financial transparency
- Responsive Design: Mobile-first approach with proper breakpoints
- Content Filtering: Advanced filtering on sermons and blog posts
- SEO Optimization: Complete meta tags, JSON-LD schema, and sitemap
- Accessibility: WCAG compliant with proper ARIA labels and keyboard navigation
- Performance: Optimized images and fast loading times
- Modern UI: Hover states, transitions, and micro-interactions
Update your church information in the following files:
- Site metadata in
astro.config.mjs
- SEO defaults in
src/layouts/BaseLayout.astro
- Contact information in
src/components/Global/Footer.astro
- Church details throughout the content files
This template uses Tailwind CSS for styling:
- Customize colors and other theme settings in
tailwind.config.cjs
- Global styles are in
src/assets/styles/global.css
- The template includes a comprehensive color system with primary, secondary, and accent colors
The template includes a built-in church SVG icon that's used throughout the site. To customize:
- Replace the SVG icon in
src/components/Global/Header.astro
andsrc/components/Global/Footer.astro
- Update favicon in
public/favicon.svg
- Modify the site manifest in
public/site.webmanifest
Images are organized in the /public/uploads/
directory:
/uploads/staff/
- Staff profile images/uploads/events/
- Event images/uploads/sermons/
- Sermon thumbnails/uploads/ministries/
- Ministry logos/uploads/blog/
- Blog post images
The template includes fallback handling for missing images and uses external Unsplash images for some sections.
This starter is designed to work well with these headless CMS solutions:
-
Install TinaCMS:
npm install tinacms @tinacms/cli
-
Add the Tina config file (see TinaCMS documentation)
-
The existing Content Collections schemas can be adapted for TinaCMS
- Add Decap CMS config to
public/admin/config.yml
- The existing Content Collections structure works well with Decap CMS
This site can be deployed to any static hosting platform:
- Push your repository to GitHub
- Connect to Netlify
- Set build command to
npm run build
and publish directory todist/
- Push your repository to GitHub
- Import in Vercel
- It will automatically detect Astro and set up the correct build settings
-
Install gh-pages:
npm install -D gh-pages
-
Add deploy script to package.json:
"scripts": { "deploy": "npm run build && gh-pages -d dist" }
-
Run
npm run deploy
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
This project is licensed under the MIT License - see the LICENSE file for details.
We appreciate your understanding and encourage you to report any new bugs you find by opening an issue on our GitHub repository.
- Astro for the awesome static site generator
- Tailwind CSS for the utility-first CSS framework
- Heroicons for the icon system
- Pexels & Unsplash for stock photography
For questions, issues, or contributions, please visit our GitHub repository or contact the development team.
Love our work?
Created with ❤️ for church communities worldwide