尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Compare this week's grocery flyer prices near you. Data comes from Flipp's public flyer API (unofficial and undocumented, so it may change).
git clone https://github.com/ReeceRose/flyerwatch.git
cd flyerwatch
pnpm install
pnpm dev
/ searches every nearby flyer and sorts by lowest price, or by price per pound./flyers lists this week's grocery flyers; open one to see and filter every deal./tour shows what the site and extension do, with screenshots.Flipp responses are cached for an hour with "use cache" (src/lib/flipp.ts).
/list combines the recipes you add from the extension into one list:
#, so nothing is stored on the server.src/lib/shopping/store.ts).Ingredient parsing, matching, price estimates and the trip planner are plain JavaScript in src/shared/, used by both the site and the extension. After editing them, run pnpm sync:extension to copy them into extension/lib/shared/.
extension/ holds a Chrome extension that checks the ingredients of any recipe you open against this week's flyers. It isn't in the Chrome Web Store yet, so install it by hand:
chrome://extensions and turn on Developer mode.extension folder.docs/extension-install.md covers connecting it to the site, updating, sharing a zip, and troubleshooting. extension/README.md explains how it works.
| Path | What's there |
|---|---|
src/app/ | Pages (/, /flyers, /flyers/[id], /list, /share, /tour) and API routes used by the list and extension |
src/components/ | UI components; shopping/ holds the list, trip plans and share dialog |
src/lib/ | Flipp client (flipp.ts), postal code cookie, flyer image tiles (tiles.ts, uses sharp), shopping list state |
src/shared/ | Plain JS shared with the extension: ingredient parsing, matching, prices, trip planner |
public/sw.js | Service worker that keeps a shared list available offline under /share |
extension/ | The Chrome extension (Manifest V3, no build step) |
scripts/sync-extension.mjs | Copies src/shared/ into extension/lib/shared/ |
There are no tests yet. Before committing, run:
pnpm build # type-checks and builds
pnpm sync:extension # if you touched src/shared/
brand/logo.svg is the source for every icon: the favicon, icon.svg, the Apple touch icon, the web manifest icons and the extension's icons. After you change it, run pnpm build:icons to regenerate them all, and update the inline copy in src/components/logo.tsx.