I just got done configuring Poudriere on Freebsd 12.1-RELEASE. The awesome thing about it is it allows you to configure and maintain your own package repository. All of the ports and their dependencies are built from source with personalized options. That means that I can maintain my own repo of just the packages I need with just the compile-time options I need. For example, for the Nvidia driver set I disabled all Wayland related flags. I use Xorg so there was no need to have that functionality built in.
Compile times are pretty long but I hope to change that by upgrading my home server to FreeBSD as well (from Ubuntu Server). Then I can configure poudriere to serve up a ports tree and my own pkg repo from there. The server is a lot faster than my laptop and will build packages way faster, and I'll be able to use those packages on both the server and my laptop and any jails I have running. Jails (and ZFS) also make poudriere really cool to use as all of the building is done inside a jail. When the time comes I can just remove the jail and poudriere ports tree from my laptop and update pkg to point to my web server.
This is, as I understand it, the sane way to do package management in FreeBSD. The binary package repo is basically the ports tree pre-assembled with default options. Sometimes those packages are compiled without functionality that most users don't need. In those situations, you're forced to use ports. The trouble is you're not really supposed to mix ports and binary packages. The reason, again as I understand it, is because ports are updated more frequently. So binary packages and ports can have different dependency versions, which can sometimes break compatibility on an upgrade. Most FreeBSD users recommend installing everything with ports (which is just a make install inside the local tree) but then you lose the package management features that come with pkg. Poudriere lets you kind of do both by creating your "own personal binary repo" out of a list of preconfigured, pre-built ports.
FreeBSD rocks.