Skip to content

RemixHorse/Better-Roo-Extension

Repository files navigation

Better Roo

A Chrome and Firefox extension that replaces and enriches the UK Deliveroo restaurant listing with:

  • FSA hygiene ratings on every card
  • Shared address / ghost kitchen detection
  • A fully custom card grid with sorting, filtering, and pinning
  • A compact sortable table view
  • Auto-scan to pre-fetch ratings and addresses in the background

This was built as a learning case for agentic coding, i'm not the biggest fan, but it's worth keeping up with the developer landscape. not a single character in this codebase was written by a human.

It is however, fully working, tested and quite useful, at least for me (i don't like ghost kitchens!)

** Any brands mentioned or visible in images below have no relation to this project, and are only for illustration purposes **

Features

πŸƒ Custom Card Grid

chrome_XBbaYP917y Deliveroo's listing is replaced with a clean, lightweight card grid built from scratch. Cards support sorting by rating, ETA, delivery fee, FSA score, distance, or name β€” without any page reload. Non-matching cards are hidden entirely when filters are applied, reflowing the grid naturally. Column count is configurable (2–5) from the extension menu. Cards load instantly from a local snapshot on repeat visits, with fresh data reconciled silently in the background.

πŸ§ͺ FSA Hygiene Ratings

chrome_1FFeHXealO Food Standards Agency ratings are fetched and displayed as a badge on every restaurant card and on the restaurant's menu page. Ratings are colour-coded from green (5/5) to red (0–1/5). The badge shows FSA ? for restaurants whose menu you haven't opened yet, and FSA β€” for restaurants with no FSA record (e.g. exempt or not yet inspected). Hover the badge to see when the rating was last issued.

πŸ“ Shared Address Detection / 'Ghost kitchens'

TXuUFrEOdC Some restaurants are virtual brands β€” different names and menus operating from the same kitchen. A Shared Address badge appears on any restaurant that shares a physical address with another on the listing. Hover the badge to see which restaurants are co-located.
Bear in mind there are legitimate cases where independent restraunts share an address, eg food courts or malls

πŸ”½ Filter Bar

chrome_jQpRMlxbXN A persistent filter bar lets you narrow results by FSA score, Deliveroo rating, delivery time, and shared address status. Non-matching cards are hidden and the grid reflows. In table view, the same filters apply to the rows. Sort by any column directly from the filter bar in card view, or by clicking column headers in table view.

πŸ“‹ Table View

Compact sortable table of restaurants Switch to a compact, sortable table listing all restaurants with FSA score, Deliveroo rating, delivery time, delivery fee, distance, and shared address status at a glance. Click any column header to sort; click again to reverse; a third click clears the sort. Your view preference is saved between visits.

πŸ“Œ Pin to Top

chrome_gm8TnbTOoF Pin favourite restaurants to the top of the listing in both card and table view. Pinned restaurants float above open ones, and closed restaurants always sink to the bottom. Pins persist across visits via local storage.

πŸ” Auto-Scan

idyINVwtGq Enable auto-scan in the extension menu to automatically fetch addresses and FSA ratings for every unvisited restaurant on the listing. A progress counter appears in the filter bar as it works. Scans run at one restaurant every 3 seconds to avoid rate limiting β€” enable Scan Fast to drop this to 1 second if you're in a hurry (not recommended for prolonged use).

Other

fuAkTtSwFC
  • Blur card images if you'd rather order without the food photography
  • All data is stored locally in your browser β€” nothing is ever sent anywhere

Installation

Better Roo is not on the Chrome Web Store (yet). Install it by loading the built extension manually.

Build it

Prerequisites: Node.js v18 or later

git clone https://github.com/RemixHorse/Better-Roo-Extension.git
cd better-roo
npm install
npm run build:chrome   # Chrome β†’ dist-chrome/
npm run build:xpi      # Firefox β†’ dist-firefox/ + better-roo.xpi

Load in Chrome

  1. Open chrome://extensions
  2. Enable Developer mode (toggle in the top-right corner)
  3. Click Load unpacked
  4. Select the dist-chrome/ folder

The Better Roo icon will appear in your toolbar. Navigate to a Deliveroo restaurant listing to get started.

Load in Firefox (Firefox Developer Edition only)

  1. Open about:debugging#/runtime/this-firefox
  2. Click Load Temporary Add-on…
  3. Select the better-roo.xpi file

Updating

git pull
npm run build:chrome

Then click the refresh icon on the extension card at chrome://extensions.


Development

npm run dev     # watch mode β€” rebuilds on file changes
npm test        # run the test suite

Source files are in src/. Vite handles bundling for both targets via vite.config.js and vite.content.config.js.


Privacy

Better Roo makes no external requests on your behalf beyond:

All restaurant data, ratings, and address matches are stored locally in your browser. Nothing is collected, transmitted, or shared.


Permissions

Permission Reason
storage Saves your filter, sort, and view preferences
alarms Reserved for background refresh scheduling
deliveroo.co.uk Reads listing and menu page data
api.ratings.food.gov.uk Fetches FSA hygiene ratings

About

Enriches Deliveroo UK with information Deliveroo doesn't surface eg. FSA hygiene ratings, shared address detection, and sort/filter on card and table views

Resources

License

Stars

Watchers

Forks

Contributors