Inspiration

I’ve got ADHD. If I’m working on a programming project, trying to find an educational tutorial, and see a funny video in my YouTube feed, I’ll tell myself I can watch it real quick before getting to work. One hour later, I’m still watching videos. I wanted to create a Chrome extension that helps me stay focused by removing brain rot content. There are some extensions that block the feed and recommendations entirely, but that’s not ideal. If there’s a relevant video, like a part 2 or related content, I don’t want to miss out on it.

What it does

Fix My Feed uses artificial intelligence to sort through your youtube feed and remove distracting videos. You define certain categories to keep (e.g. Python programming tutorials) and other categories to discard (e.g. gaming).

How we built it

Fix My Feed uses zero-shot classification to decide whether to keep or discard a video. The model is a quantized DistilBERT, enabling 🚀 lightning-fast and 🌎 environmentally friendly local inference.

Technology stack:

  • Plasmo: Next.js-style framework for building browser extensions
  • Shadcn: UI components
  • TypeScript: You know what TypeScript is
  • DistilBERT: Zero-shot classification model

Challenges we ran into

The biggest challenge was dealing with Chrome extension constraints. State management was particularly unintuitive due to the disconnected nature of the application’s parts: a popup for the UI, a separate background worker for inference, and a content script to modify YouTube content.

Another challenge was working with Hugging Face. The latest transformers.js model has a bug (there’s an open GitHub issue from this week :/) and doesn’t correctly recognize the browser runtime, making it impossible to integrate directly into the extension. Reverting to a previous version didn’t resolve the issue either. As a workaround, I set up a separate Express server with the model until the issue is patched.

This was my first hackathon, and since I worked alone, I had to quickly get up to speed on everything.

Accomplishments that we're proud of

I learned a lot about machine learning and Chrome extensions, tackled challenging bugs with resilience, and successfully built a working MVP.

What we learned

Chrome extensions can be tricky, and I should definitely read more documentation before diving in and assuming everything will work as expected.

What's next for Fix My Feed

  1. Wait for the transformers.js issue to be resolved in the next patch
  2. Refine the UI and clean up the code
  3. Publish the extension to the Chrome Web Store
  4. Monitor its traction and continue building features as needed

Built With

Share this project:

Updates