
WatchWhere
A streaming service search engine built to solve fragmentation across Netflix, Amazon, Disney, and more — my first serious Node.js and React project.
Overview
Streaming fragmentation is a genuinely annoying problem. As Netflix, Amazon, Disney, Apple, and HBO each fence their content behind separate subscriptions and separate interfaces, finding a specific show has become a cross-platform scavenger hunt. WatchWhere is the simple answer: search once, find out which service has it, and — if it's not available in your country — which international Netflix catalogue does.
The idea came during my second placement at CNN in 2020, where my manager encouraged me to experiment with Node.js. I'd been into web development for a while but hadn't had a strong enough project to justify diving into server-side JavaScript properly. A passing observation about Dutch Netflix providing exactly that excuse — and WatchWhere followed.
Building it
The core discovery was that APIs already existed for this problem. Utelly aggregates streaming metadata across major platforms and includes IMDB links; uNoGS tracks international Netflix availability across regions. Together they could answer the question WatchWhere was built to answer.
The Node.js server was the right architectural decision for reasons beyond just learning the technology. API calls requiring secret keys can't safely be made from the frontend without exposing credentials — routing them through a Node server keeps keys as environment variables, hidden from the client. The server also enabled rate limiting and request throttling, preventing abuse without any frontend complexity.
// Node.js server handling API calls with protected keys
app.get('/search', async (req, res) => {
const { query, country } = req.query;
const results = await axios.get(
'https://utelly-tv-shows-and-movies-api.p.rapidapi.com/lookup',
{
params: { term: query, country },
headers: {
'x-rapidapi-key': process.env.RAPIDAPI_KEY,
},
},
);
res.json(results.data);
});
This was also my first substantial React project — props, state, and the class vs. functional component distinction all clicked into place here rather than in isolation. The PWA configuration meant the app was installable and worked offline for saved shows, which felt like a satisfying level of polish for a side project.
Outcome
WatchWhere is finished and live — and I used it regularly after building it, which is the best indicator a side project can give you. It's not sophisticated, but it solved a real problem, and it was the project through which Node.js, React, and REST API integration became genuinely comfortable tools rather than things I'd read about.
WatchWhere is live at watchwhere.web.app. A 2021 writeup is available here.