Open the live website · Automatic update status
Market Basket discounts, updated every week. This tool downloads the official weekly flyer PDF and turns it into a colorful, searchable report with shopping categories, price history, and a U.S. seasonal produce guide with New England notes.
Use the live site above, run it locally, or host your own copy with GitHub Pages. The report works in a browser; Python handles downloads and updates.
Click a preview to enlarge.
Use Python 3.14 (the version used by the GitHub workflow) and Git. On macOS or Linux:
git clone https://github.com/lofihippo/Market-Basket-Checker.git
cd Market-Basket-Checker
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txtpython scripts/check_weekly.pyOpen output/report.html in your browser. Run the command again to check for
updates and add new weeks to the price history. No API keys or AI services are needed.
Generated reports, the SQLite history database, and source archives live in
output/, which Git ignores. Keep that folder to retain your local history.
See the command reference for offline PDFs, backups, and
rebuilding reports. For automatic local updates, use the
macOS scheduler.
The live site updates Sunday at 5 PM Eastern, with a Monday 9:15 AM Eastern
follow-up. GitHub Actions downloads the flyer, saves history on the weekly-history
branch, and publishes the report. Scheduled runs can be delayed by GitHub.
To host your own copy:
- Fork this repo to a personal, public repository.
- Replace
lofihippo/Market-Basket-Checkerin the workflow's repository guards (both jobs and artifact cleanup) with your ownusername/repository. - Enable Actions, then set Settings → Pages → Source → GitHub Actions.
- Open Actions → Update weekly specials → Run workflow on
main.
This setup uses free public GitHub Pages and standard public-repository Actions runners, with storage limits and artifact cleanup. The workflow is scoped to the named personal repository; it does not change organization settings. See deployment setup, safeguards, and troubleshooting for the full instructions.
After running the checker, export a static site and preview it locally:
python scripts/publish_site.py site --directory output/site
python -m http.server 8766 --bind 127.0.0.1 --directory output/siteOpen localhost:8766, or copy the entire output/site/
folder to a static web server. Run the checker and export again to refresh it.
The export includes the source PDFs for offline use.
- How it works — extraction, categories, history, data fields, and limitations.
- Command reference — advanced options, scheduling, backups, and development checks.
- Running options — shared website, personal fork, and local use.
This is an independent project. PDF extraction can miss or misread offers; review flagged items and confirm details against the original flyer.


