I've begun work on creating a nice new matrix client. This will be a pretty big project that I'll slowly stab away at as I have time and energy.
libraries
bubbletea
The bubbletea library is super amazing and I'll be using it heavily for rendering.
https://maunium.net/go/mautrix/
Mautrix is the best go matrix library. It supports nearly the whole API, which is great, but overwhelmingly massive. I think I might create a local matrix package and wrap the functions I actually need and use. Then I can write my own tests and perhaps tweak the mautrix api if needed.
Design
┌────────────────────────────┐
│ ∨
┌────────┐ ┌───────┐ ┌─────────┐ ┌───────────┐
│ Kereru │ ──> │ Panes │ ──> │ Buffers │ ──> │ Directory │
└────────┘ └───────┘ └─────────┘ └───────────┘
│
│
∨
┌─────────┐
│ Room │
└─────────┘