Episode: 58

Cabinet: The Offline Store that Keeps Things Simple

In this episode, Matt walks Liam through his latest side project: Cabinet, an encrypted offline-first data store for .NET developers.

We dive into the motivation behind building yet another data layer, the problems it solves that existing libraries don’t, and what makes it so lightweight and developer-friendly.

We discuss:

  • Why Cabinet exists — and what it isn’t trying to be
  • The philosophy of “core vs extensions”: keeping the storage engine simple and opinion-free
  • Encryption, indexing, and record sets
  • LINQ-style extensions and how they make Cabinet approachable
  • Offline-first design patterns in .NET MAUI and Blazor
  • The balance between flexibility and developer experience
  • Lessons from previous offline storage approaches like Realm, LiteDB, and SQLite

Along the way, Matt reflects on the design journey and explains how feedback loops (including from AI tools) shaped key architecture choices. Liam weighs in with questions about use cases, trade-offs, and where Cabinet might fit in real-world projects.

💡 Whether you build apps that need to work offline, or just appreciate simple, elegant engineering, this episode is a deep dive into the art of making complexity optional.

🍻 Tonight’s Drinks: Matt – Lagavulin 8 🥃 Liam – Young Henry’s Newtowner 🍺

🔗 Links from the Episode:

🐛 Update: A couple of days after recording, Matt discovered the bug that inspired Cabinet wasn’t in LiteDB after all — it was in his own app. Once fixed, LiteDB worked perfectly too. So technically, Cabinet was born out of a false alarm… but as Matt says, “no good debugging session goes to waste.” And hey, he’s already found another use for it.

Any Likes 👍, Shares 📣, Subscriptions 🔔, and Love ❤️ help us keep the mics on.

Cheers! 🍻