August 30, 2023
<aside> 🚧
Work in progress
</aside>
“Let’s take a deep breath and solve this step by step”
“every text box on the internet will get an LLM.” Steven Sinofsky
I thought that it would be fun to build an AI that can help me manage my bookmarks. Keep reading if you are interested in how deceivingly simple such a project can be.
What started as a weekend project ended-up utilizing several technologies and techniques that are considered “state-of-the-art” in the LLM space (*** although the definition of SoA changes literally everyday in this domain….) such as: LangChain, prompt frameworks , application-specific LLMs, Retrieval Augmented Generation and SmartLLMChain. So if any of that sounds interesting, read on…
I like keeping a record of interesting articles, products, travel destinations, recipes, books, design inspirations etc. on the web. As a result, I use the bookmarks feature often. Out of box, browser support for bookmarks is pretty basic. In the past I have tried using several different tools to replace the browser feature but I ended up with a super fragmented and ultimately unmanageable collection. All the tools require a subscription and to some extent effort in order to keep the information organized. Furthermore, transferring data between those tools is hard or simply impossible, which means that you need to remember where you saved what and it’s a pain using different tools for different projects. As a consequence, I’m going through phases of trying different tools but I always end up just making new folders in Chrome, which at least saves me from the lock-in. The result, is a library of >1000 bookmarks and clippings which is practically too hard to navigate, consolidate or just clean-up.
There are tons of companies trying to solve this problem with or without Gen AI but I don’t love any of them. So, in conclusion, this felt like a really nice problem to solve using Gen AI.
In tha past I have tried different bookmarking, researching etc. tools always to reach a point that I want to eventually migrate to a new product which is a big pain. This always leads to fragmented repositories of information across different apps and systems.
In order to save myself from at least having to look at different places, I end up saving loads of bookmarks in Chrome. As a result, I always end up having to spend time keeping my library organized. If I don't, which is more often than not, eventually it grows out of control and it gets harder and harder to use because items get misplaced, mislabelled or perhaps I cannot remember the exact keywords/tags. If I had a magic wand (pm-pun intended), I would imagine being able to have conversations like the following:
[DIAGRAM]
User: Search for bookmarks related to programming AI Assistant: I found the following bookmarks related to “programming”:
Programming 101 - https://www.programming101.com Codecademy - https://www.codecademy.com Stack Overflow - https://stackoverflow.com
The system can allow a user perform any kind of bookmark-related operation using a chat interface. The list of possible operations may include create, edit, delete, search, update, download, open, share, check for “dead” links, search within websites within bookmarks…. Operations could equally be associated to a single or multiple bookmarks.
In short, what I want to do is to be able to organize my bookmarks, search my bookmarks, and retrieve/analyze information contained in the bookmarked pages. Comparing versions (updates) of pages is also a fun application. All that without having to be locked in yet-another-app.
<aside> ℹ️
Functional Requirements in a nutshell