Others

Building My Daily Rosary App: A Journey of Faith and Code

When I first decided to create the Daily Rosary App, I had no idea I was embarking on one of the most challenging yet spiritually rewarding journeys of my life. What started as a simple desire to deepen my devotion to Our Lord Jesus Christ, Holy Mother Mary, and my patron saint St. Jude Thaddeus, became a comprehensive learning experience that taught me not just about programming, but about perseverance, faith, and the intersection of technology with spirituality.

The Spark of Inspiration

My devotion to prayer has been the driving force of my life for years. I pray the Rosary three times daily, attend Mass every day - whether in person or online when circumstances require - and whenever possible, I listen to the Divine Office. This consistent rhythm of prayer has shaped not just my spiritual life, but my perspective on how technology could serve the universal Church.

The inspiration for the Daily Rosary App came from my deep appreciation for the Divine Office app and my desire to create something similar for the Holy Rosary. I wanted to build a tool that could help Catholics around the world, especially those in the Philippines, maintain a consistent prayer life through Our Lady's most powerful prayer. Having experienced firsthand how the Rosary draws us closer to Our Lord Jesus Christ through the intercession of Holy Mother Mary and the saints, I felt called to share this gift with the global Catholic community.

More than just creating another prayer app, I wanted to demonstrate to the world that praying the Rosary truly helps us grow closer to God. Through my own daily practice of praying the Rosary three times each day, I've witnessed its transformative power. This wasn't just a development project - it was an act of evangelization, a way to use my technical skills in service of something infinitely greater than any business goal or personal achievement.

The Filipino Catholic community holds a special place in my heart, and I specifically wanted to create something that would resonate with their deep Marian devotion. Having seen how technology can bridge distances and connect hearts across continents, I envisioned the Daily Rosary App as a way to unite Catholics worldwide in prayer, with particular attention to serving those whose faith inspires my own.

Why Ruby on Rails and Hotwire Native?

Drawing from my QA experience and formal software development education, I evaluated several technology stacks before settling on Ruby on Rails with Hotwire Native. My bootcamp experience in 2018 exposed me to various frameworks, but Rails' maturity and developer-friendly ecosystem made it the clear choice for this project.

From a QA perspective, Rails' emphasis on testing resonated deeply with me. The built-in testing framework, combined with tools like RSpec and Capybara, meant I could maintain the quality standards I'd developed over seven years in quality assurance. My academic background helped me appreciate Rails' MVC architecture and how it promotes maintainable, scalable code.

Hotwire Native solved a critical problem I'd identified during my initial project planning. Having worked in QA for multiple mobile applications, I understood the complexity and maintenance overhead of maintaining separate iOS and Android codebases. Hotwire Native's hybrid approach meant I could leverage my Rails expertise while delivering native mobile experiences - exactly the kind of pragmatic solution my professional experience had taught me to value.

Hotwire Native was the game-changer for mobile development. Instead of learning separate technologies for iOS and Android, I could leverage my Rails knowledge to create native mobile experiences. The ability to wrap my Rails application in a native shell while maintaining the performance benefits of server-side rendering was exactly what I needed. This approach meant I could build once and deploy everywhere, which was crucial for a solo developer with limited time.

Building on Experience: From QA to Full-Stack Development

With over seven years of experience as a QA professional and having completed a software development bootcamp in 2018, I wasn't starting completely from scratch when I decided to build the Daily Rosary App. However, there's a significant difference between understanding software from a testing perspective and architecting a full application from the ground up. My QA background gave me a unique advantage - I naturally thought about edge cases, user experience, and potential failure points as I developed each feature.

Last year, completing my bachelor's degree in Software Development provided the theoretical foundation I needed to make more informed architectural decisions. The combination of practical QA experience, bootcamp intensity, and formal computer science education created a solid base for tackling a project of this scope.

My approach to learning Rails was methodical but faith-driven. Every morning, after my Rosary, I would dedicate time to coding. My QA experience helped me understand the Rails testing framework immediately - writing RSpec tests felt natural after years of creating test cases and finding bugs. This testing-first mindset actually accelerated my learning, as I could validate my understanding of Rails concepts through comprehensive test coverage.

Working with Hotwire required a different mindset shift. Coming from a background where I assumed mobile apps required complex JavaScript frameworks, discovering that I could create responsive, fast mobile experiences with server-side rendering felt revolutionary. Turbo Drive made page navigation lightning-fast, while Turbo Frames allowed me to update specific parts of the interface without full page reloads - perfect for updating prayer progress or switching between different mysteries of the Rosary.

Stimulus controllers handled the minimal JavaScript I needed, letting me add interactive behaviors without the complexity of larger frameworks. For someone learning programming, this progressive enhancement approach meant I could start simple and add complexity only where needed.

Building with Purpose: Features Born from Faith

Every feature in the Daily Rosary App came from my own prayer experience or feedback from fellow Catholics I knew. The app includes traditional prayers, guided meditations on the mysteries, and progress tracking - but each element was carefully considered through the lens of genuine spiritual practice.

The prayer interface needed to be distraction-free, with large, readable text that wouldn't strain eyes during early morning or late evening prayers. I implemented Turbo Streams to provide real-time updates when users complete prayers, creating a sense of spiritual accomplishment without being gamified in a way that would cheapen the sacred act of prayer.

One of my favorite features is the meditation guides for each mystery of the Rosary. Using Rails' partials system, I created reusable components that present Scripture passages and reflection questions for each mystery. The Hotwire integration ensures smooth transitions between mysteries without breaking the contemplative flow.

The iOS Challenge: From Web to Native

Taking the app from a web application to the iOS App Store was where Hotwire Native truly shined. The framework allowed me to wrap my Rails application in a native iOS shell while maintaining the server-side logic I'd already built. This hybrid approach meant I could leverage native iOS features like push notifications for prayer reminders while keeping the core functionality in my Rails app.

The development process involved learning enough Swift to handle the native shell, but Hotwire Native's architecture meant most of my time was still spent in familiar Rails territory. The bridge between web and native felt seamless once I understood the flow of navigation and data between the two environments.

Testing on actual iOS devices revealed performance optimizations I needed to make. Caching strategies became crucial for maintaining responsiveness, especially for users with slower internet connections. I implemented fragment caching for prayers and meditation content, ensuring the app remained fast even when network conditions were poor.

The App Store Journey: Patience and Perseverance

Submitting to the App Store was its own learning experience. Apple's review guidelines are thorough, and I had to make several adjustments to meet their standards. The iterative feedback process taught me attention to detail that has made me a better developer overall.

The most challenging part was explaining the app's purpose and functionality in a way that demonstrated clear value to users. The religious nature of the app required careful consideration of how to present Catholic content in a way that was respectful and accessible while meeting App Store requirements.

Google Play Store submission was notably smoother, with faster review times and clearer feedback when adjustments were needed. The Android version, built with the same Hotwire Native principles, required minimal additional work beyond the iOS version.

Technical Lessons and Professional Growth

My journey from QA professional to full-stack developer taught me valuable lessons that extended beyond just learning Rails. The seven years in quality assurance had ingrained in me a mindset of thinking about failure modes and user edge cases. This perspective proved invaluable when designing database schemas and API endpoints for the Daily Rosary App.

The formal education aspect added crucial theoretical knowledge about algorithms, data structures, and software engineering principles that my bootcamp and QA experience hadn't fully covered. Understanding concepts like Big O notation helped me optimize database queries for prayer loading times, while software engineering principles guided my decision-making around code organization and maintainability.

Working with Ruby on Rails felt natural given my testing background. The framework's emphasis on comprehensive testing aligned perfectly with my QA mindset. I found myself writing integration tests, unit tests, and even performance tests with the same rigor I'd applied to manual testing throughout my career. This testing-first approach gave me confidence to refactor and improve the codebase as the application grew.

Database design became particularly important as I realized how central data modeling is to application architecture. My academic coursework in database design, combined with years of testing database-driven applications, helped me create efficient relationships between users, prayers, progress tracking, and liturgical calendar data that could scale as the user base grew.

Spiritual Technology: Serving Others Through Code

What surprised me most about this journey was how natural it felt to combine technology with faith. Programming requires the same qualities that spiritual life demands: patience, persistence, attention to detail, and humility in the face of challenges. Many debugging sessions felt like forms of meditation, requiring calm focus and methodical problem-solving.

The most rewarding moments came from user feedback. Receiving messages from people who found the app helpful in maintaining their prayer life reminded me why I started this project. Technology, when used purposefully, can serve higher goals than efficiency or entertainment - it can serve souls.

Looking Forward: Continuous Improvement

The Daily Rosary App continues to evolve. I regularly add new features based on user feedback and my own growing understanding of both Rails development and spiritual needs. Recent additions include customizable prayer schedules, integration with liturgical calendar data, and enhanced meditation guides.

The technical foundation built with Ruby on Rails and Hotwire Native has proven robust and maintainable. Adding new features feels natural within the Rails ecosystem, and the hybrid mobile approach continues to serve users well across different devices and platforms.

Advice for Career-Changing Developers

For anyone considering a similar transition from QA or other technical roles into full-stack development, my advice is to leverage your existing experience while being humble about what you still need to learn. My QA background was invaluable for understanding user workflows, identifying potential failure points, and maintaining code quality, but I had to consciously develop skills in system architecture and performance optimization.

The combination of formal education, bootcamp intensity, and professional experience created a unique perspective that shaped how I approached this project. Don't underestimate the value of your existing technical experience - it provides context and practical wisdom that purely academic or bootcamp training might miss.

Choose technologies that align with your skill level and goals, but also consider your professional background. Ruby on Rails and Hotwire Native were perfect for my situation because they complemented my testing mindset and allowed me to build with confidence while learning.

Most importantly, remember that transitioning careers in tech is about building on your existing strengths while acquiring new ones. The analytical thinking, attention to detail, and user-focused mindset I developed in QA continue to serve me as a developer, just applied in different ways.

The Continuing Journey

Building the Daily Rosary App taught me that programming is not just about writing code - it's about solving problems, serving others, and using our talents in service of something greater than ourselves. Every feature I build, every bug I fix, every user who finds value in the app is a small way of living out my faith through technology.

St. Jude Thaddeus continues to intercede for this impossible cause that somehow became possible. Our Lady continues to guide this work that seeks to help others grow closer to her Son through the power of the Rosary. And I continue to learn, improve, and serve through lines of code that I pray will touch hearts and strengthen faith.

The intersection of technology and spirituality has shown me that our digital tools can be instruments of grace when built with love, prayer, and genuine desire to serve others. The Daily Rosary App stands as a testament to what's possible when we combine technical learning with spiritual purpose.

In a world where technology often isolates us, I'm grateful to have built something that brings people closer to God, to Our Lady, and to the peace that comes from consistent prayer. The journey from non-programmer to published app developer has been an impossible cause made possible through faith, persistence, and the intercession of St. Jude Thaddeus.

May this small contribution to the digital evangelization continue to serve souls and give glory to God.

Visit the Daily Rosary App at dailyrosary.app

Christopher Lim

Christopher Lim

Rails developer and Unity explorer. Family man, lifelong learner, and builder turning ideas into polished applications. Passionate about quality software development and continuous improvement.

Back to All Posts
Reading time: 12 min read

Enjoyed this others post?

Follow me for more insights on others, Rails development, and software engineering excellence.