A little late getting to the January roundup, but here we are! I'm not really into the "new year new me" mentality. So I'm going to skip all of that and get right into it.
What I've been Building
Bluesky's Top Source for Realtime NBA Content
One of my favorite features of Bluesky is being able to curate an experience and share that with other users. In my case I wanted to build the most complete, realtime, collection of NBA content on Bluesky. Collecting all the NBA content from across Bluesky was challenging. Trends around specific games, hashtags, and specific events are easily identifiable. Team names, player names, nicknames, and other abbreviations are much harder to process. How can you ensure those phrases are specific to posts about the NBA?
The result was NBA Now, a custom feed serving up all of the NBA content from across Bluesky! Last month I wrote in a little more detail about building the NBA Now feed. Since then I've added three additional feeds derived from NBA Now to provide additional experiences.
📺NBA Highlights is a TikTok style video feed of all the NBA highlights posted to Bluesky.
📰NBA Reads is a feed of the top articles from journalists, sports writers, and bloggers. The algorithm gives preference to articles with the highest engagement from the previous 24 hours with a time decay so that emerging articles are also surfaced.
📈NBA Trending is a feed that surfaces the most trending NBA content from the previous 24 hours on Bluesky. Again, a time decay factor is applied so that new trends are surfaced as they emerge.
One more feed is coming soon. I'll share more about the overall design once that feed is ready. In the meantime I continue to work on the existing feeds. One particular thorny issue is separating the San Antonio Spurs and the Tottenham Hotspurs (aka Spurs) in the EPL. When the EPL plays a handful of EPL posts land in the feed. I'm working through some ideas to limit this contamination to provide the best experience for end users. In the meantime I continue to work on growing the community.
Building a Media Log for my Site
Last month I replaced the "Now" page with a new Activity Log page. The page is a log of all the activity on my site. It's a great way to see what I've been up to and a great way to discover new content. I wrote about the switch here.
Cursor is my favorite AI friend!
One reason I was so productive last month was because of Cursor. I have made a conscious effort to be AI-first with my coding. Cursor has helped me write code faster and more accurately. Cursor isn't perfect. Since I've been building with the relatively now, atproto
, Python SDK it doesn't always render valid code for the latest versions. For the most part it seems to generate code that's 95% there, which has increased my velocity. A full breakdown of Cursor will probably be coming soon!
What I've been Reading
AI Engineering by Chip Huyen has been excellent so far. There is so much great information in this book about how to build applications with foundation models. I'm reading it slowly and taking notes as I go. So far this is a big recommend!