---
title: Started a lift log
description: Lifts area launched under the Body wing. Same rule as the Mat — only sessions that actually happened, no programmed-but-skipped, no future plans.
section: meta
tags: [meta, changelog, body, lifts, data, infrastructure]
genre: index
lastUpdated: 2026-04-20
url: https://fardiniqbal.com/docs/changelog/2026-04-20-started-a-lift-log
---


Lifts joined the Body wing alongside the Mat. The discipline is the same: a page exists because the session was real. No "planned this week" entries, no programmed-but-skipped placeholders, no future-tense anything. Each session is its own MDX file under `content/docs/body/lifts/` named by date — the body walks through every lift in order with set-rep-weight and a few sentences on phenomenology (what felt easy, what cheated, what left gains on the table).

Underneath, this also shipped the first Tier 1b event stream — `content/data/lifts/2026.jsonl` — backed by three foundational pieces every future JSONL category will use: a Zod schema (`src/lib/schemas/lift.ts`) for the `session_logged` and `lift_logged` events, a canonical-path registry (`src/lib/data-registry.ts`) so MDX never hardcodes data paths, and a ULID-stamping event writer (`src/lib/write-event.ts`) that validates on every append. Two sessions are live so far. The narrative MDX is the human-readable record; the JSONL is the queryable shadow that lets analysis scripts and MCP tools answer questions like *what did I bench last month* without parsing prose.
