Daily Briefs ⏰

How I Built Blokfeed: Part 5

Welcome back to the how I built Blokfeed series! Where I discuss design decisions for Blokfeed. In the part I run through how I went about building in daily briefs for Blokfeed.

Let's jump right into it!

Based on previous parts you can venture a guess as to what services I am going to use to handle compiling daily briefs... but before we get there, we should define what daily briefs are.

Daily Briefs provide daily market values (BTC / ETH for now), Fear & Greed index for the today and the previous two, along with trending topics and articles.

Cool, let's see how we want to get the data...

  • Market values currently come from Nomics
  • Fear & Greed comes from Alternative.me
  • Trending articles internally

Here comes the fun!

Were you able to guess what I am going to use to compile daily briefs? That's right - AWS Lambdas. Same as with email alerts, I am going to build and schedule a Lambda to compile the briefs.

For the market data and the Fear & Greed index I fetch the data from their APIs and store it to be used in the compilation stage.

The fun begins with trending topics. Since I don't have a large volume of users (yet!) It's hard to determine trending topics based only on article clicks, so for now I am employing cosine similarity to determine similar articles. Based on the similarity I group them, and determine how many articles are associated with those a choose the top 5 trending topics.

Cosine similarity works by measuring the similarity between two vectors and we can construct these vectors between article titles. Wikipedia for more

I run the cosine similarity check in two stages, the first where I get the initial bucketing of articles, and the second where I break down similar terms. This helps whittle down to the best combinations and helps prevent duplicate topics (even though it does happen on occasion).

After I run the multi-step process for trending topics, I store the information to be pulled and compiled by the front-end.

But I'm missing something... Articles generally have an image associated with them. I don't really have images for daily briefs. 🤔 This is where I turn to Unsplash! I use a little more than 30 images which I randomly pull from as the main image for the daily brief. Awesome, now I have similarity between pages in regards to images.

After building the service to compile the information, I updated the front-end to load the daily briefs. Done right?! No! After I had this up and running, I thought to myself, this is a good opportunity to distribute the briefs. So I decided to then build a way to distribute the briefs on Twitter and Facebook.

So how did I do this?

I built Airtable automations to post to both Twitter and Facebook. After a daily brief is compiled, I post relevant data to Airtable which triggers automations to run, which post to the platforms. Super simple to set up and a win for low-code solutions.

There you have it the breakdown of Blokfeed's Daily Briefs. With that being said, I've run through all of the major functionality of Blokfeed. 🦾 A simple website to help me keep track of crypto news. Feel free to check it out!

Till next time - Happy coding!