mrkeyoor.com_
Sat 17 Oct 13:32 UTC
Self-Hostedevaluationupdated 17 Oct 2026

zulu review

Zulu is a native Zulip chat client for iOS and macOS that gives topics and personal channel organization more room. You can group channels into folders, promote a topic beside a channel, and rename or hide items without changing the server for everyone else.

Verdict

Our Zulu Go-service run passed all 14 reported tests after a 54-second build, but it did not validate the Swift iOS or Mac apps. Try Zulu if personal topic organization solves a daily Zulip annoyance and you can accept its early status. Keep the official client available if dependable mobile notifications are essential, since the README says Zulu's notification service is not deployed.

We ran it

Lab card: what happened when we ran zuluScreenshot of zulu (github.com/slop-place/zulu)
Install✓ · 27s70 packages
Build✓ · 54s
Tests✓ · 39s14 passed · 0 failed of 14 (go test)
Repo280 files~31,463 lines of source · 3.4 MB · 4 CI workflows · Dockerfile · tests dir

Answers from our run

Does zulu build from source?

Dependencies installed in 27 seconds (70 packages), and the build succeeded in 54 seconds. We cloned commit 3e7f226 into a clean Debian container with 3 CPUs and no project-specific setup.

Do zulu's tests pass?

Yes. The project's own test command finished in 39 seconds and reported 14 passed, 0 failed (go test).

Who should not use zulu?

iPhone users below the documented iOS 27 minimum.

What are the alternatives to zulu?

Zulip mobile, Zulip desktop. Our Zulu Go-service run passed all 14 reported tests after a 54-second build, but it did not validate the Swift iOS or Mac apps.

Setup2/5Go checks pass, but Apple builds and push need separate setup
Docs4/5Clear app layout, release steps, and notification-service details
Community2/5888 stars and recent release PRs, with no open discussion queue
Maturity2/5Early client, recent UI fixes, and an undeployed push service

Who it’s for

Zulip users on current Apple devices who spend their day following individual topics.
Mac users who want native split views, keyboard navigation, and a Return-to-send composer.
Swift developers willing to evaluate an early client against their own Zulip organization.

Who it’s NOT for

iPhone users below the documented iOS 27 minimum.
Teams needing an already deployed notification backend: the README says the Go service is not deployed.
Administrators expecting personal folders and renamed topics to propagate to coworkers: Zulu keeps those changes private to the client.
Organizations requiring clear reuse rights before adopting code: GitHub returned no recognized license, so check the repository terms first.

Setup reality

Our sandbox ran the Go service in service/ at commit 3e7f226, installing 70 packages in 27 seconds. Its build passed in 54 seconds, and the test step passed in 39 seconds with all 14 reported tests passing. These results do not cover the Swift Apple apps.

The app route requires Xcode and XcodeGen, then a Zulip organization address and password or SSO. Operating the notification service requires a persistent SQLite file and an encryption key, plus APNs credentials and HTTPS for actual push delivery.

The README specifies iOS 27 and describes the service as undeployed. Apple distribution has separate signing and App Store Connect setup. A Linux Go build provides no evidence about iOS rendering, Mac behavior, or real notification delivery.

Personal topic folders leave the shared Zulip server alone

Zulu lets you promote a frequently used topic beside channels and collect channels into your own folders. Renaming or hiding an item changes your view without telling the Zulip server about that organization. That distinction is its strongest reason to exist. If your team uses topics well but your sidebar still makes you hunt for the same conversations, Zulu gives you a way to arrange the work around your own habits.

Our checkout was 3.4 MB across 280 files, with roughly 31,463 source lines. GitHub identifies Swift as the primary language, despite our lab selecting the Go project under service/. The project README describes a native Apple client, shared SwiftUI components, and a separate notification backend. Treating the passing Go result as a review of the complete desktop and phone experience would confuse those parts.

What happened when we ran it

Our sandbox installed Zulu's Go-service dependencies in 27 seconds, built the service in 54 seconds, and passed its tests in 39 seconds. The run reported 70 installed packages and 14 passing tests, with 0 failures. We used commit 3e7f226 on October 16, 2026, inside an unprivileged Debian container with 3 CPUs, 8 GB of RAM, the Go 1.24 image, and no secrets.

The repository scan found 4 CI workflow files, a Dockerfile, a compose file, and a tests directory. Those are useful entry points for inspecting how the service is maintained. Our run did not establish that an iPhone app launches, a Mac notification arrives, or a Zulip account synchronizes correctly. Nothing in the supplied measurements covers the Xcode route. I would keep the service result on its own line in any adoption decision.

The Apple apps require Xcode and a current iPhone platform

The documented app command runs XcodeGen inside App, then opens Zulu.xcodeproj. You choose the Zulu scheme for iOS or ZuluMac for macOS and sign in with your organization's address. Password login and SSO are supported, with SSO returning through the server's zulip callback scheme. This assumes you already use a Zulip server. Zulu supplies a different client, rather than replacing that server or importing a different chat network.

The 14 passing service tests do not soften the platform requirement: the README specifies iOS 27 and Liquid Glass. That rules out older iPhone software immediately. Mac users get a sidebar and split view, menu commands, keyboard shortcuts, and a composer that sends on Return. The README also describes notifications for mentions and direct messages while the Mac app is running. Whether those choices suit you needs a session on your actual device.

Push delivery needs an additional service holding account credentials

The notification-service guide describes one Go process and a SQLite database. It holds each user's Zulip API key, follows their event queue, and decides what to send through Apple Push Notification service. The main README says this service is not deployed. Do not promise coworkers background alerts merely because the repository contains a container configuration and notification code.

Our 54-second service build proves compilation in the supplied sandbox, with no APNs credentials involved. A real operator needs HTTPS, Apple push credentials, persistent storage, and the encryption key used to protect stored Zulip keys. Losing that encryption key requires users to register again, according to the service guide. This creates a separate account-bearing service to maintain. A chat-client trial becomes an operations decision if you choose to run that component yourself.

Release fixes focus on reading position and unread state

Release zulu-v1.10.0 was published on October 10, 2026, alongside the repository's latest push. Its notes include holding the Mac conversation steady as messages arrive, preventing jumps when an image loads above the viewport, and fixing flickering unread indicators. These details show attention to the experience that matters in a chat client: keeping your place while other people keep talking. They also explain why the README still calls the app early.

GitHub showed 888 stars and 0 open issues and PRs. Recent activity in the fetched issue history consists of closed release PRs, including the October release. That supports a finding of current development, without establishing a large support community. GitHub returned no recognized license in the repository metadata. Before an organization forks or redistributes the client, someone should establish the actual permission terms rather than assuming visible source grants every reuse right.

The official clients remain the practical fallback

Zulip mobile is the official Flutter client for Android and iOS. Zulip desktop is the official desktop alternative. Start with those if platform coverage and following the official client path matter more than Zulu's personal topic arrangements. Zulu earns a trial when the particular problem is repeated navigation inside an existing Zulip organization, especially for someone who wants a native Mac interface.

The 70-package Go setup is manageable on the evidence we have, but the useful acceptance check is still personal: open a busy topic, scroll back, receive new messages, and return to your unread position. Repeat that with the official client beside it. Keep Zulu if its folder and topic model saves you attention, and keep a working notification route until the separate push service has been proven in your environment.

Alternatives

ProjectWhat it isPick it when
Zulip mobileThe official Flutter client for Zulip on Android and iOS.pick this instead when you need the official mobile route or Android support.
Zulip desktopThe official desktop application for Zulip.pick this instead when you need a desktop client across operating systems rather than a native Apple interface.

What people are saying

  1. [velocity-scout] slop-place/zulu

Sources

  1. Zulu README
  2. Notification service
  3. Apple release setup
  4. Zulu v1.10.0 release

More self-hosted reviews

playport · edge-smart-doh · Comma · ProsperoEden · node_exporter · Arrmada · the whole board →