How to Build a Custom No-Code Macro and Meal Tracker

Step by step tutorial to create a daily macro and meal tracker (No Code)

Let’s be honest: fitness tracking apps have gotten incredibly annoying. What used to be simple tools have morphed into subscription-bloated, ad-heavy nightmares that lock basic features—like barcode scanning or simply seeing your daily protein target—behind a steep monthly paywall.

If you're tired of fighting with clunky interfaces and just want a clean, minimalist space to log your food, there is a better way. You can build your own custom system. Today, we’re going to walk through a step by step tutorial to create a daily macro and meal tracker (No Code) using Notion. By the end of this guide, you’ll have a beautiful, fully customized tool that belongs entirely to you.

If you have already built a custom ADHD habit tracker in Notion from scratch, you already know how satisfying it is to design a tool tailored exactly to your brain. Let’s bring that same personalized energy to your nutrition.

Why Go No-Code for Your Nutrition Tracker?

Most diet apps try to do too much. They gamify eating in weird ways, send nagging notifications, or restrict how you input your recipes. Building your own tool offers several distinct advantages:

  • Zero Fees: No monthly subscriptions or sudden paywalls.
  • Total Design Control: You choose the colors, layouts, and exactly what data you want to see.
  • Simplified Logging: If you eat the same five breakfasts every week, you can program them in to log with a single click.
  • Privacy: Your health and weight data isn't being sold to third-party advertisers.

Just like when we designed our custom mood and anxiety tracker in Notion, we want this nutrition tracker to feel calming, functional, and incredibly simple to use daily. Let’s dive into how it works.

The Blueprint: How the Tracker Works

To make a functional macro tracker without writing a single line of code, we will use a classic relational database structure. Don’t let the database terminology scare you; it’s actually incredibly straightforward. We only need two tables to make this work:

  1. The Food Library: A permanent catalog of the foods you eat, along with their nutritional profiles per serving (Calories, Protein, Carbs, Fats).
  2. The Daily Log: Your daily diary where you log what you ate and how much of it. This database pulls information automatically from your Food Library.

By connecting these two databases, you’ll only have to input a food's nutritional value once. From then on, you can simply select it from a drop-down menu in your daily log, and the math will happen automatically.

Step 1: Build Your Food Library

First, open a clean page in Notion. Type /database inline and name this database "Food Library".

This database acts as your personal digital pantry. Let's customize the columns (properties) to hold the nutritional facts we need:

  • Name (Title property): The name of the food item (e.g., "Greek Yogurt", "Whey Protein", "Almonds").
  • Calories (Number property): Calories per serving.
  • Protein (g) (Number property): Grams of protein per serving.
  • Carbs (g) (Number property): Grams of carbohydrates per serving.
  • Fats (g) (Number property): Grams of fat per serving.
  • Default Serving (Text property): A helpful reference like "100g", "1 scoop", or "1 tablespoon".

Go ahead and populate this database with 4 or 5 foods you eat regularly so we have some test data to play with as we build out the rest of the system.

Step 2: Build the Daily Log Database

Now, scroll down a bit on your page, type /database inline again, and name this second database "Daily Meal Log". This is where you'll track your breakfast, lunch, dinner, and snacks every day.

Set up the following properties in this new database:

  • Meal/Entry (Title property): Keep this simple (e.g., "Breakfast - Yogurt & Berries" or just "Snack").
  • Date (Date property): Set this to the day you ate the meal.
  • Servings Eaten (Number property): This is crucial. It's the multiplier. If your default serving of almonds is 28g and you ate 56g, you’ll type "2" here. If you ate a half serving, type "0.5".

Step 3: Connect the Databases (The "Magic" Step)

Here is where the no-code magic happens. We need to tell Notion that the food you log in your Daily Meal Log exists in your Food Library.

To do this, add a new property to your Daily Meal Log database. Set the property type to Relation. When asked which database to connect, search for and select your Food Library. Name this relation column "Food Item".

Now, when you click inside this new "Food Item" column on any row in your Daily Meal Log, a dropdown menu will appear listing all the foods inside your Food Library. Try selecting one!

Step 4: Pull in the Macro Data Using Rollups

Now that the databases are linked, we need to bring the nutritional values over automatically. We do this using Rollups.

Add a new property to your Daily Meal Log database and choose Rollup. Name this property "Base Protein". In the Rollup settings, configure it as follows:

  • Relation: Food Item
  • Property: Protein (g)
  • Calculate: Show original

Repeat this step to create Rollup properties for Calories, Carbs, and Fats. Now, whenever you choose a food item in your log, its base nutritional values will instantly populate your daily log row.

Step 5: Calculate Your Actual Intake

Right now, your rollups show the macros for one single serving. But what if you ate two servings? We need a quick formula to multiply the base macros by the "Servings Eaten" value.

Add a new property to your Daily Meal Log and choose Formula. Name it "Total Protein". Click "Edit formula" and type:

prop("Base Protein") * prop("Servings Eaten")

Repeat this step for Calories, Carbs, and Fats:

  • Total Calories: prop("Base Calories") * prop("Servings Eaten")
  • Total Carbs: prop("Base Carbs") * prop("Servings Eaten")
  • Total Fats: prop("Base Fats") * prop("Servings Eaten")

Boom! You now have a working, automated calculator. If you log "Oatmeal" (which has 5g of protein per serving in your library) and change the servings eaten to 1.5, your formula will dynamically display 7.5g of protein.

Step 6: Creating Your Daily Dashboard View

Logging your meals is great, but you also need to see how your entire day is adding up. To do this, we will use Notion’s database grouping feature.

Click on the three dots at the top right of your Daily Meal Log database and go to Group. Choose to group by Date, and set the grouping to "Day". Now, all your entries will automatically group themselves by date.

To see your total daily intake, look at the bottom of each column under your grouped entries. Click the small calculation area at the bottom of your Formula columns and select Sum. Now, right at the top of each day's group, Notion will display the exact sum of your calories, protein, carbs, and fats for that day!

Aesthetic Tweaks: Make It Inviting

No-code tools don't have to look like boring spreadsheets. Spend a few minutes making your tracker a place you actually enjoy looking at every day:

  • Add Icons and Cover Images: Use clean, minimalist icons for your food library (like an apple, avocado, or chicken leg icon).
  • Hide Helper Columns: To keep your Daily Meal Log clean, right-click and hide the "Base" Rollup columns. You only need to see the final "Total" formula columns.
  • Create Quick Templates: Create a template inside your Daily Meal Log for "Breakfast", "Lunch", and "Dinner" with pre-set icons so logging feels like a seamless premium app experience.

By customizing your layout, you'll feel motivated to use it consistently. It’s the same design psychology we use to keep ourselves organized in our day-to-day routines.

Start Small, Keep It Consistent

You don't need to input 500 foods into your Food Library today. Start by adding the meals you eat most often. Every time you eat something new, take 30 seconds to add it to your library. Within a couple of weeks, you will have a highly personalized, lightning-fast digital pantry that fits your specific dietary preferences perfectly.

No subscriptions, no pop-up ads, no clutter—just a beautiful, streamlined tracker built by you, for you.