Try it: goldenfoxpublishing.com - live on web, the Apple App Store, and Google Play.

Inspiration

Rooted began with a question we couldn't shake: what if a Bible study could actually meet you where you are? Not a generic reading plan, but a voice-first, deeply personal experience that knows your season of life, your family, the weight you're carrying this week - and gently draws you back toward the Word and toward community.

We are not a technology company by background. One of us comes from a life of product development and managing developers - years spent shaping products and directing engineering teams, but never once teaching himself to write code. The other had never built software or, for that matter, ever used Instagram.

What we had instead was a conviction that this needed to exist, and a stubborn refusal to let "we don't know how" be the end of the sentence.

So we decided to build it ourselves, with an AI co-creator - Claude Code - as our engineering partner. What followed was one of the steepest, most rewarding learning curves of our lives.


What We Built

Rooted is a voice-first, AI-powered personalized Bible study app, live today on web, the Apple App Store, and Google Play. A single shared codebase ships to all three platforms. Users speak with a personal guide - whose name and voice are unique to them - that adapts study content to who they actually are.

Under the hood, that meant orchestrating a real production stack:

  • React + Capacitor - shared app across web, iOS, and Android
  • Vercel - web hosting and continuous deployment
  • Supabase - Postgres data layer
  • Clerk - authentication, with ClerkKit for native iOS
  • RevenueCat + Stripe - billing across native and web
  • Whisper + ElevenLabs - a voice pipeline stitching speech-to-text and expressive text-to-speech into a conversation that had to feel the same whether you opened it on a browser, an iPhone, or an Android phone
  • Anthropic Claude - personalized study generation
  • Sentry - error and crash monitoring

None of that existed in our heads when we started. We learned every piece of it in the building.


The Real Story: Curiosity, a Co-Creator, and Not Giving Up

The honest version of how Rooted got built is not "AI wrote an app." It's that a non-coder with a product background and an AI partner went back and forth thousands of times - asking questions, testing assumptions, catching mistakes on both sides - until the thing worked and was safe.

The most important thing we learned is that the human judgment in the loop is what makes AI-assisted building actually work. Claude Code is powerful, but it is not infallible, and neither are we. The app exists because we questioned each other.

A few real moments from our build logs:

When we caught the tool. More than once, Claude Code flagged a database migration as unapplied. We had already run it, and said so. Holding the true state of our own system against the tool's assumption - and being right - was a recurring pattern. The same happened with build numbers during App Store submissions: we tracked which builds were already consumed more accurately than the repo did, which saved us from rejected uploads.

When we corrected the direction. On a safety-sensitive sharing feature, our AI advisor drew the risk boundary in the wrong place. We moved it to where the real risk was: the line between what's private and what's safe to publish, not a technical distinction that missed the point.

When we forced rigor. Early on, during a complex infrastructure migration, the AI started throwing speculative patches at a problem. We pushed back, hard, twice. The plan we finally shipped was good because we forced three rounds of critique on it before a single line changed. That discipline - recon before building, one gated step at a time, verify before anything irreversible, root-cause only and no band-aids - became the methodology that kept a production app stable while two beginners ran it.

When we taught each other. We learned DNS, deployment, version control, and platform architecture from scratch - patiently, with a lot of repetition and a lot of dumb questions we weren't afraid to ask. In return, we brought product judgment, an ethical bar, and the domain knowledge of who we were actually serving. We debugged a live production incident together in real time, and watched the AI revise its own root-cause theory based on evidence we surfaced. That is what genuine co-creation looks like.

Curiosity and refusing to give up were the whole engine. Every blocker below was a wall we hit without knowing how to get over it - and got over anyway.


The Blockers We Walked Into

1. Keeping three platforms in sync

Rooted is one codebase shipping to web, iOS, and Android, each with its own rules. Web deploys continuously through Vercel; native requires a full rebuild and store submission every time. Billing alone had to work three different ways: RevenueCat for native purchases, Stripe for web, all reconciled into a single truthful picture of who is actually subscribed. Understanding why each platform demanded different handling - and getting a single change to propagate correctly across all three without breaking any of them - was a constant, humbling education.

2. Making voice work consistently everywhere

A voice-first experience is only as good as its worst platform. Microphone permissions, audio playback, and streaming behave differently in a browser, an iOS WebView, and an Android WebView. Achieving true parity, so the spoken experience felt identical no matter the device, meant solving platform-specific quirks that only ever surfaced on real hardware. There is no shortcut for this: you find the bugs by holding the actual phone.

3. A duty of care for people in their most vulnerable moments

This is the blocker we are proudest of solving, because it was never just technical. Rooted users share intimate things - struggles with addiction, abuse, grief, and trauma - in the course of their reflection. That created a serious responsibility.

We built a layered safety architecture:

  • Clear, repeated communication that Rooted is not a counseling service and its guides are not licensed counselors.
  • Routing of users toward appropriate professional help and crisis resources when their disclosures indicated real risk, so someone in crisis is pointed toward the right people, not left alone with an app.
  • A privacy posture that keeps sensitive user content minimal and protected by design.
  • A sharing feature engineered so that it is structurally incapable of leaking a user's private disclosures. When we built the ability to share a reflection card, we generated purpose-built universal content and added a code-level guard that drops anything referencing a person's name or circumstance - then tested it against the most extreme personal scenarios we could imagine and confirmed zero leaks before it ever shipped.

For a two-person team, holding that ethical line - meeting people in pain without overstepping into clinical territory - was the hardest and most important design work we did.

4. Getting through Apple, and opening the door to all ages

Passing App Store review was a milestone that took multiple submissions. Each rejection taught us a requirement we didn't know existed: data security and privacy standards for sensitive content, explicit AI consent before any AI feature runs, age-appropriate access. We learned Apple's bar the hard way, iterating until we cleared it. Every rejection made the app safer and more compliant. Persistence, not expertise, is what got us across.


What Happened Next

Then came the part nobody could build for us: adoption.

Neither of us had ever been on Instagram. We started from literally zero - no followers, no audience, no idea what we were doing. Within one week of beginning our marketing, the account grew from zero to over 1,600 followers and climbing.

But the number that actually moved us was the testimonies. In a remarkably short window, people began writing to tell us what Rooted was doing in their lives: how it met them exactly where they were, how it made familiar Scripture feel alive again, how it reached them on the days they couldn't feel anything at all. The tooling itself is being used, deeply and daily, by real people we've never met.


What We Learned

You do not need to be an engineer to build and ship a real, safe, multi-platform product. You need product judgment, a willingness to learn every unfamiliar piece one question at a time, an ethical bar you refuse to lower, and a co-creator you're willing to challenge as often as you trust.

The math of it is almost absurd when you lay it out. Two people with zero prior code shipped one product across three platforms, each one demanding its own handling of voice, billing, authentication, and safety routing. Twelve problems, not four. We solved them one question at a time.

And the human contribution wasn't reduced by the AI - it was concentrated. Our job became judgment, direction, and care: deciding what to build, catching what was wrong, and holding the line on who we were building it for. Curiosity got us started. Persistence is the only reason it shipped.


What's Next for Rooted

Rooted works. The next question is how far it reaches, and how many kinds of people it can hold.

Every age, not just ours. Clearing Apple's age-appropriate-access bar wasn't a compliance chore - it opened a door we intend to walk through. Formation doesn't start at 30. We're building age-tuned experiences so a ten-year-old, a high schooler wrestling with real questions, a young parent running on no sleep, and a grandparent in a new season each get a guide that speaks to their life, not a watered-down version of someone else's. Positive personal growth and development belongs to every stage of life, and the voice-first design is part of that: a child who isn't a confident reader and an older user whose eyes tire quickly can both simply talk.

Families in the same Word, at the same time. Shared plans that let a household walk through Scripture together - each person met at their own level, but rooted in the same passage - so dinner-table conversation has somewhere to start.

Well past our own zip code. The testimonies are already arriving from people we've never met, which told us the need isn't local. Next comes multi-language support and culturally aware study content, so Rooted can meet someone in their own language and their own context - not a translation of ours.

Into the places people already gather. Tools for churches, small groups, youth ministries, recovery groups, and campus ministries, so a leader can extend what happens in a room into the six days that follow it.

Deeper care, held to the same line. Continued investment in the safety architecture as we grow: better crisis routing, clearer boundaries around what an app should and shouldn't attempt, and privacy-by-design that scales without loosening. The larger the reach, the higher the duty of care - never the other way around.

Accessibility and access. Offline study for people without reliable connectivity, screen-reader and low-vision support, and pathways for people who cannot afford a subscription. If the whole premise is meeting people where they are, cost and connection can't be the wall.


Built With

React, Capacitor, Vercel, Supabase, Clerk, RevenueCat, Stripe, ElevenLabs, Whisper, Anthropic (Claude), Sentry - and Claude Code as our engineering co-creator.

Built With

Share this project:

Updates

Submission history