AstroStarter

maucariapacom-church-starter — Astro Starter Template

By MauCariApa-com

An Astro-based church website starter template using Tailwind CSS and Markdown content collections, pure static generation, including pages for blog, sermons, events, ministries, staff, and SEO components.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-02View source

What stands out

A quick read of the recorded project description.

01

Astro pure static generation, content managed via Markdown/MDX and frontmatter

02

Built-in content collections for blog, sermons, events, ministries, staff, and site information with Zod schemas

03

Sermons support audio and video links; blog and sermon list pages offer filtering/search

04

Detail pages have a sticky table of contents sidebar, providing SEO components and JSON-LD structured data

05

Mobile-first responsive interface built with Tailwind CSS, customizable primary, secondary, and accent colors

Template Details

This is an open-source website starter template for churches or religious organizations. The tech stack is Astro, styling uses Tailwind CSS, and it incorporates Preact and TypeScript. The project uses pure static site generation (SSG), with content managed through Markdown/MDX files and frontmatter under src/content/, and each collection defined with Zod schemas in src/content.config.ts.

The template includes built-in content collections for blog, sermons (supporting audio and video links), events, ministries, staff/leadership team, and site information. At the page level, it provides home, about us, staff list, ministry list and detail, sermon list (with filtering) and detail, event list and detail, blog list (with filtering) and detail, new visitor guide, contact page (with form), and giving page. Detail pages have a sticky table of contents sidebar, and it provides SEO components and JSON-LD structured data. The sitemap is generated by @astrojs/sitemap.

Before use, you need to follow the README instructions to replace the site name, contact information, placeholder images, and the about page timeline, and set the site URL in astro.config.mjs. The build output goes to dist/ and can be deployed to Netlify, Vercel, Cloudflare Pages, GitHub Pages, or any static hosting. The README mentions that it can integrate with any CMS, but the template itself does not include CMS integration. Third-party assets such as demo images, fonts, and icons need separate license verification.

AstroStarter

Is it right for your project?

Use Cases

  • Churches or religious organizations building official websites with sermon, event, and ministry information
  • Content-driven sites that need to maintain content as Markdown files without relying on a database
  • Deploying to static hosting platforms such as Netlify, Vercel, Cloudflare Pages, or GitHub Pages
  • As a reference project for Astro content collections and dynamic detail page practices

Suitable For

  • Churches, religious groups, and their website maintainers
  • Content editors familiar with or willing to use Markdown and Astro
  • Projects requiring a pure static, self-hostable website
  • Developers who want to build upon the existing structure for front-end pages

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Requires Node.js 24.x or higher; install dependencies with npm install

  2. 2

    Start the development server with npm run dev, default address http://localhost:4321

  3. 3

    Build with npm run build, output to dist/ directory, preview with npm run preview

  4. 4

    Before deployment, change site in astro.config.mjs to the actual domain

  5. 5

    Replace placeholder images under public/uploads/ and update the church name and contact information in the header, footer, SEO components, and each page

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not imply that external services or third-party assets are free.

Must comply with when using

  • Free use, modification, commercial use, and distribution of this version's code are permitted.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • The code is provided as-is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses; they cannot be judged solely by the code's MIT license.
  • External services such as domain, hosting, database, payment, or AI may incur additional charges.
View Original Text Basis

Compiled by DeepSeek based on repository license and README ·2026-10-02. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
More documented · 87 / 100
Technologies
Astro
Website type
Starter
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2026-09-17
Screenshot last checked
2026-10-02

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

The catalog identifies Astro as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Automatically checked against source and license rules; no manual editorial review.

Inspect the recorded source material

SHA-256: 2bbc262cc3d0698f959dc3c1d831d5b761a4a9fc20985dee30b0e766bafd2a1b

2026-10-02T19:55:18.635Z

Source file / repository
# 🙏 Church Website Starter

A modern, responsive church website starter built with [Astro](https://astro.build), [Tailwind CSS](https://tailwindcss.com), and [Preact](https://preactjs.com). Designed for churches who want a fast, content-driven site that's easy to manage through Markdown files.

## ✨ Features

- **Static site generation** — fast, SEO-friendly pages
- **Tailwind CSS styling** — fully responsive, mobile-first design
- **Markdown-based content** — manage content via frontmatter files
- **Built-in content collections:**
  - Blog posts
  - Sermons (with audio/video support)
  - Events
  - Ministries
  - Staff / leadership team
  - Site information
- **Dynamic detail pages** with sticky TOC sidebars
- **Filtering / search** on blog and sermons listing pages
- **SEO-ready** `<Seo />` component plus JSON-LD schema
- **Sitemap** auto-generated via `@astrojs/sitemap`

## 🚀 Tech Stack

- [Astro](https://astro.build/) `7.2.8`
- [Tailwind CSS](https://tailwindcss.com/) `^3.4.1`
- [@astrojs/preact]([https://preactjs.com/](https://www.npmjs.com/package/@astrojs/preact)) `^6.0.2`
- [TypeScript](https://www.typescriptlang.org/) `7.0.2`
- [date-fns](https://date-fns.org/) for date formatting
- [@tailwindcss/typography](https://tailwindcss.com/docs/typography-plugin) for rendered Markdown styles

## 📦 Getting Started

### Prerequisites

- Node.js `24.x` or higher
- npm or another compatible package manager

### Install dependencies

```bash
npm install
```

### Start the development server

```bash
npm run dev
```

Open [http://localhost:4321](http://localhost:4321) to view the site.

### Build for production

```bash
npm run build
```

### Preview the production build

```bash
npm run preview
```

## 🗂️ Project Structure

```text
├── public/                   # Static assets (images, favicons, uploads)
├── src/
│   ├── assets/
│   │   └── styles/
│   │       └── global.css    # Tailwind entry + custom base styles
│   ├── components/
│   │   ├── Cards/            # Reusable card components
│   │   ├── Global/           # Header, Footer, Navigation
│   │   ├── Sections/         # Page section components
│   │   └── UI/               # Button, SEO, etc.
│   ├── content/
│   │   ├── blog/             # Blog posts (Markdown with frontmatter)
│   │   ├── events/           # Church events
│   │   ├── ministries/       # Church ministries
│   │   ├── sermons/          # Sermon entries
│   │   ├── siteInfo/         # Reusable site-wide info blocks
│   │   └── staff/            # Staff / leadership profiles
│   ├── layouts/
│   │   ├── BaseLayout.astro  # Global HTML shell
│   │   └── PostLayout.astro  # Layout for content pages
│   ├── pages/
│   │   ├── index.astro       # Homepage
│   │   ├── about-us.astro    # About page
│   │   ├── staff.astro       # Staff listing
│   │   ├── ministries/
│   │   │   ├── index.astro   # Ministries listing
│   │   │   └── [slug].astro  # Dynamic ministry detail
│   │   ├── sermons/
│   │   │   ├── index.astro   # Sermons listing with filters
│   │   │   └── [slug].astro  # Dynamic sermon detail
│   │   ├── events/
│   │   │   ├── index.astro   # Events listing
│   │   │   └── [slug].astro  # Dynamic event detail
│   │   ├── blog/
│   │   │   ├── index.astro   # Blog listing with filters
│   │   │   └── [slug].astro  # Dynamic blog detail
│   │   ├── im-new.astro      # Visitor guide
│   │   ├── contact.astro     # Contact page + form
│   │   └── giving.astro      # Giving page
│   ├── utils/
│   │   └── dateUtils.js      # Date helpers
│   ├── content.config.ts     # Astro content collection schemas
│   └── env.d.ts
├── astro.config.mjs
├── tailwind.config.cjs
├── postcss.config.cjs
└── package.json
```

## 📝 Content Collections

All dynamic content is managed through Markdown/MDX files inside `src/content/`. Each collection has a Zod schema defined in `src/content.config.ts`.

### Blog

Located at `src/content/blog/`.

```yaml
---
title: "Post Title"
slug: "post-slug"
pubDate: 2025-01-20
description: "A short description"
author: "Author Name"
image:
  url: "/uploads/blog/image.webp"
  alt: "Alt text"
tags: ["faith", "prayer"]
draft: false
---
```

### Sermons

Located at `src/content/sermons/`.

```yaml
---
title: "Sermon Title"
date: 2025-02-02
speaker: "Pastor Name"
series: "Series Name"
scripture: "Proverbs 3:5-6"
audioUrl: "https://example.com/sermon.mp3"
videoUrl: "https://www.youtube.com/embed/..."
image: "/uploads/sermons/image.webp"
summary: "Short summary"
tags: ["faith", "trust"]
draft: false
---
```

### Events

Located at `src/content/events/`.

```yaml
---
title: "Event Title"
date: 2025-04-20
endDate: 2025-04-20
time: "8:00 AM & 10:30 AM"
location: "Main Sanctuary"
image: "/uploads/events/image.webp"
summary: "Event summary"
tags: ["easter", "celebration"]
registrationRequired: true
registrationLink: "https://example.com/register"
draft: false
---
```

### Ministries

Located at `src/content/ministries/`.

```yaml
---
name: "Ministry Name"
slug: "ministry-slug"
logo: "/uploads/ministries/logo.webp"
summary: "Short summary"
coordinator: "Coordinator Name"
contact: "[email protected]"
schedule: "Sundays at 10:30 AM"
order: 1
draft: false
---
```

### Staff

Located at `src/content/staff/`.

```yaml
---
name: "Staff Name"
title: "Job Title"
image: "/uploads/staff/photo.webp"
email: "[email protected]"
phone: "+1-555-0101"
bio: "Short bio"
order: 1
draft: false
---
```

### Site Info

Located at `src/content/siteInfo/`. Useful for reusable blocks like office hours.

```yaml
---
title: "Church Office & Activity Hours"
---
```

## 🎨 Customization

### Site identity

1. Update the church name and contact details in:
   - `src/components/Global/Header.astro`
   - `src/components/Global/Footer.astro`
   - `src/components/UI/Seo.astro`
   - All page titles/descriptions

2. Replace placeholder images in `public/uploads/` with your own assets.

3. Update the timeline on `src/pages/about-us.astro` to match your church history.

### Colors

Edit `tailwind.config.cjs` to change the primary, secondary, and accent color palettes.

```js
colors: {
  primary: { /* your shades */ },
  secondary: { /* your shades */ },
  accent: { /* your shades */ },
}
```

## 🌐 Deployment

This is a static site, so it can be deployed to:

- [Netlify](https://www.netlify.com/)
- [Vercel](https://vercel.com/)
- [Cloudflare Pages](https://pages.cloudflare.com/)
- [GitHub Pages](https://pages.github.com/)
- Any static web host

Make sure to update the `site` URL in `astro.config.mjs` before deploying:

```js
export default defineConfig({
  site: 'https://yourchurch.org',
  // ...
});
```

Built files are placed in the `dist/` directory.

## 📄 License

This starter was created by [MauCariApa.com](https://maucariapa.com). Customize it freely for your church or organization.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.