$Torrent Fetcher

NodeExpressReactViteMongoDBDockerStripeCheerio

I built Torrent Fetcher to solve a very practical problem: finding magnet links without opening a dozen tabs across different trackers. The Node/Express API scrapes more than 15 national and international providers in parallel (using Cheerio for scraping and Undici for requests), normalizes and sorts results by seed count or date added, and uses MongoDB Atlas as a caching layer — repeated searches within a 10-day window are served straight from the database, and cache refreshes diff the results and inject only the new items. The React + Vite frontend consumes that API with a fast, responsive experience, with Stripe handling checkout. The whole system is containerized with Docker and also runs as serverless functions on Vercel, with attention to production details like separating build-time from runtime environment variables and working around IP blocks from some providers.

← Back to portfolio