LAB / OCT 17, 2026
Why My Terminal Apps Are Becoming a Shared Platform
How the Tide apps are sharing interface components and connecting through TideDeck while remaining useful on their own.
THE NOTE
I didn't set out to build a terminal application platform. I just wanted a better email client.
That became TideMail. Then came Tide, TideFTP, TideGit, TideDock, and other projects. Different applications, but I kept solving the same problems: layouts, navigation, themes, text editing, and configuration.
Eventually, I started asking why I was rebuilding the same things.
Sharing the Pieces
That's where TideUI and Ripple come in.
TideUI provides reusable terminal interface components, while Ripple handles text editing. Rather than maintaining different implementations across applications, I want improvements to benefit the entire family.
This week's work on TideMail's native offline spellchecker was another reminder of how much complexity hides behind seemingly simple features.
Connecting Everything with TideDeck
One of the more interesting developments has been building APIs into Tide and TideMail specifically for TideDeck.
Instead of treating every Tide application as an isolated tool, I'm exploring how they can communicate with a central interface.
The idea is that TideDeck can bring functionality from different applications together without duplicating their underlying logic.
That changes the architecture quite a bit. The applications still need to work independently, but now they can also participate in a larger ecosystem.
Plugins and Extensibility
This week also brought major improvements to TideMail's plugin system.
I added PGP signing, encryption, and decryption through a GnuPG plugin, along with in-app plugin browsing and management.
The goal is to keep the core applications focused while making them extensible.
TideFTP also received improvements for handling large directory trees, including parallel scanning, streaming, and better retry handling.
Not everything should be shared. Some problems belong to individual applications, and that's fine.
Where This Is Going
AI has accelerated my development workflow, but it's also made good architecture more important. Building features faster doesn't help much if every project becomes an isolated collection of duplicated code.
My goal isn't to create some enormous framework.
I want a family of lightweight terminal applications that share useful components, expose APIs where appropriate, and work both independently and together through TideDeck.
Some experiments will work. Others probably won't.
That's what MyLiveLab is for: documenting the process and what I learn along the way.
What started as one email client is slowly becoming a connected ecosystem of terminal tools.
And that's a lot more interesting than I originally planned.