All work
developer tool

Streambench

Native macOS client for Kafka, Redpanda, and NATS JetStream. Browse topics, tail messages, inspect lag, and produce from one desktop app.

Stack

macOS · Kafka · NATS · Redpanda

Timeframe

2026

Role

Founder · Engineer

Overview

Streambench is a native Mac client for Kafka, Redpanda, and NATS JetStream. You point it at a local Docker broker or a hosted cluster, then browse topics and streams, tail messages, produce, and inspect consumer lag from one window.

Streambench

Native macOS client for Kafka, Redpanda, and NATS JetStream.

streambench.app

Docs

Why Kafka in Docker hangs after the first connection, and the two-listener fix.

streambench.app/docs/kafka-docker

Streambench tailing the orders topic on a local Kafka connection

The Problem

Kafka work on a Mac still splits across a CLI, a JVM desktop app, and a web console that assumes you already have a cluster URL. NATS JetStream is a different tool. If you run both, you keep two mental models, two CLIs, and two places to paste credentials.

Local Docker makes the Kafka path worse. The broker accepts the first connection, then advertises an internal hostname the Mac cannot resolve. Consuming and producing hang. It looks like a client bug.

The bet

One native desktop client should cover Kafka-compatible brokers and NATS JetStream, keep secrets in Keychain, and tail a high-volume topic without turning the UI into a memory leak.

What I Built

  • A native macOS app for Apple Silicon, with a connections sidebar tagged for Kafka, Redpanda, and NATS
  • Live message tailing into a virtualized table, plus browse by offset or timestamp
  • Topic views for messages, partitions, configuration, and produce
  • Consumer lag: committed offsets, high watermarks, lag totals, and offset reset without a CLI
  • Produce and re-publish with keys, headers, and explicit partitions
  • Broker-side filters so a firehose topic filtered to one key does not stall the UI
  • Credentials in the macOS Keychain; they never leave the machine
  • Polar checkout for a $89 perpetual license, a 14-day trial, and no account required

Hard Parts

Kafka-in-Docker on a Mac fails in a specific way: metadata fetch succeeds, then consume and produce hang because advertised.listeners points at a compose hostname such as kafka:9092. The client cannot fix the broker config. I documented the two-listener pattern (internal listener for containers, localhost advertised for the Mac) and send people there when that hang shows up, because the alternative is a support queue full of "the app is frozen."

Redpanda has the same shape under --kafka-addr and --advertise-kafka-addr.

The Tradeoff

Streambench is a client, not a cluster operations console. It does not replace AKHQ, Redpanda Console, or a schema registry UI. It does not run on Windows or Linux. Apple Silicon only.

That boundary is intentional. The work I wanted is TablePlus-shaped: connect, browse, tail, produce, inspect lag. Cluster topology, multi-DC ops, and a hosted sync of connection profiles are out. Credentials stay local, which is the privacy model and also means there is no cloud backup of your connections.

Where It Landed

The app is public at streambench.app. Checkout goes through Polar. License activation sends Polar a key, a machine fingerprint, and the Mac's computer name so you can tell which machines are activated. Message contents, broker addresses, and credentials stay on the Mac. Desktop analytics are off by default.

License

$89

Perpetual license, 12 months of updates, up to 3 Macs

Protocols

Kafka · NATS

One client for Kafka-compatible brokers and NATS JetStream

Credentials

Local only

SASL passwords, tokens, and creds files stay in Keychain

Where It's Going

Streambench stays a paid desktop client. I am not turning it into a hosted console. The useful work from here is coverage (auth modes, schema views, more NATS KV and consumer operations) and keeping the Docker and local-broker path honest in the docs.

status

The website, docs, and Mac build are public. The application source is private.


  • Developer tools
  • Kafka
  • NATS
  • macOS
Made with ❤️ in 🇨🇦 · Copyright © 2026 Valentin Prugnaud
Foxy seeing you here!
Wondering if I'd fit your role?
Logo