<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kezlo Smith</title>
    <description>The latest articles on DEV Community by Kezlo Smith (@kezlo).</description>
    <link>https://dev.to/kezlo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3993495%2F5fe4b1a6-0663-43cb-a899-4f1f1867c80f.png</url>
      <title>DEV Community: Kezlo Smith</title>
      <link>https://dev.to/kezlo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kezlo"/>
    <language>en</language>
    <item>
      <title>I Built a Local-First Kafka GUI From Scratch to Handle Massive Clusters</title>
      <dc:creator>Kezlo Smith</dc:creator>
      <pubDate>Sat, 20 Jun 2026 04:03:15 +0000</pubDate>
      <link>https://dev.to/kezlo/i-built-a-local-first-kafka-gui-from-scratch-to-handle-massive-clusters-cnp</link>
      <guid>https://dev.to/kezlo/i-built-a-local-first-kafka-gui-from-scratch-to-handle-massive-clusters-cnp</guid>
      <description>&lt;p&gt;Every data engineer or backend developer who has worked with Apache Kafka eventually runs into the same wall: &lt;strong&gt;tooling&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;For a long time, I felt stuck between two extremes: older, native desktop apps that look like they were built two decades ago, or beautiful modern web consoles that lock up or timeout the second a cluster scales to hundreds of topics and gigabytes of metadata.&lt;/p&gt;

&lt;p&gt;I hit that breaking point on my own projects. I was tired of synchronous network bottlenecks freezing my interface during critical debugging sessions, so I decided to build the tool I actually wanted to use: &lt;strong&gt;Watermark&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why I Built Watermark
&lt;/h3&gt;

&lt;p&gt;Watermark is a 100% local-first, open-source desktop application designed to handle complex, heavy Kafka environments smoothly. I built it from the ground up to be lightweight, fast, and entirely local.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Tech Stack
&lt;/h3&gt;

&lt;p&gt;I went with a split architecture to maximize efficiency:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Go&lt;/strong&gt; on the backend to handle high-velocity cluster communication, metadata parsing, and authentication heavy lifting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;React&lt;/strong&gt; on the front end to craft a clean, high-observability interface inspired by modern IDE design patterns.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because it runs entirely locally, your cluster credentials, SASL, SSL, or AWS IAM setups never leave your machine.&lt;/p&gt;

&lt;h3&gt;
  
  
  Features I Focused On
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Consumer Lag Ranking (No More Hunting)
&lt;/h4&gt;

&lt;p&gt;Instead of forcing you to click into individual consumer groups to find out why a pipeline is backed up, I built a dedicated monitoring dashboard. It surfaces a global view of topic and group lag instantly, ranking them by priority.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Context-Aware Topic Annotations
&lt;/h4&gt;

&lt;p&gt;In large environments, figuring out &lt;em&gt;who&lt;/em&gt; owns a topic is a daily nightmare. Watermark introduces native metadata tagging. You can document producers, consumers, and operational context directly on the topic view.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Zero-Freeze Multi-Cluster Management
&lt;/h4&gt;

&lt;p&gt;You can jump between development, staging, and read-only production environments seamlessly. I optimized the metadata lifecycle so that massive topic counts won’t time out your workspace.&lt;/p&gt;

&lt;h3&gt;
  
  
  Current Limitations
&lt;/h3&gt;

&lt;p&gt;Right now, the pre-compiled release is &lt;strong&gt;macOS only&lt;/strong&gt; (Universal DMG). However, because the underlying Go/React codebase is cross-platform, Windows and Linux support is entirely possible.&lt;/p&gt;

&lt;p&gt;If you are on Linux or Windows, you can compile it from source, or check out the active tracking issue on my GitHub to vote on native packaging priorities!&lt;/p&gt;

&lt;h3&gt;
  
  
  Check it out 🚀
&lt;/h3&gt;

&lt;p&gt;The project is entirely open-source under the Apache 2.0 license. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Landing Page:&lt;/strong&gt; &lt;a href="https://watermark.kezlo.dev/" rel="noopener noreferrer"&gt;watermark.kezlo.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/Kezlo98/watermark" rel="noopener noreferrer"&gt;Kezlo98/watermark&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;I'd love to know: What does your current Kafka debugging workflow look like, and what is the biggest missing feature in your current tools? Let's chat in the comments!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>kafka</category>
      <category>devops</category>
      <category>developer</category>
    </item>
  </channel>
</rss>
