Skip to main content
  1. Posts/

the zulip saga, part 1: how a messenger sent me down a rabbit hole

Author
Merle
dev, nb, occasional chaos agent

it all started when i joined a new comapny.

they use zulip. it’s like slack, but open source, self-hosted, free. souds great, right?

on desktop, it works perfectly. messages arrive, notifications pop up, life is good.

then i installed the mobile app.

the problem
#

someone messages me. i look at my phone. nothing.

i open the app. oh look, 5 unread messages from an hour ago.

a messenger. that doesn’t notify you of messages.

A MESSENGER THAT DOESN’T NOTIFY YOU OF MESSAGES.

“just enable push notifications”
#

yeah, zulip has a push service. but our server is self-hosted, someone would need to set it up, and above 10 users you need a paid plan.

i thought: how hard can it be? i’ll jsut build something myself.

first attempt
#

zulip has an event queue api. you register, you get events via long polling. standrad stuff.

so i wrote a little service. listens for zulip events, sends me a notification when someone messages me.

deployed it. and… it worked. problme solved.

well. almost.

well..
#

my service polls permanently. and on the phone, somthing needs to stay awake waiting for messages.

that works fine for one app. but what if 50 apps did this? 50 apps all keeping connections open, all polling constantly?

your battery would be dead by lunch.

there had to be a better way. so i started researching.

and unexpectedly fell a bit into a rabbit hole.

the app
#

anyway, the app is already usable if you wanna try it. supports multiple accounts, DM and mention notificatoins, custom sounds, quiet hours, all that stuff.

zulip-mobile-notifs icon

currently working on getting it into f-droid too.


in future parts i’ll go deepeer into why every app - even signal - phones home to google, what metadata reveals, and the alternatives.

Related