The problem
A faith-based recovery program had outgrown what a website could carry. Its guided year-long journey, the training it gives the mentors and local leaders who walk alongside participants, and the private reflection at the heart of it all lived across scattered documents and a site never meant to hold any of it — least of all the personal writing the program invites people to do. It needed to become an app, without the move quietly eroding the privacy that makes the program safe to be in.
What we built
A cross-platform companion app and an admin platform, designed so privacy is a property of the system rather than a promise.
- One app, every platform. A single codebase ships native apps for iPhone, iPad, and Android plus a browser app — a guided daily journey, private journaling, and offline access so the day's content is there on a plane or in a basement.
- Privacy enforced in the database. Personal reflections live in Postgres with row-level security, so access rules are evaluated per request inside the database itself. A mistake in a screen or an API can't expose a journal, because the row is never returned in the first place. Sharing with a mentor or a leader is always the participant's explicit, revocable choice — and when a leader's role ends, that access ends on its own.
- Content separated from people by design. Authored content and personal data never share a database. The team keeps writing in the CMS they already know — through a plugin we built — and content publishes out to a CDN the app reads, while that system stays entirely out of the app's request path. Being slow, updated, or offline can never touch a participant.
- A dashboard that runs the program. One admin surface manages the full daily curriculum, the mentor and leader training, and aggregate insight across regions — never any individual's private writing.
- Every reader in their own language. Content is written once and run through a translation pipeline — an LLM with a project glossary and a human review gate — so the program's vocabulary is rendered correctly, and each new language is inexpensive to add.
Status
In active design and build — a mobile and web app, an admin and training platform, and the privacy architecture underneath, delivered as an ongoing technical partnership rather than a hand-off.
