pfSense might be fine for home or small business use, but I wouldn&#x27;t recommend it for datacenter or medium&#x2F;large enterprise use.<p>It is primarily GUI-driven, which won&#x27;t cut it for automation, version control, or some auditing.<p>AFAIK it is still based on m0n0wall. The init scripts are written in PHP. There is (or was when I used it years ago) one big PHP script with a bunch of includes. If any part of the PHP script fails the rest may fail.<p>This led to a bunch of problems with packages. For example I installed the RADIUS package through the web UI, decided I didn&#x27;t want it, removed the package through the web UI. Removing the RADIUS package removed something the large PHP init script was trying to include, which led to the script exiting immediately with an error.<p>The PHP script was also reasonable for loading the firewall rules, but it exited before loading the rules. Which resulted in a booted internet gateway with _no firewall_ (allow any).<p>This aspect of pfSense may have changed, so I&#x27;m not trying to hate on it, just trying to point out that it may have shortcomings for some use cases.<p>I&#x27;ve managed straight pf on OpenBSD for gateways&#x2F;firewalls. pf is very nice to work with, much nicer than iptables&#x2F;tc for internet gateways. But that also won&#x27;t scale to large enterprises or datacenters . The amount of data is too much for OpenBSD and generic hardware, at least as for as I&#x27;ve seen. At one employer the largest Palo Alto Networks firewalls couldn&#x27;t handle our office network traffic, they had to be replaced by firewalls from another vendor.<p>So it really isn&#x27;t fair to compare FortiGate firewalls, some models of which can do 300+ Gbps, with 40&#x2F;100 GbE ports, to a little box running pfSense.