Selected work
Browser ExtensionTypeScript · React · Node.js · WebSockets

Facebook Marketplace Auto Scroller

Chrome extension that remote-controls automated scrolling on Facebook Marketplace, capturing item listings in real time as they scroll past.

A Chrome extension system for automating Facebook Marketplace browsing. Remote-controlled scrolling via a React dashboard sends commands through a Node backend that bridges the extension and UI in real time, capturing marketplace listings as they appear.

Role — Solo developer
  • Chrome Manifest v3
  • JavaScript
  • React 19
  • Vite
  • Node.js
  • Express
  • WebSockets (ws)
  • Tailwind CSS
  • CORS
  • SWC transpiler

Marketplace listings are tedious to browse manually. This extension pairs a Chrome content script with a Node.js backend server to let you automate scrolling at configurable speeds and distances, while a React dashboard lets you watch and filter results as they stream in. The content script scans for marketplace item links, extracts title, price, image, and listing URL, and ships them back through WebSocket events.

The architecture splits cleanly: a manifest v3 Chrome extension runs on facebook.com/marketplace, a Node backend (Express + WebSocket server) acts as the bridge between extension and UI, and a React frontend (served via Vite) gives you scroll controls, real-time progress bars, and a filterable grid of captured items. Hot Module Replacement lets you iterate on the UI without reloading—dev server auto-detection means the extension seamlessly switches between development and production builds.

All wiring happens over WebSocket: the UI sends control commands (start/stop/speed/distance adjustments), the backend forwards them to the extension, and the extension reports scroll progress and newly discovered items back to the dashboard in real time. You can filter by title, price range, or free status, sort by recency/alphabetical/price, and switch between list/grid/metro display layouts.

What's notable
  • Remote-controlled marketplace scrolling with tunable speed (1–1000ms) and distance (1–1000px) via React dashboard
  • Content script scans and extracts item ID, title, price, image, and listing URL from marketplace links in real time
  • Three-tier WebSocket bridge: extension ↔ Node backend ↔ React UI with automatic connection state tracking
  • Filtering engine supports title keyword matching, price ranges (min/max), and free-vs-paid filtering across captured results
  • Display modes: list (with image thumbnail), grid (four size options), and metro (masonry-style) with live sort by newest/oldest/alphabetical/price