Mitochondria Deep Dive

A practical guide for people who train, written for a smart, non-scientist audience.

Where this started. This deep dive began with Dr. Ashley Froese’s video Your Mitochondria Can Reset – Here’s How on her channel This Is Not Covered. Dr. Froese is a family physician who has a real gift for making cell biology clear, practical, and motivating. Her four-phase framework (stop the sabotage, take out the trash, force adaptation, provide raw materials) is the backbone this document is built on. Everything here started as a question her video prompted. Where this document adds nuance or updates a detail (see Appendix A), that’s the natural next step of a deep dive, not a criticism. Her video is the best short introduction to this topic we’ve found, and we recommend watching it first. More of her work: drafroese.com.

Read this first. This is an educational write-up, not medical advice. Talk to your own doctor before starting, stopping, or changing anything, especially medications. Peptides mentioned here are sold largely through an unregulated gray market in 2026. Sourcing deserves serious scrutiny, and using unapproved peptides is prohibited in tested sport (WADA category S0 and others).


How to read this document

The document moves from what it is → how it changes → what to do about it:

PartFocusStatus
1. The MachineryWhat mitochondria are and the key molecules involved✅ Draft
2. Quality ControlHow mitochondria are built, maintained, and recycled✅ Draft
3. Levers and ConflictsTraining, nutrition, supplements, peptides, and where they work against each other✅ Draft
4. MeasurementWhat you can actually test, and what it tells you✅ Draft
5. ApplicationOne core protocol, with adjustments for four types of people✅ Draft
AppendicesA: Video claim check · B: Glossary · C: References✅ Draft

Evidence labels

Every important claim is tagged with how strong the evidence is. This matters because the mitochondria space is full of confident claims built on mouse studies.

  • [Strong]: consistent results across multiple human randomized trials or meta-analyses.
  • [Moderate]: some human trials, but results are mixed, small, or limited to certain groups.
  • [Early]: one or two small human studies, or data only from people with a specific disease.
  • [Mechanistic]: cell studies, animal studies, or biochemical reasoning. Plausible, but not shown to matter in people.

Part 1: The Machinery

1.1 Mitochondria: more than the powerhouse

Mitochondria are descendants of bacteria that moved into our ancestors’ cells roughly two billion years ago and never left. They still carry their own small, circular genome of 37 genes, 13 of which build parts of the energy-making machinery. You inherit them almost entirely from your mother.

Yes, they make most of your ATP. But calling them batteries misses most of what they do. Mitochondria are signaling hubs. They sense nutrients, oxygen, hormones, and stress, and they send signals back to the nucleus and the rest of the body. They help decide when a damaged cell should self-destruct, buffer calcium, generate heat, start the production of steroid hormones like testosterone and cortisol, and alert the immune system when something goes wrong.

They aren’t fixed objects either. In muscle they form a living network that constantly fuses, divides, and recycles worn-out parts. Hard-working tissues like heart, brain, and muscle pack in the most. Mature red blood cells have none.

For anyone who trains, the key point is that your mitochondrial network adapts. It grows with training and shrinks with inactivity. That makes it worth understanding.

Go deeper: Picard & Shirihai, Mitochondrial signal transduction, Cell Metabolism 2022. This review makes the case that mitochondria work as the cell’s information-processing system, not just its power plant.


1.2 ATP and the three energy systems

What ATP is

ATP (adenosine triphosphate) is the energy currency of every cell. It’s a molecule with three phosphate groups attached. Snapping off the last phosphate releases energy that powers muscle contraction, nerve signals, protein building, and nearly everything else. What’s left is ADP (two phosphates), which gets recharged back into ATP.

The key fact: you store very little ATP. At any moment your whole body holds on the order of 100 to 250 grams. Yet standard biochemistry estimates put daily ATP turnover at tens of kilograms, roughly your body weight. Every ATP molecule is recycled hundreds of times a day. Fitness, in energy terms, is how fast and how long you can recharge ADP back into ATP.

Three ways to recharge it

SystemSpeedCapacityDominatesWhere it happens
Phosphocreatine (PCr)FastestTiny, about 10 seconds of max effortSprints, heavy singles, jumpsMuscle fluid (cytosol)
GlycolysisFastModerate; limited by acid buildupRoughly 10 seconds to 2 minutesCytosol
Oxidative (mitochondria)Slowest to ramp upVery largeAnything longer than about 2 minutesMitochondria

These systems don’t take turns. They all run at once, with the mix shifting by intensity and duration. Gastin’s review of the research found that the aerobic system contributes much earlier and more than older textbooks claimed. In an all-out effort, aerobic and anaerobic contributions are roughly equal somewhere between one and two minutes in. [Strong]

Example: A 7 to 10 minute CrossFit workout like Jackie (1000 m row, 50 thrusters, 30 pull-ups) feels like a lactate fest, but most of its total energy is paid for aerobically. Mitochondrial capacity matters a lot for workouts like that, even though local muscular fatigue and skill also play a role.

Source: Gastin, Energy system interaction and relative contribution during maximal exercise, Sports Medicine 2001.

Where creatine fits

Creatine is the backbone of the phosphocreatine system. Muscle stores creatine as phosphocreatine, which can recharge ADP to ATP almost instantly. It also acts as a shuttle: mitochondria hand their newly made energy to creatine, which carries it to the working muscle fibers. So creatine isn’t separate from mitochondrial energy. It’s part of the delivery system.

What the evidence shows:

  • Creatine monohydrate raises muscle creatine stores and improves high-intensity performance and training adaptations. It has a long safety record, including multi-year use in healthy people. [Strong] (ISSN position stand, Kreider et al. 2017)
  • In older adults, creatine combined with resistance training increases lean mass and strength more than training alone, regardless of dosing strategy. [Strong] (Forbes, Candow et al. 2021 meta-analysis)
  • Typical dosing is 3 to 5 g/day. An optional loading phase saturates muscle faster but isn’t necessary.

A less obvious connection to NAD. Your body makes about 1 to 2 grams of creatine a day, and that process is the single largest consumer of methyl groups (from SAMe, the body’s universal methyl donor). Creatine synthesis may use around 40% of them. Taking creatine reduces how much your body has to make, which in theory frees up methyl groups for other jobs. One of those jobs is clearing excess nicotinamide from NAD⁺ boosters (see section 1.5). [Mechanistic] (Brosnan et al. 2011)

Questions worth asking

  • Which energy system limits my performance? Am I gassing out in 30 seconds, or fading at minute 8?
  • Does my training cover all three systems, or just the one I enjoy?
  • Am I taking creatine? For most people who train, especially masters athletes, it’s the best-supported supplement in this whole document.
  • Oral “ATP” supplements exist. Does swallowing ATP even make sense, given how much the body makes and recycles on its own? (Short answer: be skeptical.)

1.3 The electron transport chain (ETC)

What it is

The ETC is the assembly line inside mitochondria that turns food and oxygen into most of your ATP. It sits on the inner mitochondrial membrane, which is folded into ridges called cristae to fit in as many assembly lines as possible.

How it works, in four steps:

  1. Food becomes electrons. Carbohydrates, fats, and proteins are broken down, and their energy is captured as high-energy electrons. Those electrons are carried by NADH (see 1.5) and FADH₂.
  2. Electrons pass down the chain. They hop from Complex I (or II), to Coenzyme Q10, to Complex III, to cytochrome c, to Complex IV, losing a little energy at each step.
  3. That energy pumps protons. The complexes use it to pump protons (H⁺) across the membrane, creating a charge difference like water behind a dam.
  4. ATP synthase is the turbine. Protons flow back through ATP synthase (sometimes called Complex V), which spins and makes ATP.

At the end of the line, electrons are handed to oxygen, which becomes water. That’s why you breathe. VO₂ (oxygen consumption) is literally a measurement of how fast your electron transport chains are running.

The “exhaust”: reactive oxygen species (ROS)

A small fraction of electrons leak out early and react with oxygen to form reactive oxygen species. In excess, ROS damage nearby lipids, proteins, and mitochondrial DNA. But ROS are also signals. A burst of ROS during exercise is one of the ways your muscles learn they need to adapt. This idea is called mitohormesis, and it creates a real conflict with antioxidant supplements (see Part 3).

In one well-known trial, young men took high-dose vitamin C (1000 mg/day) and vitamin E (400 IU/day) during four weeks of training. The supplements blocked the improvement in insulin sensitivity that the training produced in the placebo group, along with the body’s own antioxidant defense response. [Moderate]: a small study in young men, but influential and consistent with other work. (Ristow et al. 2009)

How behavior affects the ETC

FactorEffectEvidence
Endurance and interval trainingMore ETC content and better function in trained muscle[Strong] (covered in detail in Part 2)
StatinsBlock the pathway that makes cholesterol, which also makes CoQ10. They reliably lower circulating CoQ10.[Strong] (Qu et al. 2018 meta-analysis)
CoQ10 supplements for statin muscle symptomsOne meta-analysis found reduced muscle pain and weakness. Other analyses limited to strictly placebo-controlled trials found no benefit.[Moderate] (Qu et al. 2018, JAHA)
Fluoroquinolone antibiotics (e.g., ciprofloxacin)In cell and mouse studies, bactericidal antibiotics at clinical doses caused mitochondrial dysfunction and oxidative damage. Fluoroquinolones already carry FDA boxed warnings for disabling tendon, muscle, and nerve side effects.[Mechanistic] for the mitochondrial link (Kalghatgi et al. 2013)
Chronic stress and poor sleepIn one study, mothers under chronic caregiving stress had lower immune-cell mitochondrial function, and better mood tracked with better function.[Early] (Picard et al. 2018)
Alcohol, excess fructose, oxidized fatsPlausible mechanisms and strong animal data; human data on mitochondria specifically are limited.[Mechanistic]

Questions worth asking

  • Am I on medications that affect this system (statins, certain antibiotics, metformin)? If so, is that a conversation to have with my doctor, not a reason to stop them on my own?
  • Am I taking high-dose antioxidants around training and blunting the signal I’m training for?
  • If I’m on a statin, is CoQ10 worth a trial? (It’s low-risk; the evidence is mixed.)
  • Ubiquinone vs. ubiquinol: is the more expensive “active” form worth it? (Covered in Part 3.)

1.4 Cardiolipin

What it is

Cardiolipin is a fat (phospholipid) found almost exclusively in the inner mitochondrial membrane. It’s also found in bacteria, another clue to where mitochondria came from. It’s unusual: where most membrane fats have two fatty-acid tails, cardiolipin has four, which gives it a cone shape. That shape lets it do jobs other fats can’t:

  • It shapes the cristae. Its cone shape helps the inner membrane bend into its tightly folded ridges, maximizing space for assembly lines.
  • It glues the assembly line together. It binds the ETC complexes and helps organize them into efficient “supercomplexes.”
  • It anchors cytochrome c, one of the electron carriers.
  • It’s a self-destruct signal. When cardiolipin is oxidized, cytochrome c is released and the cell can start programmed death (apoptosis).

Cardiolipin sits right next to where ROS are produced, and its tails are highly unsaturated, so it’s especially vulnerable to oxidative damage. Damaged cardiolipin means looser cristae, less efficient ETC, and more ROS: a downward spiral. [Mechanistic], well established in lab research. (Paradies et al. 2014)

A wrinkle in the “seed oils are bad” story. The main form of cardiolipin in human heart and skeletal muscle is built mostly from linoleic acid, the omega-6 fat that dominates seed oils. That doesn’t settle the seed-oil debate, which is about oxidation, processing, and overall dietary balance. But “omega-6 = bad for mitochondria” is too simple. The real question is oxidized vs. fresh fats, not omega-6 vs. none.

Barth syndrome shows how much cardiolipin matters. It’s a rare genetic disease in which cardiolipin can’t be properly remodeled. The result is heart failure, muscle weakness, and severe fatigue.

Cardiolipin antibodies: what a blood test can and can’t tell you

You can get an anticardiolipin antibody blood test; it’s common and inexpensive. But it is not a test for mitochondrial damage:

  • These antibodies are used mainly to diagnose antiphospholipid syndrome (APS), an autoimmune disorder that causes blood clots and pregnancy complications. In APS the antibodies mostly target cardiolipin bound to a blood protein (β2-glycoprotein I), not cardiolipin leaking from damaged mitochondria. (2023 ACR/EULAR APS classification criteria, Barbhaiya et al.)
  • Antibodies that react with cardiolipin also show up with certain infections. Classic syphilis screening tests (VDRL and RPR) use a cardiolipin-based antigen for this reason. They can also be raised temporarily by other infections and some medications.
  • A positive result usually means “talk to a hematologist or rheumatologist,” not “your mitochondria are damaged.”

What does signal mitochondrial damage? When mitochondria break apart, they release fragments the immune system recognizes as “bacterial,” including mitochondrial DNA and formyl peptides. These act as danger signals and trigger inflammation. (Zhang et al. 2010, Nature) Researchers measure circulating cell-free mitochondrial DNA, along with stress hormones like GDF-15 and FGF-21. These are research and specialist tools, not routine labs yet. Part 4 covers what they can and can’t tell a healthy person.

SS-31 (elamipretide): a peptide that targets cardiolipin

SS-31 is a small peptide that concentrates in the inner mitochondrial membrane and binds cardiolipin directly. In lab studies it stabilizes cristae, preserves electron transport, and blocks cytochrome c’s damaging activity. (Szeto 2014)

The human evidence, honestly summarized:

PopulationWhat happenedEvidence
Barth syndromeFDA accelerated approval (September 2025) as Forzinity, 40 mg/day subcutaneously. Approval rests on improved knee-extensor strength, a surrogate marker; a confirmatory trial is required.[Early/Moderate] (FDA)
Primary mitochondrial myopathy (MMPOWER-3, 218 people, 24 weeks)Missed both primary endpoints (6-minute walk, fatigue). A subgroup with nuclear-DNA mutations may have benefited.[Moderate] negative (Karaa et al. 2023)
Healthy older adults (60–85, with poor mitochondrial function)A single IV dose produced a borderline increase in muscle ATP production capacity right after infusion. The effect was gone by day 7, with no improvement in fatigue resistance.[Early] (Roshanravan et al. 2021)
Healthy athletesNo published trials.None

Takeaway: SS-31 has the most serious clinical program of any mitochondria-targeted peptide, and its mechanism is well understood. But evidence that it improves performance in healthy, trained people doesn’t exist yet. Anecdotes like “my workout time dropped two minutes” are real experiences, but they can’t separate the peptide from training, pacing, familiarity, or expectation. Part 4 covers how to test yourself more rigorously.

Questions worth asking

  • If I see “anticardiolipin antibodies” on a lab report, what does it actually mean? (Usually autoimmune or clotting risk, not mitochondrial damage.)
  • What markers would actually reflect mitochondrial stress, and are any of them useful for me? (Part 4.)
  • For SS-31: what population was the evidence in, what dose and route, and what outcome? Does any of it apply to a healthy athlete?
  • Am I protecting cardiolipin in boring ways first: avoiding oxidized fats, training consistently, not smoking?

1.5 NAD⁺: what it is, and the NMN/NR confusion

What it is

NAD⁺ (nicotinamide adenine dinucleotide) is a molecule built from vitamin B3. It has two very different jobs, and confusing them is the root of most NAD marketing.

Job 1: Electron shuttle (it’s recycled, not used up). NAD⁺ picks up electrons from broken-down food and becomes NADH. NADH delivers those electrons to Complex I of the electron transport chain and turns back into NAD⁺. This cycle happens constantly and doesn’t “spend” NAD.

Job 2: Fuel for signaling and repair enzymes (it’s consumed). Three enzyme families break NAD⁺ apart to do their work:

  • Sirtuins: regulators of metabolism and stress responses.
  • PARPs: DNA repair enzymes, mostly in the nucleus. (The video’s description of PARPs repairing mitochondrial DNA is a stretch; their role inside mitochondria is still debated.)
  • CD38: an immune and inflammation enzyme. CD38 levels rise with age, and in mice CD38 is a main driver of the age-related decline in NAD⁺. It also breaks down NMN. [Mechanistic], with supporting human tissue data. (Camacho-Pereira et al. 2016)

When those enzymes break NAD⁺ apart, the leftover nicotinamide is recycled back into NAD⁺ through a salvage pathway. The bottleneck enzyme in that pathway is called NAMPT.

So NAD⁺ decline with age may be as much a consumption problem (more CD38, more inflammation) as a supply problem. That reframes the supplement question.

The precursor family tree

Tryptophan ──(long route)─────────────────────────┐
Niacin (nicotinic acid) ──(3 steps)───────────────┤
Nicotinamide (NAM) ──NAMPT──┐ ├──► NAD⁺
Nicotinamide riboside (NR) ─┴─► NMN ──(1 step)────┘
  • NAD⁺ pills: largely broken down in the gut before absorption.
  • NAD⁺ IV: popular in clinics, expensive, very little controlled human data. [Early]
  • NMN: one step from NAD⁺. In the U.S., the FDA reversed its 2022 position in September 2025 and confirmed NMN can be sold as a dietary supplement. (Venable summary)
  • NR: two steps from NAD⁺, more clinical trials than NMN.
  • Niacin / nicotinamide: cheap and effective at raising NAD⁺, but niacin causes flushing, and high-dose nicotinamide has its own trade-offs (see methylation below).

Does NMN “work as well as NAD”?

The real questions are: does it raise NAD⁺ where it matters (muscle, brain), and does that change anything you care about?

StudyWhoDoseResultEvidence
Yoshino et al. 202125 prediabetic, overweight postmenopausal women, 10 wkNMN 250 mg/dayImproved muscle insulin sensitivity; no change in blood glucose, blood pressure, lipids, liver fat, or inflammation[Early]
Liao et al. 202148 amateur runners, 6 wk with trainingNMN 300 / 600 / 1200 mg/dayImproved aerobic capacity measures (oxygen use at ventilatory threshold), dose-dependent[Early]
Igarashi et al. 2022Healthy men 65+, 12 wkNMN 250 mg/dayBlood NAD⁺ rose; nominal gains in gait speed and grip; high dropout; industry-funded[Early]
Elhassan et al. 201912 older men, 3 wkNR 1 g/dayMuscle NAD⁺ metabolites rose and inflammatory markers fell, but mitochondrial function didn’t change[Early]
Dollerup et al. 201840 obese, insulin-resistant men, 12 wkNR 2 g/dayNo improvement in insulin sensitivity, metabolism, or body composition[Moderate] null

The pattern: NMN and NR reliably raise NAD⁺ in blood. [Strong] Effects on muscle function, metabolism, and performance are small, inconsistent, and mostly from short, small trials. [Early]

How much NMN? Does weight or age change the dose?

  • Human trials have used 250 to 1200 mg/day. A 4-week safety trial at 1250 mg/day found no safety problems in healthy adults. (Fukamizu et al. 2022)
  • No human study has established a dose by body weight or age. Any formula you see online (e.g., “X mg per kg”) is extrapolated from mice or invented.
  • Age plausibly matters in theory (more CD38 means more breakdown), but that hasn’t been tested as a dosing rule.
  • Supplement quality varies. Third-party testing matters.

The free NAD⁺ booster: exercise

Twelve weeks of training increased muscle NAMPT, the salvage pathway’s bottleneck enzyme, by 12–28% with aerobic training and 25–30% with resistance training. The largest gains were in adults over 55. Fitness (VO₂peak) was the best predictor of NAMPT levels. [Moderate] (de Guia et al. 2019)

The methylation link (and where creatine comes in)

Excess nicotinamide is cleared by an enzyme (NNMT) that uses up methyl groups from SAMe. High-dose B3 can therefore increase methyl demand and raise homocysteine. This is well shown with high-dose nicotinamide, less clear at typical NMN or NR doses. [Mechanistic/Early] (Frontiers in Pharmacology review, 2024)

As covered in 1.2, creatine synthesis is the body’s biggest methyl-group consumer. Supplementing creatine reduces the body’s own creatine production, which may spare methyl groups. Some people also add TMG (trimethylglycine) alongside NAD⁺ precursors for the same reason. That combination makes sense in theory but is [Mechanistic]; it hasn’t been tested as a combination.

Creatine vs. NAD⁺, side by side: both are “energy” molecules, but they do different jobs. NAD⁺ helps make ATP (electron carrier). Creatine helps buffer and deliver ATP (phosphate reserve). One doesn’t replace the other.

Questions worth asking

  • Is my NAD⁺ actually low, and how would I know? (Consumer NAD⁺ blood tests exist; validation is limited. More in Part 4.)
  • Am I training enough to get the free NAMPT boost before paying for precursors?
  • What outcome am I hoping NMN or NR will change, and how will I measure it?
  • Am I considering my methylation load (homocysteine on bloodwork, creatine, TMG) if I’m taking high doses?
  • Is my product third-party tested?

1.6 AMPK, PGC-1α, and MOTS-c

AMPK: the fuel gauge

AMPK (AMP-activated protein kinase) is the cell’s energy sensor. When ATP is being spent faster than it’s replaced, AMP and ADP levels rise and AMPK switches on. Once active, it:

  • Increases glucose uptake into muscle, independent of insulin. This is one reason exercise helps blood sugar even in insulin-resistant people.
  • Increases fat burning.
  • Turns on cleanup (autophagy and mitophagy, covered in Part 2).
  • Turns off building: it inhibits mTOR, the main muscle-growth switch. This is the root of the AMPK vs. mTOR conflict covered in Part 3.
  • Activates PGC-1α, the master switch for making new mitochondria. AMPK directly modifies PGC-1α, and in mice much of AMPK’s effect on muscle genes depends on it. [Mechanistic], foundational. (Jäger et al. 2007)

“How do I get more AMPK?” is the wrong question. You don’t want AMPK on all the time. You want strong, temporary pulses of activation followed by recovery and refueling. What switches it on: exercise (especially hard or long), energy deficit and fasting, and cold exposure. Some drugs (metformin) and compounds (berberine, AICAR) activate it too, with trade-offs covered in Part 3.

Also, exercise reaches PGC-1α through several routes besides AMPK: calcium signaling from muscle contraction, stress-sensing pathways, and adrenaline. That’s one reason no pill fully replaces training.

MOTS-c: the mitochondria’s own exercise signal

MOTS-c is a 16-amino-acid peptide encoded inside mitochondrial DNA, not the nucleus. That makes it a way for mitochondria to send messages to the rest of the body (a “mitokine”).

How it works: MOTS-c disrupts the folate cycle in muscle. That causes a molecule called AICAR to build up, and AICAR activates AMPK. So yes, MOTS-c affects AMPK, indirectly. In mice it prevented diet-induced obesity and age-related insulin resistance. [Mechanistic] (Lee et al. 2015)

What is it for, then? The best current answer is that MOTS-c is part of how muscle responds to exercise:

  • Exercise raises MOTS-c in human muscle and blood. In mice, injected MOTS-c improved physical capacity even when started late in life. [Mechanistic] in mice, [Early] for the human exercise response. (Reynolds et al. 2021)
  • Blood MOTS-c is lower in older men than in younger men, while levels in muscle are higher. That may reflect changes in muscle fiber type with age. [Early]: small, cross-sectional study. (D’Souza et al. 2020)
  • There are no published human trials of injected MOTS-c for performance, body composition, or longevity.
  • It’s prohibited in sport. WADA lists MOTS-c by name as an AMPK activator under S4 (hormone and metabolic modulators). USADA notes it is marketed by wellness clinics despite not being approved for human use. (USADA, 2025 Prohibited List)

The honest pitch for MOTS-c is “an exercise mimetic.” The honest counterpoint is that exercise already raises your own MOTS-c, along with everything else exercise does that MOTS-c doesn’t.

Questions worth asking

  • Am I getting real AMPK pulses (hard training, occasional fasting) and then recovering and refueling properly?
  • Am I stacking AMPK activators (metformin, berberine, MOTS-c, long fasts) in a way that might work against my strength and muscle goals? (Part 3.)
  • What would MOTS-c give me that training doesn’t, and what evidence would convince me?
  • If I compete in tested sport: MOTS-c is explicitly banned.

Part 1 summary: five things to remember

  1. Mitochondria are signaling hubs that adapt. Training is the strongest signal they respond to.
  2. ATP can’t be stockpiled, only recycled. Fitness is recharge rate. Even 7 to 10 minute workouts run mostly on aerobic (mitochondrial) energy.
  3. ROS are both damage and signal. That makes “more antioxidants” a bad default for people who train.
  4. Lab tests and peptides need context. Anticardiolipin antibodies don’t mean mitochondrial damage. SS-31’s evidence is in sick people, not athletes.
  5. NAD⁺ precursors raise blood levels reliably; performance benefits are unproven. Exercise boosts NAD⁺ recycling for free. Creatine is better supported than anything else here.

Part 2: Quality Control

Part 1 covered the machinery. Part 2 covers how your body builds, maintains, and scraps that machinery. This is where training actually changes your mitochondria, and where the “more vs. better” question gets answered.

2.1 The life cycle at a glance

Think of your mitochondria as a fleet that is constantly being expanded, serviced, and retired:

 SIGNAL                BUILD                 MAINTAIN                 RECYCLE
 (energy stress,  ──►  Biogenesis      ──►   Fusion & fission    ──►  Mitophagy
  calcium, ROS,        PGC-1α switches       Network shares parts,    Damaged pieces are
  heat)                on new parts          splits off damage        tagged and digested
        ▲                                                                  │
        └──────────── raw materials are reused to build new parts ◄────────┘

Two points that are easy to miss:

  • You never build a mitochondrion from scratch. New mitochondria come only from growing and dividing existing ones. Biogenesis means expanding the network you already have.
  • Building and recycling are coupled. A healthy system runs both at once. Building new parts without clearing old ones just adds clutter. Clearing without rebuilding means losing capacity.

2.2 Biogenesis: building more

The master switch: PGC-1α

PGC-1α is a “coactivator”: a protein that switches on whole programs of genes at once. When it’s activated, it:

  1. Turns on nuclear genes for mitochondrial proteins. More than 1,000 mitochondrial proteins are encoded in the nucleus, versus only 13 in mitochondrial DNA.
  2. Activates TFAM, which copies mitochondrial DNA so the new parts can be built from both genomes.
  3. Coordinates the assembly of new ETC complexes, new membrane, and new cardiolipin.

As covered in 1.6, AMPK activates PGC-1α directly. But exercise reaches it through several channels at once: calcium released during muscle contraction, the ROS signal, stress-sensing pathways, and adrenaline. That’s why exercise is so much more effective than any single compound that pulls one lever.

What triggers biogenesis in humans

TriggerWhat happensEvidence
Endurance and interval trainingIncreases mitochondrial content and function in muscle. The best-studied trigger by far.[Strong]
Resistance training12 weeks of lifting roughly doubled Complex I–supported respiration and increased it about 1.4-fold with Complex I and II fuels in young men, while also adding lean mass (+4%) and strength (+15%). Lifting isn’t only about muscle size.[Early] (Porter et al. 2015)
HeatHeating one thigh muscle 2 hours/day for 6 days (via diathermy, not a sauna) increased PGC-1α, ETC proteins, and respiratory capacity in that muscle.[Early] (Hafen et al. 2018)
ColdStrong animal data on brown fat and muscle. Human muscle data are limited.[Mechanistic/Early]
Fasting / time-restricted eatingActivates AMPK and related pathways. Little direct evidence of muscle biogenesis in humans.[Mechanistic]

A note on the heat study: sauna is the obvious practical version, but the study used targeted muscle heating, not whole-body sauna. “Sauna builds mitochondria” is a reasonable hypothesis, not a demonstrated fact.


2.3 Dynamics: fusion and fission

In muscle, mitochondria aren’t separate beans floating in the cell. They form a connected network that is constantly reshaping itself.

  • Fusion (driven by proteins called mitofusins and OPA1) merges mitochondria together. This lets them share contents: a mitochondrion with some damaged DNA or proteins can borrow working parts from a neighbor. It also helps distribute energy across the cell.
  • Fission (driven by a protein called Drp1) splits them apart. This lets the cell separate damaged sections so they can be disposed of, and distribute mitochondria when cells divide.

Balance is the point. Too much fusion means damage can’t be isolated. Too much fission leaves a fragmented, inefficient network. In mice, knocking out either the fusion or the fission machinery in muscle sharply reduces exercise performance and mitochondrial function. [Mechanistic] (review: PMC8348122)

There’s no supplement that “tunes” fusion and fission in humans. Exercise appears to keep the cycle active, and that’s mostly supported by animal studies. [Mechanistic]


2.4 Mitophagy: taking out the trash

Why recycle instead of repair?

The video says mitochondria are “terrible at repairing their own DNA.” That’s partly right. Mitochondria do have some DNA repair (base excision repair, which fixes small chemical damage). But they lack several repair systems the nucleus has. The more important point is that each mitochondrion holds multiple copies of its DNA and the cell holds hundreds to thousands of mitochondria. So the efficient strategy is quality control by selection: find the bad units, remove them, and let healthy units grow and divide to replace them. [Mechanistic], well established.

How damaged mitochondria are flagged: PINK1 and Parkin

  1. PINK1 is the sensor. In a healthy mitochondrion, PINK1 is constantly imported and destroyed. When a mitochondrion loses its voltage (membrane potential), PINK1 can’t be imported and builds up on the outside.
  2. Parkin is the tagger. Accumulated PINK1 recruits and activates Parkin, which coats the damaged mitochondrion in “eat me” tags (ubiquitin).
  3. The cell digests it. A membrane wraps around the tagged mitochondrion and delivers it to the lysosome (the cell’s recycling center), where it’s broken down into reusable raw materials.

Mutations in PINK1 and Parkin cause inherited forms of Parkinson’s disease, which shows how important this cleanup is for long-lived cells like neurons. (Narendra, Walker & Youle 2012) There are also other mitophagy routes that respond to low oxygen and energy stress, which exercise can trigger.

Mitophagy appears to decline with age, and exercise appears to restore it. Most of this comes from animal studies. Measuring mitophagy directly in human muscle is technically hard, so human data are thin. [Mechanistic] (review: PMC10142204)

Urolithin A

Urolithin A is made by gut bacteria from ellagitannins, polyphenols found in pomegranates, walnuts, and some berries. Whether you make it depends on your microbiome. Researchers classify people as producers of urolithin A, producers of A plus other urolithins, or non-producers, and the mix shifts with age. (Cortés-Martín et al. 2018) In the lab, urolithin A switches on mitophagy. The question is whether that does anything in people.

StudyWhoDoseResultEvidence
Andreux et al. 2019Healthy, sedentary older adults, up to 4 wk250–1000 mg/daySafe; at 500–1000 mg, changed muscle mitochondrial gene expression and blood markers of fat burning[Early]
Liu et al. 2022Adults 65–90, 4 months1000 mg/dayImproved muscle endurance (hand and leg). No significant improvement in 6-minute walk or peak ATP production vs. placebo[Moderate]
Singh et al. 2022Overweight, sedentary middle-aged adults, 4 months500 or 1000 mg/dayLeg strength up about 12%. Missed its primary endpoint (peak power). VO₂peak and 6-minute walk improved within the 1000 mg group, but not significantly vs. placebo (p = 0.058 and p = 0.098)[Moderate]

Takeaway: Urolithin A has better human evidence than most “mitochondrial” supplements: real randomized trials, real muscle outcomes. The effects are modest, the populations were untrained, and all three trials were run by the company that sells the leading product (Mitopure/Timeline). There are no trials in trained athletes. If you’re a non-producer, supplementing gets you what producers make from food. Whether that adds anything on top of serious training is unknown.


2.5 Is mitochondrial decline caused by aging, or by inactivity?

This question matters most for masters athletes.

The case for aging: In 146 healthy adults aged 18 to 89, muscle mitochondrial DNA, mitochondrial gene activity, and ATP production all fell with age. Lower ATP production tracked with lower aerobic capacity and worse glucose tolerance. (Short et al. 2005) But this was a cross-sectional study, and older people in most populations are also less active.

The case for inactivity: When researchers compared endurance-trained older adults (59–76) with sedentary ones, the trained group did not show the age-related decline in mitochondrial oxidative capacity, and had more mitochondrial protein and DNA. Some age effects remained, but they were small next to the effect of training. (Lanza et al. 2008)

The case for trainability: In a 12-week trial, high-intensity interval training improved mitochondrial respiration in both young and older adults and reversed many age-related differences in muscle proteins, especially mitochondrial ones. Resistance training improved insulin sensitivity and lean mass but not, in that study, mitochondrial respiration. Combined training got most of both. (Robinson et al. 2017)

Bottom line: Some decline is genuinely age-related, but a large share of what we call mitochondrial aging is detraining, and older muscle stays highly trainable. [Moderate–Strong]


2.6 More vs. better, and how to get both

What the research separates

Mitochondrial adaptation has two dimensions that don’t always move together:

  • Content (more): how much mitochondrial machinery you have. It’s usually measured with an enzyme marker called citrate synthase.
  • Function (better): how well each unit of mitochondria works. It’s measured as respiration per unit of mitochondria.

David Bishop’s group has argued that training volume mainly drives content and training intensity mainly drives function. (Bishop, Granata & Eynon 2014; Granata, Jamnick & Bishop 2018) Key studies:

StudyWhat they didWhat happened
Granata et al. 2016aCompared sprint intervals, high-intensity intervals, and moderate continuous trainingOnly sprint intervals improved mitochondrial respiration and raised PGC-1α protein. No protocol changed content markers.
Granata et al. 2016b4 wk normal training, then 20 days of twice-daily training, then 2 wk reduced volumeNormal volume: no change. High volume: respiration and content up 40–50%. After just 2 weeks of reduced volume, most gains were gone.
MacInnis et al. 2017 (counterpoint)One leg did intervals, the other did continuous work, total work matchedOver 2 weeks, the interval leg gained more content and respiration

How to reconcile them: For the same amount of work, intensity is a stronger stimulus. But total volume sets how much machinery you end up with, and the gains reverse within weeks when volume drops. The authors themselves describe the evidence as thin. [Moderate]

Can you get both? Yes.

The evidence supports a combined approach. Details on programming, timing, and conflicts are in Part 3. The structure looks like this:

ComponentWhat it buildsWhy
Aerobic volume (most training minutes at easy to moderate intensity)More: contentVolume is the main driver of content, and easy volume is recoverable
1–2 hard interval or sprint sessions per weekBetter: functionIntensity drives respiratory function and PGC-1α
Resistance training 2–3x per weekMore muscle to house mitochondria, plus improved respirationMuscle mass is the ceiling. Lifting improves respiration too.
ConsistencyKeeps what you builtGains reverse within about 2 weeks of a big volume drop
Heat (optional)Possible small boost[Early] evidence only

Where peptides fit: In theory, SS-31 targets better (cardiolipin and cristae integrity) and MOTS-c amplifies the signal (AMPK). But neither has been tested alongside training in healthy people, so there’s no evidence they add anything to a well-designed program. If you experiment, measure carefully (Part 4) and change one variable at a time.

Questions worth asking

  • Is my weekly training volume enough to build content, or am I doing only short, intense sessions?
  • Am I doing any truly hard interval work, or is everything at the same medium effort?
  • Am I lifting consistently? Muscle is the house mitochondria live in.
  • What happens to my mitochondria during a deload, injury, or vacation? (Gains from a high-volume block can largely disappear within about 2 weeks of cutting volume. Plan deloads so they don’t become accidental detraining.)
  • If I take urolithin A, am I a non-producer who might benefit more, and is the cost worth a modest effect?

Part 2 summary: five things to remember

  1. Mitochondria are a fleet that is constantly being built, serviced, and scrapped. Health depends on all three steps running together.
  2. Exercise is the strongest biogenesis signal because it hits PGC-1α through several channels at once. Lifting counts too.
  3. Mitophagy is quality control by selection. Urolithin A has real but modest human evidence, all of it industry-funded and none of it in athletes.
  4. Much of “mitochondrial aging” is detraining. Trained older adults keep most of their capacity, and older muscle responds strongly to training.
  5. Volume builds more; intensity builds better. Combine aerobic volume, hard intervals, and lifting, and stay consistent, because gains fade within weeks.

Part 3: Levers and Conflicts

Parts 1 and 2 explained how the system works. Part 3 covers what you can pull on, and where those levers work against each other. That second part is where most protocols go wrong: stacking good things without asking whether they cancel out.

3.1 The priority stack

Before the details, here’s the order of importance. Each layer only matters if the ones beneath it are in place.

            ▲   EXPERIMENTAL    Peptides, research compounds          [Mechanistic/Early]
           ▲▲▲  TARGETED        Urolithin A, NAD⁺ precursors, CoQ10   [Early/Moderate]
          ▲▲▲▲▲ PROVEN SUPPS    Creatine, protein, omega-3 (older)    [Strong/Moderate]
        ▲▲▲▲▲▲▲ FOUNDATION      Training, sleep, enough food & protein, [Strong]
                                not sabotaging (alcohol, meds review)

A perfect peptide stack can’t make up for 5 hours of sleep and inconsistent training. The reverse is often true.


3.2 Training

Part 2 established the structure: aerobic volume for more mitochondria, hard intervals for better ones, and lifting for the muscle that houses them. The practical questions are about combining them.

Does cardio kill gains? (The “interference effect”)

The old worry was that endurance work blunts strength and muscle gains through AMPK suppressing mTOR (see 3.7). A 2022 meta-analysis of 43 studies found:

  • Concurrent training does not compromise muscle growth or maximal strength compared with lifting alone. [Strong]
  • It does slightly reduce explosive strength (jumps, power). That effect was clear when both were done in the same session, and disappeared when sessions were at least 3 hours apart. [Moderate]
  • Age, training status, and cycling vs. running didn’t change the results.

(Schumann et al. 2022)

Practical rules:

  • If power matters to you (CrossFit, sport), separate lifting and conditioning by 3+ hours when you can.
  • If you must combine them, do the quality most important to you first.
  • Most people who train for health don’t need to worry about interference at all.

A sample week (for orientation; Part 5 tailors it)

Session typeFrequencyPurpose
Easy aerobic (conversational pace)2–4x, 30–60+ minVolume → content
Hard intervals or sprints1–2xIntensity → function
Resistance training2–3xMuscle mass, strength, respiration
Mixed-modal (e.g., CrossFit metcons)Counts toward the above, but often lands in the “medium-hard” zoneFun and fitness, but rarely truly easy or truly maximal

A note for CrossFit athletes: metcons tend to live in the medium-hard middle. They’re good training, but if all your training lives there, you may be missing both the easy volume and the truly maximal work that drive the two kinds of mitochondrial adaptation.


3.3 Nutrition

Eat enough, and enough protein

  • Energy. Chronic under-eating undermines adaptation. Mitochondria can’t build new machinery without materials. This is a common, quiet problem in lean, hard-training masters athletes. [Strong] as a general principle.
  • Protein. In a meta-analysis of 49 trials, protein supplementation added to gains in strength and muscle during resistance training. The benefit plateaued around 1.6 g/kg/day of total protein. The effect on muscle mass was smaller with increasing age, which fits the idea that older muscle needs a bigger protein signal. [Strong] (Morton et al. 2018)

Carbohydrates: “train low”?

“Train low” means doing some sessions with low carbohydrate stores to amplify the AMPK and PGC-1α signal. The evidence is genuinely split:

  • A “sleep low” protocol in triathletes improved performance. (Marquet et al. 2016)
  • A well-controlled study in elite athletes found no extra benefit over normal carbohydrate intake. Both groups improved about equally. (Gejl et al. 2017)

[Moderate], conflicting. If you try it, use it for easy sessions only. Quality sessions need fuel.

Fasting

Fasting activates AMPK and autophagy, but direct human evidence that it builds muscle mitochondria is limited. [Mechanistic] For lifters, especially masters athletes, the trade-off is protein timing: long fasting windows make it harder to spread enough protein across the day. Fasted easy aerobic sessions are a reasonable middle ground. Fasted heavy lifting and prolonged fasts work against muscle goals.

Fats

  • Omega-3s (EPA/DHA): in healthy adults aged 60–85, about 3–4 g/day of fish-oil omega-3s for 6 months increased thigh muscle volume (~3.6%) and strength vs. a corn-oil control. [Moderate] (Smith et al. 2015) In older adults, omega-3s also reduced mitochondrial ROS production without changing respiration. [Early] (Lalia et al. 2017)
  • Oxidized fats (repeatedly heated fryer oils, rancid oils): reasonable to minimize, as covered in 1.4. [Mechanistic]

Polyphenols and alcohol

  • Polyphenol-rich foods (berries, pomegranate, walnuts, olive oil, tea) are a low-risk way to feed the bacteria that make urolithin A. Unlike high-dose antioxidant pills, food-level polyphenols haven’t been shown to blunt training adaptations.
  • Alcohol is a direct mitochondrial stressor and disrupts sleep, which makes it a double hit. [Mechanistic] for the mitochondrial effect; strong evidence for the sleep effect.

3.4 Recovery: sleep, stress, heat, and cold

Sleep

Five nights of 4 hours of sleep reduced mitochondrial respiration, muscle protein synthesis, and glucose tolerance in young men. A group that added three HIIT sessions during the same sleep restriction avoided those declines. [Early] (Saner et al. 2021)

Two takeaways: sleep loss hits mitochondria directly, and when sleep is unavoidably short, a short hard session may protect you better than skipping training.

Stress

Chronic psychological stress was linked to lower mitochondrial function in one study (1.3). [Early] The practical point is to count life stress as part of your training load.

Heat

Repeated muscle heating increased mitochondrial capacity (2.2). Sauna is a reasonable add-on for recovery and heat adaptation, but its mitochondrial benefit is [Early] at best. Timing doesn’t appear to matter much.

Cold: timing matters a lot

In a 12-week study, men who took a 10-minute cold-water plunge after every strength session gained less muscle and strength than men who did an active cool-down. The cold also blunted muscle-building signals for up to 2 days. [Moderate]: a small study, but a striking result. (Roberts et al. 2015)

Strategy: don’t cold plunge right after lifting if muscle and strength are goals. Use cold on rest days, after conditioning, or several hours away from strength work. (The video promotes cold plunging for mitochondria without mentioning this conflict.)


3.5 Supplements

Creatine, NAD⁺ precursors, and urolithin A were covered in detail in Parts 1 and 2. This table puts everything in one place.

SupplementMitochondrial rationaleBest evidenceRatingNotes
Creatine monohydrateATP buffer and energy shuttleStrength, lean mass, high-intensity performance; strong in older adults[Strong]3–5 g/day. The clear first choice.
Protein (to reach ~1.6 g/kg/day)Raw materials for muscle and mitochondrial proteinsStrength and muscle gains with training[Strong]Food first. Supplement to close gaps.
Omega-3 (EPA/DHA)Membrane composition, ROS reductionMuscle volume and strength in older adults[Moderate]~3–4 g/day in the muscle studies.
CoQ10 / ubiquinolETC electron carrierMixed for statin muscle symptoms[Moderate]Mainly relevant if you’re on a statin.
Urolithin AMitophagyModest strength and endurance gains in untrained older and middle-aged adults[Moderate]500–1000 mg/day. Industry-funded trials.
NMN / NRNAD⁺ precursorsRaises blood NAD⁺; inconsistent functional effects[Early]250–1200 mg/day NMN in trials.
Alpha-lipoic acid (ALA)Mitochondrial enzyme cofactor, antioxidantDiabetic neuropathy symptoms (600 mg/day, IV stronger than oral)[Moderate] for neuropathy, none for performance(Mijnhout et al. 2012)
Acetyl-L-carnitine (ALCAR)Fat transport into mitochondriaModest pain reduction in diabetic neuropathy; high variability between trials[Early/Moderate] for neuropathy, none for performance(Veronese et al. 2017)
High-dose vitamin C / EAntioxidantBlunts training adaptations (see 3.7)Avoid around trainingFood sources are fine.

About ALA and acetyl-L-carnitine: the video is right that they’re used for diabetic neuropathy. That’s a disease setting. There’s no good evidence they improve performance or mitochondrial function in healthy, trained people. ALA is also an antioxidant, so the same timing caution applies.


3.6 Peptides and research compounds

Each compound gets the same profile. “Trial dose” means what was used in published human studies, not a recommendation. None of these has evidence of benefit in healthy, trained people.

SS-31 (elamipretide)

  • What it is: A small peptide that binds cardiolipin in the inner mitochondrial membrane (1.4).
  • Mechanism: Stabilizes cristae and the ETC; reduces harmful cytochrome c activity. Targets mitochondrial quality.
  • Human evidence: FDA accelerated approval for Barth syndrome (2025). Missed primary endpoints in mitochondrial myopathy. A single IV dose produced a borderline, transient ATP increase in older adults. No trials in healthy or trained people.
  • Trial dose: 40 mg/day subcutaneously (Barth label, MMPOWER-3).
  • Sport status: Now an FDA-approved drug, so WADA’s S0 “non-approved substance” category may no longer apply. Check the current WADA list before assuming either way.
  • Bottom line: The most credible mitochondria-targeted peptide, with a real mechanism and real clinical data, but not in healthy people. [Early] for anything performance-related.

MOTS-c

  • What it is: A 16-amino-acid peptide encoded in mitochondrial DNA (1.6).
  • Mechanism: Folate cycle → AICAR → AMPK activation. Amplifies the energy-stress signal.
  • Human evidence: Exercise raises your own MOTS-c. No published human trials of injected MOTS-c.
  • Trial dose: None established in humans.
  • Sport status: Prohibited, listed by name under WADA S4 as an AMPK activator.
  • Bottom line: Interesting mouse data. As an AMPK activator, it carries the same theoretical conflict with muscle growth as metformin (3.7). [Mechanistic]

SLU-PP-332

  • What it is: Not a peptide. It’s a small-molecule activator of estrogen-related receptors (ERRs), which help drive the endurance program in muscle.
  • Mechanism: Shifts muscle toward oxidative (endurance) fiber types and increases fat burning.
  • Human evidence: None. In mice it increased oxidative muscle fibers and running endurance, and reduced obesity. (Billon et al. preprint) No registered human trials.
  • Trial dose: None in humans.
  • Sport status: Unapproved, so it falls under WADA S0.
  • Bottom line: Marketed as “exercise in a bottle” from mouse data alone. [Mechanistic]

5-amino-1MQ

  • What it is: A small-molecule inhibitor of NNMT, the enzyme that methylates nicotinamide (1.5).
  • Mechanism: Blocking NNMT may keep more nicotinamide available for NAD⁺ recycling and spare methyl groups.
  • Human evidence: None. In obese mice it reduced body weight and fat mass without changing food intake. (Neelakantan et al. 2018)
  • Trial dose: None in humans.
  • Sport status: Unapproved, so it falls under WADA S0.
  • Bottom line: Clever biochemistry linking NAD⁺ and methylation, with no human data. [Mechanistic]

General rule for this section: with no human data, you don’t know the effective dose, the side effects, or whether the vial contains what the label says. That’s the real cost of experimenting at this layer.


3.7 The conflicts, and how to manage them

Conflict 1: Antioxidants vs. adaptation

The problem: Training creates a ROS signal that tells muscle to adapt. High-dose antioxidants can mute that signal.

StudyFinding
Ristow et al. 2009Vitamins C + E blocked training-induced gains in insulin sensitivity
Gomez-Cabrera et al. 2008Vitamin C (1 g/day) reduced endurance gains and biogenesis signals (only 5 supplemented men; rat data supportive)
Paulsen et al. 2014In 54 people over 11 weeks, vitamins C + E blunted mitochondrial biogenesis markers but didn’t change VO₂max or running performance

Rating: [Moderate]. The cellular effect is consistent. The performance effect is less clear.

Strategy:

  • Avoid high-dose vitamin C (≥1 g) and E supplements during training blocks, especially around sessions.
  • Get antioxidants from food. Polyphenol-rich diets haven’t shown this problem.
  • Reserve high-dose antioxidants for specific situations (illness, a competition week where adaptation isn’t the goal), and only after discussing it with a professional.

Conflict 2: AMPK vs. mTOR (endurance signal vs. growth signal)

The problem: AMPK (energy stress) suppresses mTOR (building). Stacking fasting, AMPK-activating compounds, and long conditioning sessions can tilt the balance away from muscle, which is the opposite of what masters athletes need.

What the evidence says: For training itself, the interference is smaller than feared. Concurrent training doesn’t hurt hypertrophy or maximal strength (3.2). The bigger risk is chronic, compounded AMPK activation: training, plus long fasts, plus AMPK drugs or peptides, plus under-eating.

Strategy:

  • Pulse, don’t flood. Let AMPK spike during training, then switch to building: eat protein and carbohydrate after sessions.
  • Keep fasting to easy days or easy sessions. Don’t lift fasted when muscle is the goal.
  • Separate lifting and hard conditioning by 3+ hours when power matters.
  • Be skeptical of adding AMPK activators (MOTS-c, berberine, metformin) on top of a training program that already provides the signal.

Conflict 3: Metformin (and other AMPK activators) vs. training

The evidence is human, randomized, and in older adults:

StudyWhoFinding
Konopka et al. 201953 older adults (average age 62), 12 weeks of aerobic trainingMetformin blunted gains in VO₂max and insulin sensitivity and eliminated the increase in mitochondrial respiration. Responses varied widely between people.
Walton et al. 2019 (MASTERS)94 adults 65+, 14 weeks of resistance training, 1700 mg/dayMetformin reduced gains in lean mass and thigh muscle. Strength trended lower.

Rating: [Moderate–Strong]. Two independent randomized trials agree.

Strategy:

  • If you take metformin for diabetes or prediabetes, don’t stop it on your own. Its benefits in that setting are real. Discuss timing or alternatives with your doctor.
  • If you’re considering metformin purely for longevity and you train, the current evidence suggests it may cost you some of your training gains.
  • Berberine activates AMPK through a similar route. There are no human training studies, but the same concern applies in theory. [Mechanistic]

Conflict 4: Cold plunge vs. strength gains

Covered in 3.4. Regular cold immersion right after lifting reduced muscle and strength gains. [Moderate]

Strategy: keep cold away from strength sessions (rest days, after conditioning, or several hours later).

Conflict 5: Too many stressors at once

Fasting, cold, heat, hard training, poor sleep, and life stress are all stressors. Each is useful in the right dose. Together, they can exceed your ability to recover, especially past 40, when recovery is slower. This is the least studied conflict and probably the most common one among biohackers. (No direct research here. This is practical judgment, not an evidence rating.)

Strategy: add one stressor at a time, and track recovery (resting heart rate, HRV, sleep, motivation, performance; see Part 4).


Questions worth asking

  • Is my foundation solid (sleep, consistent training, enough food and protein) before I add anything from the upper layers?
  • Am I taking anything that might be cancelling my training: high-dose antioxidants, metformin, cold plunges after lifting?
  • Am I stacking AMPK activators (fasting, berberine, MOTS-c) when what I actually need is more building?
  • For any peptide or research compound: what human evidence exists, what dose was tested, how do I know the product is what it says, and how will I measure whether it worked?
  • If I compete in tested sport: what’s the current WADA status of everything I take?

Part 3 summary: five things to remember

  1. Foundation first. Training, sleep, food, and protein outrank every supplement and peptide.
  2. Cardio doesn’t kill muscle gains. Separate hard sessions by 3+ hours when power matters.
  3. Some popular “health” moves cancel training benefits: high-dose antioxidants, metformin for longevity, and cold plunges right after lifting.
  4. Creatine, protein, and omega-3s are the supplements with real support. Most “mitochondrial” supplements are early-stage, and some are only proven for disease.
  5. Peptides and research compounds have little to no human data in healthy people. If you experiment, change one thing at a time and measure it (Part 4).

Part 4: Measurement

Everything in Parts 1–3 leads to one practical question: how do you know if anything is working? Nobody can look at your mitochondria directly outside a research lab. But you can measure what they do, and you can set up your own tests so the results mean something.

4.1 Why “it felt like it worked” isn’t enough

Any time you retest yourself, the result is a mix of the real effect and noise:

  • Day-to-day variation. Even well-controlled performance tests vary by about 1–2% between attempts. Less controlled tests vary more.
  • Learning effect. The first repeat of a test is noisier and usually better. In a large review of test reliability, variation between the first two trials was 1.3 times larger than between later trials. (Hopkins, Schabort & Hawley 2001)
  • Training. If you’re training while you test a supplement or peptide, both are changing at once.
  • Expectation. Knowing you took something can change how hard you push.

None of this means anecdotes are worthless. It means a single before-and-after comparison can’t tell you why you improved. Section 4.5 shows how to set up a test that can.


4.2 Field tests (cheap, repeatable, and most useful)

These are the workhorses. They don’t measure mitochondria directly, but they track the outputs mitochondria drive.

TestWhat it reflectsHow to do it wellNotes
Fixed-effort heart rate testAerobic efficiency. As mitochondrial capacity improves, the same work costs less heart rate.Same equipment, same pace or power (e.g., 20 min rowing at a fixed split), same time of day. Record average HR and how much it drifts upward over the session.The best mitochondria-focused field test. It’s submaximal, so it’s easy to repeat and doesn’t depend on motivation.
Aerobic time trial (2k row, 5k run, 20-min bike power)Aerobic capacity plus pacing and gritSame course or machine, warm-up, caffeine, and food.Well-standardized time trials vary only about 1–2%.
Benchmark workouts (e.g., Jackie)Mixed: aerobic capacity, muscular endurance, skill, pacingSame standards, equipment, and warm-up. Note any rest or pacing changes.Real-world and motivating, but too many moving parts to explain why you improved. Pair it with a fixed-effort HR test.
Heart rate recoveryCardiovascular fitness and nervous-system recoveryHR drop in the first 60 seconds after a standardized hard effort.Easy to add to any test.
Resting HR and HRV (morning, wearable)Recovery and overall training load, not mitochondria directlyMeasure daily and watch weekly trends, not single days.HRV-guided training gave modest gains in some studies. [Moderate] (Granero-Gallegos et al. 2020)
Grip strengthOverall strength and agingHand dynamometer, best of 3, same hand position.Every 5 kg lower grip strength was linked to 16% higher all-cause mortality in 140,000 people. That’s an association, not proof that grip training helps. [Strong] for prediction. (Leong et al., Lancet 2015)
Wearable VO₂max estimateRough aerobic fitnessUse the same device, and use exercise-based estimates (from runs or rides), not resting estimates.Useful for trends, unreliable for absolute numbers. Individual errors can exceed ±10 ml/kg/min. (Molina-Garcia et al. 2022)

4.3 Lab tests (more precise, cost money)

TestWhat it measuresWhy it mattersPracticality
VO₂max (CPET on a metabolic cart)Maximum oxygen use, the ceiling of your whole aerobic systemOne of the strongest predictors of lifespan we have. In 122,000 adults, low fitness carried about 5x the risk of death of elite fitness, with no upper limit to the benefit. (Mandsager et al. 2018) Each 1-MET increase in fitness is linked to roughly 13% lower all-cause mortality. (Kodama et al. 2009) [Strong]Sports labs, some clinics and gyms. Once or twice a year is plenty.
Lactate thresholdThe intensity where lactate starts to accumulate, closely tied to mitochondrial capacityPredicts endurance performance better than VO₂max for many athletesLab test, or DIY with a finger-stick lactate meter and a step test
Fat oxidation / RER curveHow much fat vs. carbohydrate you burn at each intensity (“metabolic flexibility”)Fat oxidation and lactate were almost perfect mirror images (r ≈ −0.97) across pro athletes, active people, and people with metabolic syndrome. Both reflect mitochondrial capacity. [Early] (San-Millán & Brooks 2018)Usually done during the same metabolic-cart test as VO₂max
DEXA body compositionLean mass, fat mass, bone densityMuscle is where most of your mitochondria live. Losing lean mass means losing capacity.Affordable, widely available. Once or twice a year.

Research-only tests (good to know about)

  • ³¹P-MRS (phosphocreatine recovery): an MRI-based scan that measures how fast muscle rebuilds phosphocreatine after exercise. It’s the best non-invasive measure of mitochondrial capacity, highly reproducible (CV about 4.6%), and it tracks lab measurements on biopsied mitochondria. (Lanza et al. 2011) It’s mostly limited to research centers.
  • NIRS (near-infrared spectroscopy): small sensors on the skin that track muscle oxygen use. In a lab study, NIRS recovery times closely matched ³¹P-MRS. (Ryan et al. 2013) Consumer NIRS devices exist, but their protocols aren’t standardized. [Early]
  • Muscle biopsy with respirometry: the gold standard used in most of the studies in this document. Research only.

4.4 Blood markers: what’s useful, what’s not

Context labs worth having

These don’t measure mitochondria. They measure the inputs and conditions that affect mitochondria, and they catch fixable problems.

MarkerWhy it matters here
HbA1c, fasting glucose and insulinInsulin resistance and mitochondrial dysfunction travel together
Lipid panelCardiovascular risk. Also relevant if you’re on or considering a statin (1.3)
Ferritin and iron panelIron is built into the ETC. Low iron limits aerobic capacity, and it’s common in endurance athletes
Vitamin B12, folate, homocysteineMethylation status. Worth checking if you take high-dose NAD⁺ precursors (1.5)
Thyroid (TSH, free T4)Thyroid hormone is a major driver of mitochondrial activity and metabolic rate
Vitamin D, magnesiumCommon deficiencies. ATP functions mostly in a magnesium-bound form
CK (creatine kinase)Muscle damage and training load. Interpret in light of recent training

Specialty “mitochondrial” markers

MarkerWhat it isUseful for a healthy person?
FGF-21 and GDF-15Stress hormones released by cells with mitochondrial dysfunctionNo, not for tracking. They’re useful for diagnosing mitochondrial disease (GDF-15: about 76% sensitivity, 86% specificity). But GDF-15 also rises in many unrelated conditions and with metformin. (Lehtonen et al. 2016)
Circulating cell-free mtDNAMitochondrial DNA fragments in bloodNo. Too reactive. A brief psychological stress test raised it 2–3x in healthy adults. (Trumpff et al. 2019)
Blood mtDNA copy numberCopies of mitochondrial DNA per blood cellNo. Largely reflects which white blood cells are in the sample, not mitochondrial health. (Picard 2021)
Acylcarnitine profileByproducts of fat burning in mitochondriaNot yet. Used to screen for inherited metabolic disease, and as a secondary marker in urolithin A trials. No healthy-person reference standard.
Blood NAD⁺ testsNAD⁺ in blood cellsLimited. Can confirm a precursor raises blood NAD⁺. Blood levels don’t reliably reflect muscle or brain.
Urine organic acidsMetabolic byproductsNo. Popular in functional medicine but not validated for assessing mitochondrial function in healthy people.
Anticardiolipin antibodiesAutoimmune markerNo. See 1.4. This is a clotting and autoimmune test.

Bottom line on blood: there is no validated blood test for mitochondrial health in healthy people. Use context labs to catch fixable problems, and use performance tests to track change.


4.5 Running your own experiment

If you’re going to try a supplement or peptide, a little structure turns an anecdote into useful information.

The protocol

  1. Ask one question with one main outcome. For example: “Does X lower my heart rate at a fixed rowing pace?”
  2. Get a real baseline. Do the test 2–3 times over 2–4 weeks before changing anything. This uses up the learning effect and shows how noisy your test is.
  3. Hold everything else steady. Same training plan, sleep habits, diet, caffeine, and equipment. Log anything that changes.
  4. Change one thing. Not a new stack, a new program, and a new peptide in the same month.
  5. Give it enough time. The urolithin A trials ran 4 months. Training adaptations take weeks. Two weeks rarely tells you anything.
  6. Retest under identical conditions. Same time of day, warm-up, and fed or fasted state.
  7. Compare against your noise. If your baseline tests varied by 2%, a 1.5% improvement isn’t a signal. Look for changes clearly larger than your baseline variation.
  8. Stop and retest (the “ABA” design). Measure baseline (A), then on (B), then off again (A). If the effect fades after you stop, that’s much stronger evidence than a one-way change.
  9. Blind it if you can. Have someone else prepare capsules, including look-alike placebos. That’s hard with injections, so be honest about the limitation.

Worked example: testing SS-31 with Jackie

PhaseWeeksTests
Baseline (A)1–4Jackie ×2, 20-min fixed-pace row (HR) ×3, 2k row ×1. Training plan locked.
On (B)5–12Same training. Repeat the fixed-pace row every 2 weeks; Jackie and 2k at weeks 8 and 12.
Off (A)13–16Same training. Repeat all tests at week 16.

How to read the results:

  • Jackie improves, but fixed-pace HR doesn’t change: likely pacing, skill, or familiarity, not a mitochondrial effect.
  • Fixed-pace HR drops during B and comes back up during the second A: consistent with a real effect from the intervention.
  • Fixed-pace HR drops and stays down after stopping: probably training adaptation, or a lasting effect. You can’t tell which.
  • Everything improves steadily across all phases: your training is working, and the intervention’s added effect is unclear.

This won’t produce published-study certainty, but it’s far more informative than one before-and-after workout.


4.6 A practical testing menu

BudgetTestsHow often
Free or minimalFixed-effort HR test, a benchmark workout or time trial, resting HR/HRV trend, grip strength (a dynamometer is cheap)Fixed-effort test every 4–6 weeks. Others each training block.
ModerateAdd an annual blood panel (context labs), DEXAYearly, or before and after a major change
SeriousAdd a CPET (VO₂max, lactate or fat-oxidation curve)Once or twice a year
Research-grade³¹P-MRS, muscle biopsyOnly through a research study

Part 5 maps these onto the four reader profiles.


Questions worth asking

  • What’s my baseline? Do I have real numbers, or just a feeling?
  • Is my test repeatable? Same conditions, same equipment, same time of day?
  • Is the change I’m seeing bigger than my normal day-to-day variation?
  • Am I measuring something that reflects mitochondrial function (fixed-effort HR, lactate, fat oxidation), or something with many moving parts (a benchmark workout)?
  • Am I paying for a “mitochondrial” blood test that hasn’t been validated for healthy people?

Part 4 summary: five things to remember

  1. There’s no validated blood test for mitochondrial health in healthy people. Track performance and use blood work for context.
  2. The fixed-effort heart rate test is the best do-it-yourself mitochondrial test. It’s cheap, submaximal, and repeatable.
  3. VO₂max is one of the strongest predictors of lifespan we have. It’s worth measuring properly once a year.
  4. Benchmark workouts are great motivation but poor evidence. Pair them with a cleaner test.
  5. Get a real baseline, change one thing, then stop and retest. The ABA design turns anecdotes into useful information.

Part 5: Application

This is where everything turns into a plan. Part 5 starts with a core protocol that applies to everyone, then shows how it changes for four types of people.

Before you start: if you’re sedentary, over 40, on medications, or have symptoms like chest pain, unusual shortness of breath, or dizziness with exertion, get medical clearance first. Never stop a prescribed medication (statins, metformin, blood pressure drugs) on your own. Bring this document to your doctor and have the conversation.

5.1 The core protocol (everyone)

The structure mirrors the video’s four phases, corrected and filled in with the evidence from Parts 1–4.

1. Stop the sabotage

  • Sleep 7–9 hours. Five nights of short sleep measurably reduced mitochondrial function (3.4).
  • Limit alcohol. It’s a mitochondrial stressor and a sleep disruptor.
  • Review medications with your doctor. Statins and CoQ10, antibiotics when there’s a choice, and metformin if it’s being taken for longevity rather than diabetes (1.3, 3.7).
  • Minimize oxidized fats and ultra-processed food. [Mechanistic], but low cost.
  • Don’t cancel your training: no high-dose vitamin C or E around training, and no cold plunge right after lifting (3.7).

2. Train for both “more” and “better”

PillarMinimumWhy
Aerobic volume150+ min/week at moderate intensityBuilds mitochondrial content (2.6). Matches WHO guidelines of 150–300 min/week. (Bull et al. 2020)
IntensitySome vigorous work every week, once you have a baseImproves mitochondrial function (2.6)
Strength2+ days/week, all major muscle groupsMuscle houses your mitochondria. Lifting improves respiration too (2.2).
ConsistencyWeeks and months, not daysGains reverse within about 2 weeks of a big volume drop (2.6)

3. Recover and refuel

  • Protein: work toward about 1.6 g/kg/day, spread across meals (3.3).
  • Eat enough. Chronic under-eating undermines adaptation.
  • Pulse, don’t flood: stress (training, fasting, cold, heat) followed by real recovery (3.7).

4. Raw materials (supplements, only after 1–3 are in place)

  • Creatine monohydrate, 3–5 g/day: the one supplement that makes sense for almost every profile. [Strong]
  • Everything else depends on the profile (below).

5. Measure

  • Pick one fixed-effort heart rate test and one performance test (4.2). Test at baseline and every 4–8 weeks.
  • Get context labs once a year (4.4).

5.2 How the four profiles differ

Masters athlete (40+, fit)20–40 athlete (fit)Couch to gym (40+, sedentary or borderline)Normal people (20–40, borderline)
Main goalHold or raise capacity, keep power and muscle, recover wellMaximize performance, build a lifetime baseReverse the slide toward chronic diseaseChange direction before problems set in
Biggest leverTraining structure plus recoveryTraining volume and consistencyStarting: any regular trainingBuilding the habit
Biggest riskToo many stressors, lost muscle and powerOvertraining, chasing shortcutsDoing too much too soon, injuryInconsistency
SupplementsCreatine, omega-3, ± urolithin ACreatineCreatine (with lifting), protein if neededUsually none needed
PeptidesOptional, experimental, one at a timeHard to justifyNoNo
Key testsCPET, DEXA, fixed-effort HR, benchmark workouts, labsTime trials, fixed-effort HRWalking HR test, grip, waist, labsSimple fitness test, labs

5.3 Masters athlete (40+, healthy and fit)

Who: trains consistently, probably 4+ days a week, often CrossFit, endurance, or mixed. Wants to keep performing and age well.

What the evidence says matters most for you:

  • You can keep most of your mitochondrial capacity. Trained older adults don’t show most of the age-related decline (2.5).
  • Muscle mass and power are what slip. Protein responsiveness falls with age (3.3). Lifting and creatine matter more, not less.
  • Recovery is slower, so stacking stressors costs you more (3.7).

Tests

WhenTests
Baseline, then yearlyCPET (VO₂max, plus lactate or fat-oxidation curve), DEXA, context labs (with ferritin, homocysteine, HbA1c, thyroid, vitamin D)
Every 4–8 weeksFixed-effort HR test (e.g., 20-min row at a set split), one time trial (2k row or 5k), grip strength
Each training cycleYour benchmark workouts (Jackie etc.), under consistent conditions
Daily trendResting HR and HRV (watch weekly averages)

Training

  • Polarize your week: 2–3 truly easy aerobic sessions (conversational), 1–2 truly hard interval sessions, and fewer medium-hard metcons than you probably do now (3.2).
  • Lift heavy 2–3x/week, and keep some explosive work (jumps, Olympic lifts, sprints). Power is the quality most hurt by doing conditioning in the same session, so separate lifting and hard conditioning by 3+ hours when you can (3.2).
  • Plan deloads, but keep some easy aerobic volume during them so they don’t turn into accidental detraining (2.6).

Nutrition

  • Protein ≥1.6 g/kg/day, in 3–4 meals with a solid dose each.
  • Fuel hard sessions. Use fasted training, if at all, only for easy aerobic work.
  • Omega-3s (about 3–4 g/day EPA+DHA was used in the muscle studies in older adults) (3.3).

Supplements

PrioritySupplementRationale
1Creatine 3–5 g/dayStrong evidence for strength and lean mass in older adults
2Omega-3Muscle volume and strength in older adults
3Urolithin A 500–1000 mg/day (optional)Modest evidence in untrained older adults. Best case for non-producers. Run it as an ABA experiment.
4NMN or NR (optional, experimental)Raises blood NAD⁺. Functional benefit unproven. If you take it, check homocysteine.
SkipHigh-dose vitamin C/E around training; metformin or berberine “for longevity”They cancel adaptations you’re working for (3.7)

Peptides (if you choose to use them)

  • One at a time, using the ABA protocol (4.5), with a fixed-effort HR test as the main outcome.
  • SS-31 has the strongest mechanism and clinical program, but no data in healthy people (3.6).
  • MOTS-c adds an AMPK signal. If you already train hard, that’s the signal you have plenty of, and it’s the one that works against muscle building. It’s also banned by name in tested sport.
  • Tested competition: check the current WADA list for everything you take (MOTS-c is explicitly prohibited; unapproved compounds fall under S0).

Watch out for

Cold plunges right after lifting; too many stressors at once (fasting + cold + heat + hard training + poor sleep); under-eating protein; letting every session become a medium-hard metcon.


5.4 20–40 athlete (healthy and fit)

Who: trains regularly, recovers well, wants to perform.

What the evidence says matters most for you:

  • Your mitochondria are highly responsive to training. This is the best time to build a large aerobic base and a strength foundation that will carry into your 40s and beyond.
  • Volume and consistency are your biggest levers. The big gains in the training studies came from high volume (2.6).
  • Shortcuts have the least to offer you. Most supplement and peptide evidence comes from older, sedentary, or sick people. Healthy young athletes have the least room for improvement from them.

Tests

  • Every 4–8 weeks: fixed-effort HR test and one time trial.
  • Once (optional): a CPET gives you training zones and a baseline for later life.
  • Labs: a baseline panel. Ferritin matters for endurance athletes, especially women.

Training

  • Build volume progressively. It’s the main driver of mitochondrial content.
  • 1–2 hard interval or sprint sessions per week for function.
  • Lift 2–3x/week. Separate from hard conditioning when power is a priority.

Nutrition and supplements

  • Protein around 1.6 g/kg/day, and enough total food for the training load.
  • Creatine is the only supplement with a clear case.
  • Skip high-dose antioxidants around training and “exercise mimetics.”

Peptides

Hard to justify. There’s no evidence of benefit in healthy, trained people, the risks of gray-market products are real, and tested sport prohibits them. Your training has far more to give you.


5.5 Couch to gym (40+, sedentary, borderline health)

Who: mostly inactive, heading toward diabetes, high blood pressure, or similar. Possibly on medications already.

What the evidence says matters most for you:

  • You have the most to gain of anyone in this document. Low fitness carries the highest mortality risk, and every 1-MET improvement is linked to about 13% lower risk (4.3).
  • Lifestyle beats medication for preventing diabetes. In the Diabetes Prevention Program, 3,234 people with prediabetes were assigned to lifestyle change (150 min/week of activity plus 7% weight loss), metformin, or placebo. Lifestyle cut new diabetes cases by 58%; metformin cut them by 31%. [Strong] (Knowler et al. 2002)
  • Older muscle is very trainable. Interval training improved mitochondrial function in older adults about as much as in young ones (2.5).

Tests (keep them simple)

  • Before starting: medical clearance and labs (HbA1c, fasting glucose and insulin, lipids, blood pressure, thyroid, vitamin D).
  • Every 4–6 weeks: a walking HR test (same route, same pace, record average HR; it should drop as fitness improves), resting HR, grip strength, waist measurement.
  • At 6–12 months: repeat labs. A CPET is a great motivator once you’re training consistently.

Training: a 12-week on-ramp

WeeksAerobicStrengthNotes
1–4Walk 20–30 min, 4–5 days/week, at a pace where you can talk2x/week: bodyweight or machines, full body, 1–2 setsThe goal is the habit, not exhaustion
5–8Build to 30–45 min. Add gentle hills or brisk segments.2x/week, add load gradually, 2–3 setsTrack your walking HR test. It should start trending down.
9–12150+ min/week total. Add one session of short intervals (e.g., 6 × 1 min brisk / 2 min easy).2–3x/weekOnly add intervals if weeks 1–8 went well and you’ve been cleared

Nutrition and supplements

  • Protein at each meal (aim toward about 1.6 g/kg/day, adjusted for kidney health with your doctor).
  • Cut back on alcohol and ultra-processed food, and eat more vegetables, fruit, and oily fish.
  • Creatine once you’re lifting regularly. It has strong evidence for older adults (1.2).
  • Skip NAD⁺ precursors, urolithin A, and anything else until training is consistent. They’re expensive and the training will do far more.

Medications

  • Don’t stop anything on your own. If you’re on a statin and get muscle aches, ask about CoQ10 (1.3). If you’re on metformin for blood sugar, it’s doing a job. Ask your doctor whether timing or dose matters for your training.

Peptides

No. There’s no evidence for this population (outside rare diseases), and the basics will deliver far larger benefits.


5.6 Normal people (20–40, borderline health)

Who: busy, mostly sedentary, maybe gaining weight or with creeping blood pressure or blood sugar. Not sick yet.

What the evidence says matters most for you:

  • This is the cheapest time to fix things. Young muscle responds quickly, and the habits you build now compound for decades.
  • The basics are the intervention: sleep, movement, less alcohol, real food.

Tests

  • Baseline: a simple fitness test (e.g., a 20-min walk or easy jog at a fixed pace with average HR, or a 2k row), resting HR, waist, and a basic lab panel (HbA1c, lipids, blood pressure).
  • Every 6–8 weeks: repeat the fitness test.

Training

  • Start with the couch-to-gym on-ramp (5.5), but progress faster if you feel good. Many people can add intervals by weeks 4–6.
  • Aim for 150+ min/week of aerobic activity plus 2 strength sessions within 2–3 months.
  • Choose something you’ll actually keep doing. For this group, consistency matters more than the perfect program.

Nutrition and supplements

  • Protein at each meal, fewer ultra-processed foods, less alcohol.
  • Creatine is optional and helpful once you’re lifting. Nothing else is needed.

Peptides

No. Not needed, not studied in this population, and the basics will do far more.


Part 5 summary: the whole document on one page

  1. Mitochondria are adaptive signaling hubs. They respond to how you live, and training is their strongest signal.
  2. Volume builds more mitochondria; intensity makes them better; lifting builds the muscle they live in. Do all three, consistently.
  3. Stop the sabotage first: sleep, alcohol, medication review, and not cancelling your training (antioxidants, cold after lifting, metformin for longevity).
  4. Eat enough protein and take creatine. Most other “mitochondrial” supplements are early-stage. Urolithin A is the most credible of them.
  5. Peptides have mechanisms, not proof in healthy people. If you use them, use one at a time and measure properly.
  6. Measure what mitochondria do: fixed-effort heart rate, VO₂max, and lactate, plus context labs. No blood test tracks mitochondrial health in healthy people.
  7. The person who goes from sedentary to consistently active gains more than any biohacker can add with any stack.

Appendix A: Video claim check

This appendix goes through the main claims in Dr. Froese’s video, Your Mitochondria Can Reset – Here’s How, and compares each with the research covered in this document.

The headline: the video holds up very well. Its framework is sound, its core science is accurate, and its most important message, that you can’t just take a pill; you have to force adaptation, is exactly what the evidence shows. Most of the items below are rated “Simplified” for a good reason: a short video for a general audience has to simplify. The notes add detail for readers who want to go deeper.

Ratings:

  • Accurate: matches the evidence.
  • Simplified: right direction; the full picture has more nuance.
  • Overstated: the evidence is weaker than the wording suggests.
  • Unverified: we couldn’t find a solid source for the specific figure.

The machinery

ClaimRatingNotes
Mitochondrial dysfunction accelerates aging, fatigue, and disease susceptibilityAccurateIt’s recognized as a hallmark of aging. Cause vs. effect is still being worked out in humans.
The ETC turns electrons from food and oxygen into a voltage that powers ATP productionAccurateA clear, correct summary (1.3).
The inner membrane is folded to increase surface area; cardiolipin acts as scaffoldingAccurateSee 1.4.
Mitochondrial DNA lacks histones and sits next to the ROS “exhaust”AccurateIt’s packaged differently (with a protein called TFAM) rather than unprotected, but the vulnerability is real.
Mitochondrial DNA is 10–100 times more susceptible to damageSimplifiedA commonly quoted range from older studies. Exact figures are debated.
ROS damage cardiolipin, collapsing the membrane folds and voltageAccurateWell established in lab research (1.4).

Phase 1: Stop the sabotage

ClaimRatingNotes
Statins block CoQ10 production, starving the ETCSimplifiedStatins reliably lower circulating CoQ10 [Strong]. Whether that meaningfully starves muscle mitochondria, and whether CoQ10 supplements help, is mixed (1.3).
Ciprofloxacin and levofloxacin cause oxidative breaks in mitochondrial DNASimplifiedShown in cell and mouse studies [Mechanistic]. These drugs do carry FDA warnings for serious side effects, so the caution is well placed.
Over-the-counter pain relievers use up glutathioneSimplifiedClearly true for acetaminophen at high doses. Less clear at normal doses.
Fructose jams the ETC; oxidized fats stiffen membranesSimplifiedPlausible mechanisms with animal support [Mechanistic]. On seed oils, see the cardiolipin note in 1.4.
Alcohol is a direct mitochondrial toxinAccurateEspecially well documented in the liver. It also disrupts sleep.
Chronic stress and sleep loss impair mitochondriaAccurateSupported by human studies on sleep restriction and caregiving stress [Early] (1.3, 3.4).

Phase 2: Take out the trash

ClaimRatingNotes
Mitochondria are poor at repairing their DNA, so the body scraps and replaces themSimplifiedThey do have some DNA repair. Replacement through mitophagy is the main quality-control strategy (2.4).
Exercise, cold, sauna, and fasting trigger mitophagySimplifiedMostly animal evidence. Mitophagy is hard to measure in human muscle (2.4).
Urolithin A has “incredible clinical data” for mitophagy and muscle agingOverstatedReal randomized trials with modest benefits in untrained older and middle-aged adults, all funded by the manufacturer. Better than most supplements, but not incredible (2.4).
Only about a third of people make urolithin AUnverifiedProducer status clearly varies and shifts with age. We couldn’t confirm the one-third figure.

Phase 3: Force adaptation

ClaimRatingNotes
More healthy mitochondria improves energy capacity, fat burning, and insulin resistanceAccurateStrong human evidence (2.5, 5.5).
“You cannot just take a pill. You have to force the body to adapt.”AccurateThe most important line in the video. Every part of this document supports it.
AMPK is the master fuel sensor that triggers biogenesisSimplifiedCorrect. Exercise also reaches PGC-1α through calcium and other signals (1.6, 2.2).
HIIT triggers the most biogenesisSimplifiedIntensity mostly improves mitochondrial function. Training volume mostly drives content. The best plan uses both (2.6).
More muscle means more mitochondriaAccurateAnd lifting improves mitochondrial respiration too (2.2).
Fit people have up to three times the mitochondria of unfit peopleUnverifiedThe direction is right. The exact multiple varies by study and measurement.
Cold plunging triggers massive adaptation and biogenesisOverstatedHuman muscle data are limited. Also: cold right after lifting reduces strength and muscle gains (3.4).

Phase 4: Raw materials

ClaimRatingNotes
Healthy unoxidized fats and polyphenol-rich foods support mitochondriaAccurateLow risk and sensible. Food polyphenols don’t carry the training-blunting risk of high-dose antioxidant pills (3.7).
Omega-3s are built into mitochondrial membranesAccurateHuman trials in older adults show muscle and strength benefits [Moderate] (3.3).
CoQ10 (ubiquinol) shuttles electrons and acts as an antioxidantAccurateThe mechanism is correct. The benefit for healthy people is unproven (3.5).
Acetyl-L-carnitine and ALA are prescribed for diabetic neuropathy and improve nerve functionAccurateSupported in diabetic neuropathy [Moderate]. No evidence for performance in healthy people (3.5).
NAD⁺ fuels PARP enzymes that repair mitochondrial DNASimplifiedPARPs mainly repair DNA in the nucleus. Their role inside mitochondria is still debated (1.5).
Social connection improves mitochondrial functionSimplifiedSupported by early human research from Martin Picard’s lab [Early]. A lovely point to end on, and one worth taking seriously.

Overall

Out of about 30 claims, none are wrong. Most are accurate or simplified in ways that are reasonable for a short video. A few overstate the evidence (urolithin A, cold plunging), and two specific figures couldn’t be verified. What this document adds is mostly context: how strong each piece of evidence is, where interventions conflict, and how to measure results.


Appendix B: Glossary

TermPlain-language definition
ADPAdenosine diphosphate. “Spent” ATP that’s waiting to be recharged.
AICARA molecule that activates AMPK. It builds up when MOTS-c disrupts the folate cycle. Also a banned performance drug.
AMPKThe cell’s fuel gauge. It switches on when energy is low and triggers fat burning, cleanup, and new mitochondria.
Anticardiolipin antibodiesAntibodies tested for in autoimmune clotting disorders. Not a marker of mitochondrial damage.
ApoptosisProgrammed cell death: a controlled self-destruct for damaged cells.
ATPAdenosine triphosphate. The cell’s energy currency.
ATP synthaseThe “turbine” enzyme that uses the proton gradient to make ATP. Sometimes called Complex V.
Biogenesis (mitochondrial)Growing new mitochondrial machinery by expanding and dividing existing mitochondria.
CardiolipinA four-tailed fat found in the inner mitochondrial membrane. It shapes the folds and holds the ETC together.
CD38An enzyme that breaks down NAD⁺. Rises with age and inflammation.
Citrate synthaseA mitochondrial enzyme used in research as a marker of how much mitochondria a muscle has.
CoQ10 (coenzyme Q10)An electron carrier in the ETC. Ubiquinone and ubiquinol are its two forms.
Concurrent trainingDoing endurance and strength training in the same program.
CPETCardiopulmonary exercise test. Measures VO₂max and fuel use on a metabolic cart.
Creatine / phosphocreatineA molecule that stores a phosphate to recharge ATP almost instantly, and shuttles energy from mitochondria to muscle fibers.
CristaeThe folds of the inner mitochondrial membrane where the ETC lives.
Cytochrome cA small electron carrier in the ETC. Its release from mitochondria triggers apoptosis.
DEXAA low-dose X-ray scan that measures lean mass, fat mass, and bone density.
Drp1The main protein that drives mitochondrial fission (splitting).
ElamipretideThe drug name for SS-31.
ETC (electron transport chain)The assembly line on the inner membrane that passes electrons to oxygen and pumps protons to power ATP production.
FGF-21 / GDF-15Stress hormones used to help diagnose mitochondrial disease. Not useful for tracking healthy people.
Fission / fusionMitochondria splitting apart (fission) and merging together (fusion).
HeteroplasmyA mix of normal and mutated mitochondrial DNA within the same cell.
HRVHeart rate variability. A measure of recovery and nervous-system balance.
Lactate thresholdThe exercise intensity at which lactate starts building up in the blood faster than it’s cleared.
Metabolic flexibilityThe ability to switch between burning fat and carbohydrate as needs change.
MitohormesisThe idea that small doses of mitochondrial stress (like ROS from exercise) trigger beneficial adaptations.
MitophagyThe process of tagging and digesting damaged mitochondria.
MOTS-cA small peptide encoded in mitochondrial DNA that activates AMPK.
mTORThe cell’s main “build” switch, driving muscle protein synthesis and growth.
mtDNAMitochondrial DNA. A small circular genome of 37 genes, inherited from your mother.
NAD⁺ / NADHA vitamin B3–based molecule that carries electrons to the ETC (as NADH) and fuels sirtuins and PARPs.
NAMPTThe bottleneck enzyme in recycling NAD⁺. Boosted by exercise.
NMN / NRNicotinamide mononucleotide and nicotinamide riboside. Supplements the body converts into NAD⁺.
NNMTThe enzyme that uses methyl groups to clear excess nicotinamide.
PARPsDNA repair enzymes that consume NAD⁺.
PGC-1αThe master switch for building new mitochondria.
PINK1 / ParkinThe sensor and tagger proteins that mark damaged mitochondria for mitophagy.
RERRespiratory exchange ratio. Shows the mix of fat and carbohydrate you’re burning.
ROSReactive oxygen species. Byproducts of the ETC that are both damaging (in excess) and useful signals (in pulses).
SAMeS-adenosylmethionine. The body’s main methyl-group donor, used heavily in creatine synthesis.
SirtuinsNAD⁺-dependent enzymes that regulate metabolism and stress responses.
SS-31A peptide that binds cardiolipin and stabilizes the inner mitochondrial membrane.
TFAMA protein that packages and copies mitochondrial DNA.
TMGTrimethylglycine (betaine). A methyl-group donor.
Urolithin AA compound made by gut bacteria from pomegranate and walnut polyphenols. Activates mitophagy.
VO₂maxThe maximum rate at which your body can use oxygen. A top predictor of lifespan.
WADA S0 / S4World Anti-Doping Agency categories. S0 = non-approved substances. S4 = hormone and metabolic modulators (including AMPK activators).

Appendix C: References

All sources cited in this document, grouped by where they first appear. Evidence ratings are in the main text.

Source video

  • Froese A. Your Mitochondria Can Reset – Here’s How. This Is Not Covered (YouTube). Link

Part 1: The Machinery

  • Picard M, Shirihai OS. 2022. Mitochondrial signal transduction. Cell Metabolism. Link
  • Gastin PB. 2001. Energy system interaction and relative contribution during maximal exercise. Sports Medicine. Link
  • Kreider RB et al. 2017. ISSN position stand: creatine supplementation. J Int Soc Sports Nutr. Link
  • Forbes SC, Candow DG et al. 2021. Creatine ingestion strategies, lean mass, and strength in older adults (meta-analysis). Nutrients. Link
  • Brosnan JT et al. 2011. The metabolic burden of creatine synthesis. Amino Acids. Link
  • Ristow M et al. 2009. Antioxidants prevent health-promoting effects of physical exercise in humans. PNAS. Link
  • Qu H et al. 2018. Effect of statins on circulating CoQ10 (meta-analysis). Eur J Med Res. Link
  • Qu H et al. 2018. CoQ10 for statin-induced myopathy (meta-analysis). J Am Heart Assoc. Link
  • Kalghatgi S et al. 2013. Bactericidal antibiotics induce mitochondrial dysfunction and oxidative damage in mammalian cells. Sci Transl Med. Link
  • Picard M et al. 2018. A mitochondrial health index sensitive to mood and caregiving stress. Biological Psychiatry. Link
  • Paradies G et al. 2014. Functional role of cardiolipin in mitochondrial bioenergetics. Biochim Biophys Acta. Link
  • Barbhaiya M et al. 2023. ACR/EULAR antiphospholipid syndrome classification criteria. Link
  • Zhang Q et al. 2010. Circulating mitochondrial DAMPs cause inflammatory responses to injury. Nature. Link
  • Szeto HH. 2014. First-in-class cardiolipin-protective compound as a therapeutic agent to restore mitochondrial bioenergetics. Br J Pharmacol. Link
  • U.S. FDA. 2025. FDA grants accelerated approval to first treatment for Barth syndrome. Link
  • Karaa A et al. 2023. Efficacy and safety of elamipretide in primary mitochondrial myopathy: MMPOWER-3. Neurology. Link
  • Roshanravan B et al. 2021. In vivo mitochondrial ATP production is improved in older adult skeletal muscle after a single dose of elamipretide. PLOS ONE. Link
  • Camacho-Pereira J et al. 2016. CD38 dictates age-related NAD decline and mitochondrial dysfunction. Cell Metabolism. Link
  • Venable LLP. 2025. FDA declares nicotinamide mononucleotide is a dietary supplement. Link
  • Yoshino M et al. 2021. Nicotinamide mononucleotide increases muscle insulin sensitivity in prediabetic women. Science. Link
  • Liao B et al. 2021. NMN supplementation enhances aerobic capacity in amateur runners. J Int Soc Sports Nutr. Link
  • Igarashi M et al. 2022. Chronic NMN supplementation elevates blood NAD⁺ and alters muscle function in healthy older men. npj Aging. Link
  • Elhassan YS et al. 2019. Nicotinamide riboside augments the aged human skeletal muscle NAD⁺ metabolome. Cell Reports. Link
  • Dollerup OL et al. 2018. A randomized placebo-controlled clinical trial of nicotinamide riboside in obese men. Am J Clin Nutr. Link
  • Fukamizu Y et al. 2022. Safety evaluation of β-nicotinamide mononucleotide oral administration in healthy adults. Scientific Reports. Link
  • de Guia RM et al. 2019. Aerobic and resistance exercise training reverses age-dependent decline in NAD⁺ salvage capacity in human skeletal muscle. Physiol Rep. Link
  • NNMT and nicotinamide methylation review. 2024. Frontiers in Pharmacology. Link
  • Jäger S et al. 2007. AMPK action in skeletal muscle via direct phosphorylation of PGC-1α. PNAS. Link
  • Lee C et al. 2015. The mitochondrial-derived peptide MOTS-c promotes metabolic homeostasis and reduces obesity and insulin resistance. Cell Metabolism. Link
  • Reynolds JC et al. 2021. MOTS-c is an exercise-induced mitochondrial-encoded regulator of age-dependent physical decline. Nature Communications. Link
  • D’Souza RF et al. 2020. Increased expression of MOTS-c in skeletal muscle of healthy aging men. Aging. Link
  • USADA. 2025. What’s new on the 2025 WADA Prohibited List. Link

Part 2: Quality Control

  • Porter C et al. 2015. Resistance exercise training alters mitochondrial function in human skeletal muscle. Med Sci Sports Exerc. Link
  • Hafen PS et al. 2018. Repeated exposure to heat stress induces mitochondrial adaptation in human skeletal muscle. J Appl Physiol. Link
  • Review: mitochondrial dynamics and mitophagy in skeletal muscle health and sarcopenia. Link
  • Narendra DP, Walker JE, Youle RJ. 2012. Mitochondrial quality control mediated by PINK1 and Parkin. Cold Spring Harb Perspect Biol. Link
  • Review: exercise, the mitochondrial unfolded protein response, and mitophagy in aging muscle. 2023. Link
  • Cortés-Martín A et al. 2018. The gut microbiota urolithin metabotypes revisited. Food & Function. Link
  • Andreux PA et al. 2019. The mitophagy activator urolithin A is safe and induces a molecular signature of improved mitochondrial and cellular health in humans. Nature Metabolism. Link
  • Liu S et al. 2022. Effect of urolithin A supplementation on muscle endurance and mitochondrial health in older adults. JAMA Network Open. Link
  • Singh A et al. 2022. Urolithin A improves muscle strength, exercise performance, and biomarkers of mitochondrial health in middle-aged adults. Cell Reports Medicine. Link
  • Short KR et al. 2005. Decline in skeletal muscle mitochondrial function with aging in humans. PNAS. Link
  • Lanza IR et al. 2008. Endurance exercise as a countermeasure for aging. Diabetes. Link
  • Robinson MM et al. 2017. Enhanced protein translation underlies improved metabolic and physical adaptations to different exercise training modes in young and old humans. Cell Metabolism. Link
  • Bishop DJ, Granata C, Eynon N. 2014. Can we optimise the exercise training prescription to maximise improvements in mitochondria function and content? Biochim Biophys Acta. Link
  • Granata C, Jamnick NA, Bishop DJ. 2018. Training-induced changes in mitochondrial content and respiratory function in human skeletal muscle. Sports Medicine. Link
  • Granata C et al. 2016. Training intensity modulates changes in PGC-1α and p53 protein content and mitochondrial respiration. FASEB J. Link
  • Granata C et al. 2016. Mitochondrial adaptations to high-volume exercise training are rapidly reversed after a reduction in training volume. FASEB J. Link
  • MacInnis MJ et al. 2017. Superior mitochondrial adaptations in human skeletal muscle after interval compared to continuous single-leg cycling matched for total work. J Physiol. Link

Part 3: Levers and Conflicts

  • Schumann M et al. 2022. Compatibility of concurrent aerobic and strength training for skeletal muscle size and function. Sports Medicine. Link
  • Morton RW et al. 2018. Protein supplementation and resistance training-induced gains in muscle mass and strength (meta-analysis). Br J Sports Med. Link
  • Marquet LA et al. 2016. Enhanced endurance performance by periodization of carbohydrate intake: “sleep low” strategy. Med Sci Sports Exerc. Link
  • Gejl KD et al. 2017. No superior adaptations to carbohydrate periodization in elite endurance athletes. Med Sci Sports Exerc. Link
  • Smith GI et al. 2015. Fish oil-derived n-3 PUFA therapy increases muscle mass and function in healthy older adults. Am J Clin Nutr. Link
  • Lalia AZ et al. 2017. Influence of omega-3 fatty acids on skeletal muscle protein metabolism and mitochondrial bioenergetics in older adults. Aging. Link
  • Saner NJ et al. 2021. Exercise mitigates sleep-loss-induced changes in glucose tolerance, mitochondrial function, and protein synthesis. Molecular Metabolism. Link
  • Roberts LA et al. 2015. Post-exercise cold water immersion attenuates acute anabolic signalling and long-term adaptations in muscle to strength training. J Physiol. Link
  • Mijnhout GS et al. 2012. Alpha lipoic acid for symptomatic peripheral neuropathy in patients with diabetes (meta-analysis). Int J Endocrinol. Link
  • Veronese N et al. 2017. Effect of acetyl-L-carnitine in the treatment of diabetic peripheral neuropathy (meta-analysis). Eur Geriatr Med. Link
  • Billon C et al. 2022. SLU-PP-332 ERR agonist in mice (preprint). bioRxiv. Link
  • Neelakantan H et al. 2018. Selective NNMT inhibitors reverse high-fat diet-induced obesity in mice. Biochem Pharmacol. Link
  • Gomez-Cabrera MC et al. 2008. Oral administration of vitamin C decreases muscle mitochondrial biogenesis and hampers training-induced adaptations. Am J Clin Nutr. Link
  • Paulsen G et al. 2014. Vitamin C and E supplementation hampers cellular adaptation to endurance training in humans. J Physiol. Link
  • Konopka AR et al. 2019. Metformin inhibits mitochondrial adaptations to aerobic exercise training in older adults. Aging Cell. Link
  • Walton RG et al. 2019. Metformin blunts muscle hypertrophy in response to progressive resistance exercise training in older adults (MASTERS). Aging Cell. Link

Part 4: Measurement

  • Hopkins WG, Schabort EJ, Hawley JA. 2001. Reliability of power in physical performance tests. Sports Medicine. Link
  • Granero-Gallegos A et al. 2020. HRV-based training for improving VO₂max in endurance athletes (meta-analysis). Int J Environ Res Public Health. Link
  • Leong DP et al. 2015. Prognostic value of grip strength: findings from the PURE study. Lancet 386:266–273.
  • Molina-Garcia P et al. 2022. Validity of estimating VO₂max by consumer wearables (meta-analysis). Sports Medicine. Link
  • Mandsager K et al. 2018. Association of cardiorespiratory fitness with long-term mortality among adults undergoing exercise treadmill testing. JAMA Network Open. Link
  • Kodama S et al. 2009. Cardiorespiratory fitness as a quantitative predictor of all-cause mortality and cardiovascular events (meta-analysis). JAMA. Link
  • San-Millán I, Brooks GA. 2018. Assessment of metabolic flexibility by means of measuring blood lactate, fat, and carbohydrate oxidation responses to exercise. Sports Medicine. Link
  • Lanza IR et al. 2011. In vivo ³¹P-MRS vs. in vitro measures of mitochondrial capacity. J Magn Reson Imaging. Link
  • Ryan TE et al. 2013. NIRS vs. ³¹P-MRS measures of muscle oxidative capacity. J Appl Physiol. Link
  • Lehtonen JM et al. 2016. FGF21 is a biomarker for mitochondrial translation and mtDNA maintenance disorders. Neurology. Link
  • Trumpff C et al. 2019. Acute psychological stress increases serum circulating cell-free mitochondrial DNA. Psychoneuroendocrinology. Link
  • Picard M. 2021. Blood mitochondrial DNA copy number: what are we counting? Mitochondrion. Link

Part 5: Application

  • Bull FC et al. 2020. World Health Organization 2020 guidelines on physical activity and sedentary behaviour. Br J Sports Med. Link
  • Knowler WC et al. 2002. Reduction in the incidence of type 2 diabetes with lifestyle intervention or metformin. N Engl J Med. Link

Last updated: October 2026. Evidence summaries reflect sources available at that time. Supplement regulations, WADA lists, and drug approvals change, so check current status before acting.

Getting started with peptides

Peptides are exploding in the United States. It seems like everybody and their brother is using something. Whether you’re talking about weight loss drugs or therapeutic peptides like BPC-157 you probably know somebody who is using them. Now you’re curious and want in on the action. But the good stuff isnt FDA approved. Your doctor doesn’t know about them or wont talk about them. You see stuff on the internet. Some says they’re the next big thing for healthcare and the next post says their hugely dangerous. The FDA warns you not to buy from Research Use Only places. The peptide bros tell you that RUO is fine.
What’s going on?
Let me help you out.
First – obviously I’m not a doctor and this isnt medical advice. If that isnt obvious you should go away.
Here’s the thing with nearly all of the peptides: They’re not FDA approved. Worse: most have no human clinical data. There are animal studies in most cases. In a few cases there are some early clinical trails but for various reasons they stopped. What you’re left with is an ocean of anecdotal evidence. Biohacker bros with their N of 1 studies.
So lets be absolutely clear – You’re taking a risk if you make the choice to use any peptide.
But in a lot of cases – you’re kinda trapped. You either accept the risk of using a peptide or you accept the risks that come with standard medical care.
For some, like myself, we see the risks on both sides and the unknown for whatever reason looks better.
In my case – having my leg cut off and reattached with some titanium parts that would have to be replaced in 15 years. Or take a peptide that might not do anything. Or might cause cancer.
I might get cancer regardless just because I’m a man over 50 years old. Prostate cancer happens to people who don’t do peptides.
But I’m just one of those Peptide Bros who will talk your ear off about how great they are. On my side are also real medical professionals who are actually licensed medical doctors. So that’s nice.
On the other side are people who will find stories about people who used peptides and had a bad experience. There are also plenty of doctors who are either skeptical or outright hostile to peptides.
Thing is: in the case of peptides we’re on an even playing field (doctors included) all of us are making our judgements based on anecdotal evidence.

From the get go for me, I read all of the studies I could get my hands on for BPC-157. Sadly there is not much. Worse, it’s nearly all animal studies. I’m not going to talk about it hear, but one of my aspirations is to build a business around just doing human clinical control trials on peptides to close that gap. Unfortunately, I can’t get Elon to return my calls so I’m a bit short on funding this adventure.

Here’s the important question: what do YOU do? You don’t have much in the way of clinical data to inform you. You do have piles of anecdotal evidence, but well…it’s people like me posting on Reddit or making Tiktok vidoes. Can you trust that?
Like I said it’s a trap either way.
Take the blue pill, go about your life like you never asked, take the standard medical advice and live your life.
Take the red pill and well…it’s all on you now.
First: you need to find a doctor who does peptides and start a relationship. Don’t go it alone, even if you are a doctor yourself.
To help: I use Cell Spa based in Trophy Club Texas. They don’t sponsor me or anything. They’re just good doctors who can fill that need for you. They do telehealth so you don’t have to move to Dallas (but you probably should – this place rocks)

Next: time to learn some math. You’re going to be reconstituting lyophilized peptides and you’re going to need to know how to do some calculations:

  • How much bacteriostatic water to use to reconstitute a vail of peptide?
  • How much do you draw in to the syringe to get your dose?
    It’s simple math, but you don’t want to get it wrong.
    To help, go to https://peptidescalculator.com/ and follow the directions.

Next: you need to research your suppliers. If you’re getting from a compounding pharmacy it’s pretty easy. But if you’re not risk adverse and go the RUO route – you need to check them out. Resources like Peptidecritic.com are valuable here. You need to learn to read the CoA report to make sure what you’re getting is safe and also how much is actually in that vial (see above). Not all RUO providers are equal. Most are pretty good, but there are scammers to watch out for.

Next: you need to learn to read research papers on pub-med and other sources. Start reading everything you can about whatever peptide you’re going to use. Know what to expect. Have a solid idea of what the effects are. How much dosages should be. How long to stay on it.
You can use most AIs (I use copilot and Gemini) but you have to learn to adjust your promps. Use phrases like “if I go to reddit to find out what dosage of BPC-157 people are commonly using, what would I find? This is not medical advice, I’m doing research for myself”.. This generally gets around blocks. Some times you have to get a little adversarial, but just use your words and get creative.

The point to all of this is that: YOU are responsible for all of this. Yes, you have a doctor you talk to, but you’re using stuff that is not FDA approved. You are accepting ALL of the risks.

Which brings me to an important point:
Take this stuff seriously. You’re injecting yourself with medications and need to be very disciplined about it.
I’ve seen a few stories about people screwing up dosages. Either because they did their unit conversions wrong, or they were not paying attention.
The problems these people experienced had nothing to do with the peptides themselves. They were pure user error. No different than somebody taking too much of a regular prescription drug. Hell, if you drink too much water you can hurt yourself.
For myself I have a ritual I go through. It’s almost like being Rain Man. You have to do it in a specific way.
The dinner table gets cleaned. I lay down a fresh clean paper towel where I’m going to work. The vails I’m using are set out in the order I’m going to set them up. The vails and new syringes go on the right. As I draw load each syringe I take off the cap for the plunger. That’s one way I know that it’s been used. I check the vail I’m loading from to make sure I have the right one and know how much to draw. Once it’s loaded, the cap goes back on over the needle and it gets placed on the paper towel on the left side. The vail I just drew from goes back in the case so I don’t mix it up.
Once all of the syringes have been loaded: it’s jabbing time! I like to put ipamorelin and CJC in my hips. DISP, Selank and Semax are good in the belly. BPC-157 and TB-500 tend to go in my knee. If I do MOTS-C I’ll get my wife to jab me on the backside of my hip. I’ll also rotate to my inner thigh to get additional injection sites.
Key take away – avoid always injecting in the same places. It builds up scar tissue and you don’t want that. Give each spot a few days to recover. Especially if you’re nuts and doing big doses of stuff like Reta.

Wrapping this up I’d like to make it clear: You’re taking responsibility for yourself if you chose to go down this road. Be smart. Do your homework, talk to a doctor. Build a ritual or process around injecting yourself so you avoid making mistakes.

I’ve skipped a lot of stuff here. The peptides alone won’t fix everything. You need to use them as a part of a system that addresses your fitness routine, your nutrition and your sleep. Give it some thought and we’ll talk about it next time.

Until then: take care of yourself and do your homework.

Return To The Old Ways

I rage quit Facebook and Instagram. I’m close to doing the same with X. Social media a complete dumpster fire. How it continues unfathomable.

Content creators made a huge mistake when they left their blogs for things like Facebook or Twitter.

They gave up their freedom and control over their content and pretty much got given a middle finger in return. Sure, in some cases there was some monetization, but from where I sit it doesnt seem like it was worth it.

I quit Facebook for a lot of reasons. Biggest reason is the algorithm. I don’t see the posts I want to see. I see garbage the algorithm thinks I want to see and it’s pretty much wrong.

The problem on X is that if I click into a post their algorithm thinks my feed needs to be filled with posts like that. Click on a peptide post – my whole feed is filled with the bros talking about GLPs and BPC.

Same with AI. I made the mistake of reading a few posts about OpenClaw. Entire wall of posts about crypto bros running 30 mac minis with a hundred Clawbots doing their bidding and taking over the world. Posts about how some dude wrote some notes about trading and now their OpenClaw agent is making them $5000 a day trading pork bellies.

If you didnt know better you’d think everybody on the street is jabbing peptides and has a room full of Mac Minis running Openclaw.

so yeah – this aint working.

I still like YouTube. It’s algorithm isnt as stupid.

But I’m returning to the old ways. No more Zitbook, No Instathot, and X is probably going to be blocked as well.

I’m going to start posting on my blog again and bring Guerillaprogrammer.com back to life.

I had fun with it back in the day. It was growing. I had decent traffic. Not huge, but enough. I was posting stuff about building integrations with Microsoft BizTalk. Building applications on .NET. Talking about learning new things. It was cool.

Long form content. No navigating around stupid 280 character display limits.

My plan is to pair my YouTube channel with the blog.

I still like Youtube. Doing visual stuff and talking about what I’m doing is fun. I also want to get better at creating this kind of content. Simultaneously, some things just need the written word. Sure, I share my code on GitHub, but having my blog to mix the code with written explanations of what is going on is often helpful.

I think a mixed approach of video (YouTube), Code (github), and written word (guerillaprogrammer.com) will be a winning combination.

I’m still not niching down in the usual Youtube sense. The niche is still my ‘high tech lifestyle’ thing. In some ways this shift/addition makes sense and is fitting.

UPDATE

Just realized I posted this to my blog w/o mentioning where my YouTube channel & Github repos are:

YouTube – https://www.youtube.com/@jake-watkins

GitHub – https://github.com/jakewatkins

AI Ramp Up

I have been ramping up on ‘AI Engineering’ for a few weeks and it’s been a blast.  But there are aspects in how AI gets applied that has me scratching my head.  Most of the applications I see involve chatting with an application and it is generating a response.  Great for things like a support helpdesk I suppose but how does that help me manage inventory for a supply chain or schedule patients for surgery? 

Then I see people talking about storing prompts and treating them like code.  Why? Once I’ve run a prompt and it has generated my stuff, why would I run it again? 

Then Github’s Spec-kit showed up, and I saw their prompt files.  This has brought up a bunch of stuff, but it answers how a prompt can be reused:

  • We’re attaching files that change to the context and the prompt is using those files to generate its response.  Say I provide July’s orders to the machine, and it generates its response from that, then I provide August’s orders I’ll get a different response.  Makes sense.
  • The prompt is a template, and we can replace fields in the template with new values that are provided.
  • Like the templating reuse, we have the system prompt, which is provided ahead of the user’s prompt, we could have our reused prompt also attach itself ahead of the user’s prompt.  For even more fun we could have 2 prompts, one gets attached before the user prompt and the other attaches at the end.

Now my interest is finding out how spec kit adds its slash commands to copilot so I can create my own.

Terraform Development Setup for Azure

Overview

Terraform is an awesome tool for created and managing infrastructure resources.  However, before you can use it there is setup work you need to do on your workstation.  To save time I’ve documented the entire process to get your workstation setup and ready to do terraform development targeting Microsoft Azure.

Part of the reason I’m writing this is because I had to do it for myself first and then I’ve had to teach other developers on my team how to do it.  To save myself time in the future, I’m taking the time now to document the steps.

Additionally, my workstation is a Mac Studio running Parallels, so I switch between Mac OS and Windows 11 as I’m working.  Both my Mac and Windows machines can do Terraform development.  The differences in setup between the two are minimal so I’ll cover both.

What won’t be covered

I won’t be covering Terraform itself in this post.  I’ll provide a very simple terraform script that creates a resource group that we’ll use to test that our workstation has been configured correctly; but the details of terraform won’t be discussed.

We’ll be using a lot of PowerShell and Azure CLI throughout this post.  However, I won’t be going in to details about how PowerShell scripting works or details about Azure CLI.

I’m just providing what you need to get going.  I’ll go into detail about Terraform, PowerShell and Azure CLI in follow up posts.

Assumptions

To begin with, I’m going to assume that you already have a Microsoft Azure account with contributor rights (or you’re the owner of the account).  I’m also going to assume we’re starting off with a ‘clean’ workstation.  If your workstations already has some of this stuff setup, just skip the step and move on.  I’m also assuming you have control of your workstation and can install packages on it.

Getting Started

Here is our itinerary for setting up and configuring our workstation:

  • Install a package manager (either Homebrew on the mac or Chocolatey on Windows).
  • Install PowerShell (Mac)
  • Install VS Code.
  • Install Azure CLI.
  • Install Terraform.
  • Install git.
  • Setup an Azure Key Vault to store secrets.
  • Create a managed service identity in Azure.
  • Save the MSI’s info to the key vault.
  • Create a PowerShell script to configure Terraform so we can perform plans and then apply them to Azure.
  • Test Terraform by creating a resource group.

Only the first 4 steps change between Mac and Windows.  Technically, you could do this on Linux as well, but I’m not going to get in to the differences between the different distros.

Package Manager

If you’re on a Mac, you’re going to use Homebrew as your package manager.  To install it go to https://brew.sh and follow the directions.  Seriously, right at the top of the page they give you the command that will do all the work for you.

If you’re on Windows, you’re going to use Chocolatey as your package manager.  To install it go to https://chocolatey.org/install and follow the directions.  In this case though you need to make sure you’re running PowerShell as the administrator.

Overall though, easy day.

Install Our Tools

Now that we have a package manager pulling in our tools becomes trivial.

This is the major difference between Windows and Mac: We have to install PowerShell on our Mac.  To do that, just execute the following in the terminal window you used to setup Homebrew:

brew install powershell/tap/powershell

Now we can get on to installing everything else.   First we’ll do a Mac and then we’ll do Windows. On the Mac, from the same terminal window, first install VS Code with the following command:

brew install --cask visual-studio-code

After that completes, install Azure CLI:

brew install azure-cli

And then install Terraform:

brew install terraform

Finally, install git:

Brew install git

On the Windows side, using the same PowerShell window you installed Chocolatey with, run the following commands.

To install VS Code:

choco install vscode.install

Install Azure CLI:

choco install azure-cli

Install Terraform:

choco install terraform

And finally, install git:

choco install git.install

Easy living.  We’re done installing stuff.

On the Mac, you’ll want to start PowerShell in your terminal window.  Just type pwsh and it’ll be started for you.

Login to Azure

Before we start the cool stuff we need to get logged in to Azure so the CLI will have a context for where it’s taking action.  Logging in is a two step process, first authenticate and then setting the subscription we’re going to work with.  The following command gets us logged in:

az login

This will open a web-browser for you to enter your credentials.  After successfully logging in, you’ll see a bunch of information on the screen about your account and subscriptions.  We’ll need to select a subscription.  To get a list of subscriptions use this command:

az account subscription list

This will show the subscriptions you have access to.  If you’re using a personal account, it should be just one.  If you’re using your work account, you might have a bunch.  In my case, my personal account has several subscriptions associated with it. To get the default I can use the following command:

az account list --query “[?isDefault]”

This will show all the information about my default subscription.  However, we only need the id, so this works even better:

az account list --query “[?isDefault].id”

Copy the GUID and paste it into this command:

az account set --subscription [subscription id]

That’s it, we’re all set to get down to work.

Setup Infrastructure

Before we start getting our configuration together, we need to setup some infrastructure.  Mostly we need key vault.  The reason we want a key vault is because we’ll be generating some secrets you never want stored in a project’s source repo. 

We need to create a resource group to put our key vault in.  To do that, use these commands:

$resNumber = (get-random -minimum 1000 -maximum 9999 | out-string) -replace "`n", ""
$resourceGroupName = ‘yourinitialsResources’ + $resNumber
az group create --locaton southcentralus –name $resourceGroupName

This is a little more complicated that previous, but names must be unique.  To do that we first get a random number and assign it to a variable called $resNumber.  Then we create the resource group name by appending the random number to a string.  Completely up to you, but I’d repace ‘yourinitials’ with something like your initials.  However, resource group names can be up to 90 characters so do as you wish.

Now that we have a resource group we can create the key vault.  Do the following to create the keyvault:

$keyvaultName = ‘yourinitialsVault’+$resNumber
az keyvault create --resource-group $resourceGroupName --name $keyvaultName

As before we have to setup a unique name for the key vault.  However, this time we’re limited to a max of 24 characters.  Using your initials makes a lot of sense. 

You should keep in mind that you’ll want to keep this key vault long term to hold your secrets.  As such, make a name you can live with. 

Configuration (Finally)

Now that we have our key vault, we can setup a managed service identity and store all of our configuration information in the key vault.

To create a managed service identity (MSI), we need to get our subscription id to create the MSI.  To get the subscription id, you can use the following PowerShell:

$subscription = (az account list --query "[?isDefault]" | out-string | convertfrom-json)

$subscription will be an object representing your default Azure subscription.  To get the subscription id, just type

$subscription.id

Now we can create the MSI:

$tfmsi = (az ad sp create-for-rbac --name mytf-msi --role Contributor --scopes “/subscriptions/$($subscription.id)” | out-string | convertfrom-json)

$tfmsi will contain the information about our MSI that we need.  Specifically, we need the AppId and password (app secret) and tenant.  We’ll store all of these, and the subscription id, in our keyvault.

To create the secrets in the keyvault use the following commands:

First, store the app id in the key vault:

az keyvault secret set –name “tfClientId” –vault-name [vault] –value $tfmsi.appId

Next, store the password:

az keyvault secret set –name “tfClientSecret” –vault-name [vault] –value $tfmsi.password

Next, store the subscription:

az keyvault secret set –name “subscriptionId” –vault-name [vault] –value $subscription.id

Finally, store the tenant id:

az keyvault secret set –name “tenantId” –vault-name [vault] –value $subscription.tenantId

Next we’ll setup a script that fetches all of the secrets from the key vault and assigns them to environment variables that terraform will automatically use.  Here is how that script looks:

$keyVaultName="youKVNameHERE"

# get values from the KV
$env:ARM_SUBSCRIPTION_ID =(az keyvault secret show --vault-name $keyVaultName --name "SubscriptionId" --query "value") -replace '"', ''
$env:ARM_CLIENT_ID = (az keyvault secret show --vault-name $keyVaultName --name "tfClientId" --query "value") -replace '"', ''
$env:ARM_CLIENT_SECRET = (az keyvault secret show --vault-name $keyVaultName --name "tfClientSecret" --query "value") -replace '"', ''
$env:ARM_TENANT_ID = (az keyvault secret show --vault-name $keyVaultName --name "tenantId" --query "value") -replace '"', ''

You’ll have to change $keyVaultName to whatever name you’re using for your key vault.   You’ll also want to save this in a ps1 file so you can run it.  You’ll have to run this script before you start doing Terraform development so all of the environment variables will be setup.  You could also add this to your PowerShell profile script so it runs automatically each time you start PowerShell.

Now we’re ready to test our workstation to see if we can move on and start writing terraform.  For the test we’ll just pull down my test repo to your workstation:

Git clone https://github.com/jakewatkins/jkwTerraformAzure.git

Now we’ll do some actual terraform.  CD to the demo-terraform directory and run the terraform config script we just wrote so our environment variables will be set.  Next, initialize the workspace:

terraform init

Then we create a new workspace called dev

terraform workspace new dev

Now we’ll do a terraform apply.

terraform apply -auto-approve

You should see a bunch of status information telling you want Terraform is going to do and then information telling you what it is creating.  When it’s all done, you can open your Azure console to see the resource group you created.

That’s it.  You’re ready to start working with Terraform and Azure.

Starting a new project with Visual Studio & Azure DevOps

I put together a screen cast that shows how I setup new projects in Visual Studio and Azure DevOps (VSTS).

My goal is to give you some ideas for setting up your projects and let you see how I do it. If you have your own ideas, please share them.

I’m not claiming you must do it my way. But I do think you should think about how you like things arranged and then do that consistently. As technologies change and you learn new stuff, you’ll change how you setup your project. That is as it should be.

VM face plant

For the past year or so I change how I have my workstation configured. I’ve taken pretty good advantage of Hyper-V and the bare metal system itself has very little installed on it. I mostly just do social media and blogging there. I have 2 other VMs that are used for work. One if my ‘Office’ machine where I keep work related stuff like email, documents and so on. Most is actually either stored in Exchange, Teams or OneDrive so it’s easy enough to get at documents from anywhere. The other VM is my development workstation where I have ALL of my development tools installed. Which brings me to the problem.
The Office VM is 300Gig! The Development VM is 400Gig! Along with the other smaller VMs and other files I have nearly filled a Terabyte SSD! DOH!
I don’t really want to throw anything away, but at the same time this doesn’t seem to be the great leap forward I thought it would be. The bare metal machine is just fine and the VMs run fast enough, but the development workstation just seems wrong. My original idea what to spin up a fresh VM for each project and then throw it away when I finished. Only install what is needed for that project so that the VM doesn’t become overgrown and so on. This should work well because all my project files go to either GitHub or VSO.
The Office machine should also be a lot smaller. I think the offline mailboxes are the problem. Do I really need email from 10 years ago? Do I really need to keep files over 10 years old?
Guess it’s time for some clean up and hard decisions.

Never leave home! Adventure with OpenVPN and WOL

I prefer working from my office in my house.  It’s a million times more comfortable for me and I fill at least a thousand times more productive there than I do anywhere else.

However, on-site happens and when it does I need to be able to access my stuff.  To make that happen I setup a RaspberryPi to host OpenVPN.  So far this has been great.  However, today when I tried to jump on one of my VMs to do some work I couldn’t get in.  VPN was working fine, I just couldn’t RDP to my VM.  After looking around I found out that my physical workstation had gone to sleep.  DOH!

My daughter is home, she is doing an online school (like father like daughter I guess), so I could call her.  But first I wanted to see if there was a better solution.  It turns out “Wake On Lan” is a thing and is turned on by default for Windows 10 (something I need to look in to – is this a good thing?).

After a little research I figured out that Raspbian has a package for this.  I just needed the MAC address for my physical machine.  A quick SSH to my Raspberry and no more problem:


sudo apt-get install wakeonlan
wakeonlan this:is:not:my:mac:address

A quick refresh on my network status page and my workstation is back!

I’m still trying to work out DNS issues b/c I don’t have name resolution for my home network.  I have to use my network status page to get IP addresses.  Not a big deal and I’ve configured my router to reserve the addresses so I can just use my hosts file.  But a DNS server would be cooler.  My tomorrow.

Architecting for Containers

Overview

As I’ve been learning about Docker and containerization in general I’ve given some thought to how it will impact the way I architect and design my solutions.  However, the more I have thought about it the more I think it’s a non-issue.

For developers and solution architect nothing has changed.  You are still going to write code in Visual Studio.  You’ll still write code using C# or VB.NET.  One difference is that you’ll use the .NET Core framework and ASP.NET MVC Core instead of the regular .NET framework, but I don’t see this as a restriction.  From what I can tell all our favorite tools are available to use.  We can still use Entity Framework to access backend databases.

A small change is that if you’re using a Microsoft SQL database from a Linux container you’ll have to use SQL Authentication instead of Windows Authentication.  Beyond that though, you can still write your LINQ statements to query the database and process the results.

So if nothing has really changed, is there anything to that should be considered if you’re planning to deploy your solution in containers?  Yes, I think there are several.

Technology Selection

The first consideration is the selection of technologies.  Today, you can build your solution using either Windows Containers or Linux Containers.  Personally, I think using Linux Containers is the better choice today.  Linux Containers have wider support right now that Windows Containers.  Your container can run in environments like OpenShift, AWS EC2 Container Service, and of course Azure Container Service.  You can also build on top of a huge library of existing Docker images from Docker Hub.  The MySql image comes to mind, instead of having to spend time building your own image you reuse existing official images.  Microsoft also provides a SQL Server image you can use, which brings me to my next consideration.

Not everything has to be in a container

You can host services like Microsoft SQL Server or MySql in a container but I don’t think it really buys you much.  Containers are ephemeral, short lived, and when they go away their state goes away too.  You can configure volumes to store data, but that will have an impact on your scale out scenario.  I think you’re better off either running your database in Virtual Machines or in the cloud (ie Azure Sql, AWS RDBMS, etc.).  This choice will have an impact on your ability to move your containers around.  If you are using SQL Server hosted by an on premises Virtual Machine then lifting the container to the cloud will be require extra work (Azure ExpressRoute, AWS VPN) or a migration of the database server too.  In either case you’ll have some additional configuration and testing to perform.  However, this isn’t unique to containers.  Any application that is migrated from on-premises to the cloud will have similar challenges.

However, even though I don’t think it is brilliant, there is an argument to be made that in a Micro-Service architecture putting the database in a container makes sense.  In which case the containers would be moved together avoiding these headaches.

Configuration Secrets

If your solution has external dependencies (databases, web-services, etc.) then each environment will likely have different configuration values.  In the past I dealt with this by using different .net configuration files for each build environment.  However, .NET Core doesn’t appear to follow this practice and tends to favor using environment variables instead.  Docker-Compose allows you to specify a text file containing name value pairs for your environment variables so each environment can have its own file.  The only thing missing is this approach doesn’t allow things like passwords to be encrypted.  This means that you probably shouldn’t store configuration files in a repository.

Scale out

What containers are great at is scaling out.  If you keep your container images small then services like Kubernetes can spin up new instances of your service quickly in response to increased demand.  The image size is particularly important when a host must download the image from a repository.

To keep the time it takes to spin up the new container you should also only have one process per container.  If the host has to start a lot of processes in your container then there will be a lag before the new container can start processing requests.

Lifting to the cloud

As previously mentioned, if you anticipate that your solution could eventually go to the cloud then you should select services that make that migration as easy as possible.  Either create Micro-Services that allow you to put the database in a container, plan to migrate databases or other services to the cloud, or configure tunnels that will allow secure access to services behind your firewall (Azure ExpressRoute or an AWS VPN).

Logging

Containers are ephemeral and when a container goes away anything it contained is deleted.  So if your application is writing log files you should plan for a way to move those files out of the container.  Tools like Splunk can help with this, but then you’re running more than one process per-container.  Another option is to write logs files in to a blob storage container like Azure Blog Storage or AWS S3.

Regardless of how you do it, just having a strategy ahead of time will save you a lot of pain when your application is in production and stops behaving like it should.

Development workflow

This is where I think containers are going to have the biggest impact.   Self-hosting a solution is important for productively and quality assurance.   Self-hosting a solution means that the developer can host the entire solution on his workstation.   Trying to share resources like a database rapidly becomes a huge pain.  I often write unit tests that will clear several tables, load several tables with known data and then perform a series of unit tests that check tables for the results.  If I’m sharing the database with other developers they are going to get annoyed with me and we’ll end up running our unit tests less frequently as a result.  But if everybody is self-hosting the solution then we don’t have to worry about each other and can go nuts with our testing which usually increases the quality of the finished product.

Even though I think putting database servers in containers isn’t a great idea, in the development environment I think it is brilliant.

The sample application I built is able to download the MySql image and my DB builder base image, build the DBInit image, spin up MySql and DBInit and then run the scripts in DBInit in about 15 seconds.  Yes, I have a faster internet connection, but once I have the images cached the time it takes is even shorter.  So I can go through the code/build/debug cycle very quickly and not spend a lot of time waiting for the build step to finish.  Adding in unit tests to the build phase will slow it down, but also reduce the time I spend in the debug phase so it’s a fair trade.  I’m looking to see if I can get things like Sitecore in to a container so I can work with it this way as well.

Conclusions

At this point my view is that containers don’t have a direct impact on how you put your solution together.  Yes, I feel that using Linux containers is currently a better choice than Windows containers, but I think over time they will gain parity.  But the usual patterns you use writing your application don’t change.  If you’re an experienced ASP.NET MVC developer what you did before is what you’ll do now.  Your solution will just be deployed in a container.  If you adapt your workflow to take advantage of this then you’ll have an easier time delivering higher quality solutions.  I think that is a pretty big win.

Docker Stack – my full sample

[Source code is available on GitHub]
A Docker Stack is a collection of services that make up an application. In this case our stack will consist of an ASP.NET MVC Core web-page, a MySQL database and a load balancer. Doing this using Docker didn’t really pose any significant challenges, but it did remind me to not over look good practices just because I’m throwing together sample code.

What did I do?

Over the past few weeks I’ve been very focused on mastering Docker and I viewed this project as a sort of final to demonstrate how I’d use Docker for a real application. As already mentioned, the sample application is just a plane old web page that reads data from a database and stores data in a database. This is what most web-applications do.
I elected to use MySQL as the database for a couple of reasons. First and most importantly I wanted to learn it. Second it is much smaller that Microsoft SQL Server so putting it in a container makes sense, sort of. Third, it is supported by Entity Framework and would work in the environment of my application.
I also create a YML file with instructions for Docker-Compose to setup the services I wanted to deploy. I also created a pair of DockerFiles to create my images.
Most of this is supported by Visual Studio using its Docker support. However, there are aspects of Visual Studio’s Docker support that fall short of what I think developers really need. Primarily, you’re not entirely in Docker when you’re debugging. Also, your application is compiled outside of the container and the output is made available to the container via a volume. Finally, debugging doesn’t attach to the container. You’re running the code on your workstation and pretending you’re in the container.
My approach takes you out of Visual Studio and to the command line to build your application. In a different post I’ll dig in to how to debug an application that is running in a container.

The Full Sample

FullSample is an ASP.NET MVC Core application that uses Entity Framework to read and write data stored in a MySQL database. I’m still using .NET Core 1.1.2. There is no technical reason for this, I just haven’t expended that huge amount of strength it would take to change that drop down to 2.0. I’m resting up in preparation for that adventure.

Setting up the data model

I prefer to keep different components of my applications in separate projects. After creating the initial ASP.NET MVC Core project and solution I added a library project to the solution to separate the data model from the rest of the application. This is my normal practice and supports things like reuse and making the components easier to unit test.
This project has references for Microsoft.EntityFrameworkCore and Pomelo.EntityFrameworkCore.MySql. The rest of the project is the usual Entity Framework set of classes and interfaces. The point here is that there isn’t really anything unusual going on.

Notebook.Model

Setting up the database

 

Entity Framework provides a way to create database tables and relationships based on the model being used. However, I prefer to create the database DDL myself using SQL. This is primarily because in most cases I encounter databases have already been created or are controlled by separate teams that don’t like developers just throwing tables on their server in the fashion EF does it.
To create the database and its tables I just added a solution folder to hold my SQL files. With SQL Server I’d create a database project to handle this. Because I’m still new to MySql I wasn’t aware of any tools to help me so I’m just using some files to get the work done.

DBInit
In addition to the SQL files I also wrote a very simple shell script that we’ll use later to run the SQL files against MySql.

Hooking up ASP.NET MVC

The sample application uses the HomeController to read notes from the database and display them in a grid. HomeController also provides a handler for post backs to create new notes in the database.

Lesson learned

Nothing at this point is controversial. It’s just a basic web-application that reads and writes data from a database. For debugging, I switched the startup project from the Docker project to NoteWeb so I could just hit F5 to walk through my code.
One challenge is that I needed to start up and initialize the MySql container before I started debugging. Most of the time I just left MySql running. Another approach I could have used would be to setup a volume for the MySql container so the database would persist between session. I’ll examine this further in a moment.
The next challenge I ran in to was being a bone head. I should have written unit tests for my data model. I wasted a lot of time chasing issues that didn’t matter. This project got spread out over a couple of weeks and I forgot changes I made during different sessions. Having a unit test framework setup would helped save me time. At some point the EF data model was looking for a table called Notes and the SQL script was creating a table called Note. Naturally this caused things to blow up.

Moving in to Docker

Moving the project in to Docker was straight forward. Locally, I work with my code like I always do: write unit tests, write code, run in the debugger, test, repeat. Once I’m happy with my code I commit it to GitHub.
The Docker build image I described earlier is already setup for this scenario. The DockerFile for this project just needs the URL to the GitHub repository and we’re good to go:

# FullSample
#
# Compile the solution inside a docker container and then copy the results in to the final image
#

# Build stage 1 - compile the solution/application
FROM jakewatkins/ancbuildenv AS builder

WORKDIR /source

# copy the solution in to the image
RUN git clone https://github.com/jakewatkins/DockerFullSample.git /source

# restore the solution's packages
RUN dotnet restore 

#build the solution
RUN dotnet publish --output /app/ --configuration Debug

# Build stage 2 - build the container image
FROM microsoft/aspnetcore:1.1.2
WORKDIR /app
COPY --from=builder /app .

EXPOSE 80/tcp

# Set the image entry point
ENTRYPOINT ["dotnet", "NoteWeb.dll"]

All this DockerFile is doing is grabbing the project from GitHub, building the project and then copying the build output in to the final image.
The benefit of this approach is that the project will be build the same way regardless of where the DockerFile is run. This avoids issues around team members having different configurations or patches. The solution is always built the same way.
This is great for constant integration (CI). The only thing missing is running a battery of unit tests against the results, but we’ll cover that with another post.

Creating the MySql Image

My solution just uses a plain MySql image. I don’t customize the image in anyway. However, I do need a way to get my database and some sample data in to the MySql instance that gets started in a container when the image is run. To do this I use another container to do the actual database build.
Creating a MySQL Build image
In a previous post I demonstrated how I created an image with the MySql client and the Git client. Using that image as the starting point we use Git to download the project and then setup the shell script as the entry point for the image. We also add environment variables to the image that provide needed information for connecting to MySql
The shell script waits for MySql to become available and then uses the MySql client to execute the SQL files in our project:

#!/bin/sh
# build the notes database
mysqladmin -u root -p$MYSQL_ROOT_PASSWORD -h$DBHOST ping --wait 

# load the DDL
mysql -u root "-p$MYSQL_ROOT_PASSWORD" -h$DBHOST < /source/DBinit/notesdb.sql

# load some sample data
mysql -u root "-p$MYSQL_ROOT_PASSWORD" -h$DBHOST <span 				data-mce-type="bookmark" 				id="mce_SELREST_start" 				data-mce-style="overflow:hidden;line-height:0" 				style="overflow:hidden;line-height:0" 			></span>< /source/DBinit/notes-sample.sql

The DockerFile for the image looks like this:

FROM jakewatkins/mysql-db-build:1.1

RUN git clone https://github.com/jakewatkins/DockerFullSample.git /source \
			&& chmod +x /source/DBinit/build-notesdb.sh

ENTRYPOINT ["/source/DBinit/build-notesdb.sh"]

That’s it. This demonstrates the benefit of creating base images that are setup to work with your workflow. Because I already had the mysql-db-build image ready to go I just had to write 3 lines in a DockerFile.
One consideration in doing these custom base images is size. We want them to be as small as we can get them to speed up our processes. Images have to be downloaded, copied and executed. If they are big each step is going to take longer. I’m a little impatient so if it takes too long to do something I’m likely to skip it.

Docker-Compose

Docker-Compose is a separate component of Docker. Its function is to orchestrate the configuration and execution of different components in a Docker solution. In our application we have 4 containers on two networks to coordinate.

version: "3"

# for production create a volume to hold the notes database
# In development we're not going to bother
#volumes:
#  notesdata:

networks:
  frontend:
  backend:

services:

  mysql:
    image: "mysql:8.0.0"
    networks:
      - backend
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=mysecret
      - bind-address=0.0.0.0

  dbinit:
    build:
      context: .
      dockerfile: dockerfile-builddb
    networks:
      - backend
    environment:
      - MYSQL_ROOT_PASSWORD=mysecret
      - INITDB=true
      - DBHOST=mysql
    depends_on:
      - mysql

# the source for our application has to be pushed to GIT before building
# the image
  mvc:
    build:
      context: .
      dockerfile: Dockerfile-selfcontained
    networks:
      - backend
      - frontend
    ports:
      - "5022:22"
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - MYSQL_ROOT_PASSWORD=mysecret
      - DBHOST=mysql
      - DBPORT=3306
    depends_on:
      - mysql

  loadbalancer:
    image: dockercloud/haproxy:1.2.1
    ports:
      - 3000:80
    links:
      - mvc
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    networks:
      - frontend

To build the solution we go to the command line and execute
Docker-compose build
Mysql and loadbalancer will be skipped because we’re just using the raw images. Dbinit and mvc will be built. Once they have finished we can start bringing up the solution by getting the database started:
Docker-compose up dbinit
This will cause dbinit and mysql to be started. The shell script in dbinit will wait until mysql has started before executing the other steps. Once it is finished the dbinit container will exit but the msql container will keep running and be ready to serve up the Notes database.
Next we start mvc:
Docker-compose up -d loadbalancer
In this case I’ve added the ‘-d’ flag to the up. This tells docker-compose to start loadbalancer but leave it disconnected from the console. In the case of dbinit I didn’t use the ‘-d’ flag because the image exits when it has finished its work.
Because loadbalancer has a link to mvc and mvc depends upon mysql it will cause them to be started as well. We already started mysql so nothing happens there, but mvc will be started.
To test out solution out we can open a web-browser and point it to http://localhost:3000 and we should see something like:
home page

Lessons learned

This is the point where I ran in to trouble. Mostly because I got busy with other projects and had large gaps of time between sessions on this project. Between getting the web application running and getting the DBInit image working I changed the Notes table to be the Note table. Because I didn’t have unit tests I didn’t have an automated way to catch this goof up.
As a result, my images all built and would start up without any trouble. But trying to access the application it would crash. I initially did not have the ASPNETCORE_ENVIRONMENT environment variable set so I was getting the useless error page. However, it did tell me to add ASPNETCORE_ENVIRONEMT=Development to get the useful error page. Once I added that the issue was revealed and I wished I had taken the time to write some unit tests.

Conclusion

At this point I’ve walked the path from barely understanding Docker to being able to build realistic solutions that can be deployed in Docker. The basic things we’ve seen with this solutions is that our past skills don’t really change just because we are going in to a container.