Three products for one youth movement in Calgary: a website with AI sermon recaps, a QR check-in and operations system for church leaders, and Corkboard, a private AI-moderated community app. I built the first two and co-created Corkboard while leading its engineering.
Divine Eagles is the youth movement of The Eagles Ark church in Calgary. It needed a front door for newcomers, a way for leaders to know who is actually showing up, and a place for members to stay connected between Sundays. I built the website with its AI recaps, the check-in and operations system, and Corkboard, which grew out of an idea from a student in the AI Builders program.
The landing page leads with identity and an invitation, then Sunday time and place, a Sunday ride request, a journey stepper, an events section with shareable pages, a resource library with a wallpaper preview, mood playlists and a community photo feed. The part I would point to first is Month in Review. Every Sunday a pipeline finds the latest message on YouTube, waits for captions, and has AI read the transcript and write a recap with themes, takeaways and scripture references, so anyone who missed the service can catch up in a minute and then watch the full message. Output is validated before it is saved, and a new message shows "recap coming soon" until it is ready. I also updated llms.txt, the sitemap and crawler rules after an answer-engine audit.

The second product is the one leaders use every week. Members scan a QR code shown at the front of church and check in by phone number, with international numbers, an avatar, an attendance streak and a confetti moment. A first-time visitor says so, and the server enforces that answer per service. Behind it is an operations dashboard that lets any leader see what matters without asking a developer.



Leaders watch check-ins arrive in real time during the service, with the running headcount, and can check someone in manually.
Search and filter every member, see when they were last seen, flag people unseen for three weeks or more so they can be followed up, and see birthdays coming in the next seven days.
Attendance trend, first-timer and absent-member reports, per-service breakdowns and five CSV exports built to open cleanly in Excel, plus a consistency leaderboard.
Leaders create and cancel services and switch first-timer registration per service. A multi-session Path of Life event has its own QR sign-in, attendee list and exportable report.
Four scheduled jobs close the loop. A Telegram alert goes to the follow-up team before service with first-timers and headcount. On Monday, first-timers get a welcome email and people who missed a service get a note with the sermon link, and the team gets a summary report. A daily job sends birthday emails.


Privacy was part of the design. The member lookup never returns a phone number, profile updates are validated against the member's own cookie, and a missed or cancelled service is handled on the server, not trusted from the browser.
Most community apps are feeds that reward noise. Corkboard is built around a physical metaphor: four weekly corkboards where short sticky notes are pinned for prayers, encouragement, testimonies and questions, a private space for what a member wants to keep, and pastors who are visibly part of the conversation. Every board starts fresh each Sunday, so nothing piles up and nothing scrolls forever. The look is tactile on purpose, with cork, coloured paper, pins, tape and an ANSWERED stamp, and notes are named or anonymous, capped at 200 characters, with a cooldown and weekly limits so a board stays calm.


My Space keeps prayers, answered prayers, saved posts, verses and notes. The Notepad takes a private note and a feeling, then offers matching Bible verses, with King James built in and NIV, AMP and The Message through the licensed API.Bible service, cached and refreshed on a schedule. Public posts pass deterministic checks for emails, phone numbers, links and spam, then an AI moderation check. Private notes and pastoral messages are never sent to the AI. If the service is busy the post is held and the member keeps their words. When a post suggests someone may be in danger, care contacts are alerted with no text and no author, and a backup is alerted if nobody opens it within six hours. Moderation was tested against 53 written cases first.

A pastor inbox with assigned, available and public requests, handoff between pastors, and an admin overview. Admins can read pastoral threads for oversight, every read is audited, and they cannot reply.
Members, pastors and admins, with written reasons for role changes and an audit trail. An admin can identify an anonymous poster only when the content has been flagged, and the last admin can never be removed.
Members sign in with a phone number and a six-digit PIN stored with Argon2id, tied to the same church member record the check-in system uses, so all three products share one person.
One typed API front door with 109 operations, each with an access level and a strict schema, migrations, separate database roles for the app and for schema changes, and 31 test files across unit, integration, browser and moderation suites.
Corkboard began as an idea from a student in the AI Builders program, and we shaped the concept together. The student owned the product's voice and judgement: the wording on every screen, the emotion-to-verse list, the moderation policy with its test examples, and the invented sample data. I led product engineering and built the application, from the schema, services and API to the screens, moderation pipeline, Bible service, tests and deployment setup. The website and the check-in system I built on my own.
The design rules are about trust. Private writing stays private unless a member shares it, anonymous to the community is not anonymous to the system, AI assists moderation while people make the decisions, and the app supports pastoral care without replacing it. A few settings, such as the care-alert delay, are recorded as provisional until church leadership confirms them.
Admin and Corkboard screens use invented members and synthetic data generated for local testing.