Show HN: OpenNutrition – A free, public nutrition database

opennutrition.app

296 points by joshdickson a day ago

Hi HN!

Today I’m excited to launch OpenNutrition: a free, ODbL-licenced nutrition database of everyday generic, branded, and restaurant foods, a search engine that can browse the web to import new foods, and a companion app that bundles the database and search as a free macro tracking app.

Consistently logging the foods you eat has been shown to support long-term health outcomes (1)(2), but doing so easily depends on having a large, accurate, and up-to-date nutrition database. Free, public databases are often out-of-date, hard to navigate, and missing critical coverage (like branded restaurant foods). User-generated databases can be unreliable or closed-source. Commercial databases come with ongoing, often per-seat licensing costs, and usage restrictions that limit innovation.

As an amateur powerlifter and long-term weight loss maintainer, helping others pursue their health goals is something I care about deeply. After exiting my previous startup last year, I wanted to investigate the possibility of using LLMs to create the database and infrastructure required to make a great food logging app that was cost engineered for free and accessible distribution, as I believe that the availability of these tools is a public good. That led to creating the dataset I’m releasing today; nutritional data is public record, and its organization and dissemination should be, too.

What’s in the database?

- 5,287 common everyday foods, 3,836 prepared and generic restaurant foods, and 4,182 distinct menu items from ~50 popular US restaurant chains; foods have standardized naming, consistent numeric serving sizes, estimated micronutrient profiles, descriptions, and citations/groundings to USDA, AUSNUT, FRIDA, CNF, etc, when possible.

- 313,442 of the most popular US branded grocery products with standardized naming, parsed serving sizes, and additive/allergen data, grounded in branded USDA data; the most popular 1% have estimated micronutrient data, with the goal of full coverage.

Even the largest commercial databases can be frustrating to work with when searching for foods or customizations without existing coverage. To solve this, I created a real-time version of the same approach used to build the core database that can browse the web to learn about new foods or food customizations if needed (e.g., a highly customized Starbucks order). There is a limited demo on the web, and in-app you can log foods with text search, via barcode scan, or by image, all of which can search the web to import foods for you if needed. Foods discovered via these searches are fed back into the database, and I plan to publish updated versions as coverage expands.

- Search & Explore: https://www.opennutrition.app/search

- Methodology/About: https://www.opennutrition.app/about

- Get the iOS App: https://apps.apple.com/us/app/opennutrition-macro-tracker/id...

- Download the dataset: https://www.opennutrition.app/download

OpenNutrition’s iOS app offers free essential logging and a limited number of agentic searches, plus expenditure tracking and ongoing diet recommendations like best-in-class paid apps. A paid tier ($49/year) unlocks additional searches and features (data backup, prioritized micronutrient coverage for logged foods), and helps fund further development and broader library coverage.

I’d love to hear your feedback, questions, and suggestions—whether it’s about the database itself, a really great/bad search result, or the app.

1. Burke et al., 2011, https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3268700/

2. Patel et al., 2019, https://mhealth.jmir.org/2019/2/e12209/

Cheer2171 a day ago

> Final nutritional data is generated by providing a reasoning model with a large corpus of grounding data. The LLM is tasked with creating complete nutritional values, explicitly explaining the rationale behind each value it generates. Outputs undergo rigorous validation steps, including cross-checking with advanced auditing models such as OpenAI’s o1-pro, which has proven especially proficient at performing high-quality random audits. In practice, o1-pro frequently provided clearer and more substantive insights than manual audits alone.

This is not a dataset. This is an insult to the very idea of data. This is the most anti-scientific post I have ever seen voted to the top of HN. Truth about the world is not derived from three LLMs stacked on top of each other in a trenchcoat.

  • justsid a day ago

    I find this actually very upsetting. My wife does calorie counting and all of the apps for it are horrible, especially the market leaders. But those have one thing going for them: Databases of nutritional information, which can be used for easy meal calorie counting. Just enter the ingredients (usually you can scan a barcode) and how much you ate of the total and it tells you where you are standing on caloric and nutritional intake. But even those datasets aren’t always bang on, especially here in Canada where some products share bar codes with US products but they have different nutritional values. Reading the title, I was very excited about the ability to make my wife a better app to support her needs. Unfortunately this is not at all usable for this use case or really any? What’s the point of having data that you just can’t trust at all?

    • joshdickson a day ago

      [flagged]

      • rendaw 15 hours ago

        By 100+ comment discussion I assume you mean this HN post in its whole? People here aren't checking the facts, so the fact that only one person found an issue doesn't mean much.

  • creativeCak3 a day ago

    I agree so much with you. This is not a dataset. This is the vomit of an LLM making stuff up. Like...why couldn't you just collect the data that already exist?? Why do you need an LLM?

    Adding an LLM to this just adds a unnecessary layer of complexity, for what benefit? For street cred?

    • joshdickson a day ago

      There's an in-depth review of the reasoning for undertaking this project in general and this approach in particular in the Methodology/About section below, see "Current State of Nutritional Data".

      Millions of people use food logging apps to drive behavioral change and help adhere to healthy lifestyles. I believe there is immense societal good in continuing to offer improved tools to accomplish this, especially for free, and that's why I created the project and chose to open source the data.

      https://www.opennutrition.app/about#current-state-of-nutriti...

  • ZunarJ5 a day ago

    As soon as I saw "AI enhanced for Accuracy" I laughed and wondered if this was a belated April Fools joke.

  • pmichaud a day ago

    [flagged]

    • rmah a day ago

      It doesn't matter how accurate the models are, it's not a "data set" (in the scientific sense), it's more of a conclusion set. Maybe the conclusions are spot on. Maybe not. I have no idea.

      • Cheer2171 a day ago

        Right. At my most generous, this is a dataset about LLM behavior when asked to infer nutritional value. It is in no way a nutrition dataset. It is perhaps useful as half of a benchmark for accuracy, compared to actual ground truth. Unlike a scientist, you're not motivated or resourced enough to create the ground truth dataset. So you took a shortcut and hid it from the landing page.

        This workflow, this motivation, this business model, this marketing is an affront to truth itself.

      • pmichaud 4 hours ago

        I think there is a real conversation to be had about “data” in a post LMM world, but I actually don’t care about debating definitions here, I care about whether the product works within a reasonable margin of error.

      • joshdickson a day ago

        I envisioned many lines of inquiry from HN but the idea that a compressed TSV of nutritional data is not a "dataset" (definition: a collection of related sets of information that is composed of separate elements but can be manipulated as a unit by a computer) was unexpected.

        • Cheer2171 a day ago

          Your response is such a perfect example of why the "data science" movement is a cancer on actual science. So many graduate from programs and boot camps (or just read blog posts) that teach them all the technical mechanics of working with data, but nothing about actual science.

          • TechDebtDevin a day ago

            You sound like you're having a bad day. Go take a walk, its just someones side project on HN. They arent trying to destroy science for you, they were simply sharing something they enjoyed building. You dont have to use it or like it, but it has nothing to do with "science". Its not that deep bro.

        • jcgl 4 hours ago

          The problem is that it’s _not_ simply data. Definition: is information collected from the world.

          This is data from the world that has altered and augmented with stuff from a model. The informational content has been altered by stuff not from the world. Therefore it’s no longer data, according to the above definition.

          That isn’t to say that it can’t be useful, or anything like that. But it’s _not_ information collected from the world. And that’s why people who care about science and a strict definition of data would be offended by calling this a dataset.

        • ratmice a day ago

          FWIW, I like that you include water content, libraries like google's health connect seem to have completely separate data structures for nutrition and hydration.

        • TechDebtDevin a day ago

          Ignore them. Congratz on finishing your project!

        • Mordisquitos a day ago

          > a compressed TSV of nutritional data

          What is the source of that nutritional data?

        • csdvrx a day ago

          There are many HN users who are opposed to LLM.

          Some of them are fundamentalists, and no amount of reason will reach them (read the comments on the Ghibli-style images to get a sample), others are opposed for very self-interested reasons: "It is difficult to get a man to understand something when his income depends on his not understanding it"

          Yesterday, I vibe coded a DNS server in python from scratch in half a day (!) and it works extremely well after spending a few minutes on manually improving a specific edge case for reverse DNS using AAAA records: dig -x requests use the exploded form in the ip6.arpa, while I think it's better for the AAAA entries to keep using the compressed form, and I wanted to generate the reverse algorithmically from AAAA and A records.

          Just ignore them, as your approach is sound: I have experience creating, curating and improving datasets with LLMs.

          Like vibe coding, it works very well if you know what you are doing: here, you just have to use statistics to leverage the non deterministic aspects of AI in your favor.

          Good luck with your app!

          • blooalien 17 hours ago

            > Like vibe coding, it works very well if you know what you are doing (emphasis mine)

            This is true of so very many things involving computers (and tools in general, really) and LLMs are no exception. Just like any tool, "knowing what you are doing" is the really important part, but so many folks are convinced that these "AI" things can do the thinking part for them, and it's just not the case (yet). You gotta know what you're doing and how to properly use the tool to avoid a lotta the "foot-guns" and get the most benefit outta these things.

    • thi2 a day ago

      Tried it with unsweetened oat milk and the info was off in nearly every col.

      Not representable because I dont have US food but since its AI enhanced I cant compare my stuff with the stuff in the "dataset" and be sure thats an Us vs germany thing..

      • joshdickson a day ago

        Would you mind posting/messaging me in some way (links in bio) what you expected it to show?

        It looks like for unsweetened oat milk:

        https://www.opennutrition.app/search/unsweetened-oat-milk-mt...

        ...it is leaning into a citation from the Australian Nutrient Database (e.g. Oat beverage, fluid, unfortified. Australian Nutrient Database. Public Food Key F006132. ), which is what I instructed it to do if it thought there was an exact match from a governmental database.

        It's possible this is a poor general source for oat milk or that's not the beverage intended for the entry to stand for. I'll check it out, thank you for the report.

        • thi2 a day ago

          I'll check it later to give more constructive feedback, also it seems like you are hammering a backend request with each keystroke (?), cant verify it on mobile but you might consider debouncing the user input a bit to ease off the load

yamihere a day ago

>> User-generated databases can be unreliable

>> Foods discovered via these searches are fed back into the database,

Aren’t LLMs also unreliable? How do you ensure the new content is from an authoritative, accurate source? How do you ensure the numbers that make it into the database are actually what the source provided?

According to the Methodology/About page

>> The LLM is tasked with creating complete nutritional values, explicitly explaining the rationale behind each value it generates. Outputs undergo rigorous validation steps,

Those rigorous validation steps were also created with LLMs, correct?

>> whose core innovations leveraged AI but didn’t explicitly market themselves as “AI products.”

Odd choice for an entirely AI based service. First thought I had after reading that was: must be because people don’t trust AI generated information. Seems disengenuous to minimize the AI aspect in marketing while this product only exists because of AI.

Great idea though, thanks for giving it a shot!

  • joshdickson a day ago

    > Those rigorous validation steps were also created with LLMs, correct?

    Not really. I do explain in the methodology post how good o1-pro is at the task, but there was a lot of manual effort involved in coming to that conclusion with my own effort to review the LLM's reasoning, and even still, o1-pro is not perfect.

    • yamihere a day ago

      Nice! Thanks for responding.

      >> Outputs undergo rigorous validation steps, including cross-checking with advanced auditing models such as OpenAI’s o1-pro, which has proven especially proficient at performing high-quality random audits.

      >> there was a lot of manual effort involved in coming to that conclusion with my own effort to review the LLM's reasoning

      So, the randomly audited entries seemed reasonable to you – not even the data itself, just the reasoning about the generated data. Did the manual reviews stop once things started looking good enough? Are the audits ongoing, to fill out the rest of the dataset? Would those be manually double-checked as well?

      >> I became interested in exploring how recent advances in generative AI could enable entirely new kinds of consumer products—ones whose core innovations leveraged AI but didn’t explicitly market themselves as “AI products.”

      Once again: Why not market this as an AI product? This is LLMs all the way down.

      People are already interested in using this dataset. I was. Now, LLM generated “usually close enough to not be actively harmful” data is being distributed as a source for any and all to use. I think your disclaimer is excellent. Does your license require an equivalent disclaimer be provided by those using this data?

      • joshdickson a day ago

        > not even the data itself, just the reasoning about the generated data

        Poor phrasing on my end -- yes, absolutely the end data as well as the reasoning, as the reasoning tends to include the final answer.

        Maybe I should! Appreciate the feedback.

        • yamihere a day ago

          Thanks again. Mine was an uncharitable interpretation, apologies for that. I appreciate your engagement with critical comments without coming off as defensive or snarky.

          This looks like a lot of work and good will were poured into it, and I can see how it can be useful to a fitness focused audience.

          You control the messaging on the site and in your apps, and you make it clear that this is not authoritative data. Everything built on top of this needs to have the same messaging, but it has probably been ingested into multiple LLMs already.

          I think some sort of licensing requirement that the LLM source of this data be prominently disclosed will not keep this from becoming a source of truth for other datasets, products, and services; but, it is still worth the effort. All you can do is all you can do, right?

          • joshdickson a day ago

            The idea of including that requirement in the license is a good idea and I had not considered it, but I will -- frankly my motivations have been more on the citation side of things such that the need for quality disclaimers is not as great. Thank you for the suggestion.

  • rob a day ago

    Not really sure how the author thinks anybody who tracks their calories/macros seriously is going to trust a website that literally just makes up values for the vitamins, minerals, etc:

    > TL;DR: They are estimates from giving an LLM (generally o3 mini high due to cost, some o1 preview) a large corpus of grounding data to reason over and asking it to use its general world knowledge to return estimates it was confident in, which, when escalating to better LLMs like o1-pro and manual verification, proved to be good enough that I thought they warranted release.

    • yamihere a day ago

      That’s the best part! People don’t care and won’t check! They’ll just pay money!

      Most of the data being close enough to be better than nothing and not actively harmful + a disclaimer and the author is absolved of all responsibility!

      Even better, this will now be used in all sorts of other apps, analyses, and for training other LLMs! And I expect all those will also prominently include an “all of this was genereated by an LLM” disclamers. For sure.

    • XorNot a day ago

      Also https://world.openfoodfacts.org/ exists, and has an app with everything you'd need. And is just crowd sourcing nutrition labels and barcodes.

      • joshdickson a day ago

        OpenFoodFacts is a huge inspiration to this project, obviously. However, as someone with a normal diet, OFF lacks:

        1. Generic, non-branded foods

        2. Simple prepared foods that ease food entry

        3. Restaurant foods

        4. Micronutrients beyond those reported by the brand.

        OFF is a fantastic project but OpenNutrition is really trying to fit a different niche. OFF does what it does very well; I would never be able to use it to track my food intake.

        • teolemon a day ago

          Hi Josh: Pierre, Open Food Facts NGO co-founder. 1. Generic, non-branded foods & 2. Simple prepared foods that ease food entry: Those two could be solved in a deterministic way, and we'd be happy for a separate Open Food Facts hosted API endpoint (basically a small backend serving a combination of all national generic databases), or improvement to the core software 3. Restaurant foods - Open Prices (our effort to collect geo-located prices on products) could be an entry point to collect menus, and potentially estimate nutrition for food in restaurants, since we have support for products without barcode. 4. Micronutrients beyond those reported by the brand. - We have an issue to propose approximation of micro-nutrients from reputable database: https://github.com/openfoodfacts/openfoodfacts-server/issues...

          We're happy to cover more use-cases, so feel free to join the project and contribute your time/coding skills to help us solve those issues. https://slack.openfoodfacts.org or https://forum.openfoodfacts.org or directly https://github.com/openfoodfacts

    • joshdickson a day ago

      I have tracked my macro intake seriously for years and use the database every day, as do many folks who used the initial app releases. It's actually more valuable to me to have the data in this format, even estimated, because what happens with other apps is you get gaps in macronutrient reporting on things like Omega 3's, and you wonder 'Am I not eating any Omega 3's or does the database containing the food I ate just not include them?'. In that case I'd much rather have an LLM that had access to as much relevant data as I could feed it reason through approximate nutrient distribution and give me the best estimate it could.

      Appreciate the feedback!

lm28469 a day ago

The search is broken on safari, every time it refreshes you lose the focus on the text input, which means you have to click on the search bar after every single character you type. The filters are broken, type "chocolate", chose the M&M's brand, none of the labels return a result despite showing (xxx)

> I wanted to investigate the possibility of using LLMs

ah, yeah, I guess it makes sense then...

  • joshdickson a day ago

    Ah that is an embarrassing bug. Mobile safari does not do that. Thank you for the report, looking to see why that is now.

    Edit: Should be patched in Desktop Safari now.

    • jonesy827 a day ago

      It's still erroring in Firefox on macOS and Windows. I see a CORS error on the XHR request

      • joshdickson a day ago

        Should be back up now, I didn't scale up quickly enough for the traffic. My apologies and thank you for the report.

  • fastball a day ago

    The search/filtering is broken in Chrome as well, seems to be a deeper issue than something browser-specific.

bhatfiel a day ago

LLM generated nutrition for accuracy.

The first item I manually look up is has about double calories listed in the "dataset" versus reality. Honey bunches of oats honey roasted.

johnisgood a day ago

Just at a quick glance...

How can a large egg (50 g) contain 147 g choline?

https://www.opennutrition.app/search/eggs-eeG7JQCQipwf

Additionally, on https://www.opennutrition.app/search/brown-lentils-VwKWF7CQq... it says:

> Unlike larger legumes, they require no pre-soaking and cook in 20-30 minutes, making them ideal for soups, stews, and salads

That is not necessarily true. Based on my experience, it does require pre-soaking, otherwise you will have to cook it for a long time, as opposed to red lentils (which is done under 15 minutes, no pre-soaking needed), although red lentils taste more like yellow peas.

In any case, I think this could be really useful, once accurate enough. One could even implement other features on top, such as a calorie tracker and so forth, but that is a huge project on its own.

I wish you luck!

  • joshdickson a day ago

    That is missing a milligram label, thank you for pointing that out. Fix uploading now.

    • johnisgood a day ago

      That is what I thought.

      BTW when you hover over the ingredients, you just get back the name. Are you guys going to do something with it in the future? Right now there is a visual feedback (the cursor changes), but it is not useful yet. I am not entirely sure what I would have expected, perhaps a description of what it is, and upon clicking on it, it could have information gathered from various sources, like examine.com and what have you, but that would be a huge change on its own, the short description upon mouse hover-over should work for now and may not be a huge change.

      • joshdickson a day ago

        The goal, without question, is 100% full coverage on citations for every piece of data that's in the database, even if the citation is an LLM's general reasoning (which for o1-pro is both quite good and often includes study citations).

        Right now you'll see that aggregated on some items like this where the reported data is an ensemble of all of the linked resources: https://www.opennutrition.app/search/eggs-eeG7JQCQipwf

        Frankly, I just couldn't justify the additional time and monetary expense in doing that if I released this initial version and nobody cared or found it useful. This dataset was also compiled before tools like Claude Citations came out which could make it easier. That is the nature of AI-driven data; I think this is useful now, it is also the worst it will ever be.

        • johnisgood a day ago

          I am not complaining by the way, it was more of a feature request, for example when you hover over an ingredient (e.g. "Choline", "Tryptophan", etc.), it may display a somewhat concise description of that ingredient (e.g. "Tryptophan is ..."). It is fine as it is either way, all things considered.

          • joshdickson 20 hours ago

            Ah that's a good idea, should add that. Also I appreciate your phrasing of "you guys" when, as a solo developer, if someone thinks your efforts are the product of a larger team, it's always appreciated :)

            • johnisgood 12 hours ago

              Yeah I thought more people worked on it, it looks good. :P

              Keep it as accurate as possible, and maintainable, and then it will be easy to add larger features. If no one else does, I might add a calorie tracker of some sort, it would be helpful to my mom. It is helpful as it is even now. How difficult would it be to add translations right now? She might look for "tojás" which is "egg" in Hungarian, and I would like her to be able to do that at some point.

  • ramon156 a day ago

    I think they meant mg. Eggs are 293/100gr

diggan a day ago

As this seems US focused, I'll share an alternative that works really well with European products (and a lot of US ones too, apparently): https://yuka.io/en/

Really easy to use (just scan the barcode and you get easily digested data about the product) has every product imaginable, also analyzes cosmetics and best of all, all the basic functionality is free.

Not affiliated, been using it for years at this point and now it's an essential partner when going shopping. That they let people decide their own premium pricing per year is just icing on the cake.

adamas a day ago

What's the main difference between this and OpenFoodFacts really ?

  • masijo a day ago

    Well, OpenFoodFacts are actual facts. This seems to rely on LLMs to do the job.

    • adamas a day ago

      Oh, it's worse then.

  • hombre_fatal a day ago

    The problem with OpenFoodFacts is that it just has nutrition label info for packaged goods.

    So, very little nutrient info beyond calories and protein. No info about micronutrients. No info about minerals, vitamins, amino acids, fatty acids.

    It's useless for nutrition tracking since if you're eating packaged food, then you already have that information yourself.

    It doesn't answer basic questions like "I ate 100g of extra firm tofu, how did it move me towards my daily mineral/vitamin targets?"

    • sodality2 a day ago

      > So, very little nutrient info beyond calories and protein. No info about micronutrients. No info about minerals, vitamins, amino acids, fatty acids.

      Many items do have these things.

      https://world.openfoodfacts.org/product/5060495116377/huel-b...

      • hombre_fatal a day ago

        That is one exception, and it's only because Huel reports that info since it's a fortified meal replacement product. The same way a multivitamin would have that info on its label.

        But consider that OpenFoodFacts can't give you that info on just about anything else, especially not basic foods like "apples" or "tofu" or "chicken breast".

        I'm not dumping on the project. It's really useful to have a database of packaged food labels. It's just not trying to solve this problem.

    • NewJazz a day ago

      You can add micro nutrients to those foods, they just don't always have them. Or so I thought.

      • teolemon a day ago

        Hi, Pierre, Open Food Facts NGO co-founder. We have an issue to propose approximation of micro-nutrients from reputable database. Feel free to join the project and contribute your time/coding skills to help us solve this: https://github.com/openfoodfacts/openfoodfacts-server/issues...

        • joshdickson a day ago

          Your other comment is too deep in the thread for me to reply, but just wanted to say I appreciate you checking out the project and commenting, and appreciate the many years of effort you've undertaken in this space. How OpenNutrition can work with OpenFoodFacts is something I have thought a lot about (I think MacroFactor set a great example) and it's certainly something I'll consider moving forward.

octotep a day ago

Overall, very cool and seriously much needed! How does the micronutrient estimation work? Or is that part of the secret sauce?

I was looking at this page: https://www.opennutrition.app/search/original-shells-cheese-... and saw the amino acid, vitamin, and mineral sections; there are many things listed which aren't covered by the official nutritional data. These entries also have very precise numbers but I'm not sure where and how they're derived and if I could put any serious weight in them. I'd love to hear more if you're willing to share!

  • joshdickson a day ago

    TL;DR: They are estimates from giving an LLM (generally o3 mini high due to cost, some o1 preview) a large corpus of grounding data to reason over and asking it to use its general world knowledge to return estimates it was confident in, which, when escalating to better LLMs like o1-pro and manual verification, proved to be good enough that I thought they warranted release.

    You can read about the background on how I did them in more detail in the about/methodology section: https://www.opennutrition.app/about (see "Technical Approach")

    • Xiol32 a day ago

      You need to add a disclaimer for this data. People could rely on them being accurate, and you simply can't prove they are.

      • joshdickson a day ago

        There is a large disclaimer that states, among other things, "We strive to ensure accuracy and quality using authoritative sources and AI-based validation; however, we make no guarantees regarding completeness, accuracy, or timeliness. Always confirm nutritional data independently when accuracy is critical." on every page on the website where that kind of in-depth data is available.

        • adamas a day ago

          At that point, if you are not sure a data point is accurate, should you really display it ? You have no proof appart from "The LLM said it was ok" which is kind of poor.

          • sswatson a day ago

            I disagree with the idea that data must be accompanied by a guarantee of accuracy to be used or published. That standard would rule out almost all datasets for which the underlying data is not programmatically generated.

            My guess is that this dataset is probably more accurate on the whole than many datasets used by the kinds of calorie-tracking apps that outsource their collection of nutrition information to users. But an analysis would be required.

            Regardless, the only workable approach is to describe the provenance of your data and explain what steps have been taken to ensure accuracy. Then anyone who wants to use the data can account for that information.

monkburger a day ago

There’s an important caveat to keep in mind when it comes to food databases, especially those relying on branded or restaurant items:

U.S. law does not require food manufacturers to disclose everything that goes into their products. Under the Code of Federal Regulations (21 CFR § 101.100), there are exemptions to ingredient labeling... An example: flavorings, spices, and incidental additives (like processing aids or anti-caking agents) are not always listed explicitly. Also: proprietary blends and "natural flavors" can legally conceal dozens of chemicals (some synthetic), which consumers have no way of identifying.

Micronutrient data is often estimated or missing from labels and restaurant menus, which limits the accuracy of even the best-intentioned databases. Studies show that the nutritional information provided by restaurants and brands is frequently incomplete or inaccurate, especially when it comes to sodium, sugar, and actual serving sizes. (Urban et al. "The Energy Content of Restaurant Foods Without Stated Calorie Information" ; Labuza et al., 2008 and others)

IMO Food databases are only as accurate as the source data allows. Until food labeling laws mandate full disclosure and third-party verification, apps like this can support health awareness. Still, they shouldn't be treated as precise medical or dietary guidance—particularly for people with allergies, sensitivities, or chronic health conditions that require strict tracking.

Rooster61 a day ago

Does this have an API? Reason I ask, I would kill to have a dynamic recipe scanner that could plug into recipe databases (namely ones that can accurately scrape recipes from the web) and instantly give you a nutritional rundown of the ingredients, as well as any changes to the nutrition that could occur due to the cooking process. It would make tracking what I eat a breeze, and really give solid insight into the macros and micros I'm consuming.

Also, why the app focus? Having the main functionality exist in the Apple/Android store space rather than as a SaaS option seems like an interesting choice.

papa_bear a day ago

This is neat. I've spent a lot of time thinking about implementing something similar for my company Eat This Much, but end up pushing it off in favor of focusing on our core meal planning features.

When something doesn't have a reference listed, and just says "sourced from a publicly available first-party datasource", what does that mean? Crawled from other sources and you'd prefer not to say? The wording does feel a little sketchy when contrasted with entries that do list sources.

When something does list references that don't seem super close to the actual food, what is the process like there for interpreting those values? Example, this Chicken Salad inheriting from Chicken Spread: https://www.opennutrition.app/search/chicken-salad-37mAX17YX...

The quality of the data might feel rough now, but I can see this being valuable for our users even if it's just an opt-in "show estimated micronutrients" or something. Would require labeling values as not being directly from a source of truth.

One thing that a lot of people are missing is that there is already a lot of inaccurate nutrition data out there. Even on information directly from the manufacturer, sometimes there are errors, or just old versions of the product that never get scrubbed from the internet (I imagine the latter case would be tricky for an LLM to deal with too). Just logging your dietary intake in any form will get you 80% of the benefit of tracking via some self awareness of your intake. Of course, it's an easy argument to point out that if you had the choice between verified data and fuzzy LLM data, you should go for the human verified data (for now).

  • joshdickson 21 hours ago

    Thank you for your questions and feedback.

    > When something doesn't have a reference listed, and just says "sourced from a publicly available first-party datasource", what does that mean?

    It depends, and the degree to which it depends is why the citation is ambiguous (although it is true, if imprecise). My goal is to individually cite the individual nutrients but it was simply too costly and time-consuming at the stage of the project at which I did this work.

    > what is the process like there for interpreting those values?

    Because the degree to which something in the database might be related to those values is so varied, it depends. The reasoning agent had access to those database entires, which is helpful because they tend to contain micronutrient data. It also had access to web data, as well as its own world knowledge, and considers sources in that order. Ultimately it was left up to the agent to decide what the most reasonable fit for each food was, thinking through what an average user likely meant by that entry (e.g. a typical user probably assumes a 'Tomato' is raw), and then to choose the best sources from there. For the chicken salad, it used approximate micronutrient values from the listed references to inform its answer, but adapted the end values for how the dish is described in the description.

    > if you had the choice between verified data and fuzzy LLM data, you should go for the human verified data (for now)

    Human verification isn't free, and that means it is not available to a lot of people who can't or don't want to pay for something. But if that's something that someone values, I would certainly not diss the human effort!

    • papa_bear 18 hours ago

      Very cool, thanks for elaborating on the process. Good luck, I'll be keeping an eye on your progress!

neilv a day ago

Small objections to the licensing terms, and the name...

I've recently been considering making my own open source nutrition app, (since every single one I've looked at seems to either violate my privacy&security, or is designed/works very poorly), but the available "open" nutrition info databases for bootstrapping have seemed poor.

So I looked at the license of this database, and the idea of making it "open" is good and maybe appropriate. But the attribution requirements to promote this other, commercial, product are a little annoying. And could also be a little confusing in app store listings.

> Attribution Requirements: If you display or use any data from this dataset, you must provide clear attribution to "OpenNutrition" with a link to https://www.opennutrition.app in:

> * Every interface where data is displayed

> * Application store listings

> * Your website

> * Legal/about sections

Additionally, I've soured on single companies that call themselves "open". "Open" has a few-decades history in computers, as everyone realized the dangers and costs of proprietary lock-ins, and so created concepts such as "open systems" and "open standards". Appropriating the "open" term for a single company, for something more proprietary than open (like the very proprietary OpenAI that's mentioned many times in https://www.opennutrition.app/about ), rubs a bit the wrong way.

  • joshdickson a day ago

    The licensing terms are identical to similar projects including OpenFoodFacts (which also has an app) and OpenStreetMap, see:

    https://wiki.openfoodfacts.org/ODBL_License

    You may disagree with each of those projects as well, but, I am following long-standing licensing in this space. I also have used some OFF data for product naming, and as a result, their terms state I have to maintain their license.

    Creating these databases involves a tremendous amount of time and effort, and it would not make sense for me to make this data available to commercial entities to use without attribution. The alternative is not a MIT-licensed dataset, it is no dataset.

    • neilv a day ago

      The two you cite, OpenFoodFacts and OpenStreetMap are non-profit/not-for-profit, known for their databases, not for competing commercial apps.

      I appreciate the difficulty of building a good database. Can you say why you created a new one, rather than starting with OpenFoodFacts? (Was it quality issues? Too hard to update? You wanted additional info? You didn't want their licensing terms? You wanted the advertising boost?)

      • joshdickson a day ago

        I've explained why OFF is not an adequate source in and of itself for a food logging app elsewhere in the thread. If it were usable in and of itself, I wouldn't have had anything to build on the database front and would have just used it as-is.

        https://news.ycombinator.com/item?id=43570775

        • neilv 13 hours ago

          Thanks, that part makes sense.

kekub a day ago

The Swiss Food Composition Database (https://naehrwertdaten.ch/en/) is an exceptional resource for detailed nutritional information on over 1,100 foods available in Switzerland but also around the world. It offers comprehensive data on macronutrients, micronutrients, and fat composition.

Maybe that would be a good source to challenge and validate the values provided by your LLM approach.

reverendsteveii a day ago

Took a minute to find things that are in the DB, but once I did this is pretty slick. If I can join the endless queue of feature requests, the ability to scale the portion size and update the nutrition facts would be great. I've been tracking my macros daily for about 18 months and for me to hit my protein and stay under my calories I do a lot of what I call speculative food tracking. Sitting on the couch, thinking about a snack, if I go into the kitchen without a plan I'm gonna eat a lot of unintentional things but if I can go "okay, I have about 300 calories to spare and I'm short 40g protein today, so I can put 5 oz chicken breast on a 60 calorie wheat pita with some hot sauce for (calorie) free flavor and I'll win today".

Also IDK where AI is wrt automated scraping but I've had some success feeding recipes into AI and getting the nutrition facts out. The ability to plop a URL in and get a scraped recipe with a name and nutrition facts would be immense.

  • joshdickson a day ago

    Thank you for your feedback.

    > If I can join the endless queue of feature requests, the ability to scale the portion size and update the nutrition facts would be great

    This is all supported in-app if you're in a country with the ability to download it and have iOS (for now). The web product is more of a demo and isn't intended to be used on a day-to-day basis to track your food consumption, but this is a totally reasonable request.

    > Also IDK where AI is wrt automated scraping but I've had some success feeding recipes into AI and getting the nutrition facts out. The ability to plop a URL in and get a scraped recipe with a name and nutrition facts would be immense.

    I am not doing this for a few reasons, but, you can just screenshot the image of the recipe and use the app to upload that as a meal or recipe and it should parse out the ingredients and portions for you.

ouroumov a day ago

Thanks! I've got an error after scrolling the result page for "kidney beans" on Chrome, it blanks the display with the message: Application error: a client-side exception has occurred (see the browser console for more information).

Could you possibly add an option to see the nutrient content per 100g serving? This is way more usefull to Europeans than something like a cup as a unit.

  • joshdickson a day ago

    > Could you possibly add an option to see the nutrient content per 100g serving?

    In the top-right of the table in the web search, you can change the toggle from "Per Serving" to "Per 100g", though this is just for the table view.

hombre_fatal a day ago

Pretty slick website. I also love how you using AI to generate all the food icons. It's so, so much nicer than just visually comparing text.

When I first found Cronometer and started using it daily, I did what every developer does and looked at what kind of data exists out there if I wanted to build my own app. The free data from the FDA was pretty bad/limited with massive holes and it would have taken a lot of effort to clean up.

Of course, Cronometer's best data comes from https://www.ncc.umn.edu/food-and-nutrient-database/.

Maybe you can sample your data and validate it against NCC's data via Cronometer to see if your LLM approach has legs when it comes to micronutrients and amino acids. And note that you have AIgen data that NCC's hand-measured database doesn't even have reliably, like choline, which seems like a red flag.

  • joshdickson a day ago

    Thank you for the feedback.

    Have you asked one of the LLMs used to tell you about the choline content of a food, even ungrounded? They are surprisingly good at reasoning about what kinds of foods tend to contain large amounts of choline because their training datasets will include all kinds of similar data points, even if the single food you're looking for doesn't have it listed explicitly.

  • alexsexotic 15 hours ago

    The icons looks neat! What did you use to generate the icons so fast? I could use it in my plant app.

andy_ppp a day ago

I think this is great and I was thinking about doing the same thing, you could use a few different LLMs to do a kind of adversarial check of calories for a thing and use a load of other techniques to improve the dataset over time. It's hardly as if the dataset in something like MyFitnessPal is completely perfect. You could probably figure out boundaries too so if we know 100g of a food does the protein/fat/carbs/sugar/fibre/water etc. content wildly exceed the boundaries/totals you could get it to review it's findings, ignore that LLM, fill in from a different food db etc. etc.

Incidentally o3-mini-high got the fried breakfast I added to a tracking app this morning within 50 calories!

probotect0r a day ago

I have been looking for something like this! I really like the interface. I wish I could click on the picture to enlarge it, so I can confirm that what I am looking for is what I am looking at. For example, we use 3-4 types of lentils and I am not sure if "brown lentil" in the database is the same brown lentil I have at home. I also really liked that I was able to search for "masoor" and the results showed red lentils; often I don't know the English name for something so it's hard to search.

Also, there is an error on this page for me: https://www.opennutrition.app/search?search=Goya

  • joshdickson a day ago

    Thank you so much for checking out the project and the bug report. The dataset includes alternate names for each of the non-branded grocery products and those are indexed into the Go-based prefix & full-word search engine that I wrote to answer queries. Sometimes they can be a bit over-prioritized in the search experience, but, I'd still rather have them :)

  • lm28469 a day ago

    > I wish I could click on the picture to enlarge it, so I can confirm that what I am looking for is what I am looking at.

    You want to enlarge an ai generated image to know if it matches what you have at home ?

    • probotect0r a day ago

      I guess I missed where they mentioned their images are AI generated. I assumed they were being pulled from some database.

      • hombre_fatal a day ago

        You can derive it from the fact that there's no feasible way to get such uniform (and cute) image data for every food item.

        Though I want to add that this is a good application of AI image gen since the images are useful for quick visual confirmation that the item is in the same ballpark of the thing that you think it is.

8mobile 13 hours ago

I'm not going to discuss whether or not to use an LLM, I just want to thank you for opennutrition because it's very useful for checking the nutritional values of each food, especially for diabetics.

CartwheelLinux a day ago

Very cool site, great implementation.

Calorie burn is dependent on weight and body fat. Individuals who are x+25kg will burn way more calories than x.

For users who come to this site to supplement their weight loss information might be misinformed in their journey, or worse,use it as a primary source and become discouraged because their idea of calorie loss is a little skewed due to the conservative numbers currently shown.

  • joshdickson a day ago

    > or worse,use it as a primary source and become discouraged

    I would hope these people download the free app so they can actually track their food, which has extensive tooling to track weight trends and expenditure changes over time :). But yes, you should be able to customize the assumptions, I just have about 100 more of these things to add and didn't want to wait longer to see feedback.

    • hluska a day ago

      I don’t know bud, but when I work with diet and nutrition, I feel like I owe users accuracy more than I deserve feedback. Maybe we have a different sense of ethics.

jsmo a day ago

Tried searching for "Carrot", took about 4 seconds then displayed "Something went wrong". Dark mode is helpful!

ehaveman a day ago

when i track nutrition i always get stuck on things like "are the values for a chicken thigh with the bone in or out? do i weigh the meat pre-cooked or after i cook it? do i weigh the bones after i'm done eating and subtract that from the initial weight?" im probably overthinking it.

love the look and i'll keep playing with it but right off the bat i ran into a couple issues:

when i start typing on the search box on the home page it eats the first character (so as i type chicken, what shows up in the next screen's search field is just 'hicken'). and when i search for chicken thigh i don't get any results - seems to just stop filtering? when i press enter in the search field when "chicken thigh" is entered i get a "something went wrong" error.

  • joshdickson 20 hours ago

    Thank you for your kind words and feedback. The search should be better now, and is much better in-app with additional local caching.

    I can assure you that you are not overthinking it in terms of figuring that information out. The search experience tries to make it as clear and helpful as possible. If you encounter any situations where it could be more clear, I would love to see them. My contact info is in my bio, or there is a feedback prompt on the site/in-app. Thanks again for checking the project out and your feedback.

sputknick a day ago

I like the concept, but I think a more reliable/less compute intensive way to implement it would be too use AI to call up non -AI data. I could just type in "some red beans and rice" and the LLM parses what I mean, and retrieves stored verified data.

robertlagrant a day ago

It looks good. Do you have a way to differentiate food in different locations? E.g. 500ml Coke in the UK vs US might be different.

(Also I type in Can of coke and it has no results, which is probably an annoying thing to have to map to 330ml Coke, but might be useful on the todo list!)

Zealotux a day ago

Congrats on the launch! Looks slick and reactive. Now I wish there was an app to analyse my meals from pictures and estimate the calories/macros, I guess it exists somewhere but I doubt the accuracy, honestly the only thing I really want from so-called AIs.

  • achempion a day ago

    If you'll find an app like this, try to do an experiment: estimate calories by taking a picture, then add 30g of olive oil (270 kcal) to the same dish and see if the app will detect it.

    • hombre_fatal a day ago

      Heh, and the same goes for using a traditional nutrient tracker for a meal you ordered at a restaurant.

      Nutrient/calorie tracking really only works if you measure the raw inputs or use a packaged product that gives you the info, and I imagine those are also the two cases that the AI can estimate visually.

  • joshdickson a day ago

    The OpenNutrition app does that :)

    Logging foods by image is a great way to get started being accountable with eating, and I'll use it if I'm out and don't want to manually figure out all the different components of something, but it's impossible for even the most well-trained human eye to understand food composition visually. A lot of AI-focused diet apps have gone in this direction as their primary method of input because it removes the need for a database, but the marketing these apps run that this is in anyway accurate as a primary search mechanism is, to me, really borders on abject dishonesty and sets users up for long-term failure. Just because an ingredient is invisible when prepared doesn't mean it's not there.

  • nqzero a day ago

    any idea how the webapp is written ? eg, what libraries or framework is used

    • joshdickson a day ago

      Pretty standard Next app on Vercel. Some pre-fetching. Food pages are cached post-generation. Custom go-based search server behind a Cloudflare cache. Any other questions?

lijok a day ago

I just spent too much time today arguing with ChatGPT that the nutritional information it gave me for pearl barley seemed off. It couldn’t reason whether it was for cooked pearl barley or not. Having had a look online, it’s no wonder.

dudeabidez a day ago

Very cool! Data needs some curation however. Search "Bacon" for example and you'll see raw bacon with 95kcal and 4g of protein while cooked bacon says 153kcal and 10g of protein.

  • hombre_fatal a day ago

    Well, it's equating mass (28g) which is the right way to represent data here.

    Equating calories is far less useful since you aren't choosing between eating 100cal of raw bacon vs 100cal of cooked bacon.

    And the question you're trying to ask is "what nutrients/calories do my 4 strips of bacon have?"

  • criddell a day ago

    What’s the point of providing nutritional data on raw bacon? Nobody eats raw bacon, do they?

    • hombre_fatal a day ago

      Because you want to be able to log the calories/nutrients of the food you're eating before it's cooked into a dish.

      You don't want to have to cook your bacon and then measure its mass before you know how many calories it has when you can just log the raw form before you cook it.

      • criddell a day ago

        You don't want to do that, but unless you are consuming all the rendered fat that's what you do to get an accurate value.

        • hombre_fatal a day ago

          Sure you do. And if you don't consume all of the grease, then you have some overestimation error in your tracking which is evened out by (but usually dominated by) all of your underestimation errors, like every time you forget to log the squirts of oil in the pan or that handful of mixed nuts or every time you eat out.

          Having to cook your food first, take it out, measure it, and put it back in the dish you're making before you can estimate content doesn't seem like a recipe (pun) for habit forming here. Nor is it viable for anything but the most basic dishes like individually pan frying large ingredients.

    • joshdickson 21 hours ago

      Almost every protein that I consume is weighed raw for ease in logging. One reason is if you are cooking a dish with e.g. bacon as an ingredient, you may not be able or want to separate it out at the end. Likewise, if I sauté chicken breasts in a pan and then finish the dish with other ingredients, I probably want to just eat the food and not deal with weighing them after water loss. Providing both just provides greater ease in logging your meals and is exact-enough for most people :)

sodality2 a day ago

I have to say, irrespective of any concerns about the LLM-generated content, the actual app alone (goal-setting, macro tracking, etc) is the best free iOS-based nutrition-tracking app I've ever used, at first use. It's actually shockingly hard to find good, free (or even one time payment!) ones that don't constantly nag you to upgrade and paywall. I would pay a lot (once) for a nutrition/weight tracking app as slick as this, with all of the goal setting, data graphs, etc, that uses the OpenFoodFacts database, not your own. (Soliciting suggestions!) Please consider making the AI features optional and instead using the OFF database as the primary source.

Also, looks like the Apple Health option in Settings actually opens the start-of-week settings modal.

  • joshdickson a day ago

    Thank you very much for your feedback. Building a great product that did not have variable usage costs that allowed for a generous free tier was my primary motivation for undertaking this project. While there is a need to monetize, I also believe there is a niche for an app with a more expansive free tier than exists in the space currently.

    Only using the OFF database would be untenable to me as an end user. I think most people do not want to know or care about where the data is coming from, they just want it to be accurate and easy to use. I've listed the usability reasons here for why I can't offer that how I want with only OFF (and that's no dig to OFF, it is a fantastic project, and a primary motivator for this project and its license structure).

    https://news.ycombinator.com/item?id=43570775

    • sodality2 a day ago

      Some kind of fall-back mechanism would be nice, then, maybe? As someone who does indeed want it to be accurate, I would prefer to use OFF for any food which exists within their database, since it tends to be much more accurate (and maybe fall back to "AI search" if I want to look up "apple" or whatever).

      I understand that most people probably consume more whole foods that might not have the cut-and-dry numbers on OFF. It just does feel like a big lacking feature to just categorically exclude OFF, if I wanted to use it.

chakintosh a day ago

Can you make the app available outside the US ? Can't download it and I have active recurring subscriptions that will be canceled if I switch my Apple ID region.

  • joshdickson a day ago

    Which country would you like it available in?

johmue a day ago

Let me type more than a letter maybe? On safari I get results after typing a single letter but I would like to spell out the entire word. Probably a bug

blendergeek a day ago

How is this similar to and different from OpenFoodFacts?

DavidPP a day ago

Are you using Typesense for the search server? If so, are you using hybrid search with embeddings, or just regular search?

  • joshdickson a day ago

    I wrote a Go-based search engine that indexes full words and prefixes for the foods and their alternate names because I was dissatisfied with how slow OpenSearch was given the very specific needs I had. I have Cloudflare in front to act as a cache.

KerryJones a day ago

I typed in "Avocado" and got a list of 20+ items, none of them being avocado.

insane_dreamer a day ago

A free public nutritional database is a great idea -- needed and useful.

But _not_ one generated by LLMs; at least not LLMs in their current state.

nelblu a day ago

I am so glad there is another open data for nutrition. My favourite one so far is https://www.nutritionvalue.org/ which is awesome. As a fitness enthusiast/gym rat I really appreaciate having a pure facts only nutrition website (even if it is AI enhanced a bit), because these days if you ever google "Nutrition value of XXXX", you inevitably find useless search results giving "Benefits of eating XXXX". I have a feeling this might be true even if you substitute "XXXX" with "human poop". I hope this site doesn't start learning from those crappy articles.

morgengold a day ago

Well done! How do you create the food images?

  • joshdickson a day ago

    Thank you! The images are created via Flux (Schnell, due to cost). An LLM (currently Gemini Flash) creates the prompt, Flux generates the images, a rembg lambda that I open-sourced trims the background out, and then a vision-based LLM (also currently Gemini Flash) grades the resulting output for prompt adherence, background removal artifacts, etc. A lot get thrown away but the cost is so low that even a 25-50% success rate is adequate.

    Background removal lambda if you want to check that out: https://github.com/joshdickson/rembg-lambda

metalman 10 hours ago

"AI enhanced for acuracy" buh bye

volkk a day ago

Super cool. Would you consider an API?

  • hombre_fatal a day ago

    Why would you want an API if they give you the data? https://www.opennutrition.app/download

    • volkk a day ago

      yeah that's awesome, but I think staleness could be a concern? i'm sure there will be updates to nutritional values, additions of new foods, etc. API gives me the latest without having to redownload/rehydrate every time. plus its a way for OP to monetize further for all of the apps that utilize nutritional data.

trupus a day ago

is your backend down? Search doesn't seem to work for me. Requests fail with 521

tjpnz a day ago

I've been tracking my daily calorie intake on a spreadsheet for the past three months and have had some success losing weight through it. If you do it right it will shine a light on the seemingly inconsequential food items which are setting you back. For me it was the Japanese milk teas which I was able to quickly eliminate.

The big thing I've realized through this exercise is just how much of a creature of habit I am. Inputting what I've eaten over the previous day is mostly copying and pasting rows from previous days sheets, and I suspect I could simplify input even further. Most people would be in a similar position and should be able to build their own lists by reading the nutritional information already available. When that's not available It doesn't necessarily I found r/caloriecount to be a useful resource. It need not be perfect either, just as long as you're doing it consistently.

devmor a day ago

I can't really test it out, given the hug of death it is currently receiving, but I am happy to see the project.

The USDA nutritional database is a nightmare to query.