Up next.
Concrete, scoped, and worth doing in the next session or two.
Up next
Friends test outreach
The launch-kit playbook is ready, no friends contacted yet. The single highest-value move on this list — every feature past this point improves a product no stranger has touched.
Effort: ~15 min to draft, hours of conversation to learn from
Up next
Claim social handles
@kindlychecked on Instagram, X, TikTok, Bluesky. Brand insurance — claiming costs nothing now, costs everything later if someone else grabs them first.
Effort: ~10 min
Up next
Submit to Google Search Console
Get the site crawlable and indexed. Won't drive traffic for weeks, but starts the clock.
Effort: ~5 min
Up next
Real-device polish pass
Open the app on a phone, scan real groceries, write down anything weird. Laptop testing has limits — actual phones surface UX issues you can't see in dev tools.
Effort: ~30 min
Soon-ish.
Worth building once we have early-user signal to inform the design.
Soon-ish
Search functionality
Type a product name, see results, no scan needed. Yuka charges for this; ours would be free. Real product addition that handles the "I'm at home, want to check before buying" use case.
Effort: ~1 hour
Soon-ish
Manual top-100 US product curation
Find the most-scanned US groceries, hand-edit each one's OFF entry to ensure clean category tags + complete data. Brute force, hours of focused work, but moves the needle on hit rate more than any code change.
Why this matters. The "alternatives feel useless" problem isn't fully solvable with smarter algorithms — OFF's US category data is structurally patchy. Yuka's curated category mapping is what makes their alternatives feel coherent. We don't have to match Yuka, but we have to fix the worst cases.
Effort: 10–20 hours, mostly OFF data entry
Soon-ish
Detailed scoring math on result page
Show the math breakdown — "Nutri-Score B = 60 → ×0.7 = 42, additives = 100 → ×0.3 = 30, total = 72." Reinforces the "no black box" promise.
Major progress shipped (v1.4.5 + v1.5.12 + v1.6.0). Full ingredient list visible on every result. Every flag expands into plain-English explanations with regulatory body citations and evidence levels (Strong / Moderate / Mixed / Emerging / Limited). "Where we got this info" footer at the bottom of every result page links to Nutri-Score, IARC, EFSA, FDA, EWG. Every result also opens with a plain-language takeaway synthesizing the score in 1-2 sentences. The only remaining piece is the literal math breakdown — showing the user "B grade × 0.7 + additives × 0.3 = your score."
Effort: ~30 min remaining
Soon-ish
Better cosmetics scoring
Current cosmetic scoring is simpler than food — just hazardous ingredient counts. Could include allergen flags, fragrance disclosure quality, EWG cross-reference, certification bonuses (or not, given we just removed organic bonus from food).
Effort: ~1–2 hours research + code
Soon-ish
Position write-up: KindlyChecked vs Yuka explicit
A page that goes hard on the differentiation — open algorithm, no organic bonus, no paywall, considerate verdicts, "what we won't do" promise. The marketing site hints at it; an explicit comparison would be the SEO play and the link-share play.
Effort: ~2 hours writing
Soon-ish
Roadmap doc
What comes after v1. Different from this wishlist — actually picks an order, sets expectations, becomes shareable with friends/early users so they know what's coming.
Effort: ~1 hour
Someday.
Real ideas, but require either real time, real money, or real users to justify the work.
Someday
International expansion: Canada → UK → EU
v1 is explicitly US-focused. The "Made for US shoppers" positioning we shipped in v1.5.0 is honest, but it also creates a roadmap commitment. Canada is the natural first international launch (English-speaking, similar grocery brands, OFF coverage decent). UK and EU follow.
What's required for each region. A meaningful Pantry staples list for that country. A solid OFF data audit for the country's top grocery items. Region-specific copy ("Made for Canadian shoppers"). The `_isCountry` filter logic generalized from `_isUS`. Possibly local-currency support if we add price awareness. Not technically hard — just needs real research time per region. Should only happen after we have meaningful US user adoption to justify the work.
Effort: 1–2 weeks per region, mostly research not code
Someday
MindYoPet — sister app for pet food
The concept doc exists at /mindyopet-concept. Pure greenfield. Big work. Won't help KindlyChecked land — should only happen after KindlyChecked has real users and real signal.
Decision pending. Genuinely unclear whether to build it as a separate brand, a tab inside KindlyChecked, or never. The "users scanning their dog's food on KindlyChecked" data point would inform this — but we don't have it yet.
Effort: weeks, possibly months
Someday
Crowdsourced US barcode contributions
Every "not found" scan is a chance to grow the database. With 100+ active users, you build a real US product database in months. But this needs a backend — which we don't have, and which contradicts the "everything stays on your device" privacy promise.
The current "Be the first" not-found state already routes contributions to Open Food Facts directly — which is the right pattern. Our own backend is the wrong scope.
Effort: backend infrastructure work, weeks
Someday
Price awareness
OFF doesn't store price. Adding it requires either (a) a separate price data source — most have legal/ToS issues, none are free, (b) user-contributed price, requires a backend, or (c) just acknowledging the limitation in copy.
(c) shipped already — we now show "We score nutrition, not price" under the alternatives list. That's the honest version. Real price data is a someday-maybe-never project.
Effort: months if real, vs minutes if just acknowledged
Someday
Phase 2 alternatives engine improvements
Beyond what's shipped (brand-first matching, offender-fixing requirement, three-layer US filter — ~250-brand whitelist with major private labels, ~50-entry foreign brand blocklist, comprehensive non-Latin script check, positive-US-signal requirement for non-whitelisted brands — parallelized fetching with 7-day version-keyed cache, "why better" tags, four distinct empty states) — could add price awareness, "available at my store" filtering, "similar to my purchase history" personalization, and per-product "mute alternatives" opt-out.
Effort: varies wildly by which improvement
Someday
Profile/settings deep-dive
Audit what's in the profile screen now, what's missing. Likely candidates: dietary preferences beyond allergens (vegan, vegetarian, low-sodium, low-sugar), language preference, units (metric vs imperial), default scan category if multiple match.
Effort: ~2 hours, dependent on what users actually ask for
Someday
Regenerate the OG share image
The current og-image.png at /og-image.png is from May 5 — pre-scanner-redesign and pre-organic-policy. When someone shares a link to kindlychecked.app on Twitter/iMessage/Slack, the preview card uses this image. Worth refreshing once we hit a stable visual milestone, since redoing this for every minor release is wasted effort.
Effort: ~1 hour to design + export
Someday
Dark mode
Current design is light-mode only. Dark mode is real work given the brand color system (lime on cream is the signature; it doesn't cleanly invert). Done well, it's nice. Done poorly, it dilutes the brand.
Effort: ~3–4 hours of design + implementation
Someday
Animations + micro-interactions polish pass
The app has functional animations (loading screen, detection pulse, page transitions) but nothing distinctive. Could add more delight — score reveal animation, scan-success haptic, parallax decorations. Lots of work, marginal value, easy to overdo.
Effort: 5+ hours, easy to over-engineer
Someday
USDA FoodData Central as second source
~400K US products with proper nutritional data. Would dramatically improve US coverage. The catch: no barcode lookup — they use NDB numbers. Requires a UPC→NDB bridge, which doesn't exist as a free public service.
Effort: weeks, possibly requires a paid lookup service
Killed.
Ideas considered and explicitly rejected. We log these so we don't accidentally rebuild them later.
Killed
10% organic bonus in food scoring
Yuka adds 10% to organic products. We did too, originally. Removed in the algorithm honesty pass.
Why killed. Organic doesn't make food more nutritious — it just changes how it was grown. Adding score points pushes users toward more expensive products without making them healthier. Same critique we leveled at Yuka. We surface organic certification as info (with a thoughtful "what organic does and doesn't mean" treatment), but don't reward it numerically.
Killed
Onboarding: Sample scan preview
Show a faked-up "here's what a scan looks like" card during onboarding to give users a taste before they scan.
Why killed. Tempting, but adds complexity and a fake-feeling element. The "What we won't do" trust panel does more brand work without pretending to show real data.
Killed
Onboarding: Explicit Skip button
A "Skip — just let me scan" link that bypasses the form entirely.
Why killed. Both fields are now labeled "(optional)" with a soft tone. That does the same work without adding a button. Tap "Start scanning" with empty fields and you're in.
Killed
Onboarding: Email signup for updates
"Drop your email if you want to hear about new features."
Why killed. Conflicts directly with the "no accounts, no tracking" promise. The trust panel becomes a lie if there's an email field five inches below it. Hard kill.
Killed
Onboarding: Animated category cards
Three large interactive cards for Food / Cosmetics / Cleaners during onboarding, possibly with hover/tap animations.
Why killed. Real estate cost greater than benefit. The trust panel is more impactful, and the user can discover the three categories naturally on their first scan. Premature visual flourish.
Killed
Onboarding: Dismissable privacy modal
A separate "your privacy matters" modal you have to dismiss before reaching the main onboarding screen.
Why killed. Modals are friction. Embedded the privacy promise inline in the main flow instead — readers see it without having to dismiss anything.
Killed
Hard US-only filter on alternatives
Filter the alternatives list to only products tagged with countries_tags including United States.
Why killed. OFF's countries_tags is too patchy — hard filter would shrink results to near-zero for many categories. We do soft prioritization instead (US products sort first, but non-US can still appear if much better). Soft sort > hard filter.
Killed
Plausible analytics
Aggregate-only, privacy-friendly analytics ($9/mo) for total visitor counts.
Why killed. Conflicts with the "no tracking" privacy promise. The launch-kit doc was rewritten to teach learning at this scale through conversations with users instead of metrics dashboards. If we ever cross 100+ users and need analytics, we'd update the privacy page first — but we don't need it now.
Killed
Set User-Agent on OFF API requests
Send a custom User-Agent header identifying KindlyChecked, as Open Food Facts requests.
Why killed. Browsers don't allow setting User-Agent via fetch — it's a forbidden header per browser security rules. Most browser-based apps using OFF have the same constraint. As long as we stay under rate limits (we will easily), we're fine. Would need a server-side proxy to comply, which we don't have and don't need.
Killed
Excellent / Good / Poor / Avoid verdict labels
The original verdict labels in the app code. Yuka uses essentially these.
Why killed. Moralizing. The brand promise is "considerate, never alarmist" — we explicitly criticized Yuka for this exact pattern. Replaced with Strong / Solid / Mixed / Heavy, which describe rather than judge. Stragglers in the marketing site's interactive demo and allergen copy were caught and aligned in the May ecosystem audit.
Last updated · May 2026 · Claude session