Jan 22, 2023
Thanks for checking out this post – if you just want to look at the bookmarks and don’t really care to read about how or why I did this, here is a link to them: cyberfeed.io/bookmarks
Before I jump into how I share my bookmarks, I think it’s important to explain why I am doing this. My current sideproject is a fully-automated cybersecurity news aggregation site called cyberfeed.io. Running this site behind the scenes is a set of cron jobs that reach out to various RSS feeds every minute, posting newly found stories and jobs to the site, and to Twitter and Mastodon.
By posting to Twitter and Mastodon, and by posting an RSS feed of all these daily stories and jobs at cyberfeed.io/feed, I have a small amount of people following along and responding to some of them every day.
As these stories come and go every day, they are filtered out from the main page and get stored in a SQLite DB where they can’t be viewed by people 24 hours after posting (unless accessed by the permalink).
I wanted to have hidden, bonus feature on this site: a list of thought-provoking or useful content aside from the barrage of cyber news and jobs. Why not just share my bookmarks?
I recently started using a bookmarks app called Raindrop.io, which I access via Chrome browser extension and iOS app. Compared to the typical, built-in browser bookmarks, I find that this app provides more context and enrichment to the sites and articles you bookmark. Usually, these are not sites that you visit frequently, but more like articles that you skimmed and want to come back to at a later time.
To make this bookmarks sharing feature work on my site, Raindrop provides an API where you can do CRUD operations on your bookmarks.
Since my Cyberfeed site runs a set of cron jobs that reach out to RSS feeds every minute, I repurposed one of these RSS polling scripts to poll my Raindrop account for new bookmarks and add new ones to Cyberfeed’s SQLite DB in a new
I am hashing each bookmark link, running the above script as a cron job every minute to check if any bookmark links have a hash that is not already in the database.
If it finds a new bookmark, the script does some more operations like enriching the description of the bookmark using OpenAI.
To be fair, using just the title of the bookmark to enrich the bookmark description using OpenAI doesn’t often yield great results due to the lack of context. However, Raindrop will autofill this information most of the time.
Once this is done, Cyberfeed does the following:
- The new bookmark is added to the main feed at root of the site
- It is added to the all-time list of bookmarks at cyberfeed.io/bookmarks
- It gets posted to Twitter at @cyberfeedio
- It gets posted to Mastodon at @cyberfeed
As I naturally add more bookmarks to Raindrop by using the app, all of these bookmarks will be shared on Cyberfeed, Twitter, and Mastodon automatically without any manual intervention from me – I think that is a cool concept.
I don’t expect anything revolutionary from this, but hopefully it provides a nice cache of bookmarks for people to stumble upon from time to time and find something interesting to read.
Again, here is a link to my best bookmarks: cyberfeed.io/bookmarks