If you also want to distribute pre-built binaries you would use a cache. https://cache.nixos.org/ is exactly that for nixpkgs. You can host your own via http(s), ssh or s3. There is also cachix, which is basically a hosting provider for nix caches that is pretty widespread in the community, I think.
The stable channels are basically "just" branched of from master (or nixpkgs-unstable? not sure) when the given point release is due (there is more to it, for example there is an effort made to make all the packages contained in that release actually buildable, called "Zero Hydra Failures" or ZHF). They will then mostly stay that way apart from the odd backport for security reasons and the likes.
Basically, it is very similar to how a larger software project might be managed with a develop branch and older releases that still receive backports.
(This is my mental model of it anyway, as a user for a few years. There are probably details that might be a bit off or not exactly accurate.)
It's not specifically nixpkgs, but any Nix code generally.
Per the Nix manual[0]:
> Channels are a mechanism for referencing remote Nix expressions and conveniently retrieving their latest version.
e.g. home-manager's suggested channel is just the github tarball for the relevant branch[1]:
nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager
[0] https://nixos.org/manual/nix/stable/command-ref/nix-channel[1] https://nix-community.github.io/home-manager/index.html#sec-...
You do not necessarily need nginx.