Skip to content
Go back

Building Memorare - An AI-Powered Rosary App

Edit page

I wanted to build an app that would teach me about the mysteries of the rosary as I prayed them. Most rosary apps are basically prayer counters. I wanted something that would actually help me understand what I was meditating on, and if it could connect to whatever I was going through in my life, even better.

How It Works

Before you start praying, you share what’s on your mind. The app calls Anthropic API to generate five personalized meditations, one for each mystery, that connect your intention to Christ’s experience in that scene.

Entering your prayer intention

The system prompt focuses on keeping the tone contemplative:

TONE:
- Quiet, warm, present
- You are sitting with them in a dark chapel, not lecturing from a pulpit
- No exclamation points, no enthusiasm, no "spiritual cheerleading"
- No therapeutic language ("I hear you," "That's valid," "It's okay to feel...")
- Just presence. Just connection.

AI-generated meditation personalized to your intention

The State Machine

A rosary has a specific structure: opening prayers, five decades (each with an Our Father, ten Hail Marys, Glory Be, and Fatima Prayer), and closing prayers. I modeled this as a state machine:

enum RosaryPhase: Equatable {
    case opening(OpeningPrayer)
    case decade(Int)
    case closing(ClosingPrayer)
    case complete
}

enum DecadePrayer: Equatable {
    case meditation
    case ourFather
    case hailMary(Int)
    case gloryBe
    case fatimaPrayer
    case scripture
}

The advance() function handles all the transitions. When you tap, it knows exactly what comes next.

Haptics for Eyes-Closed Navigation

There’s a contradiction in building a contemplative prayer app for your phone. You want something thoughtful and meditative, but you’re also staring at a screen. I wanted to solve that.

The idea: distinct haptic patterns for different prayers so you can close your eyes and still know where you are. Core Haptics lets you compose patterns from transient events (quick taps) and continuous events (sustained rumbles):

/// Standard tap for regular Hail Mary beads
func hailMaryBead() {
    playPattern(events: [
        CHHapticEvent(
            eventType: .hapticTransient,
            parameters: [
                CHHapticEventParameter(parameterID: .hapticIntensity, value: 0.6),
                CHHapticEventParameter(parameterID: .hapticSharpness, value: 0.5)
            ],
            relativeTime: 0
        )
    ])
}

/// 5th Hail Mary - halfway marker, double-tap
func hailMaryMiddle() {
    // Double tap pattern...
}

/// 10th Hail Mary - rising triple with sustained peak
func hailMaryTenth() {
    // Rising crescendo pattern...
}

The fifth Hail Mary gets a double-tap so you know you’re halfway through the decade. The tenth gets a rising crescendo. The Our Father gets the strongest double-tap. Decade transitions get a long, unmistakable pattern.

After using it for a few weeks, I can pray an entire rosary without looking at the screen.

AI Memory

The app remembers what you share. After each session, Claude extracts meaningful details from your conversation and stores them. Future meditations can reference this context.

Post-prayer reflection chat

func extractMemories(from messages: [ReflectionMessage]) async throws -> [String] {
    let extractionPrompt = """
    Based on this reflection conversation, identify 0-3 things worth
    remembering about this person for future prayer sessions. Focus on:
    - Life circumstances that affect their prayer
    - Ongoing struggles or joys they're processing
    - Significant events or relationships mentioned

    Be selective — only extract genuinely meaningful information...
    """
    // ...
}

The memory system learns about you over time

Architecture

The full stack:

The Cloudflare Worker pattern is worth noting. Instead of shipping an API key in the app bundle (bad idea), the Worker acts as a secure intermediary. The iOS app authenticates with a simple app secret, and the Worker handles the actual Claude calls.

What I Learned

This was my first iOS app. I learned SwiftUI, SwiftData, Core Haptics, and the App Store submission process from scratch. The whole thing was built with Opus 4.5 in Claude Code and GPT 5.2 Codex on xhigh in Codex.

Try It

Memorare is pending approval on the app store now. If you pray the rosary, I’d love to know what you think.

Visit memorare.app


Edit page
Share this post on:

Previous Post
Building a Federal AI Prototype in 7 Days
Next Post
Using Claude Code as Your AI Personal Trainer