Veem: a GNOME-native email app
One of the apps I dearly miss from Windows is an email app called Mailbird. It genuinely delighted me with it's streamlined interface and three-panel window layout. It replicates the closest experience to Apple Mail on Windows and even surpassed it many ways. On Linux, the options are kind of bleak but serviceable: Thunderbird, ancient UI but very compatible and stable. Evolution, again, ancient UI but solid. Then there's a real gap in anything else that's substantially better or different. For the GNOME desktop, Geary is available but I found it a little too limiting and the interface, while 3-pane like Mailbird/Apple Mail, it still felt a bit feature-incomplete.
I've been neck-deep in developing applications in Claude Code over the last several months, namely Docker webapps built on Flask, and the idea came to me one morning that it might be a good opportunity to dip my toe in desktop Linux development and create the email app I've always wanted on GNOME. Seeing the lack of real options, I started making Veem with Claude. "Veem" stands for "VibE EMail." I'm not ashamed to admit Claude Code did most of the work and I orchestrated it into a full-featured product.

I've included my favorite parts of Mailbird but with my own twist such as the circle icons supporting emojis to represent each account along with a user-selected background color, a collapsible sidebar to save screen real estate when using tiling on GNOME and an expandable action palette on each message in the list for quick access to replying, archiving, deleting etc.
Respecting user privacy was a top priority so loading remote content is always off per message/per sender unless they are added to the allow list. I built an alert bar notification system that drops down from the top of the window when something needs your attention such as failed logins or other errors. This alert bar can be triggered with the bell icon and it will also display messages when Veem is performing an action like getting new mail, deleting messages etc.
Tech talk
Veem is built using Rust, Relm4, libadwaita and GTK4. It is fully compatible with GNOME 50 and uses roughly 500MB of memory fully loaded. The email networking architecture never touches the GTK main thread, instead every account gets it's own OS thread for running IMAP sessions. What this means in practice is the UI remains confidently smooth even with multiple accounts syncing at the same time.
Indexing happens in the background and can be monitored from the notification panel. Upon launch a cached version is displayed and then updated so everything remains snappy. Credentials are stored in the system keyring for security with OAuth integration available by using Gnome Online Accounts for those with Google, Microsoft or other supported OAuth email providers. Due to how Google handles OAuth, I'm relying on GOA to do the backend lifting however, Microsoft accounts are natively supported with their own app token implementation.
As for distribution, my initial intent was to publish Veem on Flathub however, Flathab seems to have a strict no AI policy in place that prevented me from uploading it to their platform. En lieu, I stood up my own self-hosted, signed Flatpak repository at
the getveem.com. When users download the package from my repo, it will auto-configure their system to check it for updates so when I roll out a new release, everyone stays in-sync. I am hoping to eventually get on Flathub but this will have to do for now.
Conclusion
Building solid, stable GNOME apps using generative AI is unbelievably possible now and I'm thrilled to be able to provide myself and others a modern email experience on the Linux desktop. If you're on GNOME and Wayland and you've ever felt that same itch about your email client, give Veem a try. And if you find a bug, please consider opening an issue on the Github so I can look into it. And if you find my work compelling, consider buying me a coffee to help support development. Thank you!
Veem is free software under the AGPL-3.0. Website: getveem.com ·
Made with love and Claude Code.