Selected work

Creator · Mobile · 2026

A church community app: sermons, songs, a Bible reader and a prayer wall, built in a week.

  • Flutter
  • GetX
  • Firebase
  • Cloud Functions
  • Firestore Rules
  • Moderation
Three Flock screens in the navy and gold dark theme: the prayer wall, a verified pastor's profile, and the Bible reader on Psalm 46
Prayer wall, pastor profile and Bible reader
  • 327

    Tests

  • 7

    Post types

  • 11

    Cloud Functions

  • 491

    Commits

Flock ("a family of faith") is a church community app in Flutter, with iOS as the primary target and on TestFlight, and Android scaffolding in place. Verified pastors and ministers publish sermons, worship songs, books, scripture posts, photos and events. Members follow, Amen, comment, save, and post prayer requests on a prayer wall. It is at version 1.0.1.

Content and roles

There are 7 post types and 2 account roles, member and pastor. The account type is set once at sign-up and locked by Firestore rules. The in-app Bible reader has chapter audio from LibriVox, downloads, search and a book and chapter picker, with translations from API.Bible. Creator Insights shows 7, 30 and 90 day metrics. Audio has lock-screen controls and books open in an in-app PDF reader.

Architecture

Modules are feature-first (views, controllers, data, models, bindings) with GetX for state, routing and dependency injection. Every data source has an interface plus a Firestore implementation and a mock or seed one, swapped by a single dart-define flag between emulators and mock data. A platform-adaptive widget set renders Cupertino on iOS and Material on Android, with a navy and gold dark theme and a cream light theme.

Backend

Firebase Auth handles Google, Apple and email sign-in, with Firestore, Storage and FCM push behind it. About 11 Cloud Functions (TypeScript, Node 22) fan out follower counts and notifications server-side, handle post fan-out and cleanup, cascade-delete on account deletion, and run a password reset by emailed one-time code through Resend. The Firestore rules are tested with Jest.

Moderation

Users can mute, block and report, with gates for removed content and suspended accounts, and admin queues for verifications, reports and support tickets, including suspension appeals. The profanity filter is enforced at the repository write layer so no new surface can skip it. It reads a live-editable Firestore config with a bundled seed and a local cache, uses whole-word matching for prose and substring matching for handles, and is tuned not to block scripture and prayer words like "hell" or "sin". An admin kill switch turns it off.

Built from specs

The work is spec-driven, with about 26 written specs and plans, including four micro-animation passes. I built it in an intense week in July 2026 (491 commits). About 327 tests pass and dart analyze is clean.

Highlights

  • 7 post types and 2 account roles, with the account type locked by Firestore rules
  • Bible reader with LibriVox chapter audio, downloads and search, translations from API.Bible
  • Prayer wall, Amen, comments, saves and Creator Insights over 7, 30 and 90 days
  • Every data source behind an interface with Firestore and mock implementations, swapped by one flag
  • About 11 Cloud Functions for fan-out, cascade delete and emailed-code password reset
  • Profanity filter at the repository write layer, tuned to leave scripture and prayer words alone
  • Mute, block, report, admin queues and suspension appeals
  • Cupertino on iOS and Material on Android from one adaptive widget set

© 2026 Theophilus Rex Danquah

Accra, Ghana