This fall, a lot of churches are adding an AI chat bubble to the corner of their website. Ask it about service times, parking, kids' check-in. Some of those tools are genuinely helpful.
But almost none of them are light. Most chat widgets load hundreds of kilobytes of JavaScript the moment the page opens, whether anyone ever taps the bubble or not. On a phone in a church parking lot with one bar of signal, that's the difference between the "Plan a Visit" button responding right away and a page that feels frozen.
When we look at analytics for ministry sites with chat tools, the pattern is consistent. A small slice of visitors ever open the chat. Everyone else just pays for it, in load time and in taps that lag while the widget boots up in the background.
That's the wrong trade. The person who just wants your address shouldn't be slowed down by a tool built for someone else.
The fix has a slightly odd name: a facade. Instead of loading the real widget up front, you show a lightweight lookalike. It's a plain button styled like the chat bubble. It costs almost nothing.
When someone actually taps it, then you load the real script and open the chat. The visitor who wants help waits maybe a second. Everyone else never downloads it at all.
In practice it looks something like this:
<button id="chat-facade" class="chat-bubble" aria-label="Ask us a question">
Questions?
</button>
<script>
document.getElementById("chat-facade").addEventListener("click", () => {
const s = document.createElement("script");
s.src = "https://your-chat-provider.example/widget.js";
s.onload = () => window.ChatWidget?.open();
document.body.appendChild(s);
}, { once: true });
</script>
Every provider's open command is a little different, so check their docs. The idea stays the same: don't load it until someone asks for it. The same trick works for embedded maps, giving widgets, and YouTube players.
A few details matter:
- Make the facade a real
<button>. It needs to work with a keyboard and a screen reader, not just a mouse. - Show that something is happening. Swap the label to "Loading…" on click so nobody taps it three times.
- Reserve its space. Fix the bubble's size and position so nothing shifts when the real widget takes over.
We love tools that help people find their way to a church. But being welcoming also means not making everyone carry something only a few people need. A facade lets you offer help to the one who asks without slowing down the ninety-nine who just came for the service times.
If your site has picked up a few too many widgets over the years and you'd like a second set of eyes, reach out to us. We'd be glad to help you keep what serves people and lighten the rest.

