The design is extraordinarily elegant. It's almost like a purely functional email client. It never touches your messages. All it does is to alter a separate tag database. Then it's up to you how to turn tags into mailbox actions, like deleting or archiving emails. It sounds complicated, but it's trivial to setup and allows infinite flexibility in how to handle emails.
The Emacs interface is beautiful, quite similar to Magit. If Emacs is not your cup of tea, it's quite easy to use as a backend for Mutt. In fact, Neomutt already comes with Notmuch bundled and deeply integrated.