# smallchurch CHMS

A freeware church membership app for a house of worship or a parachurch
group. You run it on your own free accounts. We never bill an individual
church for this, and we do not hold your people.

This is freeware. It is not OSI open source. Read `LICENSE` (a draft)
before you use it.

## Who this is for

A pastor or church secretary who can follow a short checklist. The
training on [smallchurch.work](https://smallchurch.work) is written for
a 65-year-old with little tech knowledge. One account at a time.

## What it costs

The software is $0. You create four free accounts and use them:

1. GitHub (the code lives here)
2. Netlify (the website that members open)
3. Supabase (the database and logins)
4. Resend (the email that sends the sign-in code)

You do not pay us. Those companies have their own free tiers. Stay on
the free tier and your cost stays $0.

## What it will do

Keep people and households. Directory. Groups and class attendance.
Calendar. Child check-in if you have a label printer. Volunteers.
Forms. Notes. Bulletin and order of service. An empty song library you
fill with your own songs. Email to the church through your Resend
account. Giving reports from a spreadsheet you export from wherever you
already take money. A full copy of your data as a CSV whenever you want
it.

## What it will not do

Take credit cards. Send mass texts. Ship someone else's copyrighted
songs. Replace your bookkeeper. Host your church on our servers.

## First time on your own copy

Locally, `supabase db reset` (or the test harness) loads the Sampleton
fake congregation and one admin: `admin@example.invalid`. Every name is
fictional. The song library and liturgy tables start empty.

On a hosted Supabase project, seed.sql does not run. After migrations:

```
FIRST_ADMIN_EMAIL=you@yourchurch.org \
NEXT_PUBLIC_SUPABASE_URL=... \
SUPABASE_SERVICE_ROLE_KEY=... \
node scripts/bootstrap-admin.mjs
```

Then sign in with an email code. There is no text-message sign-in.

Giving is a CSV import under Admin, Giving. This app never charges a
card. Nightly backup is `.github/workflows/nightly-backup.yml`; put
your own `DATABASE_URL` in GitHub secrets, never in the file.

Supabase's built-in mailer is fine for you while you test. Invite the
whole list through Resend once that account is verified.

## Status

The app code is in this repo, copied from a private church install and
stripped of that church's name, giving page, and login emails. Training for the four accounts is at
[smallchurch.work/chms/start](https://smallchurch.work/chms/start). Do not
point a real congregation at a copy until Issue 8 on `_build-plan.md`
is done.

## Rules for people working in this repo

Read `_build-plan.md`, then `CLAUDE.md`. One issue at a time. Do not
copy the FBC Wisner production app's git history, secrets, or real
people into this tree.
