I know what I want but I don't know what it's called
Fear not: the ports tree is searchable for relevant stuff without having to resort to using find or grep directly on the /usr/ports directory itself - which can be pretty slow - or going through each section in the most mind-numbing way possible.
samizdata# make search key=browser
... will search for any ports that have anything to do with the key word "browser". Unfortunately, that's a LOT of ports and a lot of info you probably don't care anything about - you might be happier using grep and more to limit the output like this:
samizdata# make search key=browser | grep -E "Path:|Port:|Info:" | more
This will limit the output to only the lines including "Path:" "Port:" or "Info:", thus sparing you the list of dependencies for each port, as well as pausing the output for you whenever the screen fills.
 I know what it's called but I don't know where it is
samizdata# make search name=lynx | more
 Updating the search index manually
This step isn't usually necessary, because part of the ports-base collection which you will usually be cvsup-ing on a regular basis is the INDEX-5 file itself, pregenerated for you by the nice folks who maintain the master tree. It's also not really recommended where unnecessary, because it can take quite a lot of time to run, especially when using older/slower disks. But if you suspect your index got corrupted, or if you're running some sort of odd non-standard ports tree (for example you don't maintain local copies of several branches of the tree, etc) you can follow this procedure to generate your own search index.
First, go into /usr/ports as root and make the search index -- making the index can take a while, so go get some coffee or something. Do all of this after you Update_the_ports_tree.)
dave@samizdata% su - password: samizdata# cd /usr/ports samizdata# make index &
which will make the index so that you can search the ports tree, and run it in the background so that you can do other things. After that finishes, you can search for programs by keyword(s) or by name using your locally-generated index.
 External websites
- FreeBSD software, the browsable ports online.