Keto meal prepping has transformed my approach to the ketogenic diet. By dedicating a few hours each week to planning and preparing meals, I’ve eliminated daily stress, saved time, and consistently hit my macronutrient targets.
To achieve and maintain ketosis, you’ll need to carefully balance your macronutrients:
Use this Keto Meal Plan Generator I’ve created to make a personalized plan for your week.
.atk-mealgen {
font-family: system-ui, -apple-system, BlinkMacSystemFont, “Segoe UI”, sans-serif;
padding: 20px;
background: linear-gradient(135deg, #e8f5e9 0%, #d0e8d5 100%);
border-radius: 20px;
color: #1b3d1f;
}
.atk-mealgen *,
.atk-mealgen *::before,
.atk-mealgen *::after {
box-sizing: border-box;
}
/* HEADER */
.atk-mealgen h1 {
text-align: center;
font-size: 38px;
font-weight: 900;
color: #1b5e20;
margin-bottom: 10px;
}
.atk-mealgen .subtitle {
text-align: center;
color: #33691e;
margin-bottom: 30px;
}
/* LAYOUT */
.atk-mealgen .generator-section {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 25px;
}
.atk-mealgen .input-panel,
.atk-mealgen .results-panel {
background: #ffffff;
padding: 25px;
border-radius: 15px;
border: 2px solid #66bb6a;
box-shadow: 0 10px 25px rgba(0, 80, 20, 0.1);
}
/* TITLES */
.atk-mealgen .section-title {
font-size: 20px;
font-weight: 700;
color: #1b5e20;
margin-bottom: 20px;
}
.atk-mealgen .section-title::before {
content: “🥑”;
margin-right: 8px;
font-size: 22px;
}
/* FORM */
.atk-mealgen label {
font-size: 14px;
font-weight: 600;
margin: 10px 0 6px;
color: #33691e;
display: block;
}
.atk-mealgen select,
.atk-mealgen input[type=”number”] {
width: 100%;
padding: 10px 12px;
border: 2px solid #a5d6a7;
border-radius: 10px;
background: #ffffff;
color: #1b3d1f;
font-size: 15px;
}
.atk-mealgen select:focus,
.atk-mealgen input[type=”number”]:focus {
outline: none;
border-color: #1b5e20;
box-shadow: 0 0 0 3px rgba(76, 175, 80, 0.2);
}
/* MACRO SUMMARY */
.atk-mealgen .macro-display {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 15px;
margin-top: 10px;
}
.atk-mealgen .macro-card {
background: #f1f8f3;
border: 2px solid #c8e6c9;
border-radius: 10px;
padding: 15px;
text-align: center;
}
.atk-mealgen .macro-label {
font-size: 12px;
font-weight: 600;
color: #33691e;
}
.atk-mealgen .macro-value {
font-size: 26px;
font-weight: 900;
color: #1b5e20;
}
/* BUTTONS */
.atk-mealgen .generate-btn,
.atk-mealgen .export-btn {
width: 100%;
padding: 14px;
font-size: 17px;
font-weight: 700;
border: none;
border-radius: 12px;
color: #ffffff;
cursor: pointer;
margin-top: 16px;
background: linear-gradient(135deg, #2e7d32 0%, #1b5e20 100%);
box-shadow: 0 6px 15px rgba(0, 80, 20, 0.3);
transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.atk-mealgen .generate-btn:hover,
.atk-mealgen .export-btn:hover {
transform: translateY(-2px);
box-shadow: 0 8px 18px rgba(0, 80, 20, 0.35);
}
/* MEAL PLAN */
.atk-mealgen .meal-plan { display: none; }
.atk-mealgen .meal-plan.active { display: block; }
.atk-mealgen .day-section {
background: #ffffff;
border-left: 5px solid #2e7d32;
padding: 20px;
border-radius: 12px;
margin-bottom: 20px;
}
.atk-mealgen .day-title {
font-size: 20px;
color: #1b5e20;
font-weight: 700;
margin-bottom: 12px;
}
.atk-mealgen .meal-item {
background: #f3fff5;
border: 1px solid #c8e6c9;
padding: 15px;
border-radius: 8px;
margin-bottom: 12px;
}
.atk-mealgen .meal-name {
font-size: 16px;
font-weight: 700;
color: #2e7d32;
margin-bottom: 4px;
}
.atk-mealgen .meal-description {
font-size: 14px;
color: #555;
margin-bottom: 4px;
}
.atk-mealgen .meal-macros {
font-size: 12px;
color: #777;
}
/* AFFILIATE SECTION */
.atk-mealgen .affiliate-section {
background: #f1f8f3;
border: 2px solid #a5d6a7;
padding: 25px;
border-radius: 15px;
margin-top: 35px;
}
.atk-mealgen .affiliate-title {
text-align: center;
font-size: 22px;
font-weight: 700;
color: #1b5e20;
margin-bottom: 20px;
}
.atk-mealgen .affiliate-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
gap: 20px;
}
.atk-mealgen .affiliate-card {
background: #ffffff;
border: 2px solid #c8e6c9;
padding: 15px;
border-radius: 12px;
transition: all .3s ease;
}
.atk-mealgen .affiliate-card:hover {
transform: translateY(-5px);
border-color: #2e7d32;
box-shadow: 0 10px 25px rgba(0, 80, 20, 0.15);
}
.atk-mealgen .affiliate-product-name {
font-size: 15px;
font-weight: 700;
color: #1b5e20;
margin-bottom: 8px;
}
.atk-mealgen .affiliate-description {
font-size: 13px;
color: #555;
margin-bottom: 12px;
}
.atk-mealgen .affiliate-btn {
display: block;
text-align: center;
padding: 10px;
font-weight: 700;
color: #ffffff;
border-radius: 8px;
background: linear-gradient(135deg, #2e7d32 0%, #1b5e20 100%);
text-decoration: none;
}
/* DISCLAIMER */
.atk-mealgen .disclaimer {
background: #eaf4eb;
padding: 12px;
border-radius: 8px;
text-align: center;
font-size: 12px;
color: #777;
border: 1px solid #c8e6c9;
margin-top: 20px;
}
/* MOBILE */
@media (max-width: 768px) {
.atk-mealgen .generator-section {
grid-template-columns: 1fr;
}
.atk-mealgen h1 { font-size: 30px; }
.atk-mealgen .macro-display { grid-template-columns: 1fr; }
}
🥑 Keto Meal Plan Generator
AI-smart keto meal plan with macros tailored to your calorie target.
🛍️ Recommended Keto Meal Prep Tools
Rubbermaid Brilliance Food Storage Containers
Airtight, leak-proof containers that keep your keto meal prep fresh for days.
Shop Rubbermaid Brilliance
Crock-Pot 7 Quart Slow Cooker
Set it and forget it—ideal for batch-cooked keto stews, roasts, and shredded meats.
Shop Crock-Pot Slow Cooker
LMNT Electrolyte Drink Mix
Zero-sugar electrolytes that support hydration, energy, and keto flu prevention.
Shop LMNT Electrolytes
CAKETIME Silicone Muffin Pan
Non-stick silicone pan for egg muffins, fat bombs, and keto-friendly snacks.
Shop Silicone Muffin Pan
Instant Pot DUO Multi-Cooker
One-pot keto meals made easy: stews, curries, soups, and shredded meats in minutes.
Shop Instant Pot DUO
KetoSens Blood Ketone Monitor
Track blood ketone levels accurately and see how your meal prep impacts ketosis.
Shop KetoSens Meter
Affiliate Disclaimer: This generator contains affiliate links. I may earn a small commission if you purchase through these links at no extra cost to you. This helps support free keto content.
/* ———————————
RAW MEAL DATABASE (SEO + TAGGED)
———————————-*/
const atkMealsRaw = {
standard: {
breakfast: [
{ name: “Spinach & Feta Egg Muffins”, description: “High-fat keto egg muffins with spinach and feta—perfect for grab-and-go breakfast meal prep.”, macros:{fat:18, protein:15, carbs:2}, protein:”eggs”, style:”baked”, cuisine:”european” },
{ name: “Bacon & Avocado Frittata”, description: “Oven-baked bacon and avocado frittata for a satisfying, low-carb start to your keto day.”, macros:{fat:24, protein:20, carbs:3}, protein:”eggs”, style:”frittata”, cuisine:”american” },
{ name: “Keto Green Smoothie Bowl”, description: “Creamy keto smoothie bowl with spinach, avocado, and protein powder—high in fat, low in net carbs.”, macros:{fat:22, protein:25, carbs:4}, protein:”mixed”, style:”smoothie”, cuisine:”fusion” },
{ name: “Vanilla Chia Seed Pudding”, description: “Coconut milk chia pudding with vanilla and nuts—an easy, make-ahead keto breakfast.”, macros:{fat:20, protein:8, carbs:5}, protein:”seeds”, style:”pudding”, cuisine:”american” },
{ name: “Almond Flour Keto Pancakes”, description: “Fluffy almond flour pancakes with butter and sugar-free syrup for a weekend-style keto breakfast.”, macros:{fat:28, protein:12, carbs:4}, protein:”eggs”, style:”pancake”, cuisine:”american” },
{ name: “Sausage & Egg Breakfast Skillet”, description: “One-pan keto breakfast with sausage, eggs, and low-carb veggies—great for batch cooking.”, macros:{fat:30, protein:24, carbs:5}, protein:”pork”, style:”skillet”, cuisine:”american” },
{ name: “Keto Breakfast Burrito Bowl”, description: “Eggs, cheese, avocado, and salsa in a bowl—keto breakfast burrito without the tortilla.”, macros:{fat:27, protein:20, carbs:5}, protein:”eggs”, style:”bowl”, cuisine:”mexican” },
{ name: “Creamy Scrambled Eggs with Smoked Gouda”, description: “Soft scrambled eggs with smoked gouda for a rich, high-fat keto breakfast.”, macros:{fat:25, protein:18, carbs:2}, protein:”eggs”, style:”scramble”, cuisine:”european” },
{ name: “Greek Omelet with Olives & Feta”, description: “Egg omelet with olives, feta, and spinach for a Mediterranean-inspired keto morning.”, macros:{fat:23, protein:19, carbs:4}, protein:”eggs”, style:”omelet”, cuisine:”mediterranean” },
{ name: “Keto Breakfast Casserole with Sausage”, description: “Protein-packed sausage and egg casserole you can slice for breakfast all week long.”, macros:{fat:29, protein:26, carbs:4}, protein:”pork”, style:”casserole”, cuisine:”american” }
],
lunch: [
{ name: “Chicken Caesar Salad (Keto Style)”, description:”Grilled chicken Caesar salad with pork rind croutons for a high-protein, low-carb lunch.”, macros:{fat:32, protein:35, carbs:4}, protein:”chicken”, style:”salad”, cuisine:”italian” },
{ name: “Tuna Salad Lettuce Wraps”, description:”Creamy tuna salad wrapped in crunchy lettuce—perfect for a light keto meal prep lunch.”, macros:{fat:26, protein:28, carbs:2}, protein:”tuna”, style:”wrap”, cuisine:”american” },
{ name: “Chicken & Broccoli Stir-Fry”, description:”Low-carb chicken stir-fry with broccoli in a savory keto-friendly sauce.”, macros:{fat:24, protein:32, carbs:6}, protein:”chicken”, style:”stir-fry”, cuisine:”asian” },
{ name: “Classic Cobb Salad Bowl”, description:”Loaded Cobb salad with chicken, bacon, avocado, and blue cheese for a filling keto lunch.”, macros:{fat:38, protein:36, carbs:5}, protein:”chicken”, style:”salad”, cuisine:”american” },
{ name: “Keto Beef Burrito Bowl”, description:”Seasoned ground beef over cauliflower rice with cheese and guacamole—Mexican-style keto lunch.”, macros:{fat:34, protein:30, carbs:7}, protein:”beef”, style:”bowl”, cuisine:”mexican” },
{ name: “Turkey Avocado Power Bowl”, description:”Sliced turkey, avocado, and leafy greens for a lean, high-protein keto meal.”, macros:{fat:22, protein:30, carbs:5}, protein:”turkey”, style:”bowl”, cuisine:”american” },
{ name: “Cheeseburger Salad Bowl”, description:”All the flavor of a cheeseburger in a bun-free, keto-friendly salad format.”, macros:{fat:35, protein:32, carbs:5}, protein:”beef”, style:”salad”, cuisine:”american” },
{ name: “Egg Roll in a Bowl”, description:”Deconstructed egg roll with pork, cabbage, and sesame oil for a quick keto stir-fry lunch.”, macros:{fat:30, protein:28, carbs:7}, protein:”pork”, style:”stir-fry”, cuisine:”asian” },
{ name: “Buffalo Chicken Lettuce Boats”, description:”Shredded buffalo chicken in lettuce cups with ranch for a spicy keto lunch.”, macros:{fat:28, protein:30, carbs:3}, protein:”chicken”, style:”wrap”, cuisine:”american” },
{ name: “Mediterranean Chicken Bowl”, description:”Olives, feta, cucumber, and grilled chicken over cauliflower rice for a fresh keto lunch.”, macros:{fat:31, protein:33, carbs:6}, protein:”chicken”, style:”bowl”, cuisine:”mediterranean” }
],
dinner: [
{ name: “Slow Cooker Beef Stew”, description:”Comforting keto beef stew with low-carb vegetables—perfect for batch cooking dinner.”, macros:{fat:28, protein:38, carbs:8}, protein:”beef”, style:”stew”, cuisine:”american” },
{ name: “Zucchini Noodles with Meatballs”, description:”Italian-style zoodles with beef meatballs and sugar-free marinara.”, macros:{fat:32, protein:34, carbs:9}, protein:”beef”, style:”pasta”, cuisine:”italian” },
{ name: “Garlic Butter Grilled Salmon”, description:”Grilled salmon with roasted broccoli and cauliflower rice for a high-omega-3 keto dinner.”, macros:{fat:36, protein:40, carbs:6}, protein:”salmon”, style:”grill”, cuisine:”mediterranean” },
{ name: “Taco-Seasoned Beef Salad”, description:”Keto taco salad with seasoned ground beef, cheese, and salsa over crunchy greens.”, macros:{fat:30, protein:32, carbs:5}, protein:”beef”, style:”salad”, cuisine:”mexican” },
{ name: “Cauliflower Crust Keto Pizza”, description:”Low-carb pizza with cauliflower crust, cheese, and pepperoni for a family-friendly keto dinner.”, macros:{fat:34, protein:28, carbs:10}, protein:”cheese”, style:”pizza”, cuisine:”italian” },
{ name: “Creamy Tuscan Chicken Skillet”, description:”Chicken thighs in a creamy garlic sauce with spinach and sun-dried tomatoes.”, macros:{fat:33, protein:37, carbs:7}, protein:”chicken”, style:”skillet”, cuisine:”italian” },
{ name: “Keto BBQ Pulled Pork Bowl”, description:”Slow-cooked pulled pork with sugar-free BBQ sauce over cauliflower mash.”, macros:{fat:38, protein:34, carbs:6}, protein:”pork”, style:”bowl”, cuisine:”american” },
{ name: “Lemon Herb Roast Chicken & Veggies”, description:”Roasted chicken with low-carb vegetables for a classic, macro-friendly keto dinner.”, macros:{fat:29, protein:36, carbs:6}, protein:”chicken”, style:”roast”, cuisine:”european” },
{ name: “Keto Beef Stroganoff over Zoodles”, description:”Creamy beef stroganoff served over zucchini noodles instead of pasta.”, macros:{fat:35, protein:39, carbs:7}, protein:”beef”, style:”skillet”, cuisine:”european” },
{ name: “Shrimp & Sausage Keto Jambalaya”, description:”Low-carb jambalaya packed with shrimp, sausage, and Cajun spices.”, macros:{fat:31, protein:34, carbs:8}, protein:”shrimp”, style:”skillet”, cuisine:”cajun” },
{ name: “Keto Cheeseburger Casserole”, description:”Oven-baked cheeseburger casserole with ground beef and cheese—kid-friendly keto dinner.”, macros:{fat:37, protein:36, carbs:6}, protein:”beef”, style:”casserole”, cuisine:”american” },
{ name: “Thai Coconut Curry Chicken”, description:”Creamy coconut curry chicken with low-carb veggies for a warming keto dinner.”, macros:{fat:34, protein:35, carbs:8}, protein:”chicken”, style:”curry”, cuisine:”asian” }
],
snack: [
{ name: “Celery Sticks with Almond Butter”, description:”Crunchy celery with almond butter for a quick, high-fat keto snack.”, macros:{fat:14, protein:4, carbs:3}, protein:”nuts”, style:”snack”, cuisine:”american” },
{ name: “Cheese Cubes & Olives”, description:”Simple salty keto snack with cheese and olives to boost your fat intake.”, macros:{fat:16, protein:8, carbs:2}, protein:”cheese”, style:”snack”, cuisine:”mediterranean” },
{ name: “Chocolate Keto Fat Bombs”, description:”Cocoa and cream cheese fat bombs for a dessert-style keto fat boost.”, macros:{fat:18, protein:2, carbs:1}, protein:”dairy”, style:”fat-bomb”, cuisine:”american” },
{ name: “Hard-Boiled Eggs & Cherry Tomatoes”, description:”Protein-rich hard-boiled eggs with a few tomatoes for color and crunch.”, macros:{fat:10, protein:12, carbs:2}, protein:”eggs”, style:”snack”, cuisine:”european” },
{ name: “Pork Rinds with Guacamole”, description:”Crispy pork rinds dipped in creamy guacamole—perfect movie-night keto snack.”, macros:{fat:15, protein:8, carbs:3}, protein:”pork”, style:”snack”, cuisine:”mexican” },
{ name: “Pepperoni & Cheese Bites”, description:”Mini keto snack plate with sliced pepperoni and cheese cubes.”, macros:{fat:17, protein:9, carbs:1}, protein:”pork”, style:”snack”, cuisine:”italian” },
{ name: “Cucumber Slices with Ranch Dip”, description:”Refreshing cucumber rounds with a rich, keto-friendly ranch dip.”, macros:{fat:11, protein:3, carbs:3}, protein:”dairy”, style:”snack”, cuisine:”american” },
{ name: “Keto Trail Mix (Nuts & Seeds)”, description:”Almonds, walnuts, and sunflower seeds for a portable keto snack.”, macros:{fat:19, protein:6, carbs:4}, protein:”nuts”, style:”snack”, cuisine:”american” }
]
},
vegetarian: {
breakfast:[
{ name:”Veggie Egg Scramble with Cheese”,description:”Soft scrambled eggs with spinach, mushrooms, and cheese for a vegetarian keto breakfast.”,macros:{fat:20,protein:16,carbs:4},protein:”eggs”,style:”scramble”,cuisine:”american” },
{ name:”Chia Pudding with Nuts & Seeds”,description:”Almond milk chia pudding topped with nuts and seeds for a fiber-rich keto start.”,macros:{fat:22,protein:8,carbs:5},protein:”seeds”,style:”pudding”,cuisine:”american” },
{ name:”Avocado Green Smoothie”,description:”Keto smoothie with avocado, spinach, and low-carb protein powder.”,macros:{fat:24,protein:20,carbs:4},protein:”mixed”,style:”smoothie”,cuisine:”fusion” },
{ name:”Cauliflower Hash Browns & Fried Egg”,description:”Crispy cauliflower hash browns topped with a fried egg for a low-carb brunch.”,macros:{fat:18,protein:6,carbs:6},protein:”eggs”,style:”fried”,cuisine:”american” },
{ name:”Greek Yogurt Parfait (Keto)”,description:”Full-fat Greek yogurt layered with nuts and a few berries for a vegetarian keto breakfast.”,macros:{fat:20,protein:15,carbs:5},protein:”dairy”,style:”bowl”,cuisine:”mediterranean” },
{ name:”Halloumi & Tomato Breakfast Plate”,description:”Grilled halloumi cheese with tomatoes and olives, high in fat and flavor.”,macros:{fat:23,protein:17,carbs:3},protein:”dairy”,style:”plate”,cuisine:”mediterranean” },
{ name:”Keto Veggie Omelet with Feta”,description:”Three-egg omelet loaded with low-carb veggies and feta cheese.”,macros:{fat:24,protein:19,carbs:4},protein:”eggs”,style:”omelet”,cuisine:”mediterranean” },
{ name:”Coconut Flour Breakfast Muffins”,description:”Savory coconut flour muffins with cheese and herbs—easy to meal prep.”,macros:{fat:21,protein:9,carbs:5},protein:”dairy”,style:”baked”,cuisine:”european” },
{ name:”Almond Butter Keto Smoothie”,description:”Creamy almond butter smoothie with low-carb milk for a sweet vegetarian keto breakfast.”,macros:{fat:26,protein:14,carbs:6},protein:”nuts”,style:”smoothie”,cuisine:”american” },
{ name:”Paneer Scramble (Indian Keto)”,description:”Indian-inspired paneer scramble with spices and low-carb vegetables.”,macros:{fat:25,protein:18,carbs:5},protein:”dairy”,style:”scramble”,cuisine:”indian” }
],
lunch:[
{ name:”Caprese Salad with Avocado”,description:”Tomatoes, mozzarella, basil, and avocado drizzled with olive oil for a keto-friendly vegetarian lunch.”,macros:{fat:32,protein:18,carbs:6},protein:”dairy”,style:”salad”,cuisine:”italian” },
{ name:”Cauliflower Steaks with Tahini”,description:”Oven-roasted cauliflower steaks topped with tahini sauce and toasted seeds.”,macros:{fat:26,protein:12,carbs:8},protein:”none”,style:”baked”,cuisine:”mediterranean” },
{ name:”Zucchini Lasagna (Meat-Free)”,description:”Layered zucchini, ricotta, and low-carb marinara baked into a hearty vegetarian keto lunch.”,macros:{fat:28,protein:22,carbs:9},protein:”dairy”,style:”casserole”,cuisine:”italian” },
{ name:”Vegetarian Buddha Bowl”,description:”Cauliflower rice bowl with avocado, roasted veggies, and hemp seeds.”,macros:{fat:34,protein:14,carbs:10},protein:”mixed”,style:”bowl”,cuisine:”fusion” },
{ name:”Egg Salad Lettuce Wraps”,description:”Creamy egg salad wrapped in crisp lettuce leaves for a simple vegetarian keto meal.”,macros:{fat:24,protein:16,carbs:2},protein:”eggs”,style:”wrap”,cuisine:”american” },
{ name:”Keto Broccoli Cheddar Soup”,description:”Thick and creamy broccoli cheddar soup for a cozy vegetarian keto lunch.”,macros:{fat:30,protein:16,carbs:8},protein:”dairy”,style:”soup”,cuisine:”american” },
{ name:”Spinach & Feta Stuffed Peppers”,description:”Bell peppers stuffed with spinach, feta, and herbs for a colorful keto meal.”,macros:{fat:27,protein:17,carbs:7},protein:”dairy”,style:”baked”,cuisine:”mediterranean” },
{ name:”Greek Salad with Extra Feta”,description:”Cucumber, tomato, olives, and extra feta cheese for a macro-friendly vegetarian keto lunch.”,macros:{fat:29,protein:12,carbs:7},protein:”dairy”,style:”salad”,cuisine:”mediterranean” },
{ name:”Keto Margherita Egg Cups”,description:”Egg cups with tomato, basil, and mozzarella baked for meal-preppable lunches.”,macros:{fat:23,protein:18,carbs:4},protein:”eggs”,style:”baked”,cuisine:”italian” },
{ name:”Avocado & Halloumi Bowl”,description:”Grilled halloumi with avocado and leafy greens for a satisfying vegetarian keto bowl.”,macros:{fat:35,protein:20,carbs:6},protein:”dairy”,style:”bowl”,cuisine:”mediterranean” }
],
dinner:[
{ name:”Eggplant Parmesan (Low Carb)”,description:”Breaded eggplant slices baked with marinara and mozzarella for a classic vegetarian keto dinner.”,macros:{fat:30,protein:20,carbs:12},protein:”dairy”,style:”baked”,cuisine:”italian” },
{ name:”Tofu & Veggie Stir-Fry”,description:”Crispy tofu with low-carb vegetables in a savory keto stir-fry sauce.”,macros:{fat:26,protein:24,carbs:8},protein:”tofu”,style:”stir-fry”,cuisine:”asian” },
{ name:”Portobello Mushroom Pizzas”,description:”Portobello caps topped with marinara, mozzarella, and keto-friendly toppings.”,macros:{fat:22,protein:18,carbs:7},protein:”dairy”,style:”pizza”,cuisine:”italian” },
{ name:”Spinach Artichoke Casserole”,description:”Rich spinach and artichoke bake in a creamy cheese sauce.”,macros:{fat:32,protein:16,carbs:6},protein:”dairy”,style:”casserole”,cuisine:”american” },
{ name:”Cauliflower Mac & Cheese”,description:”Roasted cauliflower smothered in cheese sauce for a comforting vegetarian keto dinner.”,macros:{fat:28,protein:14,carbs:8},protein:”dairy”,style:”casserole”,cuisine:”american” },
{ name:”Paneer Butter Masala (Keto)”,description:”Indian paneer curry in a creamy tomato sauce served over cauliflower rice.”,macros:{fat:33,protein:21,carbs:9},protein:”dairy”,style:”curry”,cuisine:”indian” },
{ name:”Keto Ratatouille with Cheese”,description:”Mediterranean vegetable medley baked with olive oil and cheese.”,macros:{fat:25,protein:10,carbs:9},protein:”dairy”,style:”baked”,cuisine:”mediterranean” },
{ name:”Stuffed Zucchini Boats (Cheese & Veg)”,description:”Zucchini boats filled with cheesy veggie mixture baked until golden.”,macros:{fat:27,protein:15,carbs:7},protein:”dairy”,style:”baked”,cuisine:”european” },
{ name:”Keto Mushroom Stroganoff”,description:”Creamy mushroom stroganoff served over zucchini noodles.”,macros:{fat:29,protein:11,carbs:8},protein:”dairy”,style:”skillet”,cuisine:”european” },
{ name:”Halloumi & Veggie Grill Plate”,description:”Grilled halloumi and low-carb vegetables drizzled with olive oil.”,macros:{fat:30,protein:20,carbs:6},protein:”dairy”,style:”grill”,cuisine:”mediterranean” },
{ name:”Keto Spinach Feta Pie”,description:”Crustless spinach and feta pie inspired by spanakopita, but low carb.”,macros:{fat:28,protein:18,carbs:6},protein:”dairy”,style:”baked”,cuisine:”mediterranean” },
{ name:”Broccoli Cheddar Bake”,description:”Baked broccoli and cheddar casserole perfect for vegetarian keto meal prep.”,macros:{fat:31,protein:19,carbs:7},protein:”dairy”,style:”casserole”,cuisine:”american” }
],
snack:[
{ name:”Macadamia Nuts”,description:”High-fat macadamia nuts for an easy vegetarian keto snack on busy days.”,macros:{fat:16,protein:2,carbs:2},protein:”nuts”,style:”snack”,cuisine:”american” },
{ name:”Cucumber & Herb Cream Cheese Bites”,description:”Cucumber rounds topped with herb cream cheese for a refreshing low-carb snack.”,macros:{fat:12,protein:4,carbs:2},protein:”dairy”,style:”snack”,cuisine:”american” },
{ name:”Veggie Sticks with Keto Ranch”,description:”Celery and bell peppers dipped in a rich, homemade keto ranch dressing.”,macros:{fat:14,protein:2,carbs:3},protein:”dairy”,style:”snack”,cuisine:”american” },
{ name:”Baked Cheese Crisps”,description:”Crispy oven-baked cheese chips for a crunchy keto snack.”,macros:{fat:10,protein:12,carbs:1},protein:”dairy”,style:”chips”,cuisine:”american” },
{ name:”Avocado with Sea Salt & Lime”,description:”Half an avocado with lime and salt for a quick healthy fat boost.”,macros:{fat:15,protein:2,carbs:3},protein:”none”,style:”snack”,cuisine:”mexican” },
{ name:”Keto Caprese Skewers”,description:”Mozzarella, tomato, and basil skewers drizzled with olive oil.”,macros:{fat:11,protein:7,carbs:3},protein:”dairy”,style:”snack”,cuisine:”italian” },
{ name:”Greek Yogurt & Walnut Cup”,description:”Small bowl of full-fat yogurt topped with walnuts for a satisfying snack.”,macros:{fat:13,protein:9,carbs:4},protein:”dairy”,style:”bowl”,cuisine:”mediterranean” },
{ name:”Stuffed Mini Peppers with Cheese”,description:”Mini bell peppers stuffed with herbed cream cheese.”,macros:{fat:12,protein:5,carbs:4},protein:”dairy”,style:”snack”,cuisine:”mediterranean” }
]
},
“dairy-free”: {
breakfast:[
{ name:”Coconut Flour Keto Pancakes”,description:”Dairy-free coconut flour pancakes cooked in coconut oil for a fluffy keto breakfast.”,macros:{fat:22,protein:8,carbs:5},protein:”eggs”,style:”pancake”,cuisine:”american” },
{ name:”Veggie Scramble (No Cheese)”,description:”Simple egg scramble with spinach and mushrooms cooked in olive oil.”,macros:{fat:18,protein:16,carbs:4},protein:”eggs”,style:”scramble”,cuisine:”american” },
{ name:”Coconut Milk Chia Pudding”,description:”Chia pudding soaked in coconut milk with a few berries for flavor.”,macros:{fat:20,protein:6,carbs:6},protein:”seeds”,style:”pudding”,cuisine:”american” },
{ name:”Avocado Baked Eggs (Dairy-Free)”,description:”Eggs baked inside avocado halves for a filling dairy-free keto breakfast.”,macros:{fat:24,protein:14,carbs:3},protein:”eggs”,style:”baked”,cuisine:”american” },
{ name:”Green Coconut Keto Smoothie”,description:”Dairy-free smoothie with coconut milk, avocado, and greens.”,macros:{fat:26,protein:22,carbs:4},protein:”mixed”,style:”smoothie”,cuisine:”fusion” },
{ name:”Turkey & Spinach Breakfast Hash”,description:”Ground turkey and spinach sautéed for a protein-focused keto breakfast.”,macros:{fat:19,protein:24,carbs:4},protein:”turkey”,style:”skillet”,cuisine:”american” },
{ name:”Almond Butter Breakfast Bowl”,description:”Almond butter, coconut flakes, and seeds in a bowl for a quick dairy-free breakfast.”,macros:{fat:25,protein:10,carbs:6},protein:”nuts”,style:”bowl”,cuisine:”american” },
{ name:”Keto Shakshuka (No Cheese)”,description:”Eggs poached in spicy tomato sauce for a dairy-free Mediterranean breakfast.”,macros:{fat:21,protein:17,carbs:7},protein:”eggs”,style:”skillet”,cuisine:”mediterranean” },
{ name:”Sardine & Avocado Breakfast Plate”,description:”Sardines and avocado drizzled with olive oil—nutrient-dense keto breakfast.”,macros:{fat:27,protein:21,carbs:2},protein:”sardines”,style:”plate”,cuisine:”mediterranean” },
{ name:”Dairy-Free Breakfast Sausage Patties”,description:”Homemade breakfast sausage patties served with sautéed greens.”,macros:{fat:24,protein:20,carbs:3},protein:”pork”,style:”skillet”,cuisine:”american” }
],
lunch:[
{ name:”Grilled Chicken Salad with Olive Oil”,description:”Chicken salad with mixed greens, avocado, and extra-virgin olive oil dressing.”,macros:{fat:28,protein:36,carbs:4},protein:”chicken”,style:”salad”,cuisine:”american” },
{ name:”Lemon Salmon Salad Bowl”,description:”Flaky baked salmon over arugula with lemon and olive oil.”,macros:{fat:32,protein:38,carbs:3},protein:”salmon”,style:”salad”,cuisine:”mediterranean” },
{ name:”Beef & Broccoli Stir-Fry (Dairy-Free)”,description:”Coconut aminos stir-fry with tender beef and broccoli florets.”,macros:{fat:26,protein:34,carbs:6},protein:”beef”,style:”stir-fry”,cuisine:”asian” },
{ name:”Chicken Lettuce Wraps (Asian Style)”,description:”Ground chicken with ginger and garlic served in lettuce cups.”,macros:{fat:22,protein:32,carbs:4},protein:”chicken”,style:”wrap”,cuisine:”asian” },
{ name:”Tuna Avocado Boats (No Dairy)”,description:”Tuna salad with mayo spooned into avocado halves for a creamy keto lunch.”,macros:{fat:34,protein:28,carbs:4},protein:”tuna”,style:”bowl”,cuisine:”american” },
{ name:”Beef Taco Salad (Dairy-Free)”,description:”Taco-seasoned beef over lettuce with salsa and avocado.”,macros:{fat:29,protein:33,carbs:6},protein:”beef”,style:”salad”,cuisine:”mexican” },
{ name:”Mediterranean Sardine Bowl”,description:”Sardines, olives, cucumbers, and tomatoes with olive oil.”,macros:{fat:31,protein:26,carbs:5},protein:”sardines”,style:”bowl”,cuisine:”mediterranean” },
{ name:”Chicken Zoodle Soup”,description:”Light chicken soup with zucchini noodles instead of pasta.”,macros:{fat:15,protein:28,carbs:5},protein:”chicken”,style:”soup”,cuisine:”american” },
{ name:”Pulled Pork Lettuce Cups”,description:”Slow-cooked pulled pork served in lettuce leaves for a quick lunch.”,macros:{fat:30,protein:29,carbs:4},protein:”pork”,style:”wrap”,cuisine:”american” },
{ name:”Coconut Curry Veggie Bowl”,description:”Coconut curry vegetables over cauliflower rice for a dairy-free keto lunch.”,macros:{fat:27,protein:10,carbs:8},protein:”none”,style:”bowl”,cuisine:”asian” }
],
dinner:[
{ name:”Herb-Crusted Pork Chops”,description:”Juicy pork chops baked with herbs and served with low-carb veggies.”,macros:{fat:30,protein:36,carbs:6},protein:”pork”,style:”grill”,cuisine:”american” },
{ name:”Lemon Garlic Salmon & Asparagus”,description:”Pan-seared salmon with asparagus and lemon for a simple dairy-free keto dinner.”,macros:{fat:34,protein:40,carbs:4},protein:”salmon”,style:”pan-sear”,cuisine:”mediterranean” },
{ name:”Beef Stew (Dairy-Free)”,description:”Slow-cooked beef stew with celery, radish, and herbs instead of potatoes.”,macros:{fat:28,protein:38,carbs:8},protein:”beef”,style:”stew”,cuisine:”american” },
{ name:”Coconut Chicken Curry”,description:”Chicken simmered in coconut milk curry served over cauliflower rice.”,macros:{fat:32,protein:34,carbs:7},protein:”chicken”,style:”curry”,cuisine:”asian” },
{ name:”Stuffed Bell Peppers (Beef & Veg)”,description:”Peppers stuffed with ground beef and veggies for a simple dairy-free keto dinner.”,macros:{fat:26,protein:32,carbs:9},protein:”beef”,style:”baked”,cuisine:”american” },
{ name:”Roasted Chicken Thighs & Brussels Sprouts”,description:”Sheet pan chicken and Brussels sprouts with olive oil and herbs.”,macros:{fat:29,protein:33,carbs:7},protein:”chicken”,style:”roast”,cuisine:”european” },
{ name:”Shrimp Zoodle Alfredo (Dairy-Free)”,description:”Shrimp and zucchini noodles tossed in a creamy coconut cream sauce.”,macros:{fat:31,protein:35,carbs:7},protein:”shrimp”,style:”skillet”,cuisine:”italian” },
{ name:”Garlic Ginger Beef Lettuce Cups”,description:”Asian-style ground beef served in lettuce cups for a handheld keto dinner.”,macros:{fat:27,protein:32,carbs:6},protein:”beef”,style:”wrap”,cuisine:”asian” },
{ name:”Sausage & Cabbage Skillet”,description:”One-pan sausage and cabbage with spices for a budget-friendly keto dinner.”,macros:{fat:33,protein:23,carbs:7},protein:”pork”,style:”skillet”,cuisine:”european” },
{ name:”Spicy Turkey Meatballs & Veg”,description:”Baked turkey meatballs served with roasted low-carb vegetables.”,macros:{fat:25,protein:34,carbs:6},protein:”turkey”,style:”baked”,cuisine:”american” },
{ name:”Eggplant & Beef Coconut Curry”,description:”Eggplant and ground beef in a rich coconut curry sauce.”,macros:{fat:34,protein:30,carbs:8},protein:”beef”,style:”curry”,cuisine:”asian” },
{ name:”Tandoori Chicken Drumsticks”,description:”Oven-baked tandoori chicken with cauliflower rice for a spicy keto dinner.”,macros:{fat:28,protein:35,carbs:6},protein:”chicken”,style:”baked”,cuisine:”indian” }
],
snack:[
{ name:”Mixed Nuts (Almonds, Walnuts, Pecans)”,description:”Simple dairy-free keto snack with mixed nuts to boost healthy fats.”,macros:{fat:16,protein:4,carbs:3},protein:”nuts”,style:”snack”,cuisine:”american” },
{ name:”Sugar-Free Beef Jerky”,description:”Quick protein snack for on-the-go keto days.”,macros:{fat:4,protein:12,carbs:2},protein:”beef”,style:”snack”,cuisine:”american” },
{ name:”Toasted Coconut Chips”,description:”Lightly salted coconut chips for a crunchy, dairy-free keto snack.”,macros:{fat:14,protein:2,carbs:4},protein:”coconut”,style:”chips”,cuisine:”american” },
{ name:”Avocado Slices with Sea Salt”,description:”Sliced avocado with sea salt and black pepper.”,macros:{fat:15,protein:2,carbs:3},protein:”none”,style:”snack”,cuisine:”mediterranean” },
{ name:”Olives & Pickles Plate”,description:”Briny olives and pickles for a savory low-carb snack.”,macros:{fat:12,protein:1,carbs:2},protein:”none”,style:”snack”,cuisine:”mediterranean” },
{ name:”Celery with Sunflower Seed Butter”,description:”Crunchy celery sticks paired with sunflower seed butter for a nut-free option.”,macros:{fat:13,protein:4,carbs:3},protein:”seeds”,style:”snack”,cuisine:”american” },
{ name:”Tuna Cucumber Bites”,description:”Tuna salad spooned onto cucumber rounds for a light high-protein snack.”,macros:{fat:9,protein:11,carbs:2},protein:”tuna”,style:”snack”,cuisine:”american” },
{ name:”Roasted Pumpkin Seeds”,description:”Roasted pumpkin seeds with salt and spices for a crunchy keto snack.”,macros:{fat:12,protein:7,carbs:3},protein:”seeds”,style:”snack”,cuisine:”american” }
]
},
pescatarian: {
breakfast:[
{ name:”Smoked Salmon & Scrambled Eggs”,description:”Classic pescatarian keto breakfast with smoked salmon and soft scrambled eggs.”,macros:{fat:24,protein:22,carbs:2},protein:”salmon”,style:”plate”,cuisine:”european” },
{ name:”Coconut Chia Pudding with Berries”,description:”Coconut milk chia pudding topped with a few low-carb berries.”,macros:{fat:20,protein:8,carbs:5},protein:”seeds”,style:”pudding”,cuisine:”american” },
{ name:”Veggie Omelet with Feta”,description:”Egg omelet loaded with veggies and feta cheese for a Mediterranean keto breakfast.”,macros:{fat:22,protein:18,carbs:3},protein:”eggs”,style:”omelet”,cuisine:”mediterranean” },
{ name:”Keto Avocado Toast on Low-Carb Bread”,description:”Avocado mash on keto bread with everything seasoning.”,macros:{fat:26,protein:10,carbs:6},protein:”eggs”,style:”toast”,cuisine:”american” },
{ name:”Greek Yogurt & Chia Bowl”,description:”Full-fat Greek yogurt with chia seeds and nuts for a high-protein start.”,macros:{fat:20,protein:16,carbs:5},protein:”dairy”,style:”bowl”,cuisine:”mediterranean” },
{ name:”Smoked Salmon Cucumber Rolls”,description:”Cucumber strips rolled with smoked salmon and dill cream cheese.”,macros:{fat:21,protein:19,carbs:3},protein:”salmon”,style:”snack”,cuisine:”northern-european” },
{ name:”Egg & Sardine Breakfast Plate”,description:”Sardines and fried eggs with a squeeze of lemon.”,macros:{fat:27,protein:23,carbs:2},protein:”sardines”,style:”plate”,cuisine:”mediterranean” },
{ name:”Spinach & Goat Cheese Omelet”,description:”Keto omelet with creamy goat cheese and sautéed spinach.”,macros:{fat:25,protein:19,carbs:4},protein:”eggs”,style:”omelet”,cuisine:”european” },
{ name:”Seafood Breakfast Bowl”,description:”Flaked smoked fish, avocado, and greens in a nutrient-dense bowl.”,macros:{fat:24,protein:21,carbs:3},protein:”fish”,style:”bowl”,cuisine:”fusion” },
{ name:”Cottage Cheese & Smoked Salmon Cup”,description:”Cottage cheese topped with smoked salmon and herbs for a quick breakfast.”,macros:{fat:18,protein:20,carbs:4},protein:”dairy”,style:”bowl”,cuisine:”northern-european” }
],
lunch:[
{ name:”Tuna Nicoise Salad (Keto)”,description:”Tuna, eggs, olives, and green beans over mixed greens with olive oil dressing.”,macros:{fat:30,protein:32,carbs:5},protein:”tuna”,style:”salad”,cuisine:”french” },
{ name:”Shrimp Caesar Salad”,description:”Grilled shrimp over romaine with creamy keto Caesar dressing.”,macros:{fat:28,protein:34,carbs:4},protein:”shrimp”,style:”salad”,cuisine:”italian” },
{ name:”Salmon Avocado Lunch Bowl”,description:”Baked salmon with avocado and cauliflower rice for a heart-healthy keto bowl.”,macros:{fat:36,protein:38,carbs:6},protein:”salmon”,style:”bowl”,cuisine:”mediterranean” },
{ name:”Crab Lettuce Wraps”,description:”Crab meat mixed with mayo and herbs served in lettuce cups.”,macros:{fat:24,protein:26,carbs:2},protein:”crab”,style:”wrap”,cuisine:”american” },
{ name:”Mediterranean Sardine Bowl”,description:”Sardines, olives, feta, and cucumber with olive oil.”,macros:{fat:32,protein:24,carbs:5},protein:”sardines”,style:”bowl”,cuisine:”mediterranean” },
{ name:”Spicy Tuna Stuffed Avocado”,description:”Tuna mixed with spicy mayo stuffed into avocado halves for a keto lunch.”,macros:{fat:35,protein:27,carbs:4},protein:”tuna”,style:”bowl”,cuisine:”fusion” },
{ name:”Smoked Mackerel Salad”,description:”Smoked mackerel on greens with lemon and capers.”,macros:{fat:34,protein:29,carbs:3},protein:”mackerel”,style:”salad”,cuisine:”northern-european” },
{ name:”Shrimp & Zoodle Lunch Bowl”,description:”Garlic shrimp served over zucchini noodles with olive oil.”,macros:{fat:25,protein:30,carbs:5},protein:”shrimp”,style:”bowl”,cuisine:”mediterranean” },
{ name:”Seafood Chowder (Keto)”,description:”Creamy low-carb chowder with shrimp and white fish.”,macros:{fat:29,protein:28,carbs:7},protein:”fish”,style:”soup”,cuisine:”american” },
{ name:”Tuna & Olive Tapenade Bowl”,description:”Tuna mixed with olive tapenade over leafy greens.”,macros:{fat:31,protein:30,carbs:4},protein:”tuna”,style:”bowl”,cuisine:”mediterranean” }
],
dinner:[
{ name:”Garlic Butter Shrimp with Zoodles”,description:”Sautéed shrimp in garlic butter served over zucchini noodles.”,macros:{fat:28,protein:36,carbs:6},protein:”shrimp”,style:”saute”,cuisine:”italian” },
{ name:”Baked Cod with Herb Crust”,description:”Herb-crusted cod fillets with roasted asparagus and cauliflower.”,macros:{fat:22,protein:38,carbs:7},protein:”cod”,style:”baked”,cuisine:”european” },
{ name:”Grilled Salmon with Green Beans”,description:”Grilled salmon fillets with buttered green beans for a simple keto dinner.”,macros:{fat:34,protein:40,carbs:5},protein:”salmon”,style:”grill”,cuisine:”mediterranean” },
{ name:”Seafood Coconut Curry”,description:”Mixed seafood simmered in coconut curry sauce over cauliflower rice.”,macros:{fat:30,protein:32,carbs:8},protein:”fish”,style:”curry”,cuisine:”asian” },
{ name:”Seared Tuna Steaks with Bok Choy”,description:”Sesame-crusted tuna steaks served with sautéed bok choy.”,macros:{fat:24,protein:42,carbs:4},protein:”tuna”,style:”grill”,cuisine:”asian” },
{ name:”Lemon Dill Salmon Bake”,description:”Baked salmon with lemon, dill, and olive oil served with low-carb veggies.”,macros:{fat:33,protein:39,carbs:5},protein:”salmon”,style:”baked”,cuisine:”northern-european” },
{ name:”Keto Fish Taco Bowl”,description:”Seasoned white fish, avocado, salsa, and cauliflower rice in a bowl—no tortillas.”,macros:{fat:27,protein:34,carbs:7},protein:”fish”,style:”bowl”,cuisine:”mexican” },
{ name:”Shrimp Scampi over Zoodles”,description:”Garlic and lemon shrimp scampi over zucchini noodles instead of pasta.”,macros:{fat:29,protein:35,carbs:6},protein:”shrimp”,style:”saute”,cuisine:”italian” },
{ name:”Mediterranean Baked Fish Tray”,description:”White fish baked with olives, tomatoes, and herbs for an easy sheet pan dinner.”,macros:{fat:26,protein:34,carbs:6},protein:”fish”,style:”baked”,cuisine:”mediterranean” },
{ name:”Keto Salmon Alfredo Bake”,description:”Baked salmon in a keto Alfredo-style sauce over steamed veggies.”,macros:{fat:36,protein:38,carbs:7},protein:”salmon”,style:”casserole”,cuisine:”italian” },
{ name:”Spicy Prawn Cauliflower Rice Stir-Fry”,description:”Spicy prawns stir-fried with cauliflower rice and veggies.”,macros:{fat:25,protein:33,carbs:7},protein:”shrimp”,style:”stir-fry”,cuisine:”asian” },
{ name:”Garlic Herb Mussels in Broth”,description:”Mussels steamed in garlic herb broth for a light, protein-rich dinner.”,macros:{fat:18,protein:27,carbs:6},protein:”mussels”,style:”soup”,cuisine:”french” }
],
snack:[
{ name:”Seaweed Snacks”,description:”Roasted seaweed sheets for a light, salty pescatarian keto snack.”,macros:{fat:4,protein:2,carbs:1},protein:”seaweed”,style:”snack”,cuisine:”asian” },
{ name:”Sardines in Olive Oil”,description:”Canned sardines in olive oil for a nutrient-dense fatty snack.”,macros:{fat:14,protein:20,carbs:0},protein:”sardines”,style:”snack”,cuisine:”mediterranean” },
{ name:”Smoked Salmon & Cucumber Bites”,description:”Smoked salmon slices on cucumber rounds with herbs.”,macros:{fat:12,protein:16,carbs:1},protein:”salmon”,style:”snack”,cuisine:”northern-european” },
{ name:”Tuna Salad Lettuce Bites”,description:”Tuna salad spooned onto small lettuce leaves for a handheld snack.”,macros:{fat:16,protein:18,carbs:1},protein:”tuna”,style:”snack”,cuisine:”american” },
{ name:”Cheese & Olive Plate”,description:”Assorted cheese and olives to boost fats and satisfy salty cravings.”,macros:{fat:16,protein:8,carbs:2},protein:”dairy”,style:”snack”,cuisine:”mediterranean” },
{ name:”Shrimp Cocktail (Keto Sauce)”,description:”Chilled shrimp with a sugar-free, low-carb cocktail sauce.”,macros:{fat:3,protein:15,carbs:2},protein:”shrimp”,style:”snack”,cuisine:”american” },
{ name:”Mackerel Pâté Cucumber Slices”,description:”Creamy mackerel pâté spread on cucumber slices.”,macros:{fat:13,protein:14,carbs:2},protein:”mackerel”,style:”snack”,cuisine:”northern-european” },
{ name:”Greek Yogurt & Smoked Salmon Cup”,description:”Small portion of Greek yogurt topped with smoked salmon and dill.”,macros:{fat:11,protein:15,carbs:3},protein:”dairy”,style:”bowl”,cuisine:”northern-european” }
]
}
};
/* ———————————
HELPER: GET MEAL POOL PER DIET
Standard uses SHARED pool
———————————-*/
function atkGetMealsForDiet(diet, type) {
if (diet === “standard”) {
// Shared pool: standard + vegetarian + dairy-free + pescatarian
return [
…atkMealsRaw.standard[type],
…atkMealsRaw.vegetarian[type],
…atkMealsRaw[“dairy-free”][type],
…atkMealsRaw.pescatarian[type]
];
}
return atkMealsRaw[diet][type];
}
/* ———————————
MACRO CALCULATIONS
———————————-*/
function atkCalculateMacros() {
const calories = parseFloat(document.getElementById(‘calorieTarget’).value) || 1800;
const fatPercent = (parseFloat(document.getElementById(‘fatPercent’).value) || 75) / 100;
const proteinPercent = (parseFloat(document.getElementById(‘proteinPercent’).value) || 20) / 100;
const carbPercent = (parseFloat(document.getElementById(‘carbPercent’).value) || 5) / 100;
const fatGrams = Math.round((calories * fatPercent) / 9);
const proteinGrams = Math.round((calories * proteinPercent) / 4);
const carbGrams = Math.round((calories * carbPercent) / 4);
document.getElementById(‘fatGrams’).textContent = fatGrams;
document.getElementById(‘proteinGrams’).textContent = proteinGrams;
document.getElementById(‘carbGrams’).textContent = carbGrams;
return { calories, fatGrams, proteinGrams, carbGrams };
}
/* ———————————
MACRO SHARE PER MEAL TYPE
———————————-*/
function atkGetMealCalorieShare(mealType, mealsPerDay) {
if (mealsPerDay === 2) {
if (mealType === ‘lunch’) return 0.45;
if (mealType === ‘dinner’) return 0.55;
} else if (mealsPerDay === 3) {
if (mealType === ‘breakfast’) return 0.30;
if (mealType === ‘lunch’) return 0.35;
if (mealType === ‘dinner’) return 0.35;
} else if (mealsPerDay === 4) {
if (mealType === ‘breakfast’) return 0.25;
if (mealType === ‘lunch’) return 0.30;
if (mealType === ‘dinner’) return 0.35;
if (mealType === ‘snack’) return 0.10;
}
return 0;
}
function atkScaleMealMacros(meal, mealType, mealsPerDay, dailyCalories) {
const base = meal.macros || { fat: 0, protein: 0, carbs: 0 };
const share = atkGetMealCalorieShare(mealType.toLowerCase(), mealsPerDay);
if (!share) return base;
const targetCalories = dailyCalories * share;
const baseCalories = base.fat * 9 + base.protein * 4 + base.carbs * 4;
if (!baseCalories) return base;
const scale = targetCalories / baseCalories;
return {
fat: Math.round(base.fat * scale),
protein: Math.round(base.protein * scale),
carbs: Math.round(base.carbs * scale)
};
}
/* ———————————
SMART AI MEAL PICKER
– No repeats in plan unless pool exhausted
– Avoids repeating protein, style, cuisine
– Looks at last 3 picks per meal type
———————————-*/
function atkPickSmartMeal(type, diet, usedSet, history) {
let pool = atkGetMealsForDiet(diet, type);
// Filter out already used meals if possible
let candidates = pool.filter(m => !usedSet.has(m.name));
if (candidates.length === 0) {
// If we’ve used everything, reset and allow reuse
usedSet.clear();
candidates = pool.slice();
}
const recent = history[type] || [];
let best = null;
let bestScore = -1e9;
candidates.forEach(m => {
let score = 0;
// Base weight for unused
if (!usedSet.has(m.name)) score += 8;
// Recent memory penalties to rotate protein / style / cuisine
recent.forEach(r => {
if (!r) return;
if (r.name === m.name) score -= 100; // hard avoid exact repeat
if (r.protein && m.protein && r.protein === m.protein) score -= 5;
if (r.style && m.style && r.style === m.style) score -= 4;
if (r.cuisine && m.cuisine && r.cuisine === m.cuisine) score -= 3;
});
// Tiny random factor to avoid deterministic output
score += Math.random() * 2;
if (score > bestScore) {
bestScore = score;
best = m;
}
});
const chosen = best || candidates[Math.floor(Math.random() * candidates.length)];
usedSet.add(chosen.name);
const newEntry = {
name: chosen.name,
protein: chosen.protein || “”,
style: chosen.style || “”,
cuisine: chosen.cuisine || “”
};
const updated = [newEntry, …(history[type] || [])].slice(0, 3);
history[type] = updated;
return chosen;
}
/* ———————————
CREATE MEAL DOM ELEMENT
———————————-*/
function atkCreateMealElement(mealType, meal, scaledMacros) {
const macros = scaledMacros || meal.macros;
const wrap = document.createElement(“div”);
wrap.className = “meal-item”;
const macrosLine = `Fat: ${macros.fat}g Protein: ${macros.protein}g Net Carbs: ${macros.carbs}g`;
wrap.innerHTML = `
${mealType}: ${meal.name}
${meal.description}
${macrosLine}
`;
return wrap;
}
/* ———————————
GENERATE MEAL PLAN (SMART ONLY)
———————————-*/
function atkGenerateMealPlan() {
const numDays = parseInt(document.getElementById(‘numDays’).value, 10);
const mealsPerDay = parseInt(document.getElementById(‘mealsPerDay’).value, 10);
const dietPreference = document.getElementById(‘dietPreference’).value;
const macroInfo = atkCalculateMacros();
const dailyCalories = macroInfo.calories;
const container = document.getElementById(‘mealPlanContainer’);
container.innerHTML = ”;
container.classList.add(‘active’);
const dayNames = [‘Monday’,’Tuesday’,’Wednesday’,’Thursday’,’Friday’,’Saturday’,’Sunday’];
const used = {
breakfast: new Set(),
lunch: new Set(),
dinner: new Set(),
snack: new Set()
};
const history = {
breakfast: [],
lunch: [],
dinner: [],
snack: []
};
for (let i = 0; i pageHeight – margin) {
doc.addPage();
y = margin;
}
}
function addHeading(text, size = 20, color = [34, 85, 34]) {
checkPageBreak(size + 10);
doc.setFontSize(size);
doc.setTextColor(…color);
doc.setFont(“helvetica”, “bold”);
doc.text(text, margin, y);
y += size + 8;
}
function addTextBlock(text, size = 12, bottom = 16) {
doc.setFontSize(size);
doc.setTextColor(0);
doc.setFont(“helvetica”, “normal”);
const lines = doc.splitTextToSize(text, pageWidth – margin * 2);
checkPageBreak(lines.length * (size + 2) + bottom);
doc.text(lines, margin, y);
y += lines.length * (size + 2) + bottom;
}
function addDayDivider() {
checkPageBreak(30);
y += 6;
doc.setDrawColor(180);
doc.setLineWidth(0.8);
doc.line(margin, y, pageWidth – margin, y);
y += 16;
}
function addMacrosInline(macroText) {
doc.setFontSize(11);
doc.setFont(“helvetica”, “bold”);
doc.setTextColor(80);
const fat = macroText.match(/Fat:\s*([0-9]+g)/i)?.[1] || “”;
const protein = macroText.match(/Protein:\s*([0-9]+g)/i)?.[1] || “”;
const carbs = macroText.match(/Net Carbs:\s*([0-9]+g)/i)?.[1] || “”;
const col1 = margin;
const col2 = margin + 150;
const col3 = margin + 300;
checkPageBreak(20);
doc.text(`Fat: ${fat}`, col1, y);
doc.text(`Protein: ${protein}`, col2, y);
doc.text(`Net Carbs: ${carbs}`, col3, y);
y += 20;
}
addHeading(“Your Keto Meal Plan”, 24);
const days = document.querySelectorAll(“.day-section”);
days.forEach((day, index) => {
if (index !== 0) addDayDivider();
const title = day.querySelector(“.day-title”).textContent;
addHeading(title, 18, [0, 70, 32]);
const meals = day.querySelectorAll(“.meal-item”);
meals.forEach(meal => {
const name = meal.querySelector(“.meal-name”).textContent;
const desc = meal.querySelector(“.meal-description”).textContent;
const macros = meal.querySelector(“.meal-macros”).textContent.trim();
addHeading(name, 14, [0, 0, 0]);
addTextBlock(desc, 12, 8);
addMacrosInline(macros);
y += 6;
});
y += 10;
});
doc.save(“keto-meal-plan.pdf”);
}
/* ———————————
INIT MACROS
———————————-*/
atkCalculateMacros();
document.getElementById(“calorieTarget”).addEventListener(“input”, atkCalculateMacros);
document.getElementById(“fatPercent”).addEventListener(“input”, atkCalculateMacros);
document.getElementById(“proteinPercent”).addEventListener(“input”, atkCalculateMacros);
document.getElementById(“carbPercent”).addEventListener(“input”, atkCalculateMacros);
Aim for variety to prevent boredom and ensure you’re getting a wide range of nutrients.
Consider incorporating theme nights to add excitement to your menu. For example:
When you hit the store, stick to the perimeter where you’ll find fresh produce, meats, and dairy. Be cautious when venturing into the inner aisles, and always read labels to avoid hidden carbs and sugars.
Once you’re home, start by washing and chopping your vegetables. Prepare large batches of versatile ingredients like:
Cook larger portions of proteins that can be used in many meals throughout the week. For example:
Now it’s time to put everything together. Divide your prepped ingredients into person meal containers, balancing your macronutrients for each meal.
Properly store your prepped meals in airtight containers. Glass containers are ideal as they’re microwave-safe and don’t keep odors.
Label each container with the contents and date to stay organized. This is especially helpful if you’re freezing meals for later in the week or beyond.
Even with careful planning, keto meal prepping can come with challenges. Here are some common pitfalls and strategies to overcome them:
Eating the same meals repeatedly can lead to boredom and temptation to stray from your keto plan.
Prepped vegetables can become limp and unappetizing after a few days in the refrigerator.
Inaccurate portion sizes can lead to consuming too many calories or throwing off your macronutrient balance.
Proper hydration is crucial on a ketogenic diet, but it’s simple to forget when focusing on food prep.
The ketogenic diet can cause electrolyte imbalances, especially in the beginning stages.
Good containers will keep your food fresh longer and make reheating easier. Look for:
Many keto-friendly meals freeze well, allowing you to prep even further in advance. Some freezer-friendly options include:
Label frozen meals with contents and date, and aim to use them within 2-3 months for best quality.
Alternating between different protein sources throughout the week ensures a varied nutrient profile and prevents boredom. Try incorporating:
Having pre-cooked proteins and vegetables on hand allows for more flexibility in meal assembly. This approach can help combat meal fatigue and save time during busy weeks.
Adjust your meal prep strategy as needed based on your results and how you feel.
Some people experience flu-like symptoms when first starting a ketogenic diet. To minimize these effects:
Navigating social events while on keto can be challenging. Try these strategies:
Most keto meal prep foods can last 3-5 days in the refrigerator when stored properly in airtight containers.
Yes, many keto meals freeze well. Soups, stews, casseroles, and person portions of cooked meats and vegetables can be frozen for up to 3 months.
Yes, vegetarian keto meal prep is possible by focusing on plant-based protein sources, low-carb vegetables, and healthy fats like avocados and nuts.
Experiment with different spices, herbs, and cooking methods. Rotate your protein sources and try new low-carb vegetables to keep meals interesting.
Egg muffins, chia seed pudding, keto smoothie packs, and make-ahead breakfast casseroles are all excellent options for quick keto breakfasts.
Try new recipes regularly, incorporate theme nights, and prepare versatile ingredients that can be combined in different ways throughout the week.
Yes, focus on buying in bulk, choosing less expensive cuts of meat, and incorporating budget-friendly proteins like eggs and canned fish.
Prepare keto-friendly versions of your favorite foods, keep low-carb snacks on hand, and ensure you’re eating enough fat and protein to stay satisfied.