Meet Ping. Yeah, I know it's a failed Apple product.

Two Webhooks Are Better Than Four!

Recently I’ve been posting frustrations about Slack. It works fine as a free chat app, but the constant UI changes, pop-ups, ever-increasing limitations, push notification issues, and lack of customization really turn me off. It meets the needs of many users and is a solid solution overall, but I just can’t do it anymore.

Some fellow internet nerd mentioned Mattermost. You can self-host it for free, and it’s marketed as a drop-in replacement. So I gave it a try… and it turned out to be yet another “fine enough free chat app.” None of these tools really solve what I actually need. My goal really isn’t two-way conversations to keep teams in sync - it’s pretty much “just tell me what I need to know.”

Mattersucks

So I built it.

You don’t realize how hard it is to move away from a system until you’re in the middle of it. It’s like moving into a new house: so many things happening at once that you constantly ask yourself, “is this really worth all the time and headache?” At that point, it doesn’t take much to give up and stay where you’re comfortable.

For me, Slack had one key ingredient: Webhooks. A webhook is basically a lonely server that spends all day waiting for someone to talk to it. When someone shouts its way, it replies, “Yes! You! I hear you!” That response can trigger all kinds of cool stuff. Leaving slack means leaving webhooks. AI and I (say that 10x fast) built a webhook server replacement (let’s call him TJ Hooker) that listens 24/7. When I tell a script to message TJ, the two do a handshake. Once the super-secret spy stuff is done, TJ writes the message into his ledger.

Webhooks

Here’s where it gets fun, and also why I didn’t sleep much last night. I wrote a second script that checks TJ’s ledger and generates an HTML page. It sorts, colorizes, adds formatting, and categorizes messages into topics with emojis and markdown support. The page refreshes every minute and is accessible behind Cloudflare Tunnels since it’s all running on my local server. It’s mobile-friendly and has a clever custom domain name with security stuff at the front gate. This isn’t a how-to, so we’ll only stick to the fun stuff here.

The next step is adding webhook configs into all my scripts. Tedious, but it’s also an opportunity to add features and clean house. After that, I can focus on formatting incoming messages and tweaking tf out of this 100% customizable dashboard.

One interesting thing I learned today: services like IFTTT and Zapier actually charge a premium just to send webhook requests. That’s a real bummer because I’ve been using Zapier to track when specific Twitch users go live. Looks like I’ll need to make a script using Twitch’s API to replace that now, too.

Questions or comments?

Previous: Waka Waka Key Upgrade Next: DIY Essential Oil Diffusers