# GospelChannel Church Finder [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/Ac0AI/gospelchannel  
**GitHub Stars:** 1  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/gospelchannel-church-finder

## Description
Find a Christian church by worship style, denomination, language, and location. Read-only.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "gospelchannel-church-finder": {
    "command": "npx",
    "args": ["-y","drizzle-kit"]
  }
}
```

## Documentation & README

# GospelChannel — The Church Guide

Find the right church before your first visit.

Free global church guide with worship-aware profiles, built with Next.js 16, OpenNext on Cloudflare Workers, Neon, Spotify, and YouTube.

> Solo-maintained project, and my first open source project. This repository is public so people can report bugs, suggest improvements, and send small focused pull requests. I am still learning the open source side of things, so patience and clarity help a lot.

## Status

- Production site: `https://gospelchannel.com`
- Contributor language: English or Swedish is fine
- Project direction is maintainer-led

## What the app does

- Find and compare churches by location, tradition, language, worship style, and service details
- Browse curated worship and gospel music connected to church profiles
- Explore church pages with Spotify embeds and YouTube video grids
- Submit church suggestions and ownership claims
- Run scheduled content refresh jobs
- Generate SEO assets such as `sitemap.xml`, `robots.txt`, and structured data

## Stack

- Next.js 16 (App Router)
- OpenNext + Cloudflare Workers
- Neon Postgres + Drizzle
- Better Auth
- Spotify Web API
- YouTube Data API
- Cloudflare R2 for media
- PostHog for analytics

## Local setup

Prerequisites:

- Node 22.x
- npm

If you use `nvm`, run:

```bash
nvm use
```

Install and start:

```bash
pnpm install
cp .env.example .env.local
pnpm dev
```

Helpful commands:

```bash
pnpm lint
pnpm build
pnpm smoke
pnpm check:env
```

## Database (Neon)

This project uses [Neon](https://neon.tech) serverless Postgres with Drizzle ORM.

1. Create a free project at [neon.tech](https://neon.tech)
2. Copy the connection strings into `.env.local`:
   - `DATABASE_URL` - pooled connection string
   - `DATABASE_URL_UNPOOLED` - direct connection (used by Drizzle migrations)
3. Run migrations:
   ```bash
   npx drizzle-kit push
   ```

## Environment variables

You do not need every external integration to read the code or work on docs and UI.

Typical local development:

- `NEXT_PUBLIC_SITE_URL`
- `NEXT_PUBLIC_MEDIA_BASE_URL`
- `BETTER_AUTH_URL`
- `BETTER_AUTH_SECRET`
- `DATABASE_URL`

Needed for specific integrations and production-like flows:

- `YOUTUBE_API_KEY`
- `SPOTIFY_CLIENT_ID`
- `SPOTIFY_CLIENT_SECRET`
- `APIFY_TOKEN`
- `ANTHROPIC_API_KEY`
- `BREVO_API_KEY`
- `CRON_SECRET`

Admin access is database-backed.
Promote an account to admin with:

```bash
pnpm db:seed -- --emails=you@example.com
```

Notes:

- `pnpm build` uses offline mode for the content pipeline.
- Full admin, mail, sync, and deployment flows need real service credentials.
- Keep secrets in `.env.local`. Do not commit them.

## Contributing

Ideas, bug reports, and small PRs are welcome.

If you want to help, the easiest path is:

- open an issue
- keep the idea or fix small
- explain the problem in plain language

Best ways to help:

- Open an issue for bugs or feature ideas
- Send focused PRs that solve one problem at a time
- Include screenshots when changing UI
- Update docs if behavior changes

See `CONTRIBUTING.md` for the short version of how this repo is run.

## Security

Please do not post security issues publicly. See `SECURITY.md`.

## Deployment

The production app is deployed on Cloudflare Workers via OpenNext.
Contributors usually do not need deployment access.

Maintainer deploy command:

```bash
pnpm deploy
```

## Project notes

- Spotify can require Extended Quota Mode for some external playlist access.
- The app has manual data fallbacks in `src/data/manual/` for cases where API data is limited or unavailable.

## License

MIT. See `LICENSE`.

