
Worship Tools
A native PowerPoint VSTO add-in that replaces paid worship-presentation SaaS with real-time lyric slides and live scripture lookup, built directly into PowerPoint's object model.
WorshipToolsisaVSTOadd-inengineeredinVB.NETthathooksdirectlyintoPowerPoint'snativeCOMobjectmodel.Itexiststoclosetwogapsatonce:therecurringsubscriptioncostofcommercialworship-presentationsoftware,andthelive-productionpanicwhenapreachercallsoutanunscriptedBibleversemid-sermon.Atiered,performance-conscioussearchindexessonglibrariesbyfilenamefirstandfallsbacktoacontent-levelscan,soresultsstayfastevenasthelibrarygrows.AcompanionNodeprocess(YouVersion.exe)runslocallyonthemachinetoservescriptureacrossdozensofversionsandlanguagesondemand.Alayout-mappingenginereadstheactiveslidemaster,sortsplaceholdersbyverticalposition,andinjectslyricsorversesintocustom`Lyrics`and`Verse`layoutswhentheyexist—fallingbacktosafedefaulttextboxeswhentheydon't,sonothingeverbreaksaliveservice.AfreePowerPointadd-inforchurches—instantlyricslidesandlivescripturelookup,engineereddirectlyintoPowerPoint'sobjectmodel.
How It Was Made
The Overpriced SaaS Problem
Church presentation software is typically locked behind recurring subscription paywalls. For smaller congregations running on volunteer labor and tight budgets, paying every year just to display lyrics and manage service slides is an unnecessary bottleneck. I wanted a free alternative that met volunteers exactly where they already were: Microsoft PowerPoint.
The Live-Production Chaos
Beyond the tedious pre-production hours spent copy-pasting lyrics, the real pressure happens live. Preachers regularly call out unscripted scripture mid-sermon. In a standard setup, that sends the media team scrambling — open a browser, look up the verse, copy it, build a new slide, fix the font size, deploy it before the speaker moves on.
The Architecture & V1 Solution
I built a native VSTO (Visual Studio Tools for Office) add-in in VB.NET that hooks directly into PowerPoint's COM object model, exposing the tool as a utility right inside the Office ribbon. It automates text parsing, scales fonts dynamically, handles multi-slide lyric distribution, and queries a scripture database to generate an unscripted verse slide on the fly, mid-service.
The Technical Roadblock
The V1 add-in solved the automation and real-time scripture problems cleanly, but ran into a hard limitation native to PowerPoint itself. PowerPoint treats media as isolated shapes bound to a single slide's timeline, so the audio/video clock resets on every slide transition — making a smooth, continuous motion background across multiple lyric slides structurally impossible in the current architecture. That constraint is now the spec for a follow-up: a decoupled rendering engine that owns the presentation clock instead of PowerPoint.
Shipping It
Worship Tools installs via a signed ClickOnce package, ships with a bundled YouVersion.exe for the Bible API, and supports English and Filipino scripture versions out of the box. It's now in active use running live service slides, and available for other volunteer media teams to install for free.
Inside the VSTO Logic
Tiered, performance-minded search strategy
Private Sub BuildTiers(files As List(Of String), filter As String,
tier1 As List(Of String), tier2 As List(Of String), tier3 As List(Of String))
For Each f As String In files
Dim name As String = Path.GetFileNameWithoutExtension(f)
If name.StartsWith(filter, StringComparison.OrdinalIgnoreCase) Then
tier1.Add(f) ' Tier 1: Exact prefix matches
ElseIf name.IndexOf(filter, StringComparison.OrdinalIgnoreCase) >= 0 Then
tier2.Add(f) ' Tier 2: Inline filename matches
Else
Try ' Tier 3: Content-level deep scan fallback
Dim content As String = File.ReadAllText(f)
If content.IndexOf(filter, StringComparison.OrdinalIgnoreCase) >= 0 Then
tier3.Add(f)
End If
Catch
' Gracefully bypass isolated file I/O locks during live services
End Try
End If
Next
End Sub