NonGNU ELPA is one of the two default package archives of GNU Emacs. The other default package archive is GNU ELPA. Package archives host Emacs Lisp packages that you can easily install and update within Emacs. You can browse the list of packages you can install to extend Emacs on this site or via the M-x list-packages command.
How to use NonGNU ELPA for Emacs<28 users
NonGNU ELPA is not enabled by default for users of Emacs prior to the release of Emacs 28.1. To enable NonGNU ELPA on these older systems, add the following snippet to your Init file:(with-eval-after-load 'package
(add-to-list 'package-archives '("nongnu" . "https://elpa.nongnu.org/nongnu/")))
Difference between NonGNU and GNU ELPA
Both GNU ELPA and NonGNU ELPA are the official package archives for GNU Emacs. The only difference between packages in the former is that their copyright is assigned to the FSF, just like Emacs itself.
This means that packages added to GNU ELPA can more easily be added to Emacs itself, meaning that some packages could end up becoming built-in at some point in the future. For packages on NonGNU ELPA this is more difficult.
For end-users, this difference is negligible. There is no advantage or disadvantage in using a package from either of the two archives. Just keep in mind to enable both, since packages from NonGNU ELPA may depend on packages from GNU ELPA and vice versa.
Further Information
The GNU
ELPA's About
has some additional information that we elide here, but that applies
to NonGNU ELPA as well.