Project$ cat projects/nacmirs.md
NACMIRS
The New Apostolic Church Music Information & Resource System: hymn scheduling, service programmes and music resources for congregations across Southern Africa.
- Status
- Live
- Year
- 2025
- Role
- Design, development and hosting
- Stack
- F# · Fable · React · Supabase · PostgreSQL · Azure
Every Sunday, each New Apostolic congregation needs to know which hymns to sing. Head office publishes a schedule, music leaders adapt it for their own services, and nobody wants to sing the same hymn three weeks running, or the same one as the congregation down the road at a combined service.
NACMIRS gives music leaders one place to do that work. It holds the hymn catalogue across the church’s hymn books and languages, the global service schedule, and each congregation’s overrides on top of it. It warns when a hymn repeats within a congregation’s chosen threshold, or clashes with neighbouring congregations in the same district or apostle area, and it prints the service programme for the altar and the organ as a PDF.
Around that core it has grown into a resource hub for church music: an approval flow for programmes, a hymn concordance and topical register, an area calendar, practice planners, training material with quizzes, recordings, and organ maintenance requests.
How it is built
The front end is F# compiled to JavaScript with Fable, using Feliz for React. Supabase provides Postgres, authentication and row-level security, with access following the church’s own hierarchy: congregation roles for admins, editors and viewers, and leadership roles that see across a district or apostle area. It is a PWA that works offline, and Capacitor wraps it for Android and iOS.
In July 2026 it moved off managed Supabase onto a self-hosted Supabase stack on a single Azure VM in the church’s own tenancy, behind Caddy, with nightly backups to blob storage.
Status
In use by congregations, on a regular release cadence driven by feedback from the music leaders who use it. It is an internal church system, so there is no public link.