I
Nutrail found 612 kcal

  • 48 g protein
  • 72 g carbs
  • 13 g fat

Take a picture of the plate, record a voice note or type what you ate. The AI names every food with its quantity, calories and macros, and measures the day against goals calculated for you.

Open source · React Native, Node.js and AWS · Runs on your own accounts

Nutrail home screen: 2069 of 2356 kcal for the day, protein, carbohydrate and fat against the goals, and the logged meals

Logging a meal takes one gesture

Most calorie counters lose their users in the first weeks, because logging means searching a database food by food. Nutrail puts the AI right where that friction is.

  • A picture of the plate

    The AI recognizes the foods and estimates the portions.

  • A voice note

    Say what you ate the way you would tell a friend.

  • A few words

    "120 g of rice and a chicken fillet" is enough.

  • A saved meal

    Your usual breakfast or a recipe goes back in with one tap.

A meal logged by picture, analyzed in seconds

Run it on your own AWS

Nutrail is a portfolio project, not a store app. Clone it, deploy the API to your AWS account with your OpenAI key and run the app on your phone. It takes about five minutes, and an idle stack costs close to nothing.

$ git clone https://github.com/pedrohdionisio/nutrail-api.git

Your daily goals in one minute

The same math the API runs on sign-up: the Mifflin-St Jeor formula, your activity level and 500 kcal up or down for your goal.

Goal
Biological sex
Your daily goal1,343kcal a dayProtein124 gCarbohydrate86 gFat56 g

Protein at 2 g/kg, fat at 0.9 g/kg and carbohydrate completing the calories. An estimate, not a prescription.

Built like production

It is a portfolio project, built the way a real system is built. Every decision is documented in the repositories.

Read the architecture
  • 100% serverless

    One Lambda per route, a DynamoDB single table, S3, SQS with a dead-letter queue and Cognito. Nothing costs money while idle.

  • Clean architecture

    Domain, use cases and adapters, with dependencies pointing inwards and a dependency injection container of its own.

  • A pipeline that tolerates failure

    Pictures and voice notes go straight to S3; the analysis runs from a queue with three attempts and a manual retry.

  • Validated AI output

    Every OpenAI response is checked against a schema before it becomes a meal or a recipe.

  • Continuous delivery

    main deploys dev; a v* tag deploys prod at api.nutrail.app after an approval, signing in to AWS through OIDC.

  • Tested without the cloud

    The API runs its real handlers against in-memory fakes; the app renders the whole navigation against a mocked API.

Questions you may have

Anything else? The code answers it, and all of it is open.

See the repositories
Can I download it from the App Store?

No. Nutrail is a portfolio project, so it is not in the stores. You can install it on your own phone in a few minutes, following the app README.

How much does it cost to run?

An idle stack costs close to nothing: every AWS resource is pay-per-use, and light use fits the free tier. The real cost is OpenAI, a few cents per analyzed meal, capped at 20 analyses and 5 recipes per user a day.

Which AI does it use?

OpenAI: the Responses API with structured outputs for meals and recipes, and speech-to-text for voice notes.

Does it work in Portuguese?

Yes. The app, the foods the AI names, the recipes and the e-mails follow the language chosen in the profile: Portuguese or English.

How accurate are the numbers?

They are AI estimates, like in any app that reads pictures. Every item can be edited, and changing a quantity recalculates on the spot.

Can I see the code?

All of it, in four public repositories: the API, the app, this website and the product overview.

You read this far. Want to see the code?

The API, the app and this website are on GitHub, with the architecture and every decision explained.

Open the repositories