Skip to content

Align website content with app unit-pricing and receipt verification (#11) - #13

Merged
CuWilliams merged 1 commit into
mainfrom
claude/issue-11-website-overhaul-a3318300
Aug 12, 2026
Merged

Align website content with app unit-pricing and receipt verification (#11)#13
CuWilliams merged 1 commit into
mainfrom
claude/issue-11-website-overhaul-a3318300

Conversation

@CuWilliams

Copy link
Copy Markdown
Owner

Works issue #11. The site was written in January 2026 and never revised, while the app moved on twice — unit price became the headline metric in April (build 4), and the capture review was rebuilt into three optional steps in July (build 8).

Three things that were wrong, not just stale

The site claimed tax compliance the app had retracted. features.html carried a "CRA Compliance" card with a green "Tax Compliant" badge, claiming reports include "the documentation format accepted by the Canada Revenue Agency." The app stripped exactly that framing from its own UI in April 2026 (8cebe68"That was overstepping"). The site now explains the Medical Expense Tax Credit as context for why the app exists, states the ~3%-of-net-income threshold plainly, and makes no claim about anyone's eligibility. Same treatment applied to faq.json and announcements.json. The only surviving CRA mentions are the disclaimers in terms.html, which point the right way.

The petition card stopped in February. It said e-6853 "was presented in Parliament in February 2026" and left it there. The government declined it in March; the METC stays as-is with itemized receipts required. Updated, keeping the "we hope this app becomes redundant" close.

Five of six pages said "Coming Soon" without JavaScript. The hardcoded status-banner fallback still read "Coming Soon! GF PriceChecker is currently in development" on every page but beta.html, contradicting the beta CTA alongside it whenever JS was slow, blocked, or disabled.

Content

  • Home and features rewritten around unit pricing, with the concrete example from the model's own doc comment: a $7.99/400g GF loaf beside a $3.99/675g regular one looks like $4.00, but is really $5.63 once adjusted for size.
  • Receipt verification described as it actually works — select products, scan, tap the matching line, confirm — rather than as generic "receipt management."
  • New cards for package size capture (three entry modes, cents/dollars basis, optional with Skip Size) and guided shelf-tag scanning (the three-step review).
  • The "Product Database" card, marked Planned since January and never built, is removed rather than left promising something that isn't coming.
  • beta.html testing focus now points testers at size/unit price and backup-restore — the newest and most fragile areas.
  • New announcement covering build 8; four new FAQ entries; status.json refreshed.
  • Also corrected: the privacy card claimed "optional encrypted backups." Backup files are not encrypted.

Bugs found while in here

  • Announcements rendered as one unbroken block with Markdown links shown as literal text. preserveLineBreaks already existed in blog-loader.js — promoted to utils.js and reused rather than duplicated.
  • The home page printed an entire announcement instead of a preview, unlike the blog card beside it.
  • Every post and announcement date displayed one day early for anyone west of UTC, including all of Canada. YYYY-MM-DD was parsed as UTC midnight then rendered in local time.

Repo cleanup

  • README.md documented the iOS app. It now documents this website repo — how the runtime component includes work, how the JSON content system works, how to run locally and add content.
  • CHANGELOG.md also tracked the app, was frozen at [Unreleased] with "Session 25/26" numbering, and claimed "No releases yet" eight months into a public beta. Repurposed for the site, backfilled v1.0.0 and v1.1.0, with the versioning approach documented at the top.
  • Claude.md insisted the analytics token was still YOUR_TOKEN_HERE and that privacy/terms carried placeholder banners — both false since January. Stale sections marked historical, a real "Outstanding Work" section added, plus content conventions capturing the neutral-CRA rule so it doesn't regress.
  • Documents/ build plans moved to Documents/archive/ with historical headers.
  • sitemap.xml lastmod dates corrected — blog.html claimed January while carrying posts through August.
  • Tagged v1.1.0 on main before branching, marking the pre-overhaul state as the issue asked.

Verification

All 8 pages tag-balance clean; all JS passes node --check; all JSON parses; every route serves 200 locally. The render pipeline was exercised in Node against the real data files — 5 paragraphs, no literal Markdown, escaping intact, dates correct.

Deliberately not done

  • Video re-recording and screenshot re-capture. The three walkthroughs (Jan 17–24) and screenshots 08–14 (Jan 3) predate both app changes. Both sections now carry a note saying so. Needs a device session.
  • VTT captions — still absent site-wide, still the biggest accessibility gap.
  • GitHub workspace linking the two repos (issue scope item 1) — GitHub UI configuration.
  • www vs bare domain. CNAME holds www.gfpricechecker.com; every canonical link, OG tag, sitemap URL, and JSON-LD entry uses the bare domain. One is wrong and it affects SEO canonicalization. Worth its own issue.

🤖 Generated with Claude Code

The site was written in January 2026 and never revised, while the app
moved on twice: unit price became the headline metric in April (build 4)
and the capture review was rebuilt into three optional steps in July
(build 8). Three things were not just stale but wrong.

The features page carried a "CRA Compliance" card with a green "Tax
Compliant" badge claiming reports use "the documentation format accepted
by the Canada Revenue Agency." The app removed exactly that framing from
its own interface in April. The site now explains the Medical Expense Tax
Credit as context, states the ~3%-of-net-income threshold plainly, and
makes no claim about anyone's eligibility.

The advocacy card said petition e-6853 "was presented in Parliament in
February 2026" and stopped there. The government declined it in March.

The pre-JavaScript status banner fallback still read "Coming Soon! GF
PriceChecker is currently in development" on five of six pages, next to
a live beta call to action, whenever JavaScript was slow or blocked.

Also fixed along the way: announcements rendered as one unbroken block
with Markdown links shown as literal text (blog-loader's preserveLineBreaks
is now shared via utils.js), the home page printed an entire announcement
instead of a preview, and every post date displayed a day early for
readers west of UTC.

Videos and most carousel screenshots still show the older build and now
say so; re-recording needs a device session and is left to a follow-up.

Refs #11
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant