DialASermon
LaunchedDeprecatedA phone line for churches — call a number, hear the latest message. It launched in 2020 with paying congregations on three continents, and I kept rebuilding it for six years.
In spring 2020 every congregation in the world had the same problem at once: the building was closed and the service had to reach people anyway. The answer everyone reached for was streaming video, which works if you have broadband and a device and the confidence to use both.
This was for everyone else. It is a phone number that you call in order to hear this week's message, and there is no app and no account and no internet involved in it, because it is the technology a 90-year-old already owns and already trusts.
It went further than anything else I have ever built for myself, and it is finished now, and the path it took is the interesting part of it.
2020 — it launched
An AWS CDK stack for the storage and for the API that sat in front of it, which was a versioned S3 bucket for raw MP3 uploads, with Lambda and API Gateway wired up to it. The versioning was deliberate, because a church admin re-uploading "this week's sermon" over last week's sermon is the obvious failure, and object versioning is what makes that failure recoverable rather than fatal.
Alongside it there was a React and Redux dashboard, with a login system on it, and a profile edit screen, and the phone number configuration component that bound a congregation to its number.
And then it went live, with real congregations paying for it.
By mid-2020 there were 7 churches active, and each of them had its own provisioned phone number, across the United States and the United Kingdom, and they were Baptist and Methodist and Anglican and independent. There were 2 ways in, because a church could either point us at its existing podcast RSS feed and have each new sermon picked up automatically, or it could upload through the dashboard. Most of them chose the dashboard, and the ones that were already podcasting chose the feed.
Around all of it there was an actual business. There were outreach letters, and follow-ups, and onboarding sequences, and a payment process, and invoicing that was scheduled to begin that July, and a pipeline of dozens more congregations in Canada and Italy and Singapore. My father worked the sales side of it, and I built the thing and configured the numbers.
The lines rang. People called a number and heard their pastor.
The restarts
I started it over 3 more times and got nowhere with any of them, and they were a React scaffold, and a React Native project, and an Expo project, and each one of them was abandoned in its first week. None of them came close to what 2020 had already done.
2025 — AudioDrive
Then it became a product, or nearly. AudioDrive was a monorepo SaaS platform for delivering voice messages by phone to churches and nonprofits:
- a marketing site with separate landing pages and sign-up flows for churches and for nonprofits
- a client portal — the customer dashboard, with authentication
- an admin portal for internal administration
- a shared UI package carrying the brand, a deep teal built out into dark, light and bright variants with a full semantic palette on top
The database migrations are where the seriousness shows. There were organizations and users and channels and contacts, and billing fields, and notification settings, and then there were migrations that refactor all of those, which meant user contact restructuring, and organization access, and removing the billing fields from channel contacts. That is a schema being lived with rather than a schema designed once.
2026 — the vertical slice
The most recent work is a rebuild against a written specification, scoped tight: sign-up, billing stub, one organization, one purchased number, one uploaded recording, one inbound call that plays it back, and a dashboard showing call metrics.
After 5 years of half-starts I stopped trying to build the platform, and decided instead to make one call work end to end for one church, and only then to widen it.
Why I kept going back
I restarted this idea more times than anything else I have built, because the problem never went away — the people it was for in 2020 were the same people five years later, and they still were not streaming anything.
The hard part was never the code, because provisioning a number and playing a file down a call is a weekend of work. What it actually took was letters to hundreds of congregations, and follow-ups, and onboarding, and invoicing, and somebody free to answer the phone when a pastor could not work out why the recording had not updated. That is a business, and I could not run one properly in the margins of a full-time job.
So it stopped, and it stopped not because it had failed but because keeping it alive well would have meant choosing it over everything else. Knowing which of your projects deserve that is a slower lesson than it sounds.