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
- Wait for the
transformers.jsissue to be resolved in the next patch - Refine the UI and clean up the code
- Publish the extension to the Chrome Web Store
- Monitor its traction and continue building features as needed
Built With
- huggingface
- plasmo
- react
- typescript
Log in or sign up for Devpost to join the conversation.