The Thrive ecosystem is built around a simple idea:
Have one central source of truth for sermon and church content, and publish it out to every place people engage.
To make that work, we use a small set of focused components:
Visitors / Search Attenders Staff
| | |
| browser | iOS / Android | browser
v v v
+----------------+ +----------------+ +-----------------+
| Public Website | | Mobile App | | Admin Tool |
| (thrive-fl.org)| | (Expo / RN) | | (Angular) |
+-------+--------+ +-------+--------+ +--------+--------+
| | |
| HTTPS | HTTPS |
+------------+------------+-----------+--------------+
| |
v v
+-------------------+ +------------------+
| Global API | | AWS S3 |
| (C# / .NET) |---->| (sermon audio, |
| | | podcast RSS) |
+--------+----------+ +--------+---------+
| |
data | |
v |
+-------------------+ |
| MongoDB | |
| (sermons, config, | |
| podcasts, blogs) | |
+-------------------+ |
| |
| invokes |
v v
+------------------------------------------+
| AI Processing Pipeline |
| (AWS Lambda) |
| |
| Transcription ──> Sermon Processor |
| | | |
| | Series Summary |
| | Processor |
| v |
| Podcast RSS Generator |
+-------------------+----------------------+
|
+-------------+-------------+
| |
v v
Enriched data back Podcast RSS feed
to MongoDB published to S3
| |
v v
Mobile App & Website Podcast Platforms
(read via Global API) (Apple, Spotify, etc.)
Sermon is recorded
Audio is edited and prepared by the production team.
Staff upload the sermon
Using the Admin Tool, staff upload audio and fill in basic details (title, date, series, speaker, etc.).
The Global API securely stores this information and manages links to the audio file.
This architecture is intentionally:
Here is a typical rhythm for a normal week:
From the team’s perspective, the main manual task is one upload in the Admin Tool. Everything else fans out automatically.
Without going deep into implementation details, the system uses:
The rest of this documentation looks at each part of the system in more detail.