Spirit Connect
Spirit Connect
Overview
Spirit Connect is a guided prayer platform designed to help users build consistent prayer habits through structured sessions, personal journaling, and community engagement.
The application combines automation, content management, and audio experiences to create a consistent guided spiritual journey accessible across devices.
The Problem
The platform required a highly automated prayer experience capable of delivering synchronized voice narration, background audio, and structured prayer content across desktop browsers, mobile browsers, and varying network conditions.
Unlike most web applications where timing is a concern of user experience, here timing consistency was part of the product itself. A prayer session that stuttered, skipped, or stopped unexpectedly wasn't just a bug. It was a broken experience at a meaningful personal moment.
My Role
I served as the software engineer responsible for building the frontend application, implementing automated prayer sessions, integrating third-party audio and speech services, and collaborating directly with stakeholders to refine the experience through multiple iterations.
Responsibilities
Authentication and user onboarding
Personal prayer journal
Guided prayer session automation
Speechmatics speech synthesis integration
Administrative dashboard
Prayer library management
CSV-powered prayer content import
Community testimony submission
Testimony moderation system
Daily prayer automation
Email workflows (Resend)
Responsive design across devices
Production deployment on Cloudflare
Technical documentation
Engineering Decisions
Why prayer sessions were automated
Manual prayer sessions would have required users to navigate between steps independently, breaking the continuity that makes guided prayer meaningful. Automating the session flow, advancing through steps, triggering audio at the right moments, handling pauses and transitions, allowed the application to guide users through an experience rather than simply presenting content for them to navigate.
Why Cloudflare over Vercel for production
Spirit Connect served a community of users who expected consistent access. Cloudflare's global edge network, caching capabilities, and DDoS protection provided a stronger reliability foundation for a production application serving a community whose trust depended on consistent availability.
Biggest Challenge
The automated prayer session behaved inconsistently across browsers and mobile devices.
Audio playback timing varied between browsers. Mobile browsers applied different autoplay restrictions. Background audio and voice narration sometimes fell out of sync. Content provided by the client occasionally contained formatting inconsistencies that disrupted session flow.
Rather than applying isolated fixes for each device or browser, I continued refining the session architecture: improving how audio was loaded and triggered, standardizing content preprocessing, and testing across real devices rather than browser developer tools.
The process required patience and close collaboration with the client to standardize content and validate each iteration. It also reinforced something important: software must be tested where users actually use it, not where developers build it.
What I Learned
"Cross-device testing is not optional."
Issues that don't appear in desktop development tools can be fundamental to mobile browser behaviour.
"Content quality affects software quality."
Poorly structured input data can break otherwise reliable systems. Preprocessing and validation are engineering responsibilities.
"Automation requires careful design."
Automated sequences that depend on timing need to account for network latency, browser restrictions, and device capabilities.
"Software can carry meaning."
Building a platform designed to help people pray reminded me that software is sometimes more than functional. It can be meaningful.
Reflection
Spirit Connect reminded me that not all software is purely transactional.
The experience a user has during a guided prayer session is the product. Technical correctness is necessary but not sufficient. The session has to feel right.
That distinction, between software that works and software that works well in the context it was built for, is one I carry into every project since.