This is a submission for the Bright Data AI Web Access Hackathon
What I Built
I created Challenge Feed, a web application where you can discover the latest programming challenges from several popular platforms—all in one place. Developers often need to visit several sites and browse multiple pages to find new challenges. My goal was to simplify this process, making it faster, more centralized, and engaging.
Challenge Feed collects challenges from different sources, stores and manages this data using Bright Data, and displays everything in a modern interface with features like saving, liking, and viewing highlights in a stories format. Whether you’re looking for hackathons, code jams, or online competitions, you’ll now find it all in one place.
Demo
You can try Challenge Feed live here:
👉 https://challenge-feed.jamesrmoro.me
📺 Watch video:
Main features:
- Real-time feed with programming challenges from jams, hackathons, and online competitions
- Save and like challenges (using Appwrite for user sessions)
- Highlights in stories format, to view images and links
- Integrated AI-powered chat assistant (powered by together.ai) to help users discover and discuss challenges
- Responsive layout for mobile and desktop
Currently, I’ve used only two example sources to power the Challenge Feed. These platforms were initially chosen for their relevance and diversity of programming challenges. However, the idea is to expand the project and integrate other sites in the future, making the feed even more complete and comprehensive for the developer community.
How I Used Bright Data's Infrastructure
Bright Data’s Collector automatically gathers programming challenges from the sites I select, capturing opportunities on platforms that usually don’t appear in traditional feeds.
Even on protected sites or those with dynamic content loading, Bright Data allows access to the necessary content to power the feed, overcoming common blocks found in traditional scraping.
The data comes already structured, ready to be stored in Appwrite (an open source backend that handles authentication, database, and real-time data management) and displayed in the app, all in real time and at scale.
What’s amazing is that Bright Data simulates a real user browsing the site—clicking, scrolling, and interacting with JavaScript elements when necessary—making it possible to capture challenges even on fully dynamic pages.
Performance Improvements
To keep the feed fast and scalable, I implemented some important optimizations:
- Efficient Data Fetching: Data is only fetched from Bright Data when truly needed, reducing processing and unnecessary requests.
- Optimized Database Reads: Challenges are grouped and indexed in Appwrite, enabling fast queries and filters, as well as efficient pagination.
Stack and Deployment
Challenge Feed was built using a modern JavaScript ecosystem:
- Frontend: Next.js (React)
- Backend & Database: Appwrite
- Real-time data collection: Bright Data (MCP)
- Conversational AI: together.ai
- Hosting & Deployment: Vercel, with a custom domain configured directly on the platform
Vercel made continuous deployment and custom domain setup extremely simple, allowing the app to be published in just a few minutes, production-ready.
Conclusion
Using Bright Data made integrating and automating the Challenge Feed much easier—it made collecting and updating data from different sources simple and straightforward.
Have you ever joined a challenge, hackathon, or jam? Share your experience in the comments!
Top comments (13)
Wow, very solid idea! Looks great as well
Thanks ;)
growth like this is always nice to see. kinda makes me wonder - what keeps stuff going long-term? like, beyond just the early hype?
Enthusiasm gets things started, but real motivation comes from people’s feedback and engagement—it shows the project is worth investing in.
Great Idea!
Thanks ;)
Thanks ;)
This is really useful for cutting search time and getting inspired for the next big coding sprint - I always end up missing cool jams because I don’t see them in time. Love the stories format!
Thanks ;) That was exactly the goal—making it easier for everyone to discover cool jams and never miss out. Happy you liked the stories format!
wow, this is so neat with smooth and beautiful layout
Thanks ;)
completely outshines my project :-)