Status Update: June 2024

Published on to joshleeb's blog


Personal project work has continued this month on Pinto. If you didn’t see last month’s status update, Pinto is a bookmarking service and RSS feed reader with a few neat features planned.

Early in the month I finished off listing bookmarks. From the list you can mark a bookmark as starred and toggle it as read/unread, delete the bookmark, and of course open up the bookmarked link. Pretty standard stuff but still it’s exciting to see all the bookmarks listed there.

Figure 1. Screenshot of a page of the bookmark list in Pinto.

The next phase is to add mechanisms for organizing and retrieving bookmarks so you don’t have to trawl through the entire list to find the one bookmark you’re looking for. This will be done through full-text search of the bookmarked pages alongside a form of tagging.

I’m still exploring which specific form of tagging will be best to add to Pinto. In my post On Organizing Bookmarks, I explain an approach called Hierarchical Namespaced Tagging (HNT) which I had hoped would solve some of the issues with the more familiar form of tagging, Simple Tagging. And while there was some improvement, it was far from ideal.

My recent post, Scoped Tagging of Bookmarks, goes into more detail on the results from trialing HNT and proposes an alternative called Scoped Tagging. The idea is that we introduce scopes as a kind of workspace for tags and bookmarks. Every tag has a scope and, by extension, a bookmark is assigned to one or more scopes based on the scopes of its tags.

While Scoped Tagging certainly won’t be perfect, I’m optimistic it will result in more maintainable tagging over time, even at large volumes. It also fulfills a personal use case of mine that involves benefits from project specific bookmarks and tags.

Since putting up the post on Scoped Tagging I have been adding scopes and tags to Pinto. You may have noticed in Figure 1 that some of the bookmarks have interesting looking tags like :pinto/bookmarking. This is a term in the pinto scope with the bookmarking tag.

Interestingly, the most challenging part of Scoped Tagging hasn’t been the implementation but figuring out the specifics for how scopes should behave within the rest of the system. For example, whether tags should default to being unscoped, or assigned to the unnamed scope. For the former it follows that the homepage should list all bookmarks regardless of scope, while the latter suggests that the homepage should only show bookmarks in the unnamed scope. Which approach is more intuitive? And which is more useful?

I’ll be continuing to work on Scoped Tagging next month. There’s much to do, and the excitement is building as the project moves closer to a point where I can run a local Pinto server for daily use.

That’s all for now, see you next month!