# Release R1: website launch checklist

Phase 1's exit criterion (brief section 13): **the site can go live on its own, and an administrator
completes tasks without help.** Use this list on top of [GO-LIVE.md](../GO-LIVE.md), which covers the
server, `.env`, keys and backups. Tick each box.

## 1. Server additions for the website

- [ ] `TOBAS_SITE_TENANT` in `.env` is the church's slug (shown by `site:install`), then `php artisan config:cache`.
- [ ] `php artisan storage:link` has been run (pictures, sermon audio and documents are served from `public/storage`).
- [ ] PHP **OPcache is on** (`opcache.enable=1`). Without it every request starts slowly; on the XAMPP
      test machine an empty request takes about half a second for this reason alone.
- [ ] Compression and caching: on Apache, `mod_deflate` and `mod_headers` are enabled (the rules are in
      `public/.htaccess`); on nginx, add `gzip on;` for text types and
      `location /build/assets/ { add_header Cache-Control "public, max-age=31536000, immutable"; }`.
- [ ] **HTTPS everywhere.** The door scanner's camera only works on https.
- [ ] The scheduler runs every minute (`* * * * * php artisan schedule:run`): it sends queued email
      and SMS, the 07:00 birthday list and greetings, scheduled posts, backups.
- [ ] Upload limits suit sermon audio: `upload_max_filesize` and `post_max_size` at least `100M`
      (the media library shows the limit in force).
- [ ] Email deliverability for the newsletter: SPF, DKIM **and DMARC** records for the sending domain
      (Gmail and Yahoo refuse bulk mail without them).

## 2. Build the site

- [ ] `php artisan migrate --force` and `php artisan permissions:sync`.
- [ ] `php artisan site:install admin@yourchurch.org` creates the Home, About, Contact and Privacy pages,
      the menus and the settings. **Do not run the demo seeders** (`WebsiteSeeder`, `WebsiteContentSeeder`,
      `WebsiteEngagementSeeder`) on a live server: they add invented people and testimonies.
- [ ] Open the website: every bracketed text such as "[Replace this…]" is still to be replaced.

## 3. Content the church supplies

- [ ] Logo (Website › Site settings), name, address, phone, WhatsApp, email, map position, service times, social links.
- [ ] Home page welcome text and photos; About page: history, vision, mission, beliefs, pastors with photos.
- [ ] Privacy notice reviewed by the church's legal adviser (NDPA 2023), including how long prayer requests are kept.
- [ ] Branch pages for each branch that should appear on the map (Website › Branch pages, **Show on the website**).
- [ ] Live stream link (Website › Live stream). Give button link (online giving set up per GO-LIVE.md).
- [ ] At least a few sermons, ministries and upcoming events, so the first visitors find something.
- [ ] Every picture has a description (the media library flags missing ones).
- [ ] Native-speaker check of the Hausa, Igbo, Pidgin and Yoruba wording (menus and the member portal).

## 4. People and permissions

- [ ] Content editors created (role Content Editor; at Headquarters for the whole site, in a branch for that branch).
- [ ] Prayer team created (role Prayer Team at Headquarters; branch pastors already see their branch's requests).
- [ ] Who receives the morning birthday list, and whether members get greetings (Members › Birthdays).
- [ ] Two-factor login switched on for administrators (it is required for HQ roles).

## 5. Checks before announcing the site

- [ ] Automated tests pass: `php artisan test`.
- [ ] Accessibility check against the live address: `npm run a11y -- https://yourchurch.org` ("No problems found").
- [ ] Run the manual scripts in `docs/phases/` (1A to 1D) on the live site with a test booking, a test prayer
      request and a test subscription, then delete them.
- [ ] On a phone over mobile data: home page, sermons, events, booking a place, the ticket, the prayer page.
- [ ] Search engines: add the site to Google Search Console and submit `https://yourchurch.org/sitemap.xml`.
- [ ] A backup has run since the content went in (`php artisan backup:list`).

## 6. After launch

- [ ] Announce the address in service, on WhatsApp and in the bulletin; put it on banners and flyers.
- [ ] First week: check Website › Messages, Prayer requests and Newsletter subscribers daily.
- [ ] First month: look at **Church overview** with the leadership team.
