Sprig Arbor Chat Client

Overview Link to heading

Built by ~whereswaldon, Sprig is a client for Arbor, an open source federated chat platform.
Sprig is a cross-platform client supporting Windows, macOS, Linux, Android, and iOS.
It’s written in Go, using the Gio immediate-mode UI toolkit.


My Role Link to heading

When I joined, Sprig stored each chat message as an individual file on disk. This file-per-message model worked reasonably well on Linux, but resulted in severely degraded performance on Windows, where reading thousands of tiny files led to notably slow startup times.

To address this, I migrated the persistence layer from the filesystem to BoltDB, an embedded key-value store written in Go. This upgrade significantly improved startup performance across all platforms, with the largest gains on Windows.

In addition to this core performance enhancement, I contributed minor UI improvements and refinements.


Result Link to heading

The app now launches significantly faster, offers a smoother user experience, and maintains cross-platform compatibility—all without sacrificing the simplicity of a local-first storage model.

Platforms Link to heading

Languages Link to heading

Tech Link to heading