I ended up going with The Archive, free Mac-only software associated with zettelkasten.de, the organization which probably more than anyone else is promoting zettelkasten using a digital approach (as opposed to 3x5 cards).
I'm happy with The Archive, but not so much with the documentation on their website. They spend lots of time promulgating their approach to organizing (or not organizing!) notes, but very little describing the nuts-and-bolts basics. I would have never figured out a workable system had I not been home from work due to the corona virus.
You create a note by coming up with a title for your note, and because The Archive is all about search, you want it to have a unique title. What better way to have a unique string as part of your title than to use a high-precision timetag! And so the canonical card title in The Archive contains at least the timetag. Indeed, if you enter Cmd-N you will create a new note whose title is just the timetag; e.g., 202004251548. Now that's great for searching, but it isn't very helpful to you as a human. So suppose this note is about some thoughts you've had about the difference between solitude and loneliness. A good title would be:
202004251548-solitude-vs-loneliness
Now when you see your list of notes on the left side of the GUI you'll be able to know what the note is about. So DON'T create a new note using Cmd-N. Instead, click in the "Search or Create" field at the top (known in The Archive as the Omnibar), type Cmd-u to generate a timetag, then type in the rest of the title, then type RETURN.
Why did I put hyphens in the title? Because each note in The Archive is stored on your computer as {title}.txt. You can change the name of a note by changing the file name -- and having spaces in the file name will make things more difficult.
A few words about the Omnibar. The half-grayed text in the Omnibar is correct: Search or Create. The key thing to remember is that if you're just searching DO NOT hit return. As you type into the Omnibar, The Archive will whittle down the list of notes shown at the left to just those notes that match the search. When you see the note you want, click on its title and it will be opened. If you hit return when you're just trying to search you will create a new card with that search target as its name!
Tags and links are almost the same as far as how they are implemented in The Archive. Suppose (like me) you're a cyclist. You might want to type #Cycling in all of your notes that have to do with cycling. Then if you either type #Cycling into the Omnibar or click on #Cycling in any note so tagged you will see just those notes tagged #Cycling and you can click on one to open it.
Links behave exactly the same way, really, but they're intended to be used differently. Suppose you have a note called 202004251610-Mountain-Retreats and you want to include a link to the note 202004251548-solitude-vs-loneliness. To create a link you just copy the name of the solitude note into the Mountain Retreats note AND enclose the title in double square brackets like this: [[202004251548-solitude-vs-loneliness]]. Those double square brackets tell The Archive: Search for this string in all the notes; if there is only one match, open the note that matches. I'm not sure but I think #unique would do the same thing if there were only one note that contained it.
As you create new notes using the standard naming convention (i.e., using timetags at the beginning) the most recent notes will be at the top, which is nice I think. A trick I came up with is to give custom "timetags" to notes that I want to stay at the top. In my archive, for example, this note is always at the top:
900000000990-HASHTAGS-LIST
It contains a list of all my hashtags so I can easily filter my notes.