The title pretty much says it all. What is the difference between the official and unofficial version of a ROM? From what I've seen, unofficial comes before official, for ROMs like cyanogenmod.
Rahul Gopi describes the basic concept of official and unofficial, but I'd like to add some important additions.
- Unofficial is not necessarily different from official in sense of code and result. One can build purely from codes supplied by the ROM team without additions, and the result will be exactly the same as Nightlies, minus some fingerprints here and there that shows who built it.
- Official is not necessarily better than unofficial. For many popular devices, both exists, and the developer for unofficial versions will add tweaks to differentiate, e.g. a custom kernel, slimmed down build (i.e. removed some preinstalled apps), themed to the developer's liking. This is what I'm doing monthly as a home compiler, by the way.
- Official is not always perfect. Sometimes developers have unreleased patches that aren't pushed to upstream yet, or haven't been approved in code review for various reasons, leaving long overdue bugs in official builds. Devs can push out unofficial builds with those baked in when building locally, thus fixing the bugs.
- When a new Android version releases, unofficial builds almost always come first. This is due to the strict requirements (e.g. what basic features should at least work) the ROM team choose to enforce on official releases. Contrarily, devs for unofficial builds are mostly concerned about bringing the version to the mass as early as possible as a proof-of-concept.
For those reasons above, you should not assume that "who builds it doesn't matter" - look carefully at the intro of the unofficial ones (because official ones rarely offers such intro), and decide if it has an edge you need.