The first thing I missed when I moved from my browser's built-in bookmark manager to Pinboard.in was the folder structure. With folders, I could easily browse the list of topics I've made folders for, and drag a new bookmark into one or another folder. Folders can also have subfolders, so if I bookmarked something about PostgreSQL optimization, I could tuck it under Databases/PostgreSQL/Performance and easily find it later. But of course, not every article fits cleanly under one category, so sooner or later I ended up having to decide which folder to drag my bookmark into.

Tags are a wonderful way to solve this problem, because every item can have multiple tags. Even while using the browser's bookmark manager, I began to rely more on tags and less on folders. When I moved all of my 6000+ bookmarks to Pinboard, I thought I'd forget completely about the folders and start using tags exclusively. But that didn't work out as well as I thought it would.

1. You have to type tags manually. Pinboard has autocomplete, but I still need to remember the first few letters of the tag to find what I want. Yes, it also shows a tag cloud below the new bookmark window, but when you have thousands of bookmarks and hundreds of tags, discoverability just goes out the window. Moreover, what happens if you accidentally type PsotgreSQL instead of PostgreSQL?

2. Tags are like global variables. The more tags you create, the more garbage you have in the global namespace. Combined with (1), this makes it even more difficult to find that obscure new database system that you bookmarked 6 months ago. Instead of going into the "Databases" folder and looking inside it, you have to browse the global namespace and try to remember the name of the tag. That's a much larger search space.

3. I can't rearrange bookmarks unless I mess with their timestamps. When I research a topic and collect a few dozen articles on it, I usually decide which articles are the most authoritative or comprehensive and move them to the top of a folder. When I revisit the topic later, I can start with these articles and get up to speed quickly. This worked wonderfully with my browser's bookmark manager. With today's bookmarking services, everything is sorted by timestamp. Yes, Pinboard has a Star button, but it's not quite the same as having something appear at the top of a list.

I partially mitigated these problems by renaming all my tags to a Usenet-like namespace structure. So PostgreSQL becomes comp.db.pgsql and Ruby becomes comp.lang.ruby. Now it's a little bit easier for me to organize my bookmarks, but it's still a mess because all those tags still pollute the global namespace. It's like how PHP throws all functions into the global namespace with a copious amount of underscores in between words. This sucks. In addition, I can't go to comp.db to see all the bookmarks I added under comp.db.mysql, comp.db.pgsql, etc. because the system doesn't support any notion of a hierarchy among tags. I also still can't rearrange bookmarks within a tag, so often the most important articles on a topic end up at the bottom of the list. Finally, I need to type even more, because namespacing make my tags longer.

Do I want to go back to folders? Hell no. I've got too many items filed under multiple tags for folders to make sense anymore. But there is definitely room for improvement while keeping to the concept of tagging. I want:

- A drag-and-drop interface for adding tags. This will drastically reduce the duplication caused by mistyping tags. With folders, you drag an item into a folder. With tags, you might want to drag tags into an item.

- Tag namespacing. My ideal bookmark database would have at most a dozen "supertags" in the global namespace, and everything else would be filed under "subtags". Searching by a supertag would show all items filed under subtags, too. Other people might have different preferences, but nothing stops them from making all tags global anyway.

- An option to sort tags by something other than the timestamp. Not everyone is interested in the latest articles from the last 15 minutes. I often revisit articles I bookmarked a year ago. A rating system would be great, for example, if accompanied by an option to sort by rating.

The author proposes search, lists, and hashtags. But search would only exacerbate the everything-is-in-the-global-namespace problem if you use it to find things that you yourself created. (It's great for things other people created.) Lists might not be very useful unless you could have sublists for different subgroups within a team, and hashtags are just as chaotic as plain old tags, only with an extra Shift+keystroke.

tl;dr: We might not want to organize everything in a neat hierarchy all the time, and we might not always want to do it ourselves. But the ability to impose some hierarchy on your data is a good thing when you have more than a certain amount of data to juggle.