A new backend for Gnus which I have been developing for a while was merged today into Emacs - you can now fetch and read Atom feeds right from Gnus.
The backend is extremely customizable, allowing you to swap any parsing function with a custom implementation (I use this feature to display youtube video descriptions from youtube channel Atom feeds, which are otherwise not picked up by the backend since they don't appear in a standard location, and also to be able to supply a youtube channel name instead of its web address to add it; see https://git.sr.ht/~dsemy/emacs-config/tree/master/item/init.d/init-programs.el#L90 if you're curious).
This is a result of this backend being actually made of two backends - an "abstract" backend (nnfeed) which handles feed data storage, talking to Gnus, and defining server variables which will hold parsing functions, and another (nnatom) which actually provides these parsing functions. This also means it is very simple to define new "feed-like" backends, since you don't need to implement data storage or the Gnus backend interface, only some parsing functions (their requirements are also designed to be fairly generic, so it would be easy to handle various types of feeds. nnfeed itself makes very little assumptions about the feed type).
It should be available with Emacs 30 (or right now from Git).
I genuinely hope that this will bring further improvements for elfeed as well. :-) Good job!