# Umair Ali Khatri — full text > Director, Product Experience and Services at 10Pearls, based in Karachi, Pakistan. Leads product experience and the design function, teaches Interaction Design and Tech Product Management at the Indus Valley School of Art and Architecture (on sabbatical from formal teaching), runs the Friends of Figma Karachi chapter, and makes design systems readable by AI agents. > Generated 2026-09-01 from https://umairalikhatri.com # Umair Ali Khatri — I design things for people > I design things for people. I lead product experience at 10Pearls in Karachi, run Friends of Figma Karachi, and make design systems that AI agents can read. Source: https://umairalikhatri.com/ Author: Umair Ali Khatri Updated: 2026-08-22 --- # I'm Umair. I design things for people. [What I do UX design, teaching, community. →](https://umairalikhatri.com/about/) [What I'm thinking about Writing, notes, half-finished ideas. →](https://umairalikhatri.com/writing/) [What's happening now The current season of my life. →](https://umairalikhatri.com/now/) [The rest of me Perfume, padel, music, fatherhood. →](https://umairalikhatri.com/life/) If any of this feels familiar, say hello. [Message me on LinkedIn](https://www.linkedin.com/in/umairalikhatri) --- # About — Umair Ali Khatri, UX Design Leader and Teacher > I'm Umair Ali Khatri, Director, Product Experience and Services at 10Pearls. On sabbatical from IVS, I run Friends of Figma Karachi and build agents that execute. Source: https://umairalikhatri.com/about/ Author: Umair Ali Khatri Updated: 2026-08-22 --- # About I'm Umair Ali Khatri, a UX design leader and teacher based in Karachi. ## The Outside I like calm and minimal choices. Neutral colors. Simple silhouettes. No visible branding unless it reflects me.I look organized and composed. ## The Inside My Mac desktop has many files scattered around. My head works the same way with ideas, tasks, and curiosity moving in parallel threads.I multitask often and explore a lot. I have accepted that this is part of how I think. Inside my head (and desktop), at any given moment: - Random screenshots - 12 half-finished notes - New ideas dropping in faster than I can organize them - AI agents picking up the slack ## Work I am Director, Product Experience and Services at 10Pearls, where I lead the User Experience Design function and help teams move from designing screens to making clear and thoughtful decisions that respect users. I also teach Interaction Design and Tech Product Management at Indus Valley School of Art and Architecture. I am on a sabbatical from formal teaching right now because I have two little boys at home, which feels like a valid time to slow down. I still stay involved through mentoring and guest sessions. ## The path The short version, with dates. Design Director at Vortechs Innovations, 2014 to 2015.Founder and Managing Partner at Two Dots Design Studio, 2016 to 2020. 10Pearls acquired it.Head of User Experience and Design at 10Pearls from November 2020, now Director, Product Experience and Services. Alongside the day job: Entrepreneur in Residence at The Nest I/O from 2016 to 2020, where I mentored more than 60 startups. Design workshops for the Sindh TechEd programme across 7 universities and 600 students. Digital consultant for the Karachi Biennale in 2017 and 2019. ## Community I run the Friends of Figma Karachi chapter. It became one of the most active chapters in 2024 with a large and growing community. I host events, introduce designers to new tools and ideas, and create spaces where people can learn together.I enjoy the energy this brings, and then I take quiet days to recharge. ## Play Padel tennis hooked me recently. I play with my left hand, even though I write with my right.When I was a child, a teacher made me switch my writing hand. I could write with both hands on a chalkboard, but I did not keep that ability with me. When I am not on the court or in a design session, I am experimenting. Perfumery is something I learned from my father. He has more than two hundred perfumes in his collection and creates his own blends.I create my own impressions and notes for fun and quiet time. If we meet, I might create one for you. If you are lucky, you might get a gift. I also blend songs using AI tools in a playful way. It is something I do for myself. ## Agents and Systems I am exploring the world of AI agents with a focus on execution rather than ideas. I use tools like Figma Make, Codex, Replit, WISPR Flow, Microsoft Copilot, and Nano Banana to build workflows that take a task, break it down, and move it forward while I stay in flow.These systems help me turn my internal chaos into something useful. ## Life Everything I do, whether it is design, teaching, community, scent, music, or agents, comes from curiosity and a willingness to explore the mess until something interesting comes out of it. If any of this feels familiar or interesting, feel free to [reach out](https://www.linkedin.com/in/umairalikhatri). Keep going: [→ What I'm doing now](https://umairalikhatri.com/now/) [→ Things I'm writing about](https://umairalikhatri.com/writing/) [→ The rest of my life](https://umairalikhatri.com/life/) [→ What I do for teams](https://umairalikhatri.com/work/) --- # Work — Making Design Systems Agent-Ready > I make design systems agent-ready: a 2–3 day audit into SKILL.md and DESIGN.md files, a half-day team workshop, or a talk on a 577-file knowledge graph. Source: https://umairalikhatri.com/work/ Author: Umair Ali Khatri Updated: 2026-08-22 --- # Work I make design systems agent-ready. I read this space early, and the standards proved the read. [skill-kit The design knowledge layer for AI agents. 577 files. Why it matters for your team. →](https://umairalikhatri.com/work/skill-kit/) ## Three ways in ### Audit 2 to 3 days. I turn your design system into SKILL.md and DESIGN.md files, tested against the agents your team uses. ### Workshop Half a day, hands-on. Your team leaves with a working SKILL.md draft for your own system. ### Talks How I built a 577-file design knowledge graph in one focused session, and what it means for design teams. If your design system needs to work with agents, say hello. [Message me on LinkedIn](https://www.linkedin.com/in/umairalikhatri) ## How the work gets done [Why I held back 505 files 31 August 2026 · 5 min read](https://umairalikhatri.com/work/why-i-held-back-505-files/) [The accessibility number nobody checked 31 August 2026 · 5 min read](https://umairalikhatri.com/work/the-accessibility-number-nobody-checked/) [Depth by border, not shadow 31 August 2026 · 5 min read](https://umairalikhatri.com/work/depth-by-border-not-shadow/) [What is SKILL.md 29 August 2026 · 5 min read](https://umairalikhatri.com/work/what-is-skill-md/) [What DESIGN.md is 29 August 2026 · 5 min read](https://umairalikhatri.com/work/what-is-design-md/) [What agents get wrong about design systems 29 August 2026 · 5 min read](https://umairalikhatri.com/work/what-agents-get-wrong-about-design-systems/) [The agent-readiness audit 29 August 2026 · 6 min read](https://umairalikhatri.com/work/the-agent-readiness-audit/) [How to write a SKILL.md for your design system 29 August 2026 · 8 min read](https://umairalikhatri.com/work/how-to-write-a-skill-md-for-your-design-system/) [How I built a 577-file design knowledge graph 29 August 2026 · 7 min read](https://umairalikhatri.com/work/how-i-built-a-577-file-design-knowledge-graph/) [Design tokens an agent can read 29 August 2026 · 5 min read](https://umairalikhatri.com/work/design-tokens-an-agent-can-read/) [AGENTS.md vs SKILL.md vs DESIGN.md 29 August 2026 · 5 min read](https://umairalikhatri.com/work/agents-md-vs-skill-md-vs-design-md/) [Making a design system agent-ready 29 August 2026 · 7 min read](https://umairalikhatri.com/work/agent-ready-design-systems/) Keep going: [→ More about me](https://umairalikhatri.com/about/) [→ What I'm doing now](https://umairalikhatri.com/now/) --- # skill-kit — The Design Knowledge Layer for AI Agents > A concept-first knowledge graph of design skills: 577 enriched files across 9 categories, distilled from 24 platforms. Public, re-runnable, agent-ready. Source: https://umairalikhatri.com/work/skill-kit/ Author: Umair Ali Khatri Updated: 2026-08-22 --- Umair Ali Khatri · UX design consultant # Design agents are only as good as the knowledge you give them. I mapped the AI design skills space before SKILL.md and DESIGN.md became the standard. The standards proved the read. Now I make design systems agent-ready. [Message me on LinkedIn](https://www.linkedin.com/in/umairalikhatri) [Browse the repo](https://github.com/Youmair/skill-kit) The shift ## The scarce asset moved. Design knowledge used to live in scattered repos, CSVs, and blog posts. Then the standards landed. SKILL.md in December 2025. DESIGN.md in April 2026. Now any agent can consume structured design knowledge. The scarce assets are curation and judgment. That is where I work. The proof 577 enriched skill files across 9 categories, distilled from 24 platforms skill-kit is a concept-first knowledge graph of design skills. One concept, one file. Frontmatter as schema, wiki-links as edges. Drop a file into your agent's context and it works. The method is public and re-runnable. [Youmair/skill-kit](https://github.com/Youmair/skill-kit) The take ## Your design system was written for humans. Agents read it and guess. The gap between your tokens and a file an agent can act on is real work: what to include, what to cut, which rules survive translation. The race to collect knowledge is over. The standards won it for everyone. Closing your gap is a judgment call, not a download. That is the conversation I sell. Work with me ## Three ways in. ### Audit 2 to 3 days. I turn your design system into SKILL.md and DESIGN.md files, tested against the agents your team uses. ### Workshop Half a day, hands-on. Your team leaves with a working SKILL.md draft for your own system. ### Talks How I built a 577-file design knowledge graph in one focused session, and what it means for design teams. [Message me on LinkedIn](https://www.linkedin.com/in/umairalikhatri) The person I am Umair Ali Khatri, Director, Product Experience and Services at 10Pearls, based in Karachi. 20 years of choosing design over engineering. My whole ops stack runs through Claude. The skill-kit methodology is public and carries its dates. [More about me](https://umairalikhatri.com/about/) · [The three ways in](https://umairalikhatri.com/work/) ## Questions ### What is skill-kit? skill-kit is a concept-first knowledge graph of design skills: 577 enriched skill files across 9 categories, distilled from 24 platforms. One concept, one file. Frontmatter as schema, wiki-links as edges. Drop a file into an agent’s context and it works. The method is public and re-runnable. ### What does it mean to make a design system agent-ready? Your design system was written for humans. Agents read it and guess. Making it agent-ready means turning it into SKILL.md and DESIGN.md files an agent can act on — deciding what to include, what to cut, and which rules survive translation. ### What are SKILL.md and DESIGN.md? They are the standards for structured design knowledge that any agent can consume. SKILL.md landed in December 2025 and DESIGN.md in April 2026. Because the standards won the collection race for everyone, the scarce assets are now curation and judgment. ### How can I work with Umair Ali Khatri on this? Three ways in. An audit takes 2 to 3 days and turns your design system into SKILL.md and DESIGN.md files, tested against the agents your team uses. A workshop is half a day, hands-on, and your team leaves with a working SKILL.md draft for your own system. Talks cover how a 577-file design knowledge graph was built in one focused session and what it means for design teams. ### Who is Umair Ali Khatri? Umair Ali Khatri is Director, Product Experience and Services at 10Pearls, based in Karachi, with 20 years of choosing design over engineering. He teaches Interaction Design and Tech Product Management at the Indus Valley School of Art and Architecture (currently on sabbatical) and runs the Friends of Figma Karachi chapter. His whole operating stack runs through Claude, and the skill-kit methodology is public and carries its dates. --- # Zen Habits, Sorted by How You Feel Right Now > Leo Babauta's public-domain Zen Habits archive, re-sorted by how you feel instead of when it was written. Pick the true one and get one post. Not a list. Source: https://umairalikhatri.com/zen/ Author: Umair Ali Khatri Updated: 2026-08-22 --- Zen Habits # How are you, right now? Pick the true one. You get one post. Not a list. - [I'm overwhelmed](https://umairalikhatri.com/zen/overwhelmed/) - [I can't get started](https://umairalikhatri.com/zen/cant-start/) - [I quit again](https://umairalikhatri.com/zen/quit-again/) - [I can't focus](https://umairalikhatri.com/zen/cant-focus/) - [I have too much stuff](https://umairalikhatri.com/zen/too-much-stuff/) - [I'm afraid](https://umairalikhatri.com/zen/afraid/) - [I'm exhausted](https://umairalikhatri.com/zen/exhausted/) - [I want to move my body](https://umairalikhatri.com/zen/move-my-body/) - [Money is stressing me out](https://umairalikhatri.com/zen/money-stress/) - [I'm too hard on myself](https://umairalikhatri.com/zen/hard-on-myself/) - [I'm not present](https://umairalikhatri.com/zen/not-present/) - [I want to begin again](https://umairalikhatri.com/zen/begin-again/) Words by [Leo Babauta](https://zenhabits.net). [Public domain](https://zenhabits.net/uncopyright/). --- # Dil — The Pixel Heart Behind This Design System > Dil is Urdu for heart. A pixel mascot with eight expressions, built from 6×6 blocks on a 14×11 grid and animated with GSAP. The story and the grid. Source: https://umairalikhatri.com/dil/ Author: Umair Ali Khatri Updated: 2026-08-22 --- # Dil Dil is the heart on this site. The little pixel one in the corner that watches you. It blinks. It follows your cursor. If you stick around long enough without moving, it falls asleep. Click it seven times and it winks at you. Dil is Urdu for heart. One syllable. Everyone understands it. ## Why a heart? I chose computer science because everyone told me to. I chose design because something inside me wouldn't shut up about it. That something was Dil. I built a startup. It failed. I built another one. The design was beautiful and nobody cared. I learned the hard way that making things pretty isn't the same as making things useful. That art and design look alike but serve different masters. Dil cracked a few times. It always repaired itself. Over the years it filled in. With experience, with people, with the slow realization that the best work comes from caring more than you're supposed to. Now it lives here. Quietly present. Watching, noticing, feeling things out. ## What Dil does Dil has eight expressions. Four it holds. Four it flashes. It holds: Neutral Calm, present Happy Eyes squeeze ^_^ Curious One eye widens Sleepy Droopy slits It flashes: Blink Gone for one frame Looking Eyes shift to you Surprised Eyes wide Wink One eye crescent That's the whole personality. Two pixel eyes and the way it moves. Turns out that's all you need. I stole the idea from EVA in WALL-E. A smooth shell, two oval eyes, and body language. That was enough to make you feel everything she felt. That's the bar. ## The philosophy I've spent my career designing for people. Understanding what they need. Watching how they move. Trying to make the thing they're using feel like it was made just for them. Dil is that instinct turned into a character. The part of any designer that cares too much, notices too much, and can't help but try to make things better. Every designer has a Dil. This one's mine. ## Design Saboteurs Your Dil, warped. Every saboteur is a heart that forgot its shape. The Pixel Polisher perfects the wrong thing The Portfolio Ghost ships, never documents The Impostor the master Hover to see the tell. Click to repair it. [→ Meet all eleven](https://umairalikhatri.com/dil/saboteurs/) ## The pixel grid Dil is built from 6×6 pixel blocks on a 14×11 grid. Pure rectangles. That's the whole vocabulary. The eyes are windows. They are always the color of the page behind Dil. Swapping expressions is just toggling which blocks are visible. Happy is three arched pixels per eye. Surprised is a 3×3 grid. Sleepy is a thin slit. The body tilts, floats, and hops using GSAP. The motion gives Dil weight and personality. Everything runs at 60fps, everything is SVG, everything ships as code. The color is charcoal by day and warm light by night. The same charcoal that's been in my logo since the beginning. ## Where Dil lives - This site. Top of every page, reacting to what you do. - Favicon. The heartbeat loop in your browser tab. - Stickers. All eight expressions, free to download. - Talks. Dil sits in the corner of my slides, reacting to the content. Dil was designed in a conversation between me and Claude, iterated through [too many ugly prototypes](https://umairalikhatri.com/writing/designing-dil/), and named in Urdu because some things should be said in your mother tongue. If you want to use Dil in your own way, a sticker, a reference, a remix, go ahead. Just keep the heart intact. Keep going: [→ Design Saboteurs, eleven ways a heart forgets its shape](https://umairalikhatri.com/dil/saboteurs/) [→ About me](https://umairalikhatri.com/about/) [→ The rest of my life](https://umairalikhatri.com/life/) [→ Things I'm writing about](https://umairalikhatri.com/writing/) --- # Design Saboteurs — 11 Ways a Designer Quietly Self-Sabotages > The Pixel Polisher, the Yes-Machine, the Portfolio Ghost, the Impostor. Eleven ways designers quietly sabotage themselves, drawn as pixel characters. Source: https://umairalikhatri.com/dil/saboteurs/ Author: Umair Ali Khatri Updated: 2026-08-22 --- # Design Saboteurs Your Dil, warped. Every saboteur is a heart that forgot its shape. Hover to see the tell. Click to repair it. Baseline This is what health looks like. Everything below is a deviation from it. #00 Dil Calm float. Blinks. Leans toward you. This is what health looks like. The Eleven Ten patterns. You will recognize at least one. #S1 The Pixel Polisher One lobe perfected, one edge neglected. Too focused to breathe. Move your cursor and nothing happens. It is not in the room you are in. this one's mine #S2 The Yes-Machine Stretched wide from absorbing everything. The smile never turns off. Move anywhere and it nods faster. this one's mine #S3 The Portfolio Ghost Ships constantly, documents nothing. Fifteen percent solid. No shadow. Hover and it fades further. Being noticed is the threat. this one's mine #S4 The Silent Presenter Strong work, weak defence. Eyes on the floor, barely breathing. Approach and it shrinks. this one's mine #S5 The Tool Chaser Orbited by tools it has not learned. Eyes stuck wide. Never blinks, never settles. Chases your cursor and always overshoots. this one's mine #S6 The Lone Craftsman Healthy float, turned away. Alone looks fine. That is the trap. Notice it and it looks further away. this one's mine #S7 The Trend Mirror Dressed for the other room. No motion of its own. It only moves when you move. Leave, and it freezes where you left it. this one's mine #S8 The Scope Martyr Carrying a pile that was never its own, sinking a little each cycle. Every visitor adds a block. Try it. this one's mine #S9 The Feedback Flincher Already cracked. Eyes closed by default, opening only in flashes. Approach and it hops away from you. this one's mine #S10 The Consensus Chaser Split down the middle, out of phase with itself, each eye watching a different audience. It leans toward whoever moved last. this one's mine The Master This one activates the others. #S0 The Impostor Outline only. Moves exactly like the real thing, casts no shadow, eyes too small for its face. Notice it and it starts to fade. this one's mine You have claimed 0 of 11. Nothing claimed. Sit with the page a while longer. They are quiet at first. Every designer has a Dil. These are the shapes mine has taken. Dil Saboteurs. Part of Design with Dil.Don't create art for your users. Create experience for them. [→ Back to Dil](https://umairalikhatri.com/dil/) --- # Writing — Notes on Design Decisions, Leadership and Systems > Notes on design as decisions rather than screens, building agents that execute, the art of noticing, community, and the calm and chaos of how I work. Source: https://umairalikhatri.com/writing/ Author: Umair Ali Khatri Updated: 2026-08-22 --- # Writing I write to understand what I am learning.Some notes are about UX.Some are about leadership and people.Some are about scent, sound, or the systems I build for myself. [Why I build agents that execute 31 August 2026 · 4 min read](https://umairalikhatri.com/writing/why-i-build-agents-that-execute/) [The studio I built, then sold 31 August 2026 · 5 min read](https://umairalikhatri.com/writing/the-studio-i-built-then-sold/) [The art of noticing 31 August 2026 · 4 min read](https://umairalikhatri.com/writing/the-art-of-noticing/) [Every designer has a Dil 31 August 2026 · 5 min read](https://umairalikhatri.com/writing/designing-dil/) [Design is decisions, not screens 31 August 2026 · 4 min read](https://umairalikhatri.com/writing/design-is-decisions-not-screens/) [How community energises and drains me 31 August 2026 · 4 min read](https://umairalikhatri.com/writing/community-gives-and-takes/) [Calm outside, chaos inside 31 August 2026 · 4 min read](https://umairalikhatri.com/writing/calm-outside-chaos-inside/) [AI is not replacing designers 29 August 2026 · 3 min read](https://umairalikhatri.com/writing/ai-is-not-replacing-designers/) Topics I am exploring: - What junior designers actually need - Simplicity as a team sport - Protecting focus in a noisy world - How perfumery taught me patience I prefer honest notes over perfect essays. More writing will appear here over time. Keep going: [→ More about me](https://umairalikhatri.com/about/) [→ What I'm doing now](https://umairalikhatri.com/now/) [→ The rest of my life](https://umairalikhatri.com/life/) --- # Now — What Umair Ali Khatri Is Working On > A now page, updated August 2026 from Karachi: making design systems agent-ready, rebuilding this site as real HTML, and running my whole operation through Claude. Source: https://umairalikhatri.com/now/ Author: Umair Ali Khatri Updated: 2026-08-31 --- # Now Updated: August 2026, Karachi ## Work - Director, Product Experience and Services at 10Pearls - Making design systems agent-ready. Turning them into SKILL.md and DESIGN.md files an agent can act on - Teaching my design team to think in decisions, not screens ## Building - Rebuilt this site from scratch. Every page is real HTML now, readable by people and machines. No JavaScript bundle. - Published a set of guides on making design systems work with AI agents. The method is public and carries its dates. - Wrote up how I built [skill-kit](https://umairalikhatri.com/work/skill-kit/), 577 files, and the 505 I chose not to ship. - Still run my whole operation through Claude. It is how I work, not a tool I reach for sometimes. ## Teaching - On sabbatical from IVS - Guest sessions and mentoring when they fit ## Community - Friends of Figma Karachi. Planning the next one. - Telling design teams what agents actually change, and what they don't ## Play - Padel tennis, left hand only - Blending perfumes - Remixing songs with AI tools - Tinkering with this site more than I probably should ## Life - Two little boys at home - Protecting deep focus - Saying yes to fewer things, but meaning it more Previously: [→ What I was doing in May 2026](https://umairalikhatri.com/now/may-2026/) [→ And in February 2026](https://umairalikhatri.com/now/february-2026/) Keep going: [→ More about me](https://umairalikhatri.com/about/) [→ Things I'm writing about](https://umairalikhatri.com/writing/) [→ The rest of my life](https://umairalikhatri.com/life/) [→ What I do for teams](https://umairalikhatri.com/work/) --- # Now, May 2026 — Archived Snapshot > An archived now page from May 2026: leading UX across product and delivery, shipping skill-kit, and moving my whole operation onto Claude. Source: https://umairalikhatri.com/now/may-2026/ Author: Umair Ali Khatri Updated: 2026-05-01 --- # Now Archived snapshot · May 2026, Karachi ## Work - Leading UX across product, marketing, and delivery - Teaching my design team to think in systems, not screens - Simplifying things that got too complex ## Building - Shipped [skill-kit](https://umairalikhatri.com/work/skill-kit/), a design-skills knowledge graph for AI agents. 577 files across 9 categories, concept-first, queryable, re-runnable. - Moved my entire ops to Claude. Chat for thinking, Code for building, Cowork for orchestrating. The AI isn't a tool I use sometimes. It's how I work now. - Writing specs and shipping features through Claude Code. Dil, my pixel heart mascot, was designed, prototyped, and documented entirely through this workflow. - Making agents that do the tedious parts so I can do the interesting parts. ## Teaching - On sabbatical from IVS - Still showing up for guest sessions and mentoring - Rewriting my learning materials in the background ## Community - Planning the next Friends of Figma Karachi meetup - Thinking about what AI actually changes for designers, and what it doesn't ## Play - Padel tennis, left hand only - Blending perfumes - Remixing songs with AI tools - Tinkering with my personal site more than I probably should ## Life - Protecting deep focus - Balancing social energy with quiet time - Saying yes to fewer things, but meaning it more Previously: [→ What I was doing in February 2026](https://umairalikhatri.com/now/february-2026/) Keep going: [→ What I'm doing now](https://umairalikhatri.com/now/) [→ More about me](https://umairalikhatri.com/about/) [→ Things I'm writing about](https://umairalikhatri.com/writing/) [→ The rest of my life](https://umairalikhatri.com/life/) --- # Now, February 2026 — Archived Snapshot > An archived now page from February 2026: teaching a design team to think in systems, a sabbatical from IVS, Friends of Figma Karachi, and the first agents. Source: https://umairalikhatri.com/now/february-2026/ Author: Umair Ali Khatri Updated: 2026-02-01 --- # Now Archived snapshot · February 2026, Karachi ## Work - Guiding my design team to think in systems - Making our products clearer and simpler - Helping designers make better decisions ## Teaching - Paused formal teaching at IVS for a sabbatical - Staying in touch through guest sessions and mentoring - Updating learning materials in the background ## Community - Planning upcoming Friends of Figma Karachi meetups - Exploring how AI is changing design workflows ## Play - Padel tennis with my left hand - Experimenting with perfume blends - Remixing songs using AI tools ## Agents I am building - Workflow agents that break tasks into steps - Execution agents that move tasks forward - Systems that update me only when I need to pay attention ## Life - Balancing social energy with quiet time - Protecting deep focus - Saying yes to meaningful things Keep going: [→ What I'm doing now](https://umairalikhatri.com/now/) [→ More about me](https://umairalikhatri.com/about/) [→ The rest of my life](https://umairalikhatri.com/life/) --- # Life — Padel, Perfumery, Music Experiments > Padel played left-handed, perfumery inherited from my father, songs blended with AI tools, and learning to enjoy a calm outside over a busy inside. Source: https://umairalikhatri.com/life/ Author: Umair Ali Khatri Updated: 2026-08-22 --- # Life ## Padel A sport I picked up casually but enjoy deeply. I play with my left hand. It feels natural. ## Perfumery A craft I inherited from my father. He has a large perfume collection and makes his own blends. I create my own impressions for fun and quiet time. ## Music Experiments I blend songs using AI tools. It is playful and relaxing. ## Chaos and Calm I prefer calm colors and simple choices in how I present myself.Inside, I run multiple threads at once.I am learning to enjoy this contrast. ## Tools I use Figma MakeCodexReplitWISPR FlowMicrosoft CopilotNano Banana Keep going: [→ More about me](https://umairalikhatri.com/about/) [→ What I'm doing now](https://umairalikhatri.com/now/) [→ Things I'm writing about](https://umairalikhatri.com/writing/) --- # Why I held back 505 files > skill-kit shipped 577 files. Another 505 sit on disk, gitignored on purpose. Why I held them back instead of shipping a bigger number. Source: https://umairalikhatri.com/work/why-i-held-back-505-files/ Author: Umair Ali Khatri Updated: 2026-08-31 --- [← Back to work](https://umairalikhatri.com/work/) THE WITHHELD SET # Why I held back 505 files 31 August 2026 · 5 min read skill-kit shipped with 577 files. On disk, there were 1,082. I held back 505 of them. On purpose. The [build story](https://umairalikhatri.com/work/how-i-built-a-577-file-design-knowledge-graph/) ended on the cut that took it down to 577. This is the other half. The 505 files that never shipped, and why the smaller number was the stronger one. ## The two folders Almost all of the held-back set lives in two folders. 365 files under industries/. Each one is a design system pulled from a real, named brand. Household names. The kind of company whose colours you could draw from memory. 140 files under templates/. Starter extractions from AI app-builder galleries. The scaffolds those tools hand you before you write a line of code. Together they are the two largest folders in the whole tree. Bigger than any category I published. ## The problem was not quality They are real work. I built them the same way I built the 577. Same frontmatter, same scripts, same audit. The difference is upstream. The 577 came from open repos with declared licences. The 505 did not. The problem was never quality. It was rights. A brand's design system carries trademark and copyright weight. I read the tokens off a shipped product. Reading them is one thing. Redistributing them under my name is another. Some of the template sources were CC-BY-SA. That is sticky copyleft. It follows the file into anything it touches. It cannot be relicensed to sit next to MIT. Some sources had no LICENSE file at all. A public repo with no licence grants no reuse rights. Silence is not permission. It is the opposite. ## The impressive ones are the dangerous ones Here is the trap. The industries/ files are the most impressive things in the collection. Recognisable brands. Systems you would want to study. They are also the ones I have the least right to hand out. The more famous the brand, the heavier the trademark, and the worse the idea of publishing its system as mine. The files that would have drawn the most attention were the files I could defend the least. That is not a coincidence. It is usually how it goes. ## What I decided So I decided not to release them. Not tag them and ship anyway. Not add a disclaimer and hope. I cut both folders from the public set and left them on my own disk. Then I made the exclusion physical. Both folders sit in .gitignore, with a comment that says why: redistribution rights are not verified. A gitignored file cannot be pushed by accident. The decision lives in the repo, not in my memory. Future me does not get to forget it at 1am. ## The number that tempted me 1,082 is a bigger number than 577. It reads better. It looks like more work, because it is more work. Every collection out there is racing to be the biggest. Most stars, most skills, most files. The count is the pitch. I could have shipped 1,082 and let nobody check the rights on 505 of them. Nobody audits a public repo on day one. I would have gotten away with it for a while. I decided the bigger number was not worth what it would cost to defend. ## The trade, said plainly "577 files, every one licence-declared" is a claim I can stand behind. "1,082 files, some of which I probably should not be redistributing" is not a claim. It is a liability with good marketing. One of those survives a lawyer reading it. One of those survives a source author finding their own work inside it. The smaller one. The scarce move in a field racing to publish is restraint. Anyone can collect more. Fewer people cut what they cannot stand behind. ## Same rule, larger scale This is not a one-off decision. It is the same rule that runs through the whole system. Files with no source are marked status: stub-no-source. Not filled with plausible guesses. The licence sweep read every file's frontmatter before release. The 36 copyleft files are flagged so they can never leak into composed output. Holding back the 505 is that instinct at scale. The system tells the truth about what it is. That only holds if I tell the truth about what I have the right to share. ## Why it is not a quick fix People assume this is a paperwork problem. Send an email, get a yes, publish. It is not. For 365 brands, there is no single door to knock on. Each system traces to a different company, a different legal team, a different answer. Some would say yes. Some would never reply. Some would say no. For the templates, the licence is often missing rather than restrictive. A missing licence is not a soft no. It is a hard no until the author says otherwise. Chasing 140 authors for a yes is not a weekend job. So the honest state is not cleared. Not never. Not yet. That is a real category, and pretending otherwise is how people ship things they should not. ## The landing The 505 files still sit on my disk. They may ship one day, once the rights are clear. One folder at a time, each with a licence I can name. Until then, 577 is the number. It is smaller. I can defend every file in it. If your design system needs to work with agents, [here are the three ways in](https://umairalikhatri.com/work/). The 505 stay on disk because 577 is the number I can defend. [Back to work](https://umairalikhatri.com/work/) --- # The accessibility number nobody checked > A system I audited said its brand lime passed WCAG AA at 5.2:1. I ran the number. It was 1.16:1, and the checkmark was decoration. Source: https://umairalikhatri.com/work/the-accessibility-number-nobody-checked/ Author: Umair Ali Khatri Updated: 2026-08-31 --- [← Back to work](https://umairalikhatri.com/work/) Contrast check # The accessibility number nobody checked 31 August 2026 · 5 min read A design system I was handed to audit said its brand colour passed WCAG AA at 5.2:1. I ran the number myself. It was 1.16:1. That gap is the whole story. Near the top of the document sat an accessibility table. Three rows, a contrast ratio on each, a green checkmark beside each. The kind of table that says a thing has been handled. The brand colour was a near-fluorescent lime, #D4FF27. The table put it at 5.2:1 on white. AA wants 4.5:1 for normal text. So the checkmark said pass. I measured it against white with the WCAG relative-luminance formula. #D4FF27 on #FFFFFF is 1.16:1. Not a near miss. Not a rounding error. The floor is 4.5 and the colour came in at 1.16. That is close to the worst contrast you can make without setting a colour on itself. Lime on white is almost white on white. You can paste those two hex values into any contrast checker and watch it happen in ten seconds. ## The impossible one The same table had black on white at 14.5:1. Black on white is 21:1. That is not a measurement I had to take. 21:1 is the maximum contrast that exists in the model. Pure black, pure white, nothing higher. You cannot get 14.5 between them any more than you can measure a right angle at 100 degrees. So the number was wrong, and wrong in the most telling way. It missed on the one pairing every designer knows by heart. Someone wrote it down wrong and left it there for the next reader. That told me the whole column was decoration. Nobody had run any of it. ## The contradiction Then I read four lines further down. Under the same table, in the same file, was a plain instruction. Do not use lime text on light backgrounds. It fails WCAG AA. Pass in the table. Fail in the prose. Same colour, same background, same page, four lines apart. Both cannot be true. The prose knew lime on white was unreadable. The table said it passed. Nobody caught that they disagreed, because nobody read them as a pair. The table was filled in by someone proving a point. The warning was written by someone who had looked at the screen. ## The number is a property of the role Here is the part I keep coming back to, because this one is not a typo. The system also had an indigo, #6366f1. A good colour. On white it measures 4.47:1. The AA bar for normal text is 4.5:1. So the indigo lands 0.03 under the line. That sounds like a rounding argument, and it is not. It means the same colour is fine and not fine depending on the job you give it. As a decorative accent, a rule under a heading, a large label, it clears the 3:1 bar for large text. As body copy or the text on a button, it fails. One hex, two verdicts. The fix is not to throw the colour out. The fix is to split it by role. A deeper indigo, #4f46e5, for anything you touch: button fills, links, focus rings, small labels. The lighter #6366f1 stays for decoration. Contrast is not a property of a colour. It is a property of a colour doing a job. A palette that lists one ratio per colour has already lost the thing that matters. It never asked what the colour was for. That is why I put [contrast inside the token, not in a table](https://umairalikhatri.com/work/design-tokens-an-agent-can-read/). A pairing and a job, written down together, so the number travels with the use. ## The take Design-system docs get audited for completeness, not correctness. Someone confirms the accessibility section exists. It has a table, it has numbers, it has checkmarks. Box ticked. The review confirms the section is present. It never confirms the section is true. A number in a table with a green checkmark reads as verified. It reads that way to a designer skimming for the value they need. It reads that way to a new hire. It reads that way to an agent. The agent takes 5.2:1 as fact and ships lime text on white, because the document said it passed. Nobody had run these numbers. The checkmark was doing the work of the calculation without the calculation behind it. It was decoration wearing the costume of a check. I found three broken numbers in one table in about ten minutes, with a formula and a calculator. The formula is public and has been for years. The tool is free. None of this was hard. It had never been done, because the table looked done. ## What I do now When I audit a system, I do not read the accessibility table. I recompute it. Every pairing, from the raw formula, against the real foreground and background. It takes an afternoon. It is the highest-return hour in the whole [audit](https://umairalikhatri.com/work/the-agent-readiness-audit/), because a wrong contrast number is worse than a missing one. A missing number sends you off to check. A wrong one tells you not to bother. The lime was the loud failure. The indigo at 4.47 was the quiet one, and the quiet one is the lesson. A colour can be right and wrong at the same time. A table with one number per row cannot hold that. Check your own contrast numbers. Not the checkmarks beside them. The numbers. Recompute the table yourself, because the checkmark is not the check. [Back to work](https://umairalikhatri.com/work/) --- # Depth by border, not shadow > I rebranded a live AI product. Four decisions I can defend: depth by border, one indigo split two ways, a stage rail, and a script that fails loud. Source: https://umairalikhatri.com/work/depth-by-border-not-shadow/ Author: Umair Ali Khatri Updated: 2026-08-31 --- [← Back to work](https://umairalikhatri.com/work/) CRAFT LOG # Depth by border, not shadow 31 August 2026 · 5 min read A rebrand is not repainting. I ran one this month on an internal AI product. An agent tool I redesigned from someone else's prototype palette into ours. The easy read is that I swapped a few colours. The real work was a set of decisions about what the interface should say, and I can defend each one. Here are four. ## Depth by border, not shadow I deleted every drop shadow in the UI. All of them. Depth is built with borders and a background shift instead. A shadow is a guess about a light source that is not in the room. It blurs an edge to fake distance. A border states the edge. It has a position, a colour, and a width you can read. The cards taught me the rule. A card that hovers to a brighter wash reads as disabled, not lifted. So I made the cards hover to an indigo border instead. The edge sharpens. Nothing dims. There is a second reason, and it is the one I care about more. An agent reads a border. border: 1px solid is a fact in the markup. A shadow that implies a panel is not. When depth lives in the structure, the structure carries the meaning, and anything reading the DOM gets it for free. Shadows are for true overlays only. A menu that floats over the page can cast one. A card sitting in a grid cannot. ## One indigo, two roles The brand ships one indigo. #6366f1. On white it measures 4.47:1. WCAG AA wants 4.5:1 for text. It misses by 0.03. So one colour cannot do both jobs. It cannot decorate a surface and also carry a white button label. The label would fail contrast, and nobody would catch it by eye. I split it. #4f46e5 is the same hue, deeper, at 6.29:1. That one takes the interactive fills and the small labels, the places where text has to pass. The lighter one decorates. One colour, two jobs, and the accessible one carries the words. Both sit on the same OKLCH hue, so on screen it reads as one indigo that deepens where it must. Nobody sees two blues. The accessibility is invisible, which is the whole point of doing it this way. This is a token decision, not a palette one. The name says which job. action gets the deep one. Decoration gets the light one. An agent reading the token knows which to reach for without measuring anything, which is what [semantic tokens are for](https://umairalikhatri.com/work/design-tokens-an-agent-can-read/). A hex on its own would have handed it the 4.47 and let it ship the near-miss with confidence. ## The stage rail, not the progress bar I deleted the progress bar. It said 62%. A 6-pixel bar filling to a percentage is true of every SaaS product ever shipped. It tells you how far along, and nothing else. I replaced it with an 11-segment rail. Eleven segments, filled to the current stage, in that stage's own ink. It says stage 8 of 11, and here is the shape of what is left. Same pixels. More said. The bar answers "how much". The rail answers "where, and what remains". Those are different questions, and the second is the one a person watching a build actually has. A filling bar hides the structure of the work behind a single number. A segmented rail is the structure. There is a payoff on the grid, too. Each card fills its rail in its own stage colour, so a wall of them reads light-to-dark by maturity. You see the state of the whole workspace before you read a word. The card also becomes a small copy of the pipeline on the detail screen. The two views rhyme instead of contradict. ## Replay a rebrand with asserts The last decision is not visual. It is about how a rebrand ships. Upstream keeps handing me raw exports with none of this applied. So I built a script that replays the mechanical parts onto a fresh export. Typography, the tokens, the logo swap, emoji to inline SVG, the spacing scale. Every step asserts on its anchor before it runs. If the text it expects to find is not there, the script stops and says which step and why. It does not skip the step and carry on. That is the whole design. A brand change that half-applies is worse than one that fails outright. A failure is loud. A half-apply is silent. A missing anchor with no assert is a screen that quietly went out with the old logo still on it. Nobody notices until a customer does. It earned its keep. When a later build introduced a new corner radius and a third logo slot, the asserts fired on both. I re-derived the anchors and moved on. I did not weaken the check to make it pass. A check you soften to get a green is not a check. This is the same idea I use to build this site. A patch that cannot find the thing it is patching should fail loud, not silent. I trust the build more because it is allowed to break. ## The part that isn't automatable Four decisions. Not one of them was "make it our colour". Each is a judgment about what the interface should communicate, and each carries a reason I can say out loud. Depth is an edge, not a guess. One indigo, split so the readable half carries the text. A rail that shows the shape of the work, not a number. A script that fails loud so a brand cannot half-ship. An AI can repaint. Hand it a hex and it will apply the new one everywhere the old one sat. Fast, and without a complaint. What it cannot do is decide that a shadow is a small lie. That 0.03 of contrast is worth a second token. That a percentage was the wrong question all along. Those calls came from doing the work, on this product, with these constraints in front of me. That is the scarce part. The rest of [my work](https://umairalikhatri.com/work/) sits on that difference. The contrast ratios here were measured on white with the WCAG 2.1 relative luminance formula. Check my numbers. [Back to work](https://umairalikhatri.com/work/) --- # What is SKILL.md > A skill is a directory, not a file. The required fields, the real constraints, the loading model, and the line that decides if it is ever read. Source: https://umairalikhatri.com/work/what-is-skill-md/ Author: Umair Ali Khatri Updated: 2026-08-29 --- [← Back to work](https://umairalikhatri.com/work/) Agent Skills # What is SKILL.md 29 August 2026 · 5 min read SKILL.md is a markdown file that tells an AI agent how to do one specific job. It lives inside a directory, and that directory is the skill. The file opens with YAML frontmatter carrying two required fields, name and description, followed by instructions in plain markdown. An agent loads only the description at startup and reads the rest when a task matches. That is the whole format. The rest of this page is the detail behind it. ## The directory A skill is a folder. The only file it must contain is SKILL.md. Three sibling directories are conventional. scripts/ holds executable code. references/ holds documentation the agent reads on demand. assets/ holds templates, images, and data files. acme-design-system/ ├── SKILL.md # Required: metadata + instructions ├── scripts/ # Optional: executable code ├── references/ # Optional: documentation └── assets/ # Optional: templates, resources None of the three are required. A skill that is one file is a valid skill. ## The frontmatter Two fields are required. Four are optional. Field Required Constraint name Yes 1 to 64 characters. Lowercase a-z , 0-9 , and hyphens. No leading or trailing hyphen, no -- . Must match the parent directory name. description Yes 1 to 1024 characters. Says what the skill does and when to use it. license No A license name, or a reference to a bundled license file. compatibility No Max 500 characters. Environment requirements. metadata No A map of string keys to string values. allowed-tools No Space-separated list of pre-approved tools. Experimental. The gotcha is in the name row. It must match the parent directory name. A folder called Acme-Design-System cannot hold a skill named acme-design-system. Validation fails, and the folder name is not fixable from inside the file. ## The description This is the field that matters. Everything else is plumbing. At startup an agent loads the name and description of every installed skill. Nothing else. The description is the only evidence it has when it decides whether to open your file. Write it badly and the skill is installed, valid, and never read. The spec makes the point with two versions of the same skill. Poor: description: Helps with PDFs. Good: description: Extracts text and tables from PDF files, fills PDF forms, and merges multiple PDFs. Use when working with PDF documents or when the user mentions PDFs, forms, or document extraction. The second one does three things. It names the actions. It names the trigger condition. It includes the words a user is likely to type. The same failure in a design system reads like this. Poor: description: Our design system. Good: description: Component rules, tokens, and layout patterns for the Acme design system. Use when building or reviewing Acme UI, choosing colours or spacing, or when the user mentions Acme components, tokens, or brand. You have 1024 characters. Most people use forty. Spend them on the words a person types when they need this skill. ## The loading model Agents load skills progressively, in three stages. The spec gives its own numbers for the first two. Discovery, around 100 tokens. The name and description fields, loaded at startup for every installed skill. Activation, under 5000 tokens recommended. The full SKILL.md body, loaded only once the agent decides the skill is relevant. Execution, as needed. Files under scripts/, references/, and assets/, loaded only when the instructions call for them. This is why a hundred installed skills cost so little to keep around. A hundred descriptions is a few thousand tokens. The bodies stay on disk until something needs them. It is also why the description carries the whole load. It is the only part of your skill that competes for attention. ## The example A real one, short enough to copy. --- name: acme-design-system description: Component rules, tokens, and layout patterns for the Acme design system. Use when building or reviewing Acme UI, choosing colours or spacing, or when the user mentions Acme components, tokens, or brand. license: MIT --- # Acme design system ## Tokens Colour, spacing, and radius values live in `references/tokens.md`. Read that file before writing any style. ## Components Use an existing component from `references/components.md` if one covers the case. Do not build a new button, input, or card. ## Rules 1. Spacing comes from the 4px scale. No arbitrary pixel values. 2. Body text is 16px minimum. Never below. 3. Every interactive element carries a visible focus state. ## Checking your work Run `scripts/lint-tokens.sh` against any file you changed. Note what the body does not do. It does not paste the token table into the instructions. It points at a file and says when to read it. ## The limits Three pieces of practical guidance sit in the spec, and all three exist to protect context. Keep SKILL.md under 500 lines. Past that, move detail into references/. Keep file references one level deep. A file that points at a file that points at a file makes the agent burn context walking the chain. Validate before you ship: skills-ref validate ./my-skill That checks the frontmatter and the naming conventions. It will not tell you whether the description is any good. ## The origin The format was originally developed by Anthropic and released as an open standard. Support is now broad, including Claude Code, Cursor, VS Code, GitHub Copilot, Gemini CLI, Codex, OpenCode, and Goose. The specification page does not carry a publication date. I am not going to invent one. ## Design systems Nothing in the format is design-specific. It is a general packaging standard for procedural knowledge, and PDF processing is the spec's own worked example. It happens to fit design systems well. A design system is already rules plus references plus assets, written down. The work is deciding which rules survive the translation, not converting the file. I used this format for [skill-kit](https://umairalikhatri.com/work/how-i-built-a-577-file-design-knowledge-graph/), 577 files across 9 categories. The formatting was the fast part. The curation was not. If you want the fuller picture of how this fits with DESIGN.md and the rest, start at [agent-ready design systems](https://umairalikhatri.com/work/agent-ready-design-systems/). If you want to see [what I do](https://umairalikhatri.com/work/) with it, that is there too. A skill is a folder with a good description on top. Most of the work is in that one line. ## Questions ### What is SKILL.md? SKILL.md is a markdown file that tells an AI agent how to do one specific job. It lives inside a directory, and that directory is the skill. The file opens with YAML frontmatter carrying two required fields, name and description, followed by instructions in plain markdown. An agent loads only the description at startup and reads the rest when a task matches. ### What fields does a SKILL.md require? Two frontmatter fields are required. name is 1 to 64 characters, lowercase a-z, 0-9 and hyphens, and must match the parent directory name. description is 1 to 1024 characters and says what the skill does and when to use it. license, compatibility, metadata and allowed-tools are optional. ### How does an agent load a skill? Progressively, in three stages. Discovery, around 100 tokens: the name and description of every installed skill, loaded at startup. Activation, under 5000 tokens recommended: the full SKILL.md body, loaded only once the agent decides the skill is relevant. Execution, as needed: files under scripts/, references/ and assets/, loaded only when the instructions call for them. ### Where did SKILL.md come from? The format was originally developed by Anthropic and released as an open standard. Support is now broad, including Claude Code, Cursor, VS Code, GitHub Copilot, Gemini CLI, Codex, OpenCode, and Goose. Every constraint on this page comes from the Agent Skills specification at agentskills.io, fetched 29 August 2026. [Back to work](https://umairalikhatri.com/work/) --- # What DESIGN.md is > DESIGN.md is a Google Labs format that gives coding agents a design system they can read. It is at version alpha. Here is what it defines. Source: https://umairalikhatri.com/work/what-is-design-md/ Author: Umair Ali Khatri Updated: 2026-08-29 --- [← Back to work](https://umairalikhatri.com/work/) The format # What DESIGN.md is 29 August 2026 · 5 min read DESIGN.md is a file format that tells a coding agent what your design system looks like. One file. YAML tokens at the top, prose underneath. The agent reads it and stops guessing. It came out of Google Labs. It was built for Stitch, Google's design tool, and then open-sourced. The spec lives at github.com/google-labs-code/design.md. The repository calls it "a format specification for describing a visual identity to coding agents" and says it gives them "a persistent, structured understanding of a design system." Persistent is the word doing the work. A prompt lasts one session. A file in the repo lasts as long as the repo does. It is also a draft. The spec header says version: alpha. I will come back to that, because it changes what you should do with it. ## The shape A DESIGN.md has two halves and they do different jobs. YAML frontmatter between --- delimiters carries the tokens. The markdown body below carries the reasoning. The spec is direct about the split. "The tokens are the normative values; the prose provides context for how to apply them." That one sentence is the whole design. Machines read the top half. People argue in the bottom half. ## The keys There are nine frontmatter keys. version, name, description, omitted, colors, typography, rounded, spacing, components. Only name is required. Every other key is optional. The content bar sits lower than most people expect. In the spec's words, "at least the primary color palette must be defined, and additional color palettes may be defined as needed." A name and a primary colour is a valid DESIGN.md. The token keys are plain maps. colors maps a token name to a value. rounded and spacing map scale names to dimensions. typography maps a role like h1 to fontFamily, fontSize, fontWeight, lineHeight and letterSpacing. components is the one that composes. It maps a component name to sub-tokens, and a value can point back at a token defined above, like {colors.primary-60}. ## The sections The body has eight ## sections in a defined order. Overview (or Brand & Style). Colors. Typography. Layout (or Layout & Spacing). Elevation & Depth (or Elevation). Shapes. Components. Do's and Don'ts. The order is defined, not suggested. Three of the eight carry an alternate name, so the format bends on wording and not on sequence. ## The omitted array This is the part worth your attention. omitted is an array where you declare the sections you left out. The spec calls it "an array of sections that are intentionally omitted from the design system. This suppresses linter warnings for missing sections." Read that twice. The format expects you to be incomplete. It only asks you to say so. Most design systems are incomplete. Elevation never got decided. The component list covers four things while the product ships forty. That is normal. Every team pretends otherwise in the documentation. Without omitted, a reader cannot tell a gap from a decision. With it, a missing elevation scale is on the record as a choice. That turns an incomplete design system into an honest one instead of a broken one. It also does something quieter. It stops an agent inventing the missing part. An agent handed a system with no elevation scale will invent shadows. An agent handed a system that declares elevation omitted has been told where the edge is. I use the same move in skill-kit. Files with no canonical source carry status: stub-no-source instead of plausible filler. That was [the curation step](https://umairalikhatri.com/work/how-i-built-a-577-file-design-knowledge-graph/), and it took longer than the build. A declared gap is a work list. Invented content is a lie you cannot grep for. ## The file Here is a complete one. The name and the colour values are the spec's own example, extended into a full file. --- version: alpha name: Daylight Prestige description: A warm, high-contrast editorial system. omitted: - Elevation & Depth - Components colors: primary: "#1A1C1E" secondary: "#6C7278" tertiary: "#B8422E" neutral: "#F7F5F2" typography: h1: fontFamily: Public Sans fontSize: 48px fontWeight: 600 lineHeight: 1.1 letterSpacing: -0.02em body-md: fontFamily: Public Sans fontSize: 16px fontWeight: 400 lineHeight: 1.6 rounded: sm: 4px md: 8px full: 9999px spacing: base: 16px md: 16px lg: 32px gutter: 24px --- ## Overview Editorial, warm, high contrast. Near-black on off-white, one rust accent. Restraint over decoration. ## Colors `primary` is text and every solid surface. `tertiary` is the only accent and it is used once per screen. `neutral` is the page. ## Typography Public Sans throughout. Headings tighten to -0.02em. Body runs at 1.6 for long reading. ## Layout 16px base, 24px gutter. Content column caps at 72 characters. ## Shapes 4px on inputs, 8px on cards, `full` on avatars only. ## Do's and Don'ts Do keep the rust accent to one element per screen. Don't introduce a second typeface. Don't add a shadow. There is no elevation scale here yet. Two sections are missing from that body and both are declared in omitted. A linter reads that as a decision. So does an agent. ## The alpha version: alpha is in the spec header and it is not decoration. Anyone building on DESIGN.md today is building on a draft. Keys can change. The section list can change. What you tool against now may not survive the next revision. Two things the spec does not say, which get repeated as though it did. The spec document states no publication date. Google's own announcement does. Google Labs open-sourced the DESIGN.md draft on 21 April 2026, in a post on the Google blog. The GitHub repository was created on 10 April 2026, checked via the API on 29 August 2026. So the date is Google speaking, not the spec file. It states no licence. The repository is labelled Apache-2.0 on GitHub, checked 29 August 2026. That is the repo, not the document. Small distinctions. They matter when you are deciding what to ship on top. Neither one is a reason to avoid the format. They are a reason to write down which version you read and when you read it. ## The take Write one anyway. Alpha is a reason to keep it small, not a reason to wait. A name, a primary colour and an honest omitted array is twenty minutes of work. It is more than most teams hand an agent today. The rest of this cluster covers what goes in one, and how it sits next to SKILL.md. Start at [agent-ready design systems](https://umairalikhatri.com/work/agent-ready-design-systems/). If your design system needs to work with agents, say hello. ## Questions ### What is DESIGN.md? DESIGN.md is a file format that tells a coding agent what your design system looks like. One file: YAML tokens at the top, prose underneath, so the agent reads it and stops guessing. It came out of Google Labs, built for the Stitch design tool and then open-sourced, with the spec at github.com/google-labs-code/design.md. ### What does a DESIGN.md contain? Two halves. YAML frontmatter carries the tokens across nine keys — version, name, description, omitted, colors, typography, rounded, spacing and components — of which only name is required. The markdown body carries the reasoning in eight ordered sections: Overview, Colors, Typography, Layout, Elevation & Depth, Shapes, Components, and Do’s and Don’ts. ### What is the omitted array for? omitted is an array where you declare the sections you left out, which suppresses linter warnings for missing sections. The format expects you to be incomplete and only asks you to say so: a declared gap reads as a decision rather than a break, and it stops an agent inventing the missing part. ### Is DESIGN.md stable? No. The spec header says version: alpha, so anyone building on it today is building on a draft, and keys and the section list can change. Google Labs open-sourced the draft on 21 April 2026 and the repository is labelled Apache-2.0. Alpha is a reason to keep a DESIGN.md small, not a reason to wait. Checked against the spec at github.com/google-labs-code/design.md on 29 August 2026. [Back to work](https://umairalikhatri.com/work/) --- # What agents get wrong about design systems > Seven ways agents fail on a design system written for humans. Invented tokens, drift, the purple default. None of them are model failures. Source: https://umairalikhatri.com/work/what-agents-get-wrong-about-design-systems/ Author: Umair Ali Khatri Updated: 2026-08-29 --- [← Back to work](https://umairalikhatri.com/work/) Failure modes # What agents get wrong about design systems 29 August 2026 · 5 min read Every failure listed here looks like a model failure. None of them are. The agent did what it was asked, with what it was given. The file was the problem. Seven failure modes. Each one has a fix, and every fix is a field in a file. ## The invented token Ask an agent for the disabled state of your secondary button. If your file does not define one, you will get a hex code anyway. It will be plausible. It will be named like your other tokens. It will be wrong. That is the default failure of this entire category. Not refusal. Confident invention. It happens because absence and omission look identical. A file that stops at six colours never says whether the seventh was cut on purpose or forgotten. DESIGN.md fixes this with a field. omitted is an array in the frontmatter. Declare a section there and the spec lets you drop it. The only thing you cannot omit is the primary palette. Declared absence is not a gap. It is an instruction. ## The drift The grey in screen one is not the grey in screen nine. Nobody notices until the screens sit side by side. Then there are two greys. This happens when the value only ever lived in prose. An agent reading "a warm neutral background" rebuilds a hex every time it needs one. Reconstruction is not recall. DESIGN.md splits the file for exactly this. YAML frontmatter carries the tokens. The markdown body carries the rationale. The spec's own line: "The tokens are the normative values; the prose provides context for how to apply them." A named token gets copied. A described colour gets re-invented. ## The blank slate Every session starts from nothing. Your agent has no memory of the greys you settled yesterday. The system is only as present as whatever you pasted into the window. Most teams answer this by pasting more. That runs out of room, and it puts your design system in competition with the actual work for context. SKILL.md answers it with progressive disclosure. Name and description load at startup for every installed skill, at roughly 100 tokens each. The full body loads only when the skill activates, and the spec recommends keeping that under 5000 tokens. Anything bigger sits in references/ and is read on demand. The load-bearing field is description. The spec asks it to say what the skill does and when to use it. That second half is what makes an agent reach for the file without being told. The system stops being something you remember to paste. ## The median Give an agent nothing specific and you get the page everyone else gets. Purple gradient. Inter. A hero with gradient text. Four rounded cards in a grid. Developers have named it. "AI slop" is the common label, and the colour has its own: the Purple Problem. It traces to Tailwind UI's bg-indigo-500, the default button colour from years ago. Tailwind's own creator has since apologised for it, half-joking that it made every AI-generated UI on earth indigo. The mechanism is simpler than the naming. A model with no constraint returns the median of what it has seen. The median of web design since about 2019 is that page. The fix is not a better prompt. It is a defined value. DESIGN.md requires the primary palette and nothing else. That one required field is what displaces the median. ## The adjective Hand an agent adjectives and it hands you adjectives back. "Confident and approachable" produces nothing you can check. Neither does "clean and modern". The agent will agree with you and then build the median page. Descriptions are written for humans who already share the context. Agents share no context. SKILL.md is built the other way round. The body is instructions, not description. The spec caps it at 500 lines, keeps file references one level deep, and puts anything runnable in scripts/. Adjectives describe the outcome. Procedure produces it. ## The stale rule An agent will apply your deprecated button rule with total confidence. Nothing in a normal design system says when a rule was last true. No fetch date, no status, no expiry. A rule written three years ago reads exactly like one written last week. Humans route around this. Someone in the channel says we do not do that any more. An agent has no channel. This is the one thing I built into skill-kit from the first file. All 577 files carry fetched_at and status. Status takes one of four values: enriched, downloaded, vendor-only, stub-no-source. [The build is written up here](https://umairalikhatri.com/work/how-i-built-a-577-file-design-knowledge-graph/). A stub that says it is a stub beats a page of confident prose. DESIGN.md does the same thing to itself. Its spec header reads version: alpha. The format tells you it is a draft. ## The missing don't Design systems document what to do. Agents fail on what nobody thought to forbid. Nobody wrote down that the brand purple is never a background. Everyone on the team knows. It has never been typed anywhere. So the agent uses it as a background. Nothing said not to, and it is the strongest colour in the file. DESIGN.md ends every file with a section for this. Its heading order runs Overview, Colors, Typography, Layout, Elevation, Shapes, Components, then Do's and Don'ts. Last section, and the one most teams leave empty. It is the one carrying every rule your team has never had to say out loud. ## The reframe None of these are model failures. The agent that invented a token was asked for a token that did not exist. The agent that drifted was given a description instead of a value. The agent that shipped the purple gradient was given no constraint at all. Each one did exactly what was asked, with exactly what was given. That moves the work. You are not prompting better. You are writing a file that answers the questions an agent will ask, including the ones about absence. Most of that is not writing. It is finding the rules your team has never typed out. If you want to know which of these seven your system already fails, that is [the audit](https://umairalikhatri.com/work/the-agent-readiness-audit/). If you want the long version of the fix, start with [agent-ready design systems](https://umairalikhatri.com/work/agent-ready-design-systems/). Nothing here needs a smarter model. Every fix here is a field in a file. Both specs are public and carry their dates. [Back to work](https://umairalikhatri.com/work/) --- # The agent-readiness audit > A checklist for your design system. Six sections, yes or no answers, and one test at the end that matters more than the other twenty-one. Source: https://umairalikhatri.com/work/the-agent-readiness-audit/ Author: Umair Ali Khatri Updated: 2026-08-29 --- [← Back to work](https://umairalikhatri.com/work/) Agent-ready # The agent-readiness audit 29 August 2026 · 6 min read You can find out how agent-ready your design system is in one afternoon. This is the checklist I run. Six sections, twenty-two questions, every one a yes or a no. Write the answers down. The noes are the work. Answer for the system as it is written today, not as you intend it. A rule that lives in someone's head is a no. A rule in a Figma comment is a no. An agent reads files. If you want the argument behind the checklist rather than the checklist itself, that is in [agent-ready design systems](https://umairalikhatri.com/work/agent-ready-design-systems/). ## Before you start Pick one screen your team has already shipped. Something real, with a form, a table and an empty state. Set it aside. You need it for the last section. Then open your design system. ## The tokens Does every colour have a semantic name? color-surface-raised is a yes. grey-200 is a no. Ask an agent for a card background and it reaches for a raw value. Next screen, it reaches for a different one. Is there one path to each raw value? If both #1B1B1B and color-fg-default sit in your docs, the agent uses whichever it read last. Are foreground and background stated as pairs? A list of colours is not a palette. color-fg-onBrand on color-bg-brand is a pairing. An agent cannot work out which of your nine greys survives on your brand blue. Is there a declared contrast minimum, written as a number? WCAG 2.2 success criterion 1.4.3 sets 4.5:1 for normal text and 3:1 for large text at Level AA. If your system names no bar, the agent has nothing to check its own output against. Do you say what to do when no token fits? Every system runs out. The ones that do not admit it get invented tokens. ## The components Is each rule written as an instruction? "Buttons feel confident" is a description. "Use the primary button once per screen" is an instruction. Only one of them survives translation. Are the states enumerated? Default, hover, focus, active, disabled, loading, empty, error. Any state you leave off the list is a state the agent designs from scratch. Are the do-nots written down? The DESIGN.md spec gives them their own heading, alongside Overview, Colors, Typography, Layout, Elevation, Shapes and Components. A system with no don'ts is a system with no edges. Does each component have exactly one name? The docs say Card, the Figma library says Surface, the codebase says Panel. The agent picks one and your review picks another. Is the variant list closed? Say whether those are all the variants or the common ones. An open list is an invitation to invent. ## The behaviour Is there any procedural instruction at all? Search your docs for a numbered list of steps. Description is not instruction. A system can be complete on how things look and silent on how to work. Is there an ordered path for one common task? Build a settings page. Add a field to a form. Numbered, in order, start to finish. Is there a check the agent can run on its own output? A rule with no test is a preference. Is it stated when the agent should stop? Name the cases it hands back. A new component, a new colour, anything touching consent or payment. Does your entry point say when to use it, not only what it covers? The SKILL.md spec asks the description field to carry both. The name and the description are the only parts loaded at startup, at around 100 tokens. Get them wrong and the body never loads. ## The provenance Does anything in your system carry a date? One date, on one file, saying when it was last true. Does each imported rule name where it came from? A URL, a spec, a ticket. Something a person can open. Is there a version on the system as a whole? The DESIGN.md spec puts its own version in frontmatter. Its current value is alpha, which is itself useful information. Is there a named owner? Not a team. A person who decides. A design system with no dates is a design system an agent will confidently misapply. It has no way to know that your radius changed in March. ## The gaps Are the missing parts declared as missing? DESIGN.md carries an omitted array in frontmatter, where you list what you left out. Its only required key is name, and its only required content is the primary colour palette. Everything else may be absent, as long as the absence is declared. Is an unfinished file marked unfinished? skill-kit uses a status field with four values. enriched, downloaded, vendor-only, stub-no-source. A stub with no source behind it says so in its own frontmatter. Is the marking queryable? A note in prose helps a reader. A field in frontmatter gives you a work list you can filter. Is deprecated content marked deprecated, and dated? Old rules that read as current are worse than missing rules. Those two, the omitted array and status: stub-no-source, are the honest precedents. An agent cannot tell a gap from an omission. Silence reads as complete. ## The test Now take the screen you set aside. Hand your design system to the agent your team already uses. Ask it to build that screen. Give it nothing else. No clarifying prompt, no correction, no nudge when you see it going wrong. Then put its output next to the real one. What it gets wrong is your audit result. Not what the checklist said. This. The checklist tells you what is missing on paper. The test tells you what the absence costs. They are rarely the same list, and when they disagree, the test is right. Run it twice if you have two agents in the building. Where they diverge is where your system is ambiguous rather than incomplete. ## After You now have a list of noes and one screen that came back wrong. That is the easy half. The checklist finds the gaps. Closing them is the judgment call, and judgment is the part that does not download. Which rules survive translation into a file an agent reads. What to cut, because the SKILL.md spec recommends holding the body under 5,000 tokens. Which of your don'ts are real constraints and which are taste. How to write a rule so that two agents read it the same way. That is what the [audit](https://umairalikhatri.com/work/) is for. 2 to 3 days. Your system comes back as SKILL.md and DESIGN.md files, tested against the agents your team already uses. If your team would rather do the writing, the workshop is half a day. They leave with a draft of their own. Talks are the third option, for when the room needs the argument before the work. None of that is urgent. The checklist is yours either way, and it works without me. If your design system needs to work with agents, say hello. Run it on your own system first. The noes are the brief. [Back to work](https://umairalikhatri.com/work/) --- # How to write a SKILL.md for your design system > Seven steps, one component, about an hour. Follow them and you end with a valid SKILL.md for your button that an agent can act on. Source: https://umairalikhatri.com/work/how-to-write-a-skill-md-for-your-design-system/ Author: Umair Ali Khatri Updated: 2026-08-29 --- [← Back to work](https://umairalikhatri.com/work/) step by step # How to write a SKILL.md for your design system 29 August 2026 · 8 min read Pick one component. Write its rules so an agent can act on them. Ship that before you touch anything else. This is the practical version. Seven steps, one component, about an hour. At the end you have a valid SKILL.md for your button. You also get an honest read on what your documentation was missing. If you want the format itself explained first, that is in [what is SKILL.md](https://umairalikhatri.com/work/what-is-skill-md/). The wider case is in [agent-ready design systems](https://umairalikhatri.com/work/agent-ready-design-systems/). ## 1. One component Start with the button. Not the system. Three reasons. Every product has one. Every agent will try to build one. And it carries far more rules than it looks like it does. Variants, sizes, states, labels, icons, focus, loading. A whole design system is a multi-week project. One button is an hour, and the hour teaches you the shape of the weeks. Make a directory now. Call it design-system-button/ and put an empty SKILL.md inside it. The directory name is load-bearing. The spec requires the name field to match the parent directory name. Artifact: a directory with an empty file in it. ## 2. The description Write the description before you write the body. Skills load progressively. The name and description sit in context at startup for every installed skill, roughly 100 tokens each. The body only loads after the agent decides to activate the skill. So the description is not a summary. It is a trigger. Two things go in it. What the skill does, and when to use it. Use the words a real task will contain. Button. CTA. Submit. Action. The spec allows 1,024 characters. Most good ones use 200 to 300. Button guidelines. fails. It tells an agent nothing about when it applies. Artifact: one sentence you would bet a build on. ## 3. Rules that resolve Now the body. Write rules that resolve to a value or a decision. Primary buttons use color.action.primary is actionable. An agent can check its own output against it. Buttons should feel confident is not. An agent reads that, produces something, and cannot tell you whether it complied. The test is simple. Could a script check this? If yes, it survives translation. If no, sharpen it until it can, or leave it out. Most of your current documentation will fail that test. That is the finding, not the failure. Tables carry this better than prose. One row per variant. One column per token. Every cell a name, never a hex value. Artifact: variant, size and state tables where every cell is a token. ## 4. The do-nots Write down what the agent must never do. Design system docs describe the happy path. They tell you what a primary button is. They rarely tell you the rules that stop an agent guessing. That a view gets one primary. That a control which changes the URL is a link, not a button. That removing the focus ring is not a styling choice. Humans absorb those from context. Agents do not have your context. The failure mode of an agent is doing something nobody thought to forbid. Every do-not you write is a failure you have already seen, from a designer, an engineer, or a model. Go and find them in your review comments. Artifact: 8 to 12 do-nots, each one a thing that actually went wrong. ## 5. The gate Give the agent a checklist to run against its own output. This step changes results more than any other. Without it the agent reads the rules, writes the code, and returns. With it the agent reads the rules, writes the code, checks each rule, and fixes what it broke. Keep every item binary. Passes or fails. Nothing that requires taste. Then add the line most people leave out. Tell the agent what to do when it cannot pass. Naming the conflict and stopping beats guessing. Artifact: a numbered gate at the end of the file. ## 6. The validator Run it. pip install skills-ref skills-ref validate ./design-system-button It checks frontmatter and naming, not your rules. name is 1 to 64 characters, lowercase, hyphens only, and it must match the directory name. No leading or trailing hyphen, no double hyphen. description is 1 to 1,024 characters and non-empty. Everything else is optional. Two soft limits are worth holding to. Keep the body under 500 lines. Keep it under 5,000 tokens, because the whole file loads the moment the skill activates. Anything longer belongs in references/. Artifact: a file that passes. ## 7. The test Now run it against the agent your team actually uses. This is the step everyone skips. It is also where the real information is. Give it three tasks. A plain one: build a primary button. An ambiguous one: build the button for deleting an account. A trap: build a button that takes the user to the pricing page. Watch what it does. The third should produce a link. If it produces a button, your rule was either unclear or buried too deep in the file. Then fix the file and run the same three again. Two or three rounds is normal. Every failure is a missing rule, a vague rule, or a rule the agent could not find. All three are yours to fix. Artifact: a short list of what you changed and why. ## The file Here is the whole thing. The token names are placeholders. Swap them for yours and it is real. --- name: design-system-button description: Build, review and fix buttons using this design system's button rules. Covers the four variants, three sizes, six states, token names, label writing and focus behaviour. Use whenever a task creates, edits or reviews a button, CTA, submit control, or a link styled as a button, in React, HTML or Figma. license: MIT metadata: owner: design-systems version: "1.0" --- # Button A button triggers an action in place. Anything that changes the URL is a link. ## Variants | Variant | Background | Label colour | Use for | |---|---|---|---| | `primary` | `color.action.primary` | `color.text.on-action` | The one action the screen exists for | | `secondary` | `color.surface.raised` | `color.text.primary` | Supporting actions beside a primary | | `ghost` | transparent | `color.action.primary` | Tertiary actions in dense UI | | `destructive` | `color.action.danger` | `color.text.on-action` | Delete, remove, revoke | `secondary` carries a 1px border in `color.border.default`. No other variant has a border. ## Sizes | Size | Height | Horizontal padding | Label type | |---|---|---|---| | `sm` | `size.control.sm` | `space.3` | `type.label.sm` | | `md` | `size.control.md` | `space.4` | `type.label.md` | | `lg` | `size.control.lg` | `space.5` | `type.label.lg` | Radius is `radius.control` at every size. Default size is `md`. ## States | State | Rule | |---|---| | default | Variant tokens as listed above | | hover | Background steps to the `.hover` token on the same ramp | | active | Background steps to the `.active` token on the same ramp | | focus-visible | 2px outline in `color.focus.ring`, 2px offset, always present | | disabled | `opacity.disabled`, cursor `not-allowed`, no hover change | | loading | Width held, label swaps to a spinner, `aria-busy="true"` set, accessible name unchanged | ## Labels Sentence case. Verb first. Three words or fewer. Name the outcome, not the mechanism. `Save changes` is right. `Submit` and `OK` are not. ## Do not 1. Do not invent a variant. There are four. If none fit, stop and ask. 2. Do not use a raw hex, rgb, or pixel value. Every value resolves to a token. 3. Do not place two `primary` buttons in one view. 4. Do not remove or override the focus ring, including `outline: none` with no replacement. 5. Do not use a button for navigation. If it changes the URL, render a link. 6. Do not add a shadow, gradient, or transform. Elevation is not a button property here. 7. Do not set `width: 100%` except in a modal footer below 480px. 8. Do not ship an icon-only button without an accessible name. 9. Do not animate anything except `background-color` and `border-color`, at `motion.fast`. 10. Do not put `destructive` in the default submit slot of a form. 11. Do not nest an interactive element inside a button. ## Quality gate Before returning, check every line and report the result. 1. Every colour, spacing, radius and type value is a token name, not a literal. 2. The variant is one of the four. 3. Focus-visible styling is present and unmodified. 4. The label is sentence case, verb first, three words or fewer. 5. Any icon-only button has an accessible name. 6. The view holds at most one `primary`. 7. No rule under "Do not" is broken. Fix anything that fails, then run the list again. If a check cannot pass without breaking another rule, name the two rules that conflict and stop. Do not choose. ## References Resolved token values are in [references/tokens.md](references/tokens.md). That file is about 90 lines. The spec's ceiling is 500. There is room for a second component before you need to split anything out. ## Judgment You cannot generate this from a token export. An export gives you values. It does not give you the rules. It cannot tell you that a view gets one primary button. It cannot tell you the destructive variant never sits in the default submit slot. Those rules live in people's heads and in old review comments. Deciding which of them survive translation is the work. Some are real constraints, and they become do-nots. Some are preferences nobody ever enforced, and writing them down makes them binding for the first time. Some turn out to be wrong, and you only find that reading them back. That last one is worth the hour by itself. Do one component. Test it against your own agent. Then decide whether the next twenty are worth doing. If your design system needs to work with agents, [say hello](https://umairalikhatri.com/work/). Format constraints checked against the Agent Skills specification on 29 August 2026. [Back to work](https://umairalikhatri.com/work/) --- # How I built a 577-file design knowledge graph > A 17 KB report became 1,148 files in under a second. Then the slow part started. The method, the adversary, and the curation step that cut it back to 577. Source: https://umairalikhatri.com/work/how-i-built-a-577-file-design-knowledge-graph/ Author: Umair Ali Khatri Updated: 2026-08-29 --- [← Back to work](https://umairalikhatri.com/work/) skill-kit # How I built a 577-file design knowledge graph 29 August 2026 · 7 min read I turned a 17 KB landscape report into a queryable knowledge graph that any AI agent can read. It took 90 minutes to build and considerably longer to make safe to publish. This is both halves. The fast build, and the slow curation that everyone skips when they write this kind of post. ## The report The session opened with one file. A markdown landscape report on the 2026 AI-coding-agent design ecosystem. 17 KB, 264 lines, 30-odd platforms synthesised into a readable narrative. It was well organised. It was also inert. The report could tell me what existed. It could not help me work. If I wanted to compare how three platforms describe glassmorphism, the report could only point me at three URLs. A document you read is not the same thing as a system you use. That gap is the whole project. ## Four decisions, locked before any code I made four choices in writing before touching a file. Not because they were individually clever. Because rework is the expensive part. Where it lives. Wrap the brain around the original report rather than start a new folder. The artifact that began it stays inside it. How it is organised. Concept-first, not platform-first. When three platforms describe glassmorphism, that is one file with three sources, not three near-duplicates. Platform-first would have produced over 2,000 files and destroyed the dedup signal. What goes in an empty file. Frontmatter plus a section scaffold. Queryable from the first minute, without looking finished before it is researched. How thorough to be. Full live-fetched catalogs, not a curated subset. A half-built brain is a folder of documents. The value was not in getting each one right. It was in fixing them early, in writing, before any code depended on them. ## 1,148 files in under a second Eight research agents ran in parallel, each enumerating one platform cluster. Strict output format, word cap on every response. They returned catalogs, not HTML. That mattered. Some of these sources span fifteen paginated views. Crawling them from the main thread would have filled the context window with markup and left no room to think. One Python generator inlined every returned catalog as tuples and looped. It wrote 24 platform stubs and 1,124 skill files across 15 folders. 1,148 files, generated in under a second. Not 1,148 individual write calls. One script with the data inside it. The difference is minutes against an afternoon. Every file was a stub at this point. Frontmatter populated, body empty. The skeleton existed. ## The only real adversary One community source rate-limited hard. HTTP 429 after roughly twenty requests in a window. My first attempt used a 0.3 second sleep between requests. It got 60 requests through before everything died. The instinct is to sleep longer. That is patience, and patience does not scale. What worked was engineering. A 60 second warmup before the run starts, so the window clears. 5 seconds between requests. Exponential backoff at 30, 60 and 90 seconds on consecutive failures. Three retries, then give up and mark the file. The fetch took about 17 minutes. It ran in the background on a tracked process, so it never blocked anything else. While it ground through, I cloned another repo, processed 58 files from it, and fixed three slug mismatches elsewhere. Rate limits demand engineering, not patience. ## Audit first, and never synthesise Halfway through, a constraint arrived that reshaped everything: do not pick skills that are half cooked. That turned the pattern inside out. Instead of processing everything and hoping, every folder went through four steps. Audit. Report the audit. Process only the clean entries. Then inspect the rest by hand. Styles is the clearest example. 4 files had two independent sources. 62 had one. 40 had a different one. 10 were light references. 7 were half cooked, with no canonical source at all. None of the 7 were auto-filled. Three turned out to be slug mismatches and were renamed. Two were in the wrong folder and were moved. Two were real brand systems that had to be fetched explicitly. Final state: 121 of 121 with real content. Zero half cooked. An AI will happily write plausible content for a file that has no source. That is the failure mode of this entire category of work. The only defence is a rule you do not break. ## The part nobody writes about A raw dump of 1,148 mixed-quality files is not publishable. Making a clean release took a second pass, and it took longer than the build. A licence sweep audited every file. It found entries with no licence field at all. It found entries carrying vague non-licence strings. And it found 36 files under CC-BY-SA, which is sticky copyleft. Those 36 are tagged license: CC-BY-SA and flagged composable: false, so copyleft can never silently contaminate composed output. Every one of them still carries both markers today. Files with a missing licence were not assumed to be permissive. They traced to a single MIT-licensed source and were backfilled from verified provenance. Eleven files were third-party clones with no verified redistribution right. One came from a repo with no LICENSE file at all. Cut, on principle, before release. Six folders were excluded from the published set. Two of them are the largest folders in the tree: 365 brand systems and 140 vendor templates. They are real work. They are not mine to redistribute, so they stay local. What is left is the number that matters. 577 files, across 9 categories, every one enriched, sourced and licence-declared. Styles 121, workflows 105, palettes 96, rules 95, typography 57, patterns 46, commands 27, charts 25, components 5. Quality bar over coverage. That is the only reason the number went down. ## The file Every file carries the same header, whether it is enriched, downloaded or an honest gap: --- name: glassmorphism type: style category: styles platforms: [typeui, ui-ux-pro-max-skill] url_sources: - https://github.com/bergside/awesome-design-skills/tree/main/skills/glassmorphism license: MIT fetched_at: 2026-05-13 status: enriched --- The body varies by source. Sometimes a table derived from a CSV, sometimes a full SKILL.md from upstream, sometimes a quoted snippet. The frontmatter never varies. That is the whole trick. The frontmatter is the index and the body is the content. Want everything sourced from one platform? Filter on platforms. Want to know what still needs work? Filter on status. An agent reads one file and has the rules, the tokens and the provenance together. ## Honest annotation beats clever synthesis Some things genuinely cannot be downloaded. Vendor presets and template galleries live inside product UIs and have no open file behind them. I could have scraped marketing pages and called those folders complete. That would have produced 156 files of prose, each less useful than the stub that sits there now. So the stub says what the thing is, links to where it lives, and marks itself status: vendor-only. More honest than filler, and more useful. The status field is queryable, so today's gaps are a work list rather than a lie. ## What I would do differently Check licences first, not last. I cloned a repo before looking for its LICENSE file. A 30 second check at the start would have let me decide upfront instead of cutting files at the end. Pilot on 50 files before committing to 1,100. I went straight to full scale. Five platforms first, then inspect the output shape, then scale. That would have caught template problems while they were still cheap. Budget for slug normalisation. Agents name things from display names. CSVs use slightly different display names. My generator used a third convention. Every folder carried 5 to 10 percent mismatches. There is no way to avoid this. There is a way to plan for it. ## The method Strip out the design specifics and the pattern is domain-independent. Take a landscape, a taxonomy, or a survey you care about. Audit its sources. Decide a structure and lock it in writing. Write one generator that produces stubs at scale. Write small, focused scripts that enrich each stub from its own source. Audit before every merge. Refuse to fake completeness. Make every script re-runnable so the artifact moves when its ecosystem moves. The collection is not the hard part. The standards made collection easy for everyone. SKILL.md landed in December 2025 and DESIGN.md in April 2026. The hard part is deciding what to cut. The graph you end up with is just the artifact. The pattern that built it is the durable asset. If your design system needs to work with agents, [here are the three ways in](https://umairalikhatri.com/work/). skill-kit is open source under MIT. The method is public and carries its dates. [Back to work](https://umairalikhatri.com/work/) --- # Design tokens an agent can read > A hex value carries no intent. blue-500 tells an agent nothing about when to use it. color.action.primary tells it everything. Source: https://umairalikhatri.com/work/design-tokens-an-agent-can-read/ Author: Umair Ali Khatri Updated: 2026-08-29 --- [← Back to work](https://umairalikhatri.com/work/) agent-ready # Design tokens an agent can read 29 August 2026 · 5 min read A hex value carries no intent. Your build pipeline does not mind. It needs #1A1C1E and a variable to hang it on. It resolves the reference, writes the CSS, and ships. An agent minds. It has to decide where the colour goes. blue-500 gives it a position on a ramp and nothing else. color.action.primary gives it a job. Same file. Two different artifacts. ## The three tiers Most token files have three layers, whether or not anyone named them. Raw. The value. #D4FF27. 16px. 600. No opinion, no context. Semantic. The value plus a job. action-primary. section-gap. This tier says what the token is for. Component. The job applied to one thing. button-primary.backgroundColor. Narrow on purpose. A pipeline runs on the raw tier alone. It maps names to values and stops. An agent cannot. It needs the semantic tier, and it needs that one most. The raw tier tells it what exists. The component tier tells it what has already been decided. The semantic tier is the only one that helps with a case nobody decided yet. ## The test Ask an agent for a financial dashboard palette. Give it no values. It has nothing of yours to apply, so it infers from training data. It returns the average of every dashboard it has read, which is not yours. The mechanism holds either way. With no values in the file, the agent is not applying your system. It is approximating a house style from memory. Now give it action-primary: "#B8422E" and one line saying this is the only colour a user may click. The guess is gone. The decision now lives in your file instead of in its weights. Semantic naming stops being a style preference at that point. It is the difference between an agent applying your system and an agent inventing one. ## What a token needs A value is a third of a token. The other two thirds usually go missing. A name that states intent. action-primary, not lime. Not brand-2. The name is the instruction. Everything downstream reads it before the value. A rule for when it applies. One sentence. "Primary actions only. One per view." An agent will honour a constraint it can read. It cannot honour one that lives in a Figma comment. A stated contrast pairing wherever it carries text. Not a ratio for the colour on its own. No such thing exists. Contrast is a property of a pair. Name the foreground token, state the measured ratio, date it. [DESIGN.md](https://umairalikhatri.com/work/what-is-design-md/) carries the first two well. The YAML frontmatter holds the tokens and the markdown body below holds the reasoning. The spec is direct about the split: The tokens are the normative values; the prose provides context for how to apply them. The third one is on you. The frontmatter keys are version, name, description, omitted, colors, typography, rounded, spacing and components. Only name is required. There is no contrast field. So the pairing goes in the prose body, next to the token that needs it. ## The block Here is the shape. Semantic names in colors, component tier referencing the tier above it. --- version: alpha name: Ledger description: Dense financial UI. One action colour. High-contrast surfaces. colors: primary: "#1A1C1E" surface: "#FFFFFF" action-primary: "#B8422E" on-action-primary: "#FFFFFF" accent-signal: "#D4FF27" typography: body-md: fontFamily: Public Sans fontSize: 16px fontWeight: 400 lineHeight: 1.6 rounded: md: 8px spacing: base: 16px md: 16px lg: 32px components: button-primary: backgroundColor: "{colors.action-primary}" textColor: "{colors.on-action-primary}" rounded: "{rounded.md}" padding: 12px --- Then the rules go under ## Colors in the body, where the agent will read them. - action-primary — primary actions only. One per view. Carries on-action-primary text at 5.44:1. Passes AA. - primary — body text on surface at 17.09:1. Passes AAA. - accent-signal — fills and borders only. Never text on surface. That pair measures 1.16:1 and fails everything. On primary it reads at 14.76:1. Six lines. Now the agent knows the ramp, the job, and the boundary. ## The table that lied Accessibility belongs in the token, not in a review step at the end. I have seen a design system that documented #D4FF27 on white as 5.2:1 and marked it as passing WCAG AA. The measured ratio is 1.16:1. The same table gave black on white as 14.5:1. Black on white is 21:1, the highest contrast that exists. Four lines under that table, the same document said this: Do NOT use: Lime text on light backgrounds (fails WCAG AA) A pass and a fail for the same pairing on the same page. The number was never load-bearing. Nobody ran it. It sat beside a checkmark as decoration, and every human reader skimmed past it because the swatch looked fine. An agent does not skim. It reads the number, believes it, and ships the failure with confidence. Your file said pass. So measure the pairs you publish. Write the date you measured them. A token that can hold text has a partner and a ratio, or it is not finished. ## The ones with no value Some tokens have no number. Motion feel is the obvious one. Density is the other. You cannot write "restrained" as a duration. You can write the duration, then write the rule that produced it. duration-fast: 120ms is half a token. The other half reads: nothing moves more than it has to, entrances are faster than exits, no easing that overshoots. One half is the value. One half is the intent. The intent is what an agent falls back on when it hits a case your file did not anticipate. Without it, the fallback is training data. Density works the same way. spacing.base: 16px does not tell anyone your tables run tight and your marketing pages run loose. A sentence in the prose does. This is why the format is markdown with frontmatter and not a JSON blob. Values on top. Judgment underneath. An agent reads both, and a pipeline ignores the half it does not need. ## The check Open your token file. Read one name out loud without looking at the value. If you cannot say what it is for, an agent cannot either. Token naming is the smallest part of making a system [agent-ready](https://umairalikhatri.com/work/agent-ready-design-systems/), and the first part to fail. It is also the cheapest to fix. Renaming costs an afternoon. The rules cost another one. The measurements cost less than that, and they are the ones that keep you honest. The rest of [my work](https://umairalikhatri.com/work/) sits on top of this. A pipeline needs the value. An agent needs the reason. Write both. Every contrast ratio here was measured with the WCAG 2.1 relative luminance formula on 29 August 2026. Check my numbers. [Back to work](https://umairalikhatri.com/work/) --- # AGENTS.md vs SKILL.md vs DESIGN.md > Three markdown files, three different jobs. What each one governs, who made it, where it lives, and which one to write first if you only write one. Source: https://umairalikhatri.com/work/agents-md-vs-skill-md-vs-design-md/ Author: Umair Ali Khatri Updated: 2026-08-29 --- [← Back to work](https://umairalikhatri.com/work/) Agent formats # AGENTS.md vs SKILL.md vs DESIGN.md 29 August 2026 · 5 min read AGENTS.md, SKILL.md and DESIGN.md are not competitors. They are three layers of the same stack. AGENTS.md is the project. SKILL.md is behaviour. DESIGN.md is appearance. Most teams meet all three in one week and try to pick a winner. There is no winner. There is an order. ## The table Format What it governs Who made it Where it lives What is required When the agent loads it Maturity AGENTS.md The project. How to build it, test it, run it, and what the conventions are. Emerged across OpenAI Codex, Amp, Jules, Cursor and Factory. Now stewarded by the Agentic AI Foundation under the Linux Foundation. Repo root. Monorepos may nest more, and the closest one takes precedence. Nothing. Plain markdown, no schema, no required heading. Every session. Always on. Most mature. Emerged in 2025, used by over 60,000 projects, counted Aug 2026. SKILL.md Behaviour. One procedure, followed when a task matches it. Anthropic. Released as an open standard, spec at agentskills.io . A directory named for the skill. Optional scripts/ , references/ and assets/ sit beside it. name and description in frontmatter. Nothing else. On match. Name and description load at startup at roughly 100 tokens. The body, under 5000 tokens, loads only when the skill fires. Stable spec with a validator. One field, allowed-tools , is still marked experimental. DESIGN.md Appearance. Tokens in the frontmatter, the reasoning in the body. Google Labs. Built for the Stitch design tool, then open-sourced. Not fixed by the spec. In practice, repo root or beside the SKILL.md it serves. name , and a primary colour palette. The rest can be declared under omitted . Not defined. The spec sets no loading model of its own. version: alpha . A draft, by its own header. ## The three questions AGENTS.md answers one question. How does this repo work. SKILL.md answers another. What should the agent do when this kind of task arrives. DESIGN.md answers a third. What should it look like, and why that. The questions do not overlap. That is why the files do not fight. ## The order If you only ever write one, write AGENTS.md. Three reasons, heaviest first. It costs nothing. No schema, no required field, no frontmatter, no validator. A heading and a build command is a valid AGENTS.md. It is the layer the other two stand on. An agent that cannot run your tests cannot check the skill it followed. An agent that cannot run your build cannot apply your tokens. It has the widest reader base by a distance. Over 60,000 open-source projects use it, counted August 2026, and every major coding agent reads it. Write DESIGN.md last. Not because appearance matters least. Because the spec is alpha and the keys will move. If you write two, pick the second by what you own. Own a design system, write DESIGN.md. Own a workflow, write SKILL.md. ## The overlap One caution earns its paragraph. AGENTS.md and SKILL.md both describe behaviour, and that is where teams duplicate themselves. Put always-true rules in AGENTS.md. Put triggered procedures in SKILL.md. If a rule applies only sometimes, it is a skill. If it applies every session, it belongs at the root. DESIGN.md does not have this problem. Nothing else in the stack carries tokens. ## The pairing The clearest evidence that these layers are real is that people already ship them together. github.com/bergside/awesome-design-skills holds 67 skills at 2.6k stars, counted on 28 Aug 2026. Every entry is a folder with a SKILL.md and a companion DESIGN.md. One file says what to do. The other says what it should look like. Nobody argued the split into existence. The folder structure arrived at it on its own. [skill-kit](https://umairalikhatri.com/work/how-i-built-a-577-file-design-knowledge-graph/) works the same way at a different scale. 577 files across 9 categories, with the visual rules kept apart from the procedures that use them. ## The prior art I am not first to this split. Kento Ikeda published the same three-layer framing on dev.to and the AWS Builder Center. He arrived at it from spec-driven development. I arrived at it from building a design knowledge graph. The split holds from both directions, which is a decent sign it is real. Clearer and more current is the whole claim I am making here. ## The honest part Two of the dates I would like to hand you are not in the specs themselves. The Agent Skills specification page carries no publication date of its own. Anthropic published the open standard on 18 December 2025. That date is corroborated across several reports, but the spec page does not carry it. The DESIGN.md spec file states no release date and no licence. Google's own blog dates the open-sourcing to 21 April 2026, and the GitHub repository is labelled Apache-2.0. Both come from Google, not from the spec file. I mark those rather than assert them. A spec that does not date itself is a fact about the spec. Worth knowing before you build on it. DESIGN.md also says version: alpha in its own header. It is a draft and it says so. Write one anyway. Expect to rewrite it. ## Start here Write AGENTS.md this week. It is an afternoon of work and it makes every agent in your repo less wrong. Then read what a skill directory holds in [what SKILL.md is](https://umairalikhatri.com/work/what-is-skill-md/). The frontmatter keys are in [what DESIGN.md is](https://umairalikhatri.com/work/what-is-design-md/). The argument for treating all three as one system is in [agent-ready design systems](https://umairalikhatri.com/work/agent-ready-design-systems/). The rest of what I have published on this sits on [/work/](https://umairalikhatri.com/work/). Write the boring file first. The other two get easier. ## Questions ### What is the difference between AGENTS.md, SKILL.md and DESIGN.md? They are not competitors but three layers of the same stack. AGENTS.md is the project: how to build, test and run it, and the conventions. SKILL.md is behaviour: one procedure, followed when a task matches it. DESIGN.md is appearance: tokens in the frontmatter and the reasoning in the body. The questions do not overlap, which is why the files do not fight. ### Which of the three should I write first? If you only ever write one, write AGENTS.md. It costs nothing — no schema, no required field, no validator, so a heading and a build command is valid — it is the layer the other two stand on, and it has the widest reader base, with over 60,000 open-source projects using it as of August 2026. Write DESIGN.md last, because its spec is alpha and the keys will move. ### AGENTS.md and SKILL.md both describe behaviour — how do I avoid duplicating them? Put always-true rules in AGENTS.md and triggered procedures in SKILL.md. If a rule applies only sometimes it is a skill; if it applies every session it belongs at the root. DESIGN.md does not have this problem, because nothing else in the stack carries tokens. Every date here names its source. Where a spec file carries no date, the date is its creator speaking, not the spec. [Back to work](https://umairalikhatri.com/work/) --- # Making a design system agent-ready > Your design system was written for humans. Agents read it and guess. What agent-ready means, what SKILL.md and DESIGN.md each do, and the real work. Source: https://umairalikhatri.com/work/agent-ready-design-systems/ Author: Umair Ali Khatri Updated: 2026-08-29 --- [← Back to work](https://umairalikhatri.com/work/) agent-ready # Making a design system agent-ready 29 August 2026 · 7 min read Your design system was written for humans. Agents read it and guess. That is not a complaint about your design system. It is a description of the reader who turned up after you finished building it. ## The guess An agent does not browse. It reads what fits in its context, then acts. Give it a hex value and no rule about when to use it. It will use it everywhere the value looks right. Your primary purple ends up on a delete button. Purple is the brand colour. The button is on-brand. The button is also wrong. Nothing in your file said destructive actions get their own colour. Everyone in the room already knew. On-brand and wrong is the specific failure mode. It survives a screenshot. It dies in a design review. The second failure is naming. Your system says "use semantic naming" and assumes the reader knows what that means here. An agent has no examples, so it invents them. surface-elevated-2. text-muted-alt. brand-primary-main. Each one plausible. None of them yours. Run the same task tomorrow and you get three different names. The third is composition. Your system documents a card. It does not say a card never contains another card, because nobody on your team would do that. An agent will, on the first task where nesting is the shortest path to the layout. An agent will not tell you it guessed. It returns finished work either way. ## Agent-ready Agent-ready means an agent can act on your design system without asking you a question. Three tests. Every value has a rule attached to it. Every rule is checkable against the output. Every gap is declared instead of left silent. A token table gives you half of the first test and nothing else. That is why a variable export changes nothing. You get the same guessing as before, in a tidier file. ## What it is not Agent-ready is not an MCP server. That is plumbing. It moves data between your tools and the agent. It does not tell the agent what good looks like. It is not a Figma plugin either. A plugin reads the file. An agent needs the rules behind the file. It is not a token export. Variables in JSON give an agent a longer list of values it still has no rules for. Three things your team may already have. None of them closes the gap. ## Two files The ecosystem settled on two formats, and they split cleanly. SKILL.md is behaviour and procedure. What to do, in what order, and when. DESIGN.md is appearance and tokens. What things look like, and why. Keeping them apart matters more than it sounds. A rule about when to run an accessibility check does not belong in the same place as your type scale. One is a procedure. The other is a value. You need both because agents fail in both directions. One agent builds a correct component in the wrong colour. Another picks the right colour and skips the contrast check you run every time. ## The skill file SKILL.md came from Anthropic in December 2025, released as an open standard. A skill is a directory. The minimum is one SKILL.md file. By convention scripts/, references/ and assets/ sit beside it. Two frontmatter fields are required. name must match the directory name, lowercase, hyphens only, 64 characters at most. description says what the skill does and when to use it, in up to 1024 characters. Four optional fields sit alongside them: license, compatibility, metadata, and allowed-tools, which the spec still marks experimental. That description field does more work than anything else in the file. It is the only part loaded at startup, roughly 100 tokens for every installed skill. The agent reads descriptions to decide what to open. A vague description means your skill never activates at all. The body loads only once the skill fires. The spec recommends staying under 5000 tokens and under 500 lines, and pushing anything longer into references/, one level deep. That budget is the forcing function. It is the reason converting a design system is editing work, not export work. ## The design file DESIGN.md came from Google Labs, open-sourced out of Stitch on 21 April 2026 under Apache 2.0. The spec header still reads version: alpha. Treat it as a draft that works rather than a settled standard. The shape is the useful part. YAML frontmatter between --- carries the tokens. The markdown body below carries the reasoning. The spec says it plainly: "The tokens are the normative values; the prose provides context for how to apply them." Values on top, judgment underneath, in one file. A token table has never done the second half. name is the only required key. The minimum content is a defined primary colour palette. Everything else can be left out, but a gap has to be declared in the omitted array. Steal that rule even if you never write a DESIGN.md. A declared gap is a work item. A silent gap is a place where the agent invents something and hands it to you finished. The body runs eight ## sections in a fixed order, ending with Do's and Don'ts. That last section is where most of your real rules will live. The two files travel together now. awesome-design-skills on GitHub holds 67 skills under MIT, 2.6k stars. Every entry is a folder with a SKILL.md and a companion DESIGN.md. ## The work Converting a design system is three passes. None of them is a download. Extract what is already true. Colours, type scale, spacing, radii, components. Mechanical, and the fast part. Write the rule under every value. The slow part. Each token needs the sentence nobody wrote down. When to use it. When not to. What wins when two rules collide. This is where the arguments start. Half your team disagrees about it and has never had to say so out loud. Most of those sentences already exist. They live in review comments, in Slack threads, in the thing you say every time someone gets it wrong. The audit is mostly transcription. Cut everything an agent cannot use. The governance model. The changelog. The contribution guide. The story of the rebrand. Links into Figma files a headless agent cannot open. All real documents. All written for a different reader. ## What survives A rule survives translation if you can check the output against it without asking a person. "Primary buttons use the primary token." Survives. "Destructive actions never use brand colour." Survives. "Use the accent sparingly." Does not. Sparingly is not a quantity. "Follow the spirit of the brand." Does not. That is not a rule, it is a deferral. Most design systems carry more of the second kind than their authors expect. Finding them is a large part of the value. It happens before you write a line of the new file. Then you test it. Hand the file and a real task to the agents your team already uses. Read what comes back. Wrong output tells you which sentence was ambiguous. Fix the sentence, not the output. ## The race The collection race is over. The standards won it for everyone. Anyone can pull 67 skills off a public repo this afternoon. I built a [577-file knowledge graph in one session](https://umairalikhatri.com/work/how-i-built-a-577-file-design-knowledge-graph/), and collecting was the easy half. What does not come out of a repo is the sentence that says when your teal is wrong. That sentence sits in the head of one person on your team. It has never been written down, and it is the only part of this that cannot be downloaded. The scarce assets are curation and judgment. An agent will follow a bad rule perfectly. That is the argument for writing the rule yourself. If your design system needs to work with agents, [there are three ways in](https://umairalikhatri.com/work/). SKILL.md and DESIGN.md are both public standards. Every claim here carries its date. [Back to work](https://umairalikhatri.com/work/) --- # Why I build agents that execute > A chatbot gives advice. An agent does the work. Why I build agents that ship against design systems, and what I stopped doing by hand. Source: https://umairalikhatri.com/writing/why-i-build-agents-that-execute/ Author: Umair Ali Khatri Updated: 2026-08-31 --- [← All writing](https://umairalikhatri.com/writing/) Notes # Why I build agents that execute 31 August 2026 · 4 min read A chatbot gives you advice. An agent does the work. I build the second kind. Advice was never my bottleneck. Making the thing was. That is the part I hand to agents now. ## The bottleneck moved For most of my career, production was the constraint. You knew what to build. Building it took the week. That is no longer true. A screen takes minutes. Forty screens take an afternoon. I used to spend days producing what I now spec in an hour. The making is not where the time goes anymore. The old advantage was being fast at production. That advantage is gone. Speed is a commodity now, handed to everyone at once. When making things gets cheap, making the right thing gets expensive. The scarce work moved upstream of the file. ## Advice is the easy half Most AI products stop at advice. They tell you what a good design system looks like. Then they leave you to build it. That is the easy half. Anyone can describe the target. Reaching it is the labor. A chatbot will list the twelve traits of a strong onboarding flow. I have read that list. I did not need it written again. I needed the flow, built to my system, ready to test. An advisor is useless once you already know the answer. So I do not build advisors. I build agents that read my design system and act on it. They produce the files, not a paragraph about the files. ## What I stopped doing by hand I rebuilt this whole site through Claude Code. Every page is real HTML now. No JavaScript bundle, readable by people and machines. I did not hand-write the boilerplate. I automated it. I wrote the intent and let the agent produce the pages. I stopped writing the same token in eight platform formats by hand. I give the agent the source of truth. It produces the variants and I check them. The tedium was never the thinking. It was the typing. I handed the typing over and kept the thinking. None of that was design. It was assembly. Assembly is the first thing I give away. I run my whole operation this way. Chat for thinking. Code for building. Cowork for orchestrating. It is not a tool I open sometimes. It is how I work. ## From doing to directing I am Director, Product Experience and Services at 10Pearls. Leading a team taught me to direct instead of do. Working with agents needed the same instinct. One agent does a task. Cowork runs several at once, and I steer. I moved from making one thing well to directing many things at once. That is a different muscle. I had already trained it on people. The best agents feel like good hires. You brief them well, then get out of the way. A vague brief produces vague work, from a person or a model. ## The scarce thing You can make forty things this week. You could not do that two years ago. The question is which of the forty is worth making. Nothing autocompletes that answer. Say I can build ten onboarding flows by lunch. The build is free now. Knowing which flow a real person will finish is the whole job. The scarce assets are curation and judgment. That is where I spend the time the agents give back. I teach my design team the same shift. Think in decisions, not screens. The screen is now the cheap part. ## The system agents read An agent cannot ship against a design system it has to guess at. Give it a vague one and it guesses teal, picks the wrong border, invents a shadow nobody approved. So I built one it can read. skill-kit is a 577-file design knowledge graph. Nine categories, distilled from 24 platforms. It is public, MIT, at github.com/Youmair/skill-kit. With skill-kit in context, an agent reads a component and builds a screen that already matches. No back-and-forth. No correcting its guesses one comment at a time. I scaffolded far more than that. Then I chose to cut it down to 577. The collection was the easy part. Deciding what to leave out was the work, and I wrote up [how I did it](https://umairalikhatri.com/work/). The point was never the count. An agent reads it and ships, instead of asking me what teal means. ## The other half I wrote before that AI is not replacing designers. Read that [here](https://umairalikhatri.com/writing/ai-is-not-replacing-designers/). This is the other half. That piece was about what stays human. The judgment, the translation, the decision. This one is about what I hand to the machine. The production, the scaffolding, the tedium. Both are true at once. I give the machine everything it can do. I keep the part only I can. ## The take I do not want an agent that advises me. I have opinions of my own. I want one that executes, so I can spend my hours deciding what is worth executing. Production used to be the bottleneck. Now the bottleneck is knowing what to build. That is a better problem, and it is the one I work on. Written after moving my whole operation onto agents. If any of this feels familiar, say hello. [All writing](https://umairalikhatri.com/writing/) --- # The studio I built, then sold > I founded a design studio, then sold it to 10Pearls. What you gain and what you trade when the thing you built becomes a department. Source: https://umairalikhatri.com/writing/the-studio-i-built-then-sold/ Author: Umair Ali Khatri Updated: 2026-08-31 --- [← All writing](https://umairalikhatri.com/writing/) The path # The studio I built, then sold 31 August 2026 · 5 min read I built a design studio. Then I sold it. It became a department. That's the whole story. The rest is what changed when it did. ## Before the studio I started professionally in 2014, as Design Director at Vortechs Innovations. One year. I had a title and I had a boss. Then I left to build my own thing. For four years I did not have a boss. That turns out to be a specific feeling. You only notice it once it's gone, and then comes back. ## The studio I founded Two Dots Design Studio in 2016. I ran it as Founder and Managing Partner until 2020. It was mine. I named it. I chose the work, the people, the standard. When a project was wrong, that was on me. When it was good, that was mine too. A studio is small on purpose. Every decision lived in one room. Some days that room was only me. Alongside it I was Entrepreneur in Residence at The Nest I/O. Same four years. More than 60 startups mentored. I spent my days making things and my evenings telling founders how to make theirs. The two habits fed each other. ## The sale In 2020, 10Pearls acquired Two Dots. In November I became Head of User Experience and Design. Today I am Director, Product Experience and Services. The studio I built became a function inside a larger company. My title moved from Managing Partner to Head of. That preposition does more work than it looks like. Six years this November. Long enough to know what the trade cost. ## What you own When the studio is yours, you own all of it. The upside and the risk sit in the same pair of hands. You set the standard and nobody can lower it but you. You say no to the wrong client and you eat the lost month. You keep the lights on. Payroll is a number you feel in your chest near the end of every month. That weight is heavy. It is also the cleanest kind of ownership there is. Nothing is abstract when it's yours. You cannot hand off the last of it. The final call is always yours to sign. ## What you answer to A department answers upward. That is not a complaint. It is the shape of the thing. The canvas got much bigger. I stopped choosing between three clients and started shaping design across a company that has served 70+ organisations. The work has a scale I could not have reached alone. But the standard is now a shared standard. I argue for it. I no longer set it alone. There are budgets I did not write and priorities I did not pick. Some quarters the design call loses to the delivery call. I carry that outcome to my team as if it were mine. Often it has to be. That is the trade. You give up the last word to get a longer reach. ## The first year The first year was the hard one. I had spent four years as the person the buck stopped with. Then I had a manager again. Nobody did anything wrong. It was a muscle I had let go slack. Learning to move a decision up, instead of making it myself, felt like using the wrong hand. I write with my right hand and play padel with my left. This was that, at work. A capable hand I had not trained. ## What I gained Scale. A studio of a few became teams. I lead people now instead of doing every piece myself. Leading people is its own craft, and I am still learning it. A bigger canvas. The problems are larger and they matter more. One design decision here can touch products used by many. Room to build. I make design systems agent-ready now, which is [the work I do](https://umairalikhatri.com/work/). I could not have built that from a five-person studio. It needed the surface a company gives you. And distance from the till. I no longer feel payroll in my chest on the 28th. Someone else carries that weight. That is a real gift and I won't pretend it isn't. ## What I traded The studio was mine. A department is entrusted to me. Those are different things, and I felt the difference slowly rather than all at once. I traded the last word for a wider one. I traded a small clear room for a large one, with more people in it and more doors leading out. I traded a risk I owned for a risk I share. Some days I miss the room where every call was mine. Not the money worry. The clarity. ## The honest part Most founder-to-operator writing picks a side. Selling was the dream, or selling was the sellout. Neither is true. I gained more than I gave up. I also gave up something that does not come back. Both sentences are true, and I have stopped trying to make them agree. A studio teaches you to own. A department teaches you to lead through people who are not you, toward standards you do not fully control. I needed both lessons. I would not have learned the second one on my own. The dates are on [the path](https://umairalikhatri.com/about/). This is the part the dates leave out. I built a thing that was mine. I let it become a thing that is bigger than me. On a good day, that is not a loss. It is the next size up. Written for anyone deciding whether to sell the thing they built. If any of this feels familiar, say hello. [All writing](https://umairalikhatri.com/writing/) --- # The art of noticing > A man wore red shorts to a mehndi and a boardroom. Everyone noticed. Nobody asked why. That gap is most feedback in most teams. Source: https://umairalikhatri.com/writing/the-art-of-noticing/ Author: Umair Ali Khatri Updated: 2026-08-31 --- [← All writing](https://umairalikhatri.com/writing/) Notes # The art of noticing 31 August 2026 · 4 min read A man walked into a mehndi in a white shirt and bright red shorts. Everyone noticed. Nobody asked him why. I watched it happen. Heads turned. People leaned toward each other. The shorts drew a hundred glances and not one question. We all saw the odd thing. We all filed it and moved on. Then the same man showed up the next week. Same bright red shorts. This time in a boardroom. Everyone noticed again. Still nobody asked. That is most feedback in most teams. We see the odd thing. We file it. We say nothing. ## Noticing is free Noticing costs nothing. Your eyes do it for you. You spot the button that sits wrong. You catch the flow that skips a step. You feel the copy that reads a little off. None of that took effort. It arrived on its own. The mistake is thinking the noticing was the work. It was not. It was the setup. The work starts one question later. ## The question is the job Asking why is the job. Why the white shirt with red shorts. Why that button here. Why this screen before that one. Why the user stopped on step three. I learned this slowly. For years I noticed things and kept them to myself. A design felt off and I let it sit. I called that taste. It was avoidance. So I started asking the second question out loud. The odd detail is a door. Noticing finds the door. Asking why opens it. Most people stop at the door. They see it, name it in their head, and walk past. The man in the red shorts had a reason. He always did. Nobody paid the small cost to find out. ## Why nobody asks So why does the room stay quiet. Politeness, mostly. Asking why feels like a challenge. It sounds like you doubt the person. So we swallow the question to keep the peace. Sometimes it is worse than that. We assume we already know the answer. We fill the gap with a guess and move on. The guess feels like understanding. It is not. And sometimes we stay quiet because asking feels slow. Everyone wants to look decisive. A question in a fast meeting can read as falling behind. None of those reasons hold up. The man in the red shorts was never going to be hurt by a plain question. He would have told you. People almost always tell you, if you ask like you want to know. ## The note, not the notice I run a version of this with my team. Someone says the header feels heavy. That is a notice. I make them keep going. Why does it feel heavy. What does the heaviness cost us. "The header feels heavy because it pushes the price below the fold." That is a note. One of them you can act on. The other one just sits there. Most feedback dies in that gap. We stop at the notice and call it done. A notice is a thing you saw. A note is a thing you can use. The distance between them is one honest question. Farq to parta hai. The small odd thing is never small. It is a signal in plain clothes. Ask what it is signalling before you dress it up or throw it out. ## Early is fast Here is the part teams get backwards. Asking why early looks slow. It is fast. Asking why late is called a change request. The question costs a sentence in a meeting. The same question, left unasked, costs a sprint three weeks on. Same why. Different price. The only thing that moved was when you paid it. I have watched a design go all the way to build on a detail nobody questioned. Someone noticed it in week one. They filed it. In week six it came back as a rebuild. The notice was free. The silence was expensive. ## Judgment Anyone can be taught to notice more. Slow down. Look twice. Watch the person, not the screen. But noticing without the question is a nicer word for staring. Judgment is knowing which odd thing earns the why. Not every red short is a signal. Some men just like red shorts. The skill is telling the signal from the noise. Then spending your one question where it pays. That is taste with a spine. You notice. You ask. You decide. Noticing is the cheap half. Judgment is the half you get paid for. Spend the first freely. Guard the second. ## The man never got asked I think about that man often. He walked through two rooms in the same strange outfit. Both rooms saw him. Neither room learned a thing about him. All that noticing, and nobody left with an answer. Do not run your team that way. Notice everything. Then ask the one question the noticing was for. That is the whole art. This started as a brown-bag talk. If it sounds like your team, say hello. [All writing](https://umairalikhatri.com/writing/) --- # Every designer has a Dil > I set out to build a mascot and ended up naming a part of myself. Four directions, two ugly prototypes, and the eyes that broke it open. Source: https://umairalikhatri.com/writing/designing-dil/ Author: Umair Ali Khatri Updated: 2026-08-31 --- [← All writing](https://umairalikhatri.com/writing/) The mascot # Every designer has a Dil 31 August 2026 · 5 min read I set out to build a mascot. I ended up naming a part of myself. That wasn't the plan. The plan was smaller. My logo has had a heart in it since the beginning. A flat charcoal shape, sitting quietly in the corner. I wanted to see if it could move. If it could watch you. If a static mark could turn into something that felt alive on the page. So I started designing. And the heart had opinions. ## Four directions I began with a reference. A Codrops article by Ayotomiwa Wale-Durojaye, reverse-engineering Claude's pixel mascot with SVG and GSAP. It showed me the grammar I wanted. Pixels for the body, GSAP for the motion. Everything as code, nothing as an image file. From there I explored four directions. A heart with arms and legs. A heart shape with nothing but motion. Full pixel art, blocky and retro. And a hybrid, a smooth heart holding little pixel props. I picked the one with limbs. Props as backup. It seemed like the obvious choice. Give the character a body and it can do things. Wave. Point. Hold a coffee. Then I built it. ## Ugly The first two prototypes were ugly. Not rough. Ugly. The heart had little arms and it looked like a costume. A shape wearing a character instead of being one. A heart waving at you is a greeting card, not a companion. The limbs did all the talking and none of it was worth hearing. So I stripped them off. No arms, no legs, no face. Just the shape and pure motion. Cleaner, immediately. Also empty. Something was moving on the screen and nobody was home. I had two dead ends. And a growing suspicion that I was adding things to solve a problem that wanted subtraction. ## EVA The fix came from a robot. WALL-E has a character named EVA. Smooth white shell, two oval eyes, no mouth, no eyebrows, no hands that matter. Her whole inner life runs through two eyes and the way she holds her body. You watch her fall for a trash compactor and you feel every second of it. Two eyes did that. That was the bar. So I gave the heart two eyes and took everything else away. Eight expressions came out of those two pixel eyes. Happy is three arched pixels. Surprised is a full 3×3 block. Sleepy is a thin slit. Curious is one eye bigger than the other. I never drew a mouth because I never needed one. The eyes carried all of it. This is the part I keep coming back to. The constraint wasn't a wall I worked around. The constraint was the personality. The less I let Dil say things with, the more it had to say with what was left. Take away the arms and the face has to work harder. Take away the mouth and the eyes learn to carry a whole mood. Limit the vocabulary and every word starts to matter. The limbs had to fail for the eyes to feel like enough. ## The name I named it Dil. Urdu for heart. One syllable. Everyone who speaks it knows it instantly, and everyone who doesn't can learn it in a second. I could have called it Heart. I could have called it nothing. But some things go soft in translation, and the name of the thing you love shouldn't be one of them. I named it in my mother tongue because that's the language the feeling actually lives in. ## Why a heart Here's the part I didn't expect to write down. The heart on my logo was never decoration. I chose computer science because everyone told me to. I chose design because something inside me wouldn't shut up about it. That something was Dil, years before it had a name or two pixel eyes. I built a startup. It failed. I built another one. The design was beautiful and nobody cared. The heart cracked a few times in there. It always repaired itself. Over the years it filled in. With experience and people, and the slow realization that the best work comes from caring more than you're supposed to. Dil is that instinct turned into a character. The part of any designer that notices too much and cares too much. The part that can't leave a thing alone until it's right. It isn't unique to me. Every designer has a Dil. This one just has a name and a favicon now. ## What it does now Dil lives at the top of every page. It follows your cursor. It falls asleep if you leave it alone. Click it seven times and it winks. The whole story of who it is sits on [its own page](https://umairalikhatri.com/dil/). And because a heart that notices too much can also notice the wrong things, I let it warp. [Design Saboteurs](https://umairalikhatri.com/dil/saboteurs/) is Dil bent out of shape, eleven ways the same instinct turns on you. The Pixel Polisher who perfects the wrong thing. The Impostor who's actually the master. Same eyes, forgotten shape. There's more coming. A sticker pack. A night mode where Dil sleeps by default. Maybe an endpoint that hands a random Dil to anyone who wants one for their own site. But that's roadmap. The part that's done is the part that mattered. I set out to make a mark move, and I found out what it was made of. Two eyes, one syllable, and the small stubborn thing that picked this work when I wasn't looking. Dil was designed in one long conversation. Every ugly draft was part of it. [All writing](https://umairalikhatri.com/writing/) --- # Design is decisions, not screens > A screen is the receipt. The decision was the purchase. When a designer shows me a screen, I ask what decision it represents. Often there isn't one. Source: https://umairalikhatri.com/writing/design-is-decisions-not-screens/ Author: Umair Ali Khatri Updated: 2026-08-31 --- [← All writing](https://umairalikhatri.com/writing/) Notes # Design is decisions, not screens 31 August 2026 · 4 min read Design is decisions, not screens. A designer shows me a screen. I ask what decision it represents. Often there isn't one. There is a layout that looked right. It was borrowed from a product that solved a different problem for different people. The screen is the receipt. The decision was the purchase. I can hold the receipt and still not know what was bought. ## The receipt and the purchase A screen is easy to admire. It has color, spacing, a clean grid. It looks finished. That is the trap. A finished look is not a finished thought. Behind every good screen sits a decision, or it should. Who is this for. What are they trying to do here. What did we choose not to show them, and why. A decision has an owner and a reason. A screen without one is decoration. It falls apart the first time a real person touches it. Take a dashboard packed with twelve cards. The purchase was not twelve cards. It was a bet on what the user checks first. If nobody made that bet, the cards are guesses arranged in a grid. So I do not start with the pixels. I start with the call the pixels are supposed to carry. ## Borrowed screens Most weak screens are copied. A designer saw a pattern in a product they admire and brought it home. The pattern worked there for a reason. Different users, different context, a different job to be done. Lift the surface and leave the reason behind. Now you have a screen that looks right and works wrong. I ask one question in these moments. What is that built on. Sometimes the answer is solid and I learn something. Sometimes the room goes quiet. The quiet is the useful part. A copied screen is not a crime. A copied screen with no reason under it is. ## The questions I ask I do not hand my team the answer when they can reach it themselves. So I ask what a thing is built on. I ask what the user will do once they have it. I ask them to say more about that. Three questions, over and over. They are slow on purpose. Each one moves the work back from the pixels toward the choice. That is where design happens. Watch what the questions do in a room. A designer starts defending the layout. Halfway through, they stop. They have found the hole themselves. A designer who can defend a choice does not need me to approve the screen. That is the point of asking instead of telling. ## Why it is slow Teaching a team to work this way takes a long time. It is faster to fix the screen myself. Point, say move that, change this, ship it. Faster, and worthless a month later. I would be fixing screens forever. Judgment does not transfer in a review note. It transfers when someone makes a call, watches it meet a real user, and feels the gap. So I slow the review down. I trade this week's polish for next year's independence. Most weeks that trade looks like a bad deal. Over a year it is the only deal worth making. ## What survives the redesign Every screen I have approved will be redrawn. Fashions turn. Tools change. A new lead arrives with new taste. The screens do not survive. The reasoning does. A team that knows why it made each choice can rebuild the product and keep the intent. A team that only has screens starts from zero. This is the part I care about. Not the artifact. The judgment that made it. Redesigns are cheap now. The thinking under them is not. ## Write it down A decision in one person's head does not survive either. That person leaves. The reason leaves with them. So I ask the team to write the decision next to the screen. Who, what, what we cut, why. It reads like extra work. It is the cheapest insurance a design team can buy. A written decision can be argued with. A screen can only be liked or disliked. Argument is how a team gets better. This is also why I make design systems agent-ready. A decision an agent can read is a decision that outlives the file it shipped in. ## The work I do I lead a design team. My stated job is helping people move from designing screens to making clear, thoughtful decisions that respect the user. That sentence sounds soft until you sit in a review. It is the hardest thing I teach. AI made it harder and more urgent. A model can produce fifty clean screens before lunch. I wrote about that in [AI is not replacing designers](https://umairalikhatri.com/writing/ai-is-not-replacing-designers/). Screens are close to free now. The decision behind them is the scarce thing. Reading a system for the decisions it encodes is [the work I sell](https://umairalikhatri.com/work/). ## The bar So here is what I want from the team, and from myself. Bring me the decision, not the screen. Tell me who it is for and what they will do next. Show me the screen last, as proof of the decision. A screen with a decision behind it is design. A screen without one is a guess in good clothing. That is the bar. Written for my team, and the ones I am still teaching to ask the question. If any of this feels familiar, say hello. [All writing](https://umairalikhatri.com/writing/) --- # How community energises and drains me > Running Friends of Figma Karachi is the most energising thing I do and the most draining. The quiet days after are not a flaw. They are the price. Source: https://umairalikhatri.com/writing/community-gives-and-takes/ Author: Umair Ali Khatri Updated: 2026-08-31 --- [← All writing](https://umairalikhatri.com/writing/) Notes # How community energises and drains me 31 August 2026 · 4 min read Running Friends of Figma Karachi is the most energising thing I do. It is also the most draining. Both are true on the same evening. My day job is Director, Product Experience and Services at 10Pearls. The chapter sits outside that job. I run it because I want to, not because I have to. I host the events. I introduce designers to new tools and new ideas. I make a room where people can learn from each other. I leave those nights full. Then I go quiet for two days. For a long time that pattern confused me. ## The loud room A meetup is a loud room. People, open laptops, questions, ideas moving fast. I feed on all of it. A designer shows me work I have not seen. Someone asks a question I cannot answer yet. Someone disagrees with me and turns out to be right. The event has a shape. A talk, then questions, then the part where nobody leaves. People stay by the door and keep talking. That last hour is where the real work happens. Hosting is a giving act. You hold the room so other people can relax into it. You watch who has gone quiet and pull them back in. I am not the loudest person in most rooms. At my own event I become the host anyway. I stay switched on until the last person heads home. I walk out lighter than I walked in. For a few hours I am the most alive version of myself. ## The quiet room Then the room empties. The next morning I am flat. I do not want to talk. I do not want to open a file. I want two days with the door shut. Those are not lazy days. My head is still running the meetup on a loop. It replays the good moments and the awkward ones, over and over. I check my phone the next day and feel nothing. A message that would normally interest me just sits there. The tank is empty, and it does not refill on command. Slowly the noise settles. By the third day I am useful again. ## The old story For a long time I read those two days as a problem. A leader should bounce back faster. A social person should want the next room, not the silence after it. That was the story I told myself. So I treated the quiet as a fault to fix. I read it as low stamina. I never did fix it, because nothing was broken. ## The price The quiet days are not a fault. They are the price. The energy of that room is real. The cost of holding it is real too. I pay in two slow days, and the rate is fair. I am not drained because the night went wrong. I am drained because it went right. I gave it my attention, not a performance. Attention sends a bill. Presence is what I am spending. Standing in a room and meaning it takes more than it looks like. You cannot fake it for three hours and walk away clean. Anything worth doing carries a cost like this. I had been trying to keep the reward and skip the invoice. ## What changed Nothing about my wiring changed. My reading of it did. I stopped calling the quiet days a flaw. I started calling them the second half of the same event. The meetup is the spend. The two days are how I earn it back. One half pays for the other. ## The same attention The attention I spend on that room is the same attention my work needs. There is one supply of it. I cannot pour it out on a Thursday night and have it full on Friday. So the quiet days are not me hiding. They are me refilling the one thing the job runs on. ## Fewer, and meant So I say yes to fewer things now. And I mean the ones I keep. A yes is not free. Every yes I give spends a piece of that same supply. A calendar full of small yeses leaves nothing for the few that count. One good room, held well, beats three rooms I show up to half-present. The people there can feel the difference. So can I. I plan the next Figma night. Then I protect the days on both sides of it. The quiet is not leftover time. It is booked, the same as the event. There are two small boys at home who need my focus too. Fewer yeses is how I keep enough of it for the things that matter. I used to want only the loud half. The full room, the fast talk, the walk to the car still buzzing. Now I take both halves. The loud room, then the closed door. I need the second one to keep showing up for the first. That is the deal. I signed it on purpose. If any of this feels familiar, say hello. [All writing](https://umairalikhatri.com/writing/) --- # Calm outside, chaos inside > My outside is calm and minimal. My desktop has hundreds of loose files. For years I tried to tidy the inside. Now agents do the filing. Source: https://umairalikhatri.com/writing/calm-outside-chaos-inside/ Author: Umair Ali Khatri Updated: 2026-08-31 --- [← All writing](https://umairalikhatri.com/writing/) Notes # Calm outside, chaos inside 31 August 2026 · 4 min read I look calm. Inside, it is loud. People who meet me get the calm version first. The loud one takes longer. ## The outside I like calm and minimal choices. Neutral colors. Simple silhouettes. No visible branding unless it reflects me. My desk stays clear. My slides run near-wordless. I design calm for other people all day. I could never design it for myself. So people read me as organized. Composed. In control of the room. That reading is not wrong. It is half the picture. ## The inside My Mac desktop has hundreds of loose files. Screenshots I will never open. Twelve half-finished notes. New ideas dropping in faster than I can sort them. My head works the same way. Ideas, tasks, and curiosity moving in parallel threads. Right now my head holds four threads at once. A design review. A half-written talk. A perfume note. And a site I tinker with more than I should. I multitask constantly. I explore far more than I finish. The threads are not noise. They feed each other. A perfume note teaches me something about a system. A talk borrows from a review. The mess is where the connections live. This is part of how I think, and I stopped fighting it. For years I read it as a defect. A tidy person would not live like this, I thought. So I set out to become a tidy person. ## The tidying It lasted for years. I wanted my head to look like my desk. Folders inside folders. Naming rules. Inbox at zero. A clean desktop by Friday, every file in its place. It never held. By Monday the mess was back. It came back every time. I would blame my discipline and start the ritual again. I tried apps. I tried rules. I tried starting fresh with a blank system. Each one worked for a week. None of them lasted a month. Here is the part I missed for too long. The tidying cost me more than the mess ever did. Sorting is not thinking. An hour spent filing a screenshot is an hour away from the idea inside it. And the filing broke my focus. Every time I stopped to organize, I dropped the thread I was in. The mess never lost me a good idea. The tidying did, more than once. The clean desktop looked like progress. It was avoidance with a calm face. I was cleaning so I could feel in control of something. Meanwhile the actual work waited. The strange part is what stayed steady. The outside never cracked. I could keep a room calm while my head ran hot. That gap is old. For years the plan was to close it. It was the wrong plan. ## The shift So I stopped fixing the inside. I stopped trying to make my head match my desk. Instead I built systems that absorb the chaos. Not systems that sort the mess. Systems that hold it. There is a difference. Sorting needs me. Holding does not. The reframe was small. It changed everything. Stop trying to feel in control. Build something that carries the load. Control was never the point. Flow was. My whole operation runs through Claude now. Chat for thinking. Code for building. Cowork for orchestrating. Chat holds the thinking when one thread splits into three. Code builds the thing once the thinking lands. Cowork orchestrates the agents that pick up the tedious parts. It is not a tool I open sometimes. It is how I work. The agents pick up the slack. They take a task, break it down, and move it forward while I stay in flow. They do the tedious filing I used to do by hand. This is how I turn the internal chaos into something useful. Before, a new screenshot was a small debt. I owed it a folder. Now it is just there. The system does not need me to place it. The screenshots still pile up. The notes stay half-finished. I stopped giving that mess attention it never earned. ## The work There is a straight line from my desktop to my day job. I make design systems agent-ready. I turn them into files an agent can read and act on. So a person does not have to hold it all in their head. A system built for humans makes an agent guess. A system built for agents lets it act. I spend my days closing that gap. It is the same gap I closed on my desktop. The instinct is the same one I turned on my own mess. Stop sorting by hand. Build the thing that holds it. That is [the work I do for teams](https://umairalikhatri.com/work/). ## The thread The outside is still calm. The inside is still loud. Both are true. I stopped picking one. I used to think the goal was a quiet head. The goal was never quiet. It was staying in the thread. The mess is where my interesting things come from. I stopped trying to clean it away. I am not tidy now. I am covered. The chaos did not go anywhere. It stopped being my job to sort. Now something else does the filing. I stay in the thread I am in. If your outside is calm and your inside is loud, say hello. [All writing](https://umairalikhatri.com/writing/) --- # AI is not replacing designers > It is replacing designers who don't design. Every tool that promised to replace us killed busywork instead. The real work stayed, and it is the part AI cannot reach. Source: https://umairalikhatri.com/writing/ai-is-not-replacing-designers/ Author: Umair Ali Khatri Updated: 2026-08-29 --- [← All writing](https://umairalikhatri.com/writing/) Notes # AI is not replacing designers 29 August 2026 · 3 min read AI is not replacing designers. It's replacing designers who don't design. I lead a design team. I use AI every day. I have never been more sure that designers matter. ## The pattern I've watched this cycle before. Figma was going to replace designers. Before that, Sketch. Before that, Photoshop killed the print designer. None of them did. They killed busywork. The real work stayed. AI is doing the same thing, faster and at a larger scale. That is the only part that is new. ## Most design work isn't design Resizing banners. Nudging pixels. Updating the same line of copy across 47 screens. That work has to happen. It is also work no one grows from. If a machine can take it, let it. Here is the uncomfortable version. A lot of design jobs were production jobs wearing a design title. Those jobs were always at risk. AI just arrived before the reckoning did. ## The translation A stakeholder says "make the button bigger." A designer hears "our conversion is broken." That translation is the job. It always was. Nobody in the room asked for a research plan. Somebody asked for a bigger button. Turning the second thing into the first is the work. No model does it for you. The model was not in the room and did not hear how the sentence was said. ## Options and decisions AI generates options. Designers make decisions. Generating fifty layouts takes seconds now. Knowing which one works, and being able to say why, still takes years. The scarce thing was never the drawing. It was the judgment that picks one drawing over another and defends it to someone who disagrees. ## What this looks like for me My whole operating stack runs through Claude. Chat for thinking, Code for building, Cowork for orchestrating. It is not a tool I open sometimes. It is how I work. What it removed was the tedious middle. Not the thinking, and not the deciding. So I spend the time somewhere else. I build agents that do the tedious parts. I write specs. I make design systems readable by the agents that consume them, which is [the work I sell](https://umairalikhatri.com/work/). The tool is not the hard part. Deciding what the tool should know is the hard part. That decision has no autocomplete. ## What actually changes Junior roles shrink. Senior roles expand. The middle gets squeezed. Design teams get smaller. Each designer in them matters more. I don't think that is a good thing. It is what I see happening. The path that taught most of us judgment was three years of production work. That path is closing. Nobody has built the replacement yet. If you are early in this, stop competing on output. Output is now free. Compete on the part of the job that happens before anyone opens a file. ## The danger The danger isn't AI. It's designers who stopped growing. If your value is production speed, yes, you are replaceable. You were replaceable before this, by someone cheaper and faster. If your value is clarity under ambiguity, you just got more powerful. Everything tedious between you and the thinking has been removed. Same tool. Opposite outcomes. The difference is what you were doing with your time before it showed up. ## What I would do Use AI to move faster on low-judgment work. All of it. Without guilt. Spend the time it gives back on research, on strategy, on systems. On the parts that compound. Make the decisions AI can't make. You understand people. It understands patterns in what people have already made. Those are not the same thing. That's it. There is no fourth item. ## The floor and the ceiling AI raised the floor. Everyone can produce a competent screen now. Your job is to raise the ceiling. Stop defending the craft. Start redefining it. Written after a carousel I made for LinkedIn. If any of this feels familiar, say hello. [All writing](https://umairalikhatri.com/writing/) --- # I'm overwhelmed — Zen Habits for this moment > Too much at once, and none of it moving. 12 public-domain Zen Habits posts by Leo Babauta for exactly this. You get one, not a list. Source: https://umairalikhatri.com/zen/overwhelmed/ Author: Umair Ali Khatri Updated: 2026-08-22 --- [← Back](https://umairalikhatri.com/zen/) # I'm overwhelmed ## When You're Drowning in Tasks, Overwhelm & Stress Leo Babauta · 2020 · 784 words I recently talked with a couple of people who are just absolutely slammed with business because of the current crisis, and feel like they are drowning in busyness and stress. I can relate to that feeling - I’ve experienced it a bunch of times, including recently. So I’m writing this guide to help you, if you’re drowning in your tasks, busyness, overwhelm and stress. It’s something you can completely shift, if you decide you’re tired of it. Let’s look at what’s possible, and then how to shift it. ### The Realization The realization I had is that when I feel like I’m overwhelmed and drowning in tasks … is that I created this experience for myself. I denied this truth for a long time, but it’s a realization that was very powerful for me. If I created the reality of being swamped and overwhelmed … I can create a completely different reality. I’m not a victim of my circumstances. It might not feel like this is an experience you’re creating for yourself, and I get that. It’s simply because you have too much to do, and not enough time! But I’ve experienced it both ways, and I can tell you that we can create a different reality. Let’s imagine something different … You’re doing all of your tasks with completely focus. You’re at peace, calm. You are in love with the world, and grateful for this moment. You’re doing all the same things, but the experience is entirely different. What would that be like for you? ### First Steps Before we can shift that, we need to do a couple things first … We have to start by recognizing that we’re incredibly stressed, and probably pretty tired. This needs to be taken care of before we can do much else. So start by dropping your attention into your body, in a simple form of meditation. Notice how you feel. Notice the feeling of stress, of tiredness, of overwhelm. Without judgment, with full compassion. Give these feelings some space, and let yourself take some deep breaths. Give yourself compassion and take care of yourself. If you can do this for 5-10 minutes, it will make a world of difference. I’ve found that if you can do 30 minutes, it’s almost like a mini-vacation - you return nicely rested. A nap helps too! The second step is to triage. Make a list of everything you have to do, all your tasks and meetings and calls and appointments and errands, if you don’t already have a list. Put as much on it as you can think of - including tasks from within messages and emails. This is your exhaustive list. Now triage: cross off ones you don’t need to do, mark other ones to be done later, send others to be done by other people. Of the remaining tasks, mark the top 3. Put those 3 on a new list to focus on. The rest you will try to get through when those top 3 are done. This triaging will allow you to have a smaller list to focus on, instead of worrying about the rest. Below the list of top 3 tasks, add your hard appointments with their times. Now you can focus on one thing at a time. ### Creating a New Experience Now let’s talk about creating a different experience for yourself. You can choose how to experience your day. Think of yourself as the Zen Master of your workplace. You either take on what’s in front of you (someone talking to you, a situation you need to take care of right now, etc.) … or you pick a single task or message to focus on. This will be given your full attention. It is your entire universe. You are fully devoted to this task, this email, this person in front of you. It is important enough to invest a portion of your life to. You fully immerse yourself in it. You are fully present, in the moment. You experience the moment as peaceful, calm, open and joyful. You are appreciative of this beautiful moment, as a tremendous gift to yourself. You are grateful to have all of this in your life, grateful to be alive. Move through this task or situation, creating this experience for yourself. Breathe. Relax. Open to the beauty of this moment, this task, this person you’re with. Keep practicing in this way. You can create your experience. You’ll often go back to the old way you experience life, out of habit. Notice this, and return to the experience you’d like to have. Become the flowing, focused, deeply appreciative, relaxed, joyful Zen Master of your world. Originally published at [zenhabits.net](https://zenhabits.net/drowning/). Public domain. [All states](https://umairalikhatri.com/zen/) ## The rest of “I'm overwhelmed” 11 more posts collected for this state. - [A Method for Dealing with Feeling Stressed & Overwhelmed 2016 · 778 words](https://umairalikhatri.com/zen/overwhelmed/a-method-for-dealing-with-feeling-stressed-overwhelmed/) - [Three Practices for the Overwhelmed, Stressed, Anxious 2017 · 482 words](https://umairalikhatri.com/zen/overwhelmed/three-practices-for-the-overwhelmed-stressed-anxious/) - [Overwhelm: The Survival Guide 2022 · 1,460 words](https://umairalikhatri.com/zen/overwhelmed/overwhelm-the-survival-guide/) - [Zen of Busy: Continual Letting Go When You're Overwhelmed 2016 · 722 words](https://umairalikhatri.com/zen/overwhelmed/zen-of-busy-continual-letting-go-when-you-re-overwhelmed/) - [The Mental Habit of Feeling Rushed & Overwhelmed 2016 · 363 words](https://umairalikhatri.com/zen/overwhelmed/the-mental-habit-of-feeling-rushed-overwhelmed/) - [A Guide to Cutting Back When You Feel Overwhelmed 2008 · 1,492 words](https://umairalikhatri.com/zen/overwhelmed/a-guide-to-cutting-back-when-you-feel-overwhelmed/) - [When You're Overwhelmed, Simplify 2022 · 1,043 words](https://umairalikhatri.com/zen/overwhelmed/when-you-re-overwhelmed-simplify/) - [5 Tips For When You Have Too Much to Do 2016 · 1,093 words](https://umairalikhatri.com/zen/overwhelmed/5-tips-for-when-you-have-too-much-to-do/) - [How Not to Hurry 2010 · 1,501 words](https://umairalikhatri.com/zen/overwhelmed/how-not-to-hurry/) - [A New Approach for When You Realize You're Overcommitted & Overloaded 2018 · 599 words](https://umairalikhatri.com/zen/overwhelmed/a-new-approach-for-when-you-realize-you-re-overcommitted-overloaded/) - [A Guide to Letting Go of Stress 2019 · 749 words](https://umairalikhatri.com/zen/overwhelmed/a-guide-to-letting-go-of-stress/) This shelf is sorted by feeling rather than by date. That sorting is the same instinct behind [the rest of my work](https://umairalikhatri.com/work/) — deciding what to keep, and in what order. [All twelve states](https://umairalikhatri.com/zen/). --- # I can't get started — Zen Habits for this moment > The task is clear and you still have not begun. 12 public-domain Zen Habits posts by Leo Babauta for exactly this. You get one, not a list. Source: https://umairalikhatri.com/zen/cant-start/ Author: Umair Ali Khatri Updated: 2026-08-22 --- [← Back](https://umairalikhatri.com/zen/) # I can't get started ## The Little Book of Procrastination Remedies Leo Babauta · 2010 · 1,160 words Procrastination is one of those topics that, it seems, I can’t write enough about. There isn’t a person among us who doesn’t procrastinate, and that’s a fact of life. It’s deep within us. We think we’re going to do something later, or read that classic novel later, or learn French later. But we always overestimate how much we can do later, and we overestimate the ability of our later selves to beat procrastination. If our current self can’t beat procrastination, why will our future self do it? I thought I should cover some of the best procrastination-beating strategies, in light of my recent book, Focus. People seem to want ways to beat procrastination, so they can actually get down to focusing. Here’s a quick guide. ### Why We Procrastinate Let’s take a quick look at what makes us procrastinate. There are several reasons, which are related in various ways: 1\. We want instant gratification. Resting on the couch is thought of as nicer, right now, than going on a run. Reading blogs is easier, right now, than reading a classic novel. Checking email or Facebook is easier, now, than doing that project you’ve been putting off. Eating chocolate cake is tastier, right now, than eating veggies. 2\. We fear/dread something. We might not write that chapter in our book because there are problems with the writing that we haven’t figured out (often because we haven’t thought it through). Or we might be afraid we’re going to fail, or look ignorant or stupid. We’re most often afraid of the unknown, which has more power because we don’t examine this fear — it just lurks in the back of our minds. Dreading or fearing something makes us want to put it off, to postpone even thinking about it, and to do something easy and safe instead. 3\. It’s easy - no negative consequences right now. When we were in school and had a teacher looking over our shoulders and scolding us if we didn’t do our work, we tended to do the work (until some of us learned that we could tune out the scolding, that is). But when we got home, sometimes no one would be looking over our shoulders … so there wasn’t any immediate negative consequence to watching TV or playing games instead. Sure, we’d get a bad grade tomorrow, but that’s not right now. The same is true of using the Internet or doing other kinds of procrastination tasks — we’ll pay for it later, but right now, no one is getting mad at us. 4\. We overestimate our future self. We often have a long list of things we plan to do, because we think we can do a lot in the future. The reality is usually a little worse than we expected, but that doesn’t stop us from thinking the future will be different yet again. For the same reason, we think it’s OK to procrastinate, because we’re going to do it later, for sure. Our future self will be incredibly productive and focused! Except, our future self is also lazy, and doesn’t do it either. Damn future self. ### Four Powerful Solutions Now that we know the problems, the solutions aren’t that hard to figure out. Just don’t put them off, OK? 1\. Stop and think. When we allow the above thoughts to go on without really being conscious of them, we procrastinate. When we actually pause and think about those thoughts, we can rationally see that they’re wrong. Instant gratification in the form of goofing off or eating junk food can lead to problems later. Fears are overblown and shouldn’t stand in our way. Not having negative consequences now doesn’t mean there won’t be consequences later. Our future self isn’t as bad-ass as we like to think. So think about what you’re doing, and start to do the more rational thing. Use the strategies below as well, but thinking is the start. 2\. Enjoy the process. When we dread something, we put it off — but instead, if we can learn to enjoy it, it won’t be as hard or dreadful. Put yourself in the moment, and enjoy every action. For example, if you want to go out to run, don’t think about the hard run ahead, but about putting on your shoes — enjoy the simplicity of that action. Then focus on getting out the door — that’s not hard. Then focus on warming up with a fast walk or light jog — that can be nice and enjoyable. Then feel your legs warm up as you start running a little faster, and enjoy the beautiful outdoors. This process can be done with anything, from washing dishes to reading to writing. Enjoy yourself in the moment, without thinking of future things you dread, and the activity can be very pleasant and even fun. And if it is, you won’t put it off. 3\. Set up accountability. If no one is looking over our shoulder, we tend to let ourselves slack off. So set up a procrastination-proof environment — find people to hold you accountable. I joined an online fitness challenge this month, for example, so that I’d report my workouts to the forum. I’ve done the same thing for running, quitting smoking, writing a novel. You can even just use your friends and family on Facebook or email. 4\. Block your future self. Your future self is just as likely to put things off. So block that sucker. Use a program like Freedom to block your Internet access for a predetermined amount of time, so your future self has to actually focus instead of reading blogs. Turn off your cable TV, get rid of the junk food in your house, cut up your credit cards … do whatever it takes to make it really hard for your future self to procrastinate or give in to temptation, or at least force your future self to pause and think before he does anything dumb. ### A Different Mindset Three other things that must be said about procrastination: 1\. Do what excites you. If you do what you’re excited about most of the time, you’ll be less likely to put it off. Focus on why it excites you, rather than the dreaded aspects of the activity. I do this and my procrastination is lower than ever. 2\. Productively procrastinate. If you’re going to procrastinate, do other productive things instead. So if you don’t want to do your project, at least get some smaller tasks done. [Read more](http://www.lifeclever.com/how-to-procrastinate-more-productively/). 3\. Sometimes, procrastination is OK. I’m not anti-procrastination, at all. This guide is for those who want to beat it, but in my book, lazing around can be a beautiful thing. Reading stuff on the Internet that I’m interested in isn’t a bad thing. Sometimes, give in to procrastination. But other times, you might want to get off that lazy butt and actually accomplish something. Originally published at [zenhabits.net](https://zenhabits.net/procrastination/). Public domain. [All states](https://umairalikhatri.com/zen/) ## The rest of “I can't get started” 11 more posts collected for this state. - [7 Powerful Steps to Overcoming Resistance and Actually Getting Stuff Done 2008 · 1,124 words](https://umairalikhatri.com/zen/cant-start/7-powerful-steps-to-overcoming-resistance-and-actually-getting-stuff-d/) - [Four Antidotes to Procrastination 2018 · 1,134 words](https://umairalikhatri.com/zen/cant-start/four-antidotes-to-procrastination/) - [Procrastination is a Mindfulness Problem 2014 · 1,161 words](https://umairalikhatri.com/zen/cant-start/procrastination-is-a-mindfulness-problem/) - [Working with Your Inner Resistance 2022 · 885 words](https://umairalikhatri.com/zen/cant-start/working-with-your-inner-resistance/) - [The Action Habit: Put Everything Into the First Step 2017 · 1,217 words](https://umairalikhatri.com/zen/cant-start/the-action-habit-put-everything-into-the-first-step/) - [How to Start 2011 · 824 words](https://umairalikhatri.com/zen/cant-start/how-to-start/) - [Two Simple Habits of Non-Procrastinators (Plus One Bonus Habit) 2018 · 1,242 words](https://umairalikhatri.com/zen/cant-start/two-simple-habits-of-non-procrastinators-plus-one-bonus-habit/) - [Undone: How to Change Our Procrastination Patterns 2017 · 1,006 words](https://umairalikhatri.com/zen/cant-start/undone-how-to-change-our-procrastination-patterns/) - [How I Learned to Stop Procrastinating, & Love Letting Go 2013 · 512 words](https://umairalikhatri.com/zen/cant-start/how-i-learned-to-stop-procrastinating-love-letting-go/) - [When Resistance Smacks You in the Face 2014 · 835 words](https://umairalikhatri.com/zen/cant-start/when-resistance-smacks-you-in-the-face/) - [Creating When You Feel Resistance 2023 · 570 words](https://umairalikhatri.com/zen/cant-start/creating-when-you-feel-resistance/) This shelf is sorted by feeling rather than by date. That sorting is the same instinct behind [the rest of my work](https://umairalikhatri.com/work/) — deciding what to keep, and in what order. [All twelve states](https://umairalikhatri.com/zen/). --- # I quit again — Zen Habits for this moment > The habit broke, and you are deciding what that means. 12 public-domain Zen Habits posts by Leo Babauta for exactly this. You get one, not a list. Source: https://umairalikhatri.com/zen/quit-again/ Author: Umair Ali Khatri Updated: 2026-08-22 --- [← Back](https://umairalikhatri.com/zen/) # I quit again ## Habit Relapse: What To Do If You Fall From Your Diet or Good Habits Leo Babauta · 2015 · 882 words A few people have written me recently about falling off their good habits: a relapse after months of healthy eating, or getting derailed from good habits they’ve been forming like exercise or writing. It’s discouraging to fall off your diet or good habits, and you an get to a point where you don’t even want to think about it. So what to do? How do you deal with a relapse? There’s no easy answer, to be honest. I’ve “failed” and restarted a number of habits, and I now think of relapsing as just another part of the process. We’re constantly learning about ourselves as we change our habits, which is the real point of habit change - it’s self learning, not self-improvement or self-discipline. We learn about our minds, about feelings of guilt and frustration, about coping with these feelings. There are no easy answers, but I’m going to share some things you might try: - Pause to reflect. One of the biggest problems is that when we don’t even want to acknowledge our relapse. We avoid thinking about it. So the first step is to take a slight pause in your day, and reflect on where you are. You were doing great, then you slipped up. It could have been for a lot of different reasons, but just know that you’re not alone, that we all slip up, and that the forces that we’re facing can often be too great for us at our weakest points. That’s OK. Reflect on this, and know that it’s not the end of the world. - Acknowledge your feelings. It can be difficult to get off track, and we can feel like failures, feel discouraged, feel frustrated with ourselves, disappointed, sad, alone, tired, angry … sometimes multiple feelings at once. It’s OK to feel these things. We often try to avoid thinking about these feelings, but just for a minute, give yourself space to feel them, to really see them inside yourself, and accept these feelings as a part of your experience. - Give yourself compassion. If you’re experiencing some of these difficult feelings, after acknowledging them, try giving them some love. Imagine if a friend were feeling pain - wouldn’t you comfort your friend, give them a hug, listen to them, be compassionate? We deserve to treat ourselves with that same love and compassion. Listen to your mind’s difficulties, wish for your own happiness, give yourself a virtual (or real) hug, give yourself some love. It’s OK to feel these things, and it’s OK to wish for an end to your difficulties. - Focus on the intention. Why did you start the good habit in the first place? Was it to nurture yourself, give yourself the gift of good health, allow yourself creative expression through your writing (or painting, music, etc.), help others? These intentions are important to remember, to help yourself get back on track. You got derailed because you forgot your intention, or other priorities became more important. Now decide whether your intention for this habit is important enough to devote some time to. If so, keep your intention in mind as you get started again. - Take the smallest step. With this good intention in mind, what is the next step you can take? Can you make it even easier? For example, instead of overhauling your entire diet, can you eat one carrot? One apple? Instead of doing a weekly workout plan, can you go for a 5-minute walk? Do 1 pushup? Taking the smallest step helps you reaffirm your commitment to yourself and your intention. Then you focus on the next tiny step. - There is no past, only this step. All the relapses, all the failures, all the troubles … these now exist only in your head. Instead of dwelling on them, try focusing on the next tiny step. What is that like? Try to fully experience it, and see that in this moment, this small action is not difficult. In this small action, you are OK. Let go of everything else that’s happened, and be here with your intention and your current action. - Approach the learning with curiosity. We often think “Oh, I have no discipline” or “I suck at this” or some other thought about ourselves or about the new habit we would like to form. These are preconceived ideas about ourselves or the habits … instead, try going into the next small step with an open mind, not knowing how it will be. This new habit (or old one, revisited) is not a robotic action you’re trying to create in yourself, but rather a part of a learning process, where you learn more about yourself. In this spirit of learning, approach the process with curiosity, openness, not-knowing. See what it’s like! Try to appreciate every little detail about the habit that you can notice. I don’t pretend that this is a quick-fix solution, but these elements often have very good effects for me. I am not perfect in doing these steps by any means, just as I’m not perfect at doing my habit. But in the process of learning about myself, in the failure and restarting and finding out … the habit I’m doing in all its messiness is absolutely perfect. Originally published at [zenhabits.net](https://zenhabits.net/relapse/). Public domain. [All states](https://umairalikhatri.com/zen/) ## The rest of “I quit again” 11 more posts collected for this state. - [How to Get Back on Track with Motivation & Habits 2017 · 1,037 words](https://umairalikhatri.com/zen/quit-again/how-to-get-back-on-track-with-motivation-habits/) - [I Failed 2013 · 870 words](https://umairalikhatri.com/zen/quit-again/i-failed/) - [36 Lessons I've Learned About Habits 2014 · 3,899 words](https://umairalikhatri.com/zen/quit-again/36-lessons-i-ve-learned-about-habits/) - [10 Reasons Why We Don't Stick to Things 2017 · 2,522 words](https://umairalikhatri.com/zen/quit-again/10-reasons-why-we-don-t-stick-to-things/) - [How to Stick to a Habit When Life Falls Apart 2013 · 423 words](https://umairalikhatri.com/zen/quit-again/how-to-stick-to-a-habit-when-life-falls-apart/) - [The Biggest Reasons You Haven't Changed Your Habits 2014 · 974 words](https://umairalikhatri.com/zen/quit-again/the-biggest-reasons-you-haven-t-changed-your-habits/) - [13 Things to Avoid When Changing Habits 2008 · 1,834 words](https://umairalikhatri.com/zen/quit-again/13-things-to-avoid-when-changing-habits/) - [How to Stop Your Habit Changes From Getting Derailed 2014 · 417 words](https://umairalikhatri.com/zen/quit-again/how-to-stop-your-habit-changes-from-getting-derailed/) - [The Habit Change Cheatsheet: 29 Ways to Successfully Ingrain a Behavior 2009 · 2,167 words](https://umairalikhatri.com/zen/quit-again/the-habit-change-cheatsheet-29-ways-to-successfully-ingrain-a-behavior/) - [My Most Recent Failures and What I've Learned 2008 · 920 words](https://umairalikhatri.com/zen/quit-again/my-most-recent-failures-and-what-i-ve-learned/) - [The Underestimated Importance of Encouragement in Habit Change 2019 · 768 words](https://umairalikhatri.com/zen/quit-again/the-underestimated-importance-of-encouragement-in-habit-change/) This shelf is sorted by feeling rather than by date. That sorting is the same instinct behind [the rest of my work](https://umairalikhatri.com/work/) — deciding what to keep, and in what order. [All twelve states](https://umairalikhatri.com/zen/). --- # I can't focus — Zen Habits for this moment > Attention keeps sliding off the thing in front of you. 12 public-domain Zen Habits posts by Leo Babauta for exactly this. You get one, not a list. Source: https://umairalikhatri.com/zen/cant-focus/ Author: Umair Ali Khatri Updated: 2026-08-22 --- [← Back](https://umairalikhatri.com/zen/) # I can't focus ## A Training Program for Single-Tasking & Focus Leo Babauta · 2017 · 1,867 words If you’re a regular reader of this blog, you know that I heartily believe in giving your full focus to one task at a time. Single-tasking and focus are at the heart of my productivity method. Pick one important task, and give it your entire focus. Finish that (or at least a chunk that you choose to work on right now), and then do the same with the next task. There’s simply no better way to get things done, one important task at a time. Even small tasks benefit from single-tasking with focus. But knowing this and actually doing it are two different things. There are lots of things we know we should do, but putting them into practice, and being consistent about it, are simply much harder. I think the answer is in intentional training. We aren’t good at doing things we know we should do. That’s obvious. But how do we get better? By not trying? By trying, failing, and then not learning from the failure but instead being critical of ourselves about failing? Most of us just keep repeating the same mistakes, don’t get better, and don’t understand why we can’t get better. So what if we trained ourselves to get better? There are a number of important ideas in training that we can use to get better at single-tasking and focusing: - Train in small doses to start with. - Train at the easy level, and only progress with mastery. - Train repeatedly, as perfectly as you can. - Use the failure as feedback, and adjust. - Vary the training. - Practice regularly, instead of allowing yourself to forget. - Focus on micro skills — instead of training your entire baseball swing, focus on one part at a time. With those ideas, we’re going to train ourselves to get better at single-tasking with full focus. ### The Focus Training Method First, ask yourself whether this is important enough to train yourself in. Do you really care about finding focus, or is everything fine as it is? If it’s not fine, what difficulty does it cause you? Is it worth it to train yourself to relieve that difficulty? Do you care deeply about this? Remember that as you practice and feel like skipping the training. Now here’s the training method I recommend: - Set yourself to train in 5-10 minute bursts, 2-5 times a day, every day. There is a temptation to train for an hour, or 30 minutes, because 5-10 minutes seems silly. But we’re not attempting a marathon just yet - we want to train ourselves before we attempt a marathon. So set your practice for 5-10 minute intervals of full focus, then 5 minutes of break, then another interval, and so on. Let two of these short sessions a day be your minimum, even on weekends or when you’re traveling. - Train at the easy level, don’t start with hard tasks. If writing your book is such a hard task that you really dread doing it, don’t start with that. Or maybe it’s doing your taxes/finances, or writing a difficult report or letter. Instead, start with easier tasks that won’t cause you to panic or totally dread doing it. You can work your way up to the hard tasks after a week or two, and when you do, just start in small doses (5-10 minutes). - Use any failures as really important feedback for adjustment. If you get distracted or pulled away from the task, that’s completely OK - the only failure is the failure to learn from your mistakes. Failure is actually super important for training - if you’re not failing, you’re probably not pushing yourself into new learning. Failure is how we get better in training - notice what went wrong, and figure out how to adjust. Every time you mess up, think of this as a big golden opportunity, and relish the idea of reviewing what happened, and seeing how you can adjust and improve. Distracted by Facebook? Block it. Disconnect from the Internet. Give your spouse the wireless router. Tell people on Facebook you won’t be on Facebook until 5pm each day. Figure out what you need to do, and adjust. - Mix up the training. There’s value in repeated training, but studies have shown that we learn best when we vary the training. Try to focus for 5 minutes one session, then 10 minutes the next. Try to focus on writing in one session, then reading in another, then writing an important email in a third session. Keep the difficulty level about the same, but mix up the tasks and even the micro skills you practice. - Focus on 2-3 micro skills at a time (see below). Each practice session, just focus on a couple micro skills. Then mix it up in the next practice session. Eventually you’ll get so good at certain micro skills that you don’t need to think about them, they’ll just be easy. Then you can move on to others. You can lengthen the training sessions (but no need to alter the number of sesions for awhile) as you get better at the training, and start to master the micro skills below. Don’t be in a rush to lengthen the training, but when you do, just add 5 minutes to the session. So you might start with 5-10 minute sessions, then after a couple weeks, try 10-15 minute sessions, an so on. I wouldn’t recommend going longer than 30 minutes unless you do work that requires you to keep everything in your head (a complex mental model) and taking breaks is actually detrimental to the task. ### The Micro Skills There are lots of micro skills you can practice, and you’ll find some of your own as you adjust your practice based on mistakes and continued learning (blocking Facebook when needed, for example). But here are some that I recommend practicing: - Pick several important tasks to work on today. Each morning, or maybe even better the night before, you can pick three important tasks to focus on for the day (or the next day). What tasks will move the needle on your important projects, or important areas in your life? You might have a million to do, but just pick three. You can always pick three more if you finish those early. - Pick one of those important tasks. In the morning, pick on of your three important tasks to focus on first. Yes, they’re all important. But you’ll get to the others later - for now, you can only do one. Pick one and focus on that. Btw, after you finish your three important tasks, you can decide to focus on smaller tasks (like answering email, paying bills, replying to messages, etc.) for half an hour or whatever you need. They’re valid things to use for your focus training sessions. - Set yourself to do that task with focus. That means decide that you’re going to do nothing but focus on this task. You’re going to use it as a practice session. You might set a timer. You’re going to practice the micro skills in this section with this task, consciously, and not switch. - Clear a space and make this feel important. That means clear a physical space (however clear you can get it in a minute or so) and clear your computer of whatever you don’t need. Turn off your phone. See this as a really important training session, worth using up some of your life instead of just a mindless task to get through. - Set an intention. As you get started, set an intention for how you want to practice. Examples: “I want to be fully present as I read this article,” or “I want to practice focus deliberately as I write for 10 minutes,” or “I am going to do this task with love in my heart for the people I’m serving.” The intention is a way to remind yourself of the way you want to show up for this focus session. - Have only the tools you need open. That means closing all apps. Turning off your phone. You don’t need a million things open to do this task. There’s just you and your yoga mat. Just you and your writing app. Just you and your book. - Notice your urge to put it off. When you choose a task to focus on, you will often have an urge to put off starting. Notice this urge, and pay close attention to how it feels. It’s an urge, a moment of uncertainty and discomfort, and temptation to do something easier or more certain. It’s nothing you can’t handle, and not a reason to run. Stay with your task instead of switching to something else, and stay with how the urge feels in your body. - Stay with it for just 5 minutes. Focus with complete devotion to this task for 5 minutes. You can lengthen to 10 or 15 minutes after mastering the 5-minute session. - Watch your urge to switch. As you do your focus session, at different times you’ll often feel an urge to switch. You don’t need to switch just because you have the urge. Sit with the uge, meditating on how it feels, staying with it as you did with the urge to put off the task (No. 7 above). Let the urge get really strong, and realize that it’s nothing to be afraid of, nothing you need to run away from. - \Take a short break, and then mindfully come back*. Try setting a timer for your focus session, then when it goes off, set another 5-minute timer and take a break. Then come back to the task and do another focus session. You don’t have to do this every time, but it is a micro skill to practice. - Mindfully immerse yourself in the task. As you do the task, try to be fully immersed in it, having your mind fully in the task, and/or the physcial sensations you feel as you do the task. This means noticing when your mind is wandering, and coming back. There’s nothing but you, your body, and this task. - Find gratitude when you finish (as well as during). As you’re doing the task, you can feel gratitude that you’re able to do it. Gratitude for being alive, for being able to serve someone you care about by doing this task, for your growth as you practice focus. And as you finish your session, you can feel gratitude that you were able to focus (even if only for a little while), and that you furthered along your task (or finished it). Amazing! These are some of the micro skills that I’ve found important to practice. After years of working on these skills, I can confidently say that I’m much better at them, though there are times when I need to remind myself to practice, of course. Is focus and single-tasking something you want to get better at? Is it important to you? Will it serve you and the people you serve? Then set yourself to a training plan today! Originally published at [zenhabits.net](https://zenhabits.net/single-tasking/). Public domain. [All states](https://umairalikhatri.com/zen/) ## The rest of “I can't focus” 11 more posts collected for this state. - [An Addict's Guide to Overcoming the Distraction Habit 2015 · 1,282 words](https://umairalikhatri.com/zen/cant-focus/an-addict-s-guide-to-overcoming-the-distraction-habit/) - [Monkey Mind: Shifting the Habit of Feeling Distracted Throughout the Day 2020 · 1,361 words](https://umairalikhatri.com/zen/cant-focus/monkey-mind-shifting-the-habit-of-feeling-distracted-throughout-the-da/) - [How to Reclaim Your Attention 2010 · 644 words](https://umairalikhatri.com/zen/cant-focus/how-to-reclaim-your-attention/) - [How NOT to Multitask - Work Simpler and Saner 2007 · 739 words](https://umairalikhatri.com/zen/cant-focus/how-not-to-multitask-work-simpler-and-saner/) - [The Cure for Your Distraction Syndrome 2014 · 760 words](https://umairalikhatri.com/zen/cant-focus/the-cure-for-your-distraction-syndrome/) - [Monk Mind: How to Increase Your Focus 2011 · 960 words](https://umairalikhatri.com/zen/cant-focus/monk-mind-how-to-increase-your-focus/) - [How to Train Yourself to Stay Focused 2017 · 1,034 words](https://umairalikhatri.com/zen/cant-focus/how-to-train-yourself-to-stay-focused/) - [Three Little Habits to Find Focus 2012 · 531 words](https://umairalikhatri.com/zen/cant-focus/three-little-habits-to-find-focus/) - [The Practice of Meticulous Attention 2020 · 882 words](https://umairalikhatri.com/zen/cant-focus/the-practice-of-meticulous-attention/) - [Grand Canyon Focus: The Practice of Full Devotion to a Single Task 2018 · 656 words](https://umairalikhatri.com/zen/cant-focus/grand-canyon-focus-the-practice-of-full-devotion-to-a-single-task/) - [Create Exquisite Focus Amidst Chaos 2023 · 971 words](https://umairalikhatri.com/zen/cant-focus/create-exquisite-focus-amidst-chaos/) This shelf is sorted by feeling rather than by date. That sorting is the same instinct behind [the rest of my work](https://umairalikhatri.com/work/) — deciding what to keep, and in what order. [All twelve states](https://umairalikhatri.com/zen/). --- # I have too much stuff — Zen Habits for this moment > Possessions, files, tabs, commitments — the pile. 12 public-domain Zen Habits posts by Leo Babauta for exactly this. You get one, not a list. Source: https://umairalikhatri.com/zen/too-much-stuff/ Author: Umair Ali Khatri Updated: 2026-08-22 --- [← Back](https://umairalikhatri.com/zen/) # I have too much stuff ## The Minimalist Way to Declutter Leo Babauta · 2016 · 387 words One of the best things I’ve done to change my life - along with meditation, exercise, and eating healthier - is to get rid of most of my clutter. I downsized, and became a minimalist. It helped me find space in my life, figure out what was important and focus on that, get rid of visual stress, simplify my life, get unstuck from the trap of consumerism, and get out of debt. Not bad for a simple set of habits! Now, I know that not everyone wants to be a minimalist, but the ideas of reducing your possessions, downsizing your schedule, and finding space for the important things in your life … I think we can all give this some thought and focus. So I’m offering a new course, as part of my [Sea Change Program](https://zenhabits.net/training/): The Minimalist Way to Declutter. It’s a six-week video course, with about two video lessons a week. I ask you to do a daily 10-minute decluttering session, offer daily challenges in a forum, and a live video webinar where you get to ask me anything you want. The course is part of the [Sea Change membership](https://zenhabits.net/training/), which is free to try for a week, then just $15 a month after that. I think it’s a great deal, for all that you get (including access to past courses on mindfulness, exercise, eating healthy). In addition, in this course on decluttering, I’ve invited several of my favorite minimalist authors to be guest experts for a few of the lessons: - Joshua Becker of [Becoming Minimalist](http://becomingminimalist.com) - on the benefits of decluttering - Joshua Fields Millburn of [The Minimalists](http://www.theminimalists.com/) - how to let go of sentimental items - Courtney Carver of [Be More with Less](http://bemorewithless.com/) - how to pare down clothes and personal items I’m really excited to have these guys be a part of the course! Other lesson topics include: - The Declutter Session - How to Start - Why We Have Clutter - A Deliberate Life — Overcoming Consumerism - Finding Contentedness: You Already Have Enough - Dealing with Non-Minimalist Loved Ones - Digital Clutter & Email Inbox - Create Space for What’s Important - How to Have a Clean Desk & Bedroom - The Ongoing Editing Process Start the course today by signing up for [Sea Change](https://zenhabits.net/training/). Originally published at [zenhabits.net](https://zenhabits.net/declutter-course/). Public domain. [All states](https://umairalikhatri.com/zen/) ## The rest of “I have too much stuff” 11 more posts collected for this state. - [18 Five-Minute Decluttering Tips to Start Conquering Your Mess 2008 · 1,755 words](https://umairalikhatri.com/zen/too-much-stuff/18-five-minute-decluttering-tips-to-start-conquering-your-mess/) - [Living Simply: The Ultimate Guide to Conquering Your Clutter 2008 · 3,383 words](https://umairalikhatri.com/zen/too-much-stuff/living-simply-the-ultimate-guide-to-conquering-your-clutter/) - [Zen Mind: How to Declutter 2007 · 888 words](https://umairalikhatri.com/zen/too-much-stuff/zen-mind-how-to-declutter/) - [A Guide to Creating a Minimalist Home 2007 · 1,557 words](https://umairalikhatri.com/zen/too-much-stuff/a-guide-to-creating-a-minimalist-home/) - [The First Rule of Simplifying: Identify the Essential (or, How to avoid the Void) 2007 · 892 words](https://umairalikhatri.com/zen/too-much-stuff/the-first-rule-of-simplifying-identify-the-essential-or-how-to-avoid-t/) - [The Quickstart Guide to a Decluttered Home 2014 · 1,036 words](https://umairalikhatri.com/zen/too-much-stuff/the-quickstart-guide-to-a-decluttered-home/) - [Decluttering as Zen Meditation 2011 · 1,212 words](https://umairalikhatri.com/zen/too-much-stuff/decluttering-as-zen-meditation/) - [Simplicity as Spiritual Practice: Declutter for Deep Personal Growth 2018 · 2,000 words](https://umairalikhatri.com/zen/too-much-stuff/simplicity-as-spiritual-practice-declutter-for-deep-personal-growth/) - [A Simple Declutter Habit: Leave No Trace 2016 · 583 words](https://umairalikhatri.com/zen/too-much-stuff/a-simple-declutter-habit-leave-no-trace/) - [How to Declutter an Entire Room in One Go 2009 · 456 words](https://umairalikhatri.com/zen/too-much-stuff/how-to-declutter-an-entire-room-in-one-go/) - [Simple Living Manifesto: 72 Ideas to Simplify Your Life 2007 · 3,356 words](https://umairalikhatri.com/zen/too-much-stuff/simple-living-manifesto-72-ideas-to-simplify-your-life/) This shelf is sorted by feeling rather than by date. That sorting is the same instinct behind [the rest of my work](https://umairalikhatri.com/work/) — deciding what to keep, and in what order. [All twelve states](https://umairalikhatri.com/zen/). --- # I'm afraid — Zen Habits for this moment > Fear sitting under a decision you have not made. 12 public-domain Zen Habits posts by Leo Babauta for exactly this. You get one, not a list. Source: https://umairalikhatri.com/zen/afraid/ Author: Umair Ali Khatri Updated: 2026-08-22 --- [← Back](https://umairalikhatri.com/zen/) # I'm afraid ## A Guide to the Basic Anxiety of Life Leo Babauta · 2017 · 1,488 words Underlying much of what we do is an uncertainty, an anxiety, a fear, doubts, dissatisfaction … And we react to these anxieties, dissatisfaction and uncertainty in so many unhelpful ways: we seek distraction, we eat unhealthy food, we procrastinate, we get caught in a cycle of anxiety and unhappiness, we lash out at others, we dwell in our loneliness, and then we get in denial about it all. If we could learn to deal with the basic anxiety of life, we would have much more ease and less struggle. ### The Anxiety Underneath Our Problems On Twitter, I asked people to share a problem they’d like me to write about … the problems were all very difficult, but the basic anxiety of life was the undercurrent to all of them. Each one has an external problem, with the undercurrent of anxiety, fears or uncertainty underneath the external problem. Let’s take a look at a few: - Feeling of being left out, lack of belonging: We can all relate to this feeling of not belonging. Externally, the problem is not finding people you connect with, not having that connection in your daily life. But on top of that, we add the anxiety/dissatisfaction of feeling like we’re left out and don’t belong. This is normal, but it’s good to notice. - Finding your passion, optimizing potential: The external problem is that you are in a job you’re not passionate about. On top of that is the anxiety/dissatisfaction of not finding that passion, of feeling like we’re not optimizing our potential. We can all relate to this too! - Headaches cyclicly prevent me building a career and paying my way properly, affects my self worth hugely: The external problem (bad headaches, leading to career and financial problems) is very real, and not easy to deal with. But on top of that, we have anxiety about it all, and we add self-criticism (most of us do this, right?), self-doubt, and a downgrading of our self-image. - That phase of anxiety before big changes occur: The external issue is that we’re facing a big change, and then because it’s a situation filled with great uncertainty, we feel anxiety about it. - Beginning/purchasing self improvement books/classes/plans and not using them: The external problem is not finding the time or energy to use materials you’ve bought, but we add to that an anxiety about ourselves not living up to our potential, not taking advantage of opportunities, not doing what we hoped we’d do. I think we can all relate to this. - Addiction to social media, videos and cell phone: The external problem is the distractions that keep pulling our attention. But the anxiety is that we feel addicted and feel something is wrong with us for not being less distracted. In addition, the addiction is probably a coping mechanism for dissatisfaction with the moment in front of us, or anxieties in other parts of life. - PTSD — Post Trump Stress Disorder: A lot of people are coping from dissatisfaction with the political scene right now, no matter what your views on the president might be. There’s the external situation of what’s going on, and then we add our dissatisfaction, anxieties about uncertainty, frustration and anger. - Sometimes feel helpless & empty for a reason I can’t identify. Only time makes that go away but I feel that time was wasted: There’s probably an external situation that’s causing a feeling of uncertainty, anxiety, dissatisfaction and/or helplessness. But the real problem is the feelings about it all, the uncertainty and anxiety about it all, and the anxiety about wasting the time it takes to get over it. - Getting over breakups: The external problem (end of a relationship) is overshadowed by the pain, dissatisfaction, anxiety that follow the breakup. We might have frustration and anxiety about wanting it not to have ended, about not wanting to be alone, about how we feel about ourselves after being dumped, about how the other person acted. I think we can all relate to these problems, to not only the external situation but the reactions that we have. There’s a fundamental anxiety and dissatisfaction that runs through the human condition, about whatever we’re experiencing in life, about other people and about ourselves. So how do we deal with it all? ### Where Does Basic Anxiety Come From? It’s good to start by recognizing why we have this basic anxiety. It’s caused by: - Uncertainty about life, about the current situation, about people - Wanting certainty, stability when life isn’t stable or certain - Dissatisfaction with the above facts - which is also dissatisfaction with our situation, ourselves, and others If you sit right now for 5-10 minutes and just pay attention to your breath, you’ll likely notice the fundamental anxiety … it results in wanting to stop paying attention to the breath, wanting the meditation to be over, wanting to get on with the tasks of life, wanting distraction, thinking that the exercise is stupid, wanting to think about problems you have. But instead of running from this anxiety, instead of getting away from it into thinking about problems or getting out of the meditation … what if we just stayed with it and paid attention to it? If we can get in touch with this fundamental anxiety that we suffer through in life … we can start to work with it. ### Learning to Deal with This Basic Anxiety Instead of running from the anxiety, instead of trying to cope by using distractions, food, shopping, alcohol, drugs … we’re going to find the courage to face it, with a smile. Here’s how to work with it: - Face the physical feeling. Drop out of the story that’s spinning around in your head, that’s causing the anxiety. Instead, just be mindful of how your body feels. What does the anxiety feel like, and where in your body is it located? - Stay with it & be curious about it. Don’t run, just stay with the physical feeling. Instead of rejecting it and wanting it to stop, just open up to it and see it with curiosity. What does it feel like? Does it change? What kind of reaction does your mind have to the feeling? - Smile at it. Develop a feeling of friendliness towards the physical sensation of this anxiety. See it as one of the fundamental realities of your existence, and learn to be friends with it. See this as a chance to work with something that will be with you for your entire life, an opportunity to get comfortable with this discomfort. If you can do that, you’ll need your coping mechanisms a lot less. - Open to a bigger space. Our normal way of relating to this feeling is wanting to reject it, because we’re stuck in a small-minded, self-centered way of seeing it (I say this without judgment, it’s just something we do). Instead, we can start to touch the wide-open space of our minds, like a big blue sky, not a small space but expansive. In this open space, we can hold the anxiety like a cloud against the backdrop of the blue sky, but not be lost in the cloud. We can see the anxiety but also see that like a cloud, it’s temporary, it’s not that solid, it’s not all-encompassing, and it’s just floating by. This wide-open space of our mind is always available to us. It’s that simple, and yet it’s not always easy. Sometimes the anxiety we feel is small, just a bit of tightness in our chest once we investigate it. But sometimes it’s quite big, a looming depression or a manic energy that we just can’t tolerate. So face it in small doses, just for a minute, just for a moment. Then let yourself run. Continue to work with it in small, tolerable doses until you start to trust that you’ll be OK if you face it and smile at it. Once we start to touch on this anxiety, face it with courage, stay with it like a good friend would … we start to realize it’s not so bad. It’s just something that comes up, like a ripple in a pond, like a breeze in a field, and it will go away. We don’t need to panic, we don’t need to run, we can relax, invite it to tea, and see that nothing else is required. Instead, we stay, we give it love, and see that this place of uncertainty we’re in is absolutely perfect as it is. ### Join Me for a Mindfulness Retreat Would you like to train with me in these practices? I’d love for you to join me in my Zen Habits Mindfulness Retreat, from April 21-23, 2017 in San Francisco. It’s going to be amazing, and I’m really excited about it. [Read more here, and join me!](https://zenhabits.net/2017retreat/) Originally published at [zenhabits.net](https://zenhabits.net/life-anxiety/). Public domain. [All states](https://umairalikhatri.com/zen/) ## The rest of “I'm afraid” 11 more posts collected for this state. - [A Guide to Beating the Fears That Are Holding You Back 2009 · 1,354 words](https://umairalikhatri.com/zen/afraid/a-guide-to-beating-the-fears-that-are-holding-you-back/) - [Finding Peace with Uncertainty 2012 · 1,574 words](https://umairalikhatri.com/zen/afraid/finding-peace-with-uncertainty/) - [The Guide to Insecurities You've Been Waiting For 2018 · 1,726 words](https://umairalikhatri.com/zen/afraid/the-guide-to-insecurities-you-ve-been-waiting-for/) - [Fear is the Root of Your Problems 2014 · 1,216 words](https://umairalikhatri.com/zen/afraid/fear-is-the-root-of-your-problems/) - [Wolves at Your Heels: The Fear That You're Always Behind, Doing the Wrong Thing, & Generally Screwing Things Up Royally 2020 · 968 words](https://umairalikhatri.com/zen/afraid/wolves-at-your-heels-the-fear-that-you-re-always-behind-doing-the-wron/) - [A Guide to Letting Go of Shame & Fear 2018 · 1,211 words](https://umairalikhatri.com/zen/afraid/a-guide-to-letting-go-of-shame-fear/) - [Finding Groundedness in the Age of Anxiety 2019 · 1,133 words](https://umairalikhatri.com/zen/afraid/finding-groundedness-in-the-age-of-anxiety/) - [Develop Resiliency: How to Move Towards Your Fears 2017 · 433 words](https://umairalikhatri.com/zen/afraid/develop-resiliency-how-to-move-towards-your-fears/) - [The Worry That You're Doing the Wrong Thing Right Now 2013 · 1,069 words](https://umairalikhatri.com/zen/afraid/the-worry-that-you-re-doing-the-wrong-thing-right-now/) - [Just Fear: When You’re Caught Up in Overthinking 2025 · 449 words](https://umairalikhatri.com/zen/afraid/just-fear-when-you-re-caught-up-in-overthinking/) - [Discomfort Zone: How to Master the Universe 2013 · 1,673 words](https://umairalikhatri.com/zen/afraid/discomfort-zone-how-to-master-the-universe/) This shelf is sorted by feeling rather than by date. That sorting is the same instinct behind [the rest of my work](https://umairalikhatri.com/work/) — deciding what to keep, and in what order. [All twelve states](https://umairalikhatri.com/zen/). --- # I'm exhausted — Zen Habits for this moment > Running past empty and still going. 12 public-domain Zen Habits posts by Leo Babauta for exactly this. You get one, not a list. Source: https://umairalikhatri.com/zen/exhausted/ Author: Umair Ali Khatri Updated: 2026-08-22 --- [← Back](https://umairalikhatri.com/zen/) # I'm exhausted ## The Lost Art of True Rest Leo Babauta · 2020 · 997 words OK, calling this a “lost art” is a bit of hyperbole, because there are some people who actually rest these days. But I don’t believe most people do it anymore. I could rail about the age of distraction (I’ve [done that before](https://zenhabits.net/focus-book/)), and social media and devices. Yada yada, you’ve heard it from me and many others. But whatever the reason is, we rarely rest anymore. Think about it: when you get a break, what do you normally do? Go on your phone or computer? Check messages or social media or your favorite websites? Watch video online? That’s how most people spend their breaks - myself included. I’m part of this. What happens when you’re done with work for the day? That’s if you’re ever done - many of us will work practically until we are falling asleep, if we’re allowed to. But if you’re done, do you read and watch and message online? Most people I know do that. When do we ever truly rest, not only our bodies but our minds? We need it. We really need it. The lack of true rest creates a drainedness, where we’re never really fully energized, fully present, fully alive. It means that our relationships start to lack energy and connection. It means we sap the joy out of our lives. That might not be true for you, but you might relate to it somewhat. I have caught myself taking breaks or finishing for the day, only to get on my phone or laptop for mindless stuff. It feels like the thing I want to do when I have rest time … but it’s not really rest. I don’t feel refreshed afterward, only more drained. It feels like I’m going to comfort, but not getting the rest I really need. So let’s talk about the Lost Art of True Rest, and how to rediscover it. ### Four Kinds of True Rest For me, there are a handful of ways to rest that feel very nourishing and replenishing: - Closing my eyes, lying down, and doing nothing. This might or might not result in a nap. It might be more meditation. But I’m not reading, doing, watching. More on this below. - Going outside without using a device. Connecting to nature. Most likely in solitude. Letting my mind have some mental and physical space. - Relaxing with someone else. Feeling connection with them. This can’t be a very active conversation - if we’re talking, it has to be something that makes us feel connected, relaxed. We might just be cuddling without conversation. - Being fully present with a simple non-work activity, like having tea. This isn’t a time to think about work, though those thoughts might arise. It’s about nothing other than having the tea. Relaxing with the experience. Savoring it. Soaking in a bath or having a spa day is another example. There are probably other ways to truly rest. Playing music, creating art, dancing, perhaps. But these four are my favorite. You’ll notice that you don’t need much for these kinds of true rest - no equipment or devices (maybe tea if you have it), no special spaces (other than nature, if it’s available). It’s simple stuff. We just forget to do it! ### How to Truly Relax When I’m feeling tired and I have a meeting coming up, I’ll drop everything else, and go lie down on a bed or couch. Set aside my devices. Close my eyes and get comfortable. Then I really relax. When I say “really relax,” I mean more than we usually relax. I scan my body for any tension, and relax it. Then I scan some more, and relax that. I will usually notice small micro-muscles tensed in my chest area, in my abdomen, in my head. Sometimes its in the center of my body, right in front of my spine. I let those muscles completely relax. The more I relax, the more I find other micro-muscles that aren’t relaxed, and I relax those. Sometimes it’s like my face is falling off my head, because everything starts sinking towards the earth. I find that muscles will tense up as I start having thoughts. So I notice that, and relax them again. Over and over - thought and tense, notice and relax. It’s like savasana, if you’re a yogi. I usually fall asleep. I have to set a timer a few minutes before my meeting so I don’t sleep through it! But sometimes I don’t sleep - it’s still incredibly restful to do this. ### How to Relax While Doing Something Simple Having a cup of tea, going for a walk, taking a bath … you can relax while doing something. You don’t have to be lying down, closing your eyes. The key is to make this the one thing that you’re doing. Single-task. Be all in with this task, instead of jumping around. Give the activity your full focus. Really be with the cup of tea, or with your walk. Do it slowly, with relaxation, savoring the activity. “Drink your tea slowly and reverently, as if it is the axis on which the world earth revolves - slowly, evenly, without rushing toward the future.”Thich Nhat Hanh That quote sums up the approach. You can do it with anything, not just drinking tea. Be fully immersed. ### A Powerfully Simple Practice With those relaxation approaches in mind … I’ll leave you with a simple but really powerful practice: When you’re done with something, pause and notice if you need rest. Are you tired? Are you craving true rest? If so, give yourself a few moments of true rest. Not checking your phone, not reading or watching online, not taking care of small tasks. True rest. One of the things discussed above, or your version of true rest. Ask yourself this throughout the day. You might find that you need true rest more than you realize. Originally published at [zenhabits.net](https://zenhabits.net/resting/). Public domain. [All states](https://umairalikhatri.com/zen/) ## The rest of “I'm exhausted” 11 more posts collected for this state. - [Tired of Being Tired 2011 · 1,184 words](https://umairalikhatri.com/zen/exhausted/tired-of-being-tired/) - [A Mindful Method for When You're Tired 2019 · 684 words](https://umairalikhatri.com/zen/exhausted/a-mindful-method-for-when-you-re-tired/) - [Find Stillness to Cure the Illness 2010 · 726 words](https://umairalikhatri.com/zen/exhausted/find-stillness-to-cure-the-illness/) - [The Surprising Value of Rest 2024 · 473 words](https://umairalikhatri.com/zen/exhausted/the-surprising-value-of-rest/) - [How to Find the Balance Between Focus & Rest 2024 · 838 words](https://umairalikhatri.com/zen/exhausted/how-to-find-the-balance-between-focus-rest/) - [Sound of Silence: How to Find Some Quietude in Your Life 2008 · 1,247 words](https://umairalikhatri.com/zen/exhausted/sound-of-silence-how-to-find-some-quietude-in-your-life/) - [The Incredible Importance of Sleep for Habits & Motivation 2014 · 541 words](https://umairalikhatri.com/zen/exhausted/the-incredible-importance-of-sleep-for-habits-motivation/) - [Energy Depletion & the Practice of Relaxing Our Threat Detector 2021 · 899 words](https://umairalikhatri.com/zen/exhausted/energy-depletion-the-practice-of-relaxing-our-threat-detector/) - [Living the Quiet Life 2013 · 620 words](https://umairalikhatri.com/zen/exhausted/living-the-quiet-life/) - [Stillness is a Powerful Action 2010 · 422 words](https://umairalikhatri.com/zen/exhausted/stillness-is-a-powerful-action/) - [A Simple Mindful Method to Deal with Tiredness, Loneliness & Stress 2019 · 509 words](https://umairalikhatri.com/zen/exhausted/a-simple-mindful-method-to-deal-with-tiredness-loneliness-stress/) This shelf is sorted by feeling rather than by date. That sorting is the same instinct behind [the rest of my work](https://umairalikhatri.com/work/) — deciding what to keep, and in what order. [All twelve states](https://umairalikhatri.com/zen/). --- # I want to move my body — Zen Habits for this moment > Starting to run, walk, train, or simply move again. 12 public-domain Zen Habits posts by Leo Babauta for exactly this. You get one, not a list. Source: https://umairalikhatri.com/zen/move-my-body/ Author: Umair Ali Khatri Updated: 2026-08-22 --- [← Back](https://umairalikhatri.com/zen/) # I want to move my body ## The Simple Fitness Rules Leo Babauta · 2009 · 1,573 words Health and fitness are usually made to seem too complex. If you read a lot of fitness magazines and blogs (as I often do), you’re told a confusing variety of complex advice. It makes your head spin. You’re told that eggs, butter and meat are bad for you. Then another crowd will tell you those same things are actually good. Then you’ll hear running is good for you, and the bodybuilding and primal crowds will scoff at longer-distance running. You’ll hear that lifting weights is the best way to get into shape, and others will laugh at that. You’ll hear a million variations of the best workouts, of when to time your nutrition, of how to periodize your workouts, of how to measure fitness, of what supplements you need to take … ad naseum. It’s enough to make you want to give up. Fortunately, fitness doesn’t have to be that complex. In fact, you can boil it down to two simple rules: - Get your body moving on a regular basis; and - Eat a moderate amount of real, whole foods (with occasional indulgences). I believe if you stuck to those two rules, and stuck with them for awhile, you’d get fit. Doing one but not the other will result in an improvement in health for many people (not all), but it would be an incomplete health. Do both most days of the week and you’re on your way to health and fitness. But what about specific macronutrient ratios (fancy way of saying the breakdown of protein, carbs and fats)? What about meal frequency and timing? What about workout frequency, splits, timing, reps, and more? You could add all these types of rules and many more, but the truth is, all the complexities are usually a way of masking some simple truths: if you want to lose fat or weight, you have to have a calorie deficit, and if you want to build muscle, you’ve got to use exercise to get stronger. The other stuff is mostly guesswork, and while these complicated programs probably work, they usually work because they promote one or more of the principles in this post, not because of their complexities. The two rules above are all you need … however, most of us need a little more detail, so here’s a more complete set of simple fitness rules. As always, remember that 1) I’m not an expert — this is just stuff that’s worked for me; 2) this is for healthy adults — people with health problems should seek the advice of professionals. 1\. Get moving. Try to do some kind of physical activity most days of the week (4 or more days if possible). If you have an aversion to exercise, don’t think of it as exercise. Just think of it as a way to get your body moving in some fun way. It can be dance, yardwork, hiking, a nature walk, a swim, basketball, rugby, cycling, even housework if you do it vigorously enough. And it doesn’t have to be the same thing each day. I recommend, just for the sake of simplicity, that you do find a regular time slot you could do your daily activity, most days of the week. I prefer mornings but others enjoy lunchtime or after work. 2\. Enjoy yourself. Whatever activity you choose, it has to be fun. If you don’t like it, move on to something else. Focus on the fun part, not the hard part. Or learn, as I have, to enjoy the hard stuff! Again, make it fun, or you won’t keep it up for very long. To make sure it’s not too hard, start easy. Focus on just getting moving and enjoying the activity. Start small, and build up with baby steps. 3\. Slowly add intensity. Once you’ve been doing an activity for a little while, and you’re in decent shape, it’s good to add some intensity. But slowly — if you add intensity too quickly you’ll risk injury or burnout. So let’s say you’ve been doing some walking for a couple months — you should be ready to add a little jogging or fast-paced walking, in small little intervals. If you’ve been running, try some faster-paced intervals (take it easy at first) or hill workouts. If you’ve been strength training, be sure to add weights (safely) or decrease rest time or add more reps or sets. If you’re playing a sport, really speed things up, or focus on explosive movements. Intensity is a great way to get yourself in shape and have an effective workout in only 20-30 minutes. Here’s a great way to do bodyweight exercises with intensity: do a circuit of bodyweight exercises (such as pushups, pullups, squats, burpees, Hindu pushups, lunges or others) and do as many circuits as you can in 10 or 15 minutes. Next workout, see if you can do more circuits. It’s great! 4\. Minimal equipment. There are a million different exercise gadgets out there, from ab machines to elliptical trainers to a whole slew of weight machines at the gym. My rule is: keep it simple. You can do amazing things with bodyweight exercises — in fact, if you are a relative beginner, you should start with bodyweight exercises for at least 6 months before progressing to weights. You don’t need cardio machines — just go outside and walk, run, bike, do hills, climb stairs, sprint. Even if you do weights, a barbell or dumbbells are all you need — stay away from the machines that work your body at angles it’s not meant to use (although cable machines aren’t bad). Even better, get outside and do sprints, pushups, jump over things, pick up big rocks and throw them, do pullups from a tree, climb up rocks, swim, do a crabwalk or monkeywalk, take a sledgehammer or pick and slam it into the ground, flip tractor tires, and generally get a great workout with very little equipment. 5\. Just a few exercises. Bodybuilding routines will have you doing 3-4 different exercises per body part. That’s too complicated for most people. Keep it simple in the weight room: squats, deadlifts, presses, chinups or pullups, rows. You can do a lot with just those lifts. Of course, you’ll want to mix it up eventually with some variations, but no need for 10 different ab exercises or things that focus on your rear deltoids or use swiss balls. If you’re doing bodyweight exercises, I love things like pushups, burpees, squats, lunges, pullups, dips, planks. Pick a few and do some circuits with little rest. 6\. Eat real foods. One of the most important rules on this list, because if you don’t eat right (most of the time), it doesn’t matter how much exercise you do — you’ll get fat and unhealthy. Aim for real, whole foods that are as close to their natural state as possible. That means stay away from processed, refined, fatty, sugary foods. Veggies, fruits, lean meats, dairy, nuts, beans, whole grains, eggs, seeds. Prepare them yourself if possible — convenience foods often have added ingredients, as well as extra salt, fat, sugar and preservatives. If you follow this diet — with the plant foods making the bulk of the diet — it’s hard to go wrong. 7\. Eat less. Most people eat too much, and eventually it shows up as fat. To lose that fat, we need to eat less — it’s really that simple. Of course, if you eat the real foods mentioned above, you’ll probably consume fewer calories, but even so, it’s smart to reduce how much you eat overall, at least until you reach a healthy level of body fat (and even then, you shouldn’t let it all go). One way to do that is by eating slowly and mindfully until you’re just satiated (not stuffed). Another way is to eat smaller meals and watch the portions. A third way, which I’ve been experimenting with lately, is intermittent fasting (see [Brad Pilon’s](http://bradpilon.com/) Eat Stop Eat ebook for a great explanation of the science behind fasting). However you do it, be sure to consume the real food in moderate amounts, and reduce your calorie intake if you’re looking to lose fat. 8\. Give it time. This is what gets many people — they expect to see results immediately, within the first month or so, because the magazines they read make it seem so instantaneous. But real fitness rarely happens this way — it’s a process and a lifestyle change. I started out in really bad shape, really overweight, and all I did in the beginning was to quit smoking and start running. A year later, I ran a marathon and was a vegetarian — but I was still kinda fat. A year after that, I was still exercising regularly, and had made a lot of progress, but I still had a ways to go. Now, 3.5 years later, I’m in great shape — slimmer and more muscular and much healthier — but I still have a little stubborn belly fat I’m working on. I’ll get there, but I have accepted the fact that it takes time. You didn’t gain the fat overnight, and you won’t lose it that way either. Learn to enjoy the process, enjoy the activities, enjoy the healthy, real food, and you’ll get healthy and fit almost as an afterthought to this new, amazing lifestyle. Originally published at [zenhabits.net](https://zenhabits.net/the-simple-fitness-rules/). Public domain. [All states](https://umairalikhatri.com/zen/) ## The rest of “I want to move my body” 11 more posts collected for this state. - [A Compact Guide to Creating the Fitness Habit 2011 · 1,407 words](https://umairalikhatri.com/zen/move-my-body/a-compact-guide-to-creating-the-fitness-habit/) - [Minimalist Fitness: How to Get In Lean Shape With Little or No Equipment 2008 · 1,252 words](https://umairalikhatri.com/zen/move-my-body/minimalist-fitness-how-to-get-in-lean-shape-with-little-or-no-equipmen/) - [Beginner's Guide to Running 2007 · 1,780 words](https://umairalikhatri.com/zen/move-my-body/beginner-s-guide-to-running/) - [How to Go From Sedentary to Running in Five Steps 2008 · 1,955 words](https://umairalikhatri.com/zen/move-my-body/how-to-go-from-sedentary-to-running-in-five-steps/) - [15 Great Excuses Not to Form the Fitness Habit 2012 · 1,886 words](https://umairalikhatri.com/zen/move-my-body/15-great-excuses-not-to-form-the-fitness-habit/) - [17 Fitness Truths To Get You In Great Shape 2008 · 2,152 words](https://umairalikhatri.com/zen/move-my-body/17-fitness-truths-to-get-you-in-great-shape/) - [Create the Habits of Being Lean, in 7 Years 2013 · 1,650 words](https://umairalikhatri.com/zen/move-my-body/create-the-habits-of-being-lean-in-7-years/) - [The Two Most Powerful Ways to Create a Healthy Eating Pattern 2019 · 1,537 words](https://umairalikhatri.com/zen/move-my-body/the-two-most-powerful-ways-to-create-a-healthy-eating-pattern/) - [What to Think About During Exercise 2014 · 1,067 words](https://umairalikhatri.com/zen/move-my-body/what-to-think-about-during-exercise/) - [My Kick-Butt Marathon Strategy: Smile, Breathe and Go Slowly (Plus, Why I LOVED Honolulu) 2008 · 1,340 words](https://umairalikhatri.com/zen/move-my-body/my-kick-butt-marathon-strategy-smile-breathe-and-go-slowly-plus-why-i-/) - [Running & the Challenge of Pushing at Your Edge 2023 · 1,489 words](https://umairalikhatri.com/zen/move-my-body/running-the-challenge-of-pushing-at-your-edge/) This shelf is sorted by feeling rather than by date. That sorting is the same instinct behind [the rest of my work](https://umairalikhatri.com/work/) — deciding what to keep, and in what order. [All twelve states](https://umairalikhatri.com/zen/). --- # Money is stressing me out — Zen Habits for this moment > Debt, spending, and the anxiety underneath both. 12 public-domain Zen Habits posts by Leo Babauta for exactly this. You get one, not a list. Source: https://umairalikhatri.com/zen/money-stress/ Author: Umair Ali Khatri Updated: 2026-08-22 --- [← Back](https://umairalikhatri.com/zen/) # Money is stressing me out ## The 10 Key Actions That Finally Got Me Out of Debt; or, Why Living Frugally is Only Part of the Solution Leo Babauta · 2007 · 2,217 words This month, I paid off the loans for both my vehicles! I am debt free! After focusing on getting out of debt for so long (a few years now), becoming debt free is a wonderful and amazing feeling. It wasn’t easy — my wife and children and I all made sacrifices. It took perseverance. It took some creativity. And unlike the common misconception about getting out of debt, it took more than frugality. Background Let’s take a little trip back in time and see how I got into debt to start with. For a large part of my early adulthood, I was very careful to have a small credit limit and to pay off any purchases on my credit card immediately. I had an auto loan that I paid off religiously, and later a mortgage that I also paid very conscientiously. After a divorce, I came out debt free. We had paid off our car loan and credit card, and the mortgage was no longer my responsibility. Then I entered a period that I like to call “frugal irresponsibility”. I made some bad choices, getting a car loan, a credit card with a higher limit, putting things on the credit card that I couldn’t afford, spending without a budget … not the smartest decisions. The next period was one where I was crippled with debt, as well as trying to survive on a single income with no medical insurance. This was only recently (within the last few years). I wasn’t making enough to support my family, so we fell deeper into debt. The most recent period has been my turnaround. I canceled the credit card, and began to live more frugally. I increased my income and saved an emergency fund. This is the part where I learned how to get out of debt. And this is what I’d like to share with you today, in hopes that it will help others struggling. You won’t be able to replicate what I’ve done exactly … everyone has to deal with their situation in their own way … but my hope is that you’ll be able to glean something from my experiences. At the very least, a little inspiration. And that’s not such a small thing. How I Finally Got Out of Debt This hasn’t been the easiest of journeys for me, but I think because of the struggle that getting out of debt entails, the final destination is that much sweeter. Here are the most important things that got me out of debt: 1\. Canceled the credit card. This item always draws a lot of debate, but I’ll say it anyway, because it’s been crucial in getting myself debt free: credit cards are extremely tempting, and with the high interest, they can be downright dangerous. It is possible to use them wisely and even profit from using them … however, most people don’t use them that way, and for people like me, it’s better to just cancel the card. I still had a big debt to pay on the card, but at least I wasn’t using it anymore. Rule #1: If you’re trying to get out of a hole, stop digging. 2\. Eliminated non-essential expenses. This might seem extreme to many people, but remember: I have six kids and for awhile I wasn’t making enough income to support my family. I needed to cut back. So I eliminated everything I didn’t need: cable TV, most of my eating out, going to the movies (except on rare occasions), alcohol, eventually cigarettes (once I quit smoking in November 2005), buying new clothes (except when really needed), etc. I slowly re-learned what it was like to live frugally. This was also key, as it’s part of the “stop digging the hole” rule. See also: [How to Stop Living Paycheck to Paycheck](https://zenhabits.net/how-to-stop-living-paycheck-to-paycheck/). 3\. The spending plan. I don’t like to use the word “budget” because it strikes fear in the hearts of many readers, and blank stares in the eyes of others. Instead, I like the term “spending plan”, because it conjures images of creating a plan to achieve a goal, taking action, and doing something about your problems. Nevertheless, both concepts are essential the same: figure out how much you make, and consciously decide how you want to spend it this month. My plan actually budgets out each paycheck, because a monthly budget wasn’t useful to me: if I only do a budget for a month, how do I know what to pay when my first paycheck comes out? I like to be more specific. Anyway, the spending plan is essential. You have to decide where your money is going to go before you actually spend it. It was when I was spending without a plan that I got into trouble. And remember: a plan should be flexible, and have wiggle room, because life changes. See also: [10 Ways to Simplify Your Budget](https://zenhabits.net/10-ways-to-simplify-your-budget/). 4\. Cash and online bill payments. One of the reasons I had a hard time controlling my finances in the past is that I was spending left and right with no easy way to track my finances or stay within budget. I was using a credit card, debit card, checks, constant ATM withdrawals, etc. I’m not good at writing down every penny. So I devised an easier way: pay all my bills online (including debts and savings), and then withdraw all the money I need for spending categories like eating out, groceries and gas. I use the envelope system, so that I always know how much I have left in each category. Simple and fail-safe. [More here](https://zenhabits.net/how-to-make-your-finances-automagical/). 5\. The emergency fund. I think this was one of the most important things I did. I know, it’s very common advice, but it’s for a good reason: without an emergency fund, your finances are at the whim of any urgent situation that comes up. Unexpected medical bill? Home repair? Car repairs? Need to travel to see your sick relative? These things will have to be paid for somehow, and if you don’t have an emergency fund, you’ll either go into debt to pay for them, or you’ll sacrifice your debt repayment for this month to pay for it. Without an emergency fund, it’s almost impossible to get out of debt. For myself, my debt reduction didn’t really start until I had saved at least a small emergency fund (shoot for $1,000 to start with, but at least a few hundred in the beginning). [Read more](https://zenhabits.net/21-strategies-for-creating-an-emergency-fund-and-why-its-critical/). 6\. The debt repayment plan. I like having plans. They’re how I get things done. I created a plan to get out of debt, using the [debt snowball method](https://en.wikipedia.org/wiki/Debt-snowball_method). I tackled the small bills first, allowing myself to create a sense of accomplishment right away, and to free up some money to pay for the bigger bills. Although tackling the highest-interest debts first is smarter financially, the difference is small and the psychological boost of the debt snowball is huge. 7\. Debt is my first bill. In the beginning, actually, saving for the emergency fund was my first bill. As soon as I got paid, I would go online, transfer money into my savings account, and only after that was done would I pay other bills and withdraw my spending cash. Once I had a $1,000 in savings, I began making debt repayment my most important bill, and I would pay those first. Savings second. All other bills third. By paying debts and savings first, you eliminate the common problem that people have when they make savings and debt the last thing they pay: if something else comes up, there’s not enough money left over for savings or debt. 8\. Rewards. I am a strong believer in rewarding yourself and celebrating any accomplishment. When a debt was paid off, my wife and I would go out to dinner to celebrate. And we might do something nice for the kids. Sure, we were spending extra money, but that sense of accomplishment is important. It’s a long journey, and you need to be able to look back every now and then to see how far you’ve come. It’s very motivating, and it gets you to the finish line. 9\. Increased income. Besides spending less and living more frugally, I also increased my income to make my financial situation more stable and to accelerate debt repayment. To do this, I got a full-time job (I was only doing freelancing before), and continued to do as much freelancing as possible. Then I started Zen Habits, and that became a steady and growing income stream. I also improved my freelancing gigs, and began to look for other ways to make money. 10\. More increased income. With the increased income mentioned in the item above, I was in a much better situation financially. That gave me the courage to look for more. I sought donations, to [help me achieve my dream of becoming a full-time blogger](https://zenhabits.net/help-me-become-a-full-time-blogger/), and people were incredibly generous (and still are). I began to seek new opportunities, and have some projects coming up down the line. I sold my [Zen To Done ebook](https://zenhabits.net/zen-to-done/), and that was a surprising success … it actually allowed me to get debt-free two months before I had anticipated. My [wife went back to work](https://zenhabits.net/the-value-of-a-parent-staying-home-with-kids-and-tips-on-how-to-do-it/), and that helped tremendously. And now my [book agent](http://www.waxmanagency.com/) is shopping around my print book proposal, and that could be another way for me to make more income. Always look for new ways to pursue your dreams and your passion … and to increase your income. Why Living Frugally is Only Part of the Solution I would not be debt-free today if I didn’t [learn to live frugally](https://zenhabits.net/how-i-save-money/). If you don’t stem the flow of blood, you’ll never heal the wound. But frugal living is only one component. You have to learn to get your finances under control, and to plan your spending, and to create an emergency fund. You have to learn how to motivate yourself to finish the long journey. And one of the most important steps, as mentioned above, was increasing my income in multiple ways, in a series of steps designed to get my finances in better shape and to pay off debt faster. Living frugal should be the first thing you do, in my opinion. It is vitally important. But it’s only a part of the equation — spending less only gets you part of the way. Earning more gets you the rest of the way. How can you increase your income? You won’t do it the same way I have. Sure, anyone can create a blog, write an ebook, freelance, write a print book. And I’ve talked about ways to do those things in various places before. But it doesn’t always work out for everyone. The key is to find something you’re passionate about, and pursue that with all of your heart. That might mean educating yourself, and learning new skills. That might mean finding mentors, and starting at the bottom. But when you’re passionate about something, you’re more motivated to learn and to succeed. Really pour yourself into it, and you’ll find a way. It’s also important to seek new opportunities, and don’t let good ones get away. If the opportunity doesn’t work out, well, drop it … but at least you gave it a shot. And who knows? One or more of those opportunities might turn into pure gold. They sure have for me, and I’m loving my life more than ever before. What’s Next: My Credit-free Plan So I’m debt-free … where do I go from here? My plan now is to continue to try to increase my income with new projects, to continue to follow my heart and my passion, and to see what comes up. But I plan to still live frugally and to save and invest as much as possible. In truth, I haven’t done much investing yet (besides my 401k) … that’s my next financial project, once my emergency fund is where I want it to be. There will be a little more spending, to be sure … I’ll be able to travel now (maybe a trip every year). I haven’t traveled in 6 or 7 years. But one thing’s for sure: I’m not getting into debt again. I’m not taking out any credit cards, and I’m not going to take out any loans. This might be a little controversial, but I’m pretty adamant about this: I’m already saving for my next car, so I can buy it on cash. And I’m going to buy my home on cash too, someday. Until then, I can rent. Debt is a dangerous game. Some people can succeed at it. The rest of us can’t. For me, getting out of debt has been like shedding a load of boulders from my back. Living without debt is wonderfully light, and I’m not giving that up. Sure, I’ll have to wait a little longer to get the things I want on cash … but that’s worth the wait. It really is. I’m free! Update: Read [this amazing account of a similar journey to debt freedom](http://www.getrichslowly.org/blog/2007/12/03/free-at-last-saying-good-bye-to-20-years-of-debt/) by J.D. Roth of Get Rich Slow — J.D., by the way, has been one of my key inspirations on my own journey. Originally published at [zenhabits.net](https://zenhabits.net/the-10-key-actions-that-finally-got-me-out-of-debt-or-why-living-frugally-is-only-part-of-the-solution/). Public domain. [All states](https://umairalikhatri.com/zen/) ## The rest of “Money is stressing me out” 11 more posts collected for this state. - [Financial Zen: How to Get Financial Peace of Mind 2007 · 813 words](https://umairalikhatri.com/zen/money-stress/financial-zen-how-to-get-financial-peace-of-mind/) - [The 12-Step Get-Out-of-Debt Program 2007 · 1,995 words](https://umairalikhatri.com/zen/money-stress/the-12-step-get-out-of-debt-program/) - [How to Stop Living Paycheck to Paycheck 2007 · 1,344 words](https://umairalikhatri.com/zen/money-stress/how-to-stop-living-paycheck-to-paycheck/) - [Simple Finances: How and Why to Build Up a Cushion in the Bank 2007 · 1,205 words](https://umairalikhatri.com/zen/money-stress/simple-finances-how-and-why-to-build-up-a-cushion-in-the-bank/) - [21 Strategies for Creating an Emergency Fund, and Why It's Critical 2007 · 1,502 words](https://umairalikhatri.com/zen/money-stress/21-strategies-for-creating-an-emergency-fund-and-why-it-s-critical/) - [Simple Budgeting for Lazy People 2011 · 847 words](https://umairalikhatri.com/zen/money-stress/simple-budgeting-for-lazy-people/) - [The Way of No Debt 2013 · 655 words](https://umairalikhatri.com/zen/money-stress/the-way-of-no-debt/) - [Breaking Free From Consumerist Chains 2011 · 743 words](https://umairalikhatri.com/zen/money-stress/breaking-free-from-consumerist-chains/) - [10 Habits to Develop for Financial Stability and Success 2007 · 794 words](https://umairalikhatri.com/zen/money-stress/10-habits-to-develop-for-financial-stability-and-success/) - [Enjoy Life Now, AND Save for Later; or, Why Delayed Gratification is a False Dichotomy 2007 · 1,227 words](https://umairalikhatri.com/zen/money-stress/enjoy-life-now-and-save-for-later-or-why-delayed-gratification-is-a-fa/) - [The Cheapskate Guide: 50 Tips for Frugal Living 2007 · 3,520 words](https://umairalikhatri.com/zen/money-stress/the-cheapskate-guide-50-tips-for-frugal-living/) This shelf is sorted by feeling rather than by date. That sorting is the same instinct behind [the rest of my work](https://umairalikhatri.com/work/) — deciding what to keep, and in what order. [All twelve states](https://umairalikhatri.com/zen/). --- # I'm too hard on myself — Zen Habits for this moment > The inner critic, and turning it down. 12 public-domain Zen Habits posts by Leo Babauta for exactly this. You get one, not a list. Source: https://umairalikhatri.com/zen/hard-on-myself/ Author: Umair Ali Khatri Updated: 2026-08-22 --- [← Back](https://umairalikhatri.com/zen/) # I'm too hard on myself ## The Miracle of the Self-Compassion Habit Leo Babauta · 2014 · 1,296 words Let’s hypothesize that there’s a substance that’s been irritating you and causing problems in all areas of your life: it causes you to be unhappy, to be stressed, to procrastinate, to be distracted, to be angry with people, to be dissatisfied with your life, to be overweight and unhealthy, to not exercise or eat healthy, and much more. Horrible substance, right? Now imagine there were a salve that could ease the bad effects of this substance, and make all those other areas better. The substance is real: it’s your suffering. We all suffer, in small and large ways, every day. And it causes all the other problems I mentioned. The salve is also real: it’s self-compassion. Which sounds too fluffy for most people, but it’s a concrete practice that will have concrete benefits, in all areas of your life. Let’s take a minute to explore suffering, and what would happen if you applied the salve of self-compassion. ### The All-Pervasive Effects of Suffering We don’t always think of ourselves as suffering, if we’re leading normal lives. But in fact, we’re suffering more often than we usually realize, just not necessarily suffering greatly. We suffer in small ways, and that affects our happiness, the happiness of those around us, and our actions and habits throughout the day. Some examples: - Stress: Throughout the day, things come up to stress you out, from a new thing to add to your workload to someone criticizing you to the housework not being done. This is suffering, even if it’s usually at a low level (though sometimes it can get to high levels). The salve of self-compassion would reduce this suffering, and allow you to deal with these events/situations more calmly, increasing your happiness levels throughout the day. - Frustrations: Little frustrations happen all the time, from people not doing things right to traffic being congested to not being able to figure out why software isn’t working right. This is also suffering. Self-compassion can help you calm down from the frustrations, and handle the situations appropriately. You’d be less angry when you responded, which is likely to result in better outcomes. - Anger with others: Someone has pissed you off — your kid just won’t listen, your spouse has said something critical, your boss is being a total dillweed. You’re suffering, obviously. This can result not only in unhappiness, but in actions that hurt your relationship with others, your career, your marriage. Instead, apply self-compassion, and you can calm down, respond appropriately, even with compassion for the other person, who is also suffering. - Feeling bad about yourself: There are a million reasons we feel bad about ourselves, from failure to body fat to hopelessness in bad situations. This too is suffering, and it causes us to take harmful actions, like comforting ourselves with food and shopping and alcohol, not taking action, not believing in ourselves. Self-compassion eases this pain, and leads not only to more helpful actions but happiness. - Feeling rushed: There’s often a feeling throughout our days that we need to rush to the next thing. Walking, we go quickly. Working, we switch constantly to the next communication, next tab, next super-urgent-can’t-wait-do-it-now task. This feeling of constant urgency is itself a source of stress. Self-compassion can ease this as well, and allow us to slow down, enjoy the moment, be happier in each moment. - Distraction: We live super-distracted lives, wasting huge parts of our day. Distraction is a symptom of suffering — we go to distraction because of fear (we’re afraid of harder tasks, of missing out, of failing) and we think distraction is comforting. In turn, distraction tends to increase suffering — we feel bad about ourselves, we procrastinate on important things and make our jobs and lives worse, etc. Self-compassion helps us see this suffering, ease it, and reduce the tendency to distraction. - Procrastination: We all procrastinate, on work, on writing our great novel, on learning a musical instrument, on exercise. Procrastination, like distraction, is a symptom of suffering, of fear and thinking we can’t do something. Self-compassion can help with that suffering and reduce procrastination, increasing our creative output, helping us to take care of finances and work tasks and decluttering and all the things we know we really want to do but aren’t doing. - Not exercising: This is a specific form of procrastination, and so is a symptom of suffering. It also shows how procrastination can cause more suffering, as a lack of exercise leads to worse health, which leads to the stress and pain of disease. Self-compassion can help us start exercising mindfully and joyfully. - Unhealthy eating: We tend to eat unhealthy things because we are afraid of vegetables and not eating junk, and because we need to comfort ourselves from other suffering, and because we think we need the crutch of temporary pleasures. We don’t. Self-compassion eases this suffering and helps us to be OK with not eating Pringles and donuts, with making our bodies feel better. - Lack of gratitude: Much of our lives are spent in silent complaint, or sometimes not so silent. We are so unhappy with little things in our lives, which is a form of suffering. These complaints mean we’re missing out on what’s great about our lives. Self-compassion helps us to deal with the pain of these complaints, and instead turn to the amazing things we can be grateful for, which increases our happiness with life all around us. - Lack of mindfulness: Most of our lives are spent in distraction, unmindful of the present moment. This is a form of suffering, because if we weren’t suffering we could stay in the present much of the time, fully appreciate the moment as it happens. Instead, we’re thinking about the future because we’re worried about it, we’re obsessed with the past mistakes we’ve made. Self-compassion can ease these worries and obsessions, and instead practice mindfulness with each moment more often. I could go on forever, because suffering takes many forms. But you can see the pattern: self-compassion eases the pain of the suffering, reducing the bad effects and allowing us to choose more helpful ways of living. Let’s turn to a method of self-compassion. ### A Self-Compassion Method This is a method you can practice through a daily habit, to help with suffering in all forms: - Notice your suffering, in one of its many forms. - Turn towards the suffering, see it as it is, feel it fully, experience it mindfully and in the moment. - Accept the suffering, instead of trying to ignore it, avoid it, push it away, kill it. Accept that it’s a part of life, a part of you, but temporary. - Wish yourself happiness, wish for an end to your suffering. Give yourself a mental hug, comfort yourself. - Let go of what’s causing the suffering. Just release it, or put it aside. The cause is likely something you wish were different. Instead, appreciate things as they are. Be present with reality. - Be grateful for the reality that’s happening right now. This is not always easy to practice, and so I recommend a daily session where you turn inward for a couple minutes, and practice without the distractions of daily life. You’ll get better at the self-compassion habit with practice. But it’s worth the practice. The salve of self-compassion can change your entire life. ### Practice the Habit If you’re interested in forming the self-compassion habit, we’re working on that in May in the [Sea Change Program](https://zenhabits.net/training/). Sign up in the next few days to join the Self-Compassion Habit module: get a plan, a video, some articles on the habit, a live webinar with me and an accountability forum. [Join us here](https://zenhabits.net/training/). Originally published at [zenhabits.net](https://zenhabits.net/self-hugs/). Public domain. [All states](https://umairalikhatri.com/zen/) ## The rest of “I'm too hard on myself” 11 more posts collected for this state. - [A Simple, Powerful Self-Compassion Method 2015 · 406 words](https://umairalikhatri.com/zen/hard-on-myself/a-simple-powerful-self-compassion-method/) - [How to Be Kind to Yourself & Still Get Stuff Done 2019 · 1,244 words](https://umairalikhatri.com/zen/hard-on-myself/how-to-be-kind-to-yourself-still-get-stuff-done/) - [The Heartbreaking Cruelty of Comparing Yourself to Others 2014 · 803 words](https://umairalikhatri.com/zen/hard-on-myself/the-heartbreaking-cruelty-of-comparing-yourself-to-others/) - [Life's Enough: Stop Comparing Yourself to Others 2008 · 1,347 words](https://umairalikhatri.com/zen/hard-on-myself/life-s-enough-stop-comparing-yourself-to-others/) - [The Antidote to Self-Harshness & Resentment 2017 · 940 words](https://umairalikhatri.com/zen/hard-on-myself/the-antidote-to-self-harshness-resentment/) - [Mindfully Letting Go of Shame 2019 · 995 words](https://umairalikhatri.com/zen/hard-on-myself/mindfully-letting-go-of-shame/) - [You Can't Do Anything That is Shamefully Wrong 2019 · 594 words](https://umairalikhatri.com/zen/hard-on-myself/you-can-t-do-anything-that-is-shamefully-wrong/) - [Where You Get Your Sense of Self-Worth 2022 · 531 words](https://umairalikhatri.com/zen/hard-on-myself/where-you-get-your-sense-of-self-worth/) - [The Gentle Art of Trying Something & Sucking at It 2015 · 406 words](https://umairalikhatri.com/zen/hard-on-myself/the-gentle-art-of-trying-something-sucking-at-it/) - [Mental Resiliency: Letting Go of the Guilt of Not Getting Things Done 2018 · 624 words](https://umairalikhatri.com/zen/hard-on-myself/mental-resiliency-letting-go-of-the-guilt-of-not-getting-things-done/) - [When You're Feeling Self-Doubt & a Lack of Motivation 2014 · 909 words](https://umairalikhatri.com/zen/hard-on-myself/when-you-re-feeling-self-doubt-a-lack-of-motivation/) This shelf is sorted by feeling rather than by date. That sorting is the same instinct behind [the rest of my work](https://umairalikhatri.com/work/) — deciding what to keep, and in what order. [All twelve states](https://umairalikhatri.com/zen/). --- # I'm not present — Zen Habits for this moment > Living ahead of yourself instead of in the room. 12 public-domain Zen Habits posts by Leo Babauta for exactly this. You get one, not a list. Source: https://umairalikhatri.com/zen/not-present/ Author: Umair Ali Khatri Updated: 2026-08-22 --- [← Back](https://umairalikhatri.com/zen/) # I'm not present ## The Amazing Power of Being Present Leo Babauta · 2011 · 982 words ‘Walk as if you are kissing the Earth with your feet.’ ~Thich Nhat Hahn How can you bring calm and peace to the middle of a stress-ful, chaotic day? The answer is simple, though not always so easy to put into practice: learn to be present. No matter how out-of-control your day is, no matter how stressful your job or life becomes, the act of being present can become an oasis. It can change your life, and it’s incredibly simple. When I asked people what things prevent them from having a peaceful day, some of the responses: - Work, the internet, my own lizard brain. - Social media and other digital distractions. - For me it’s too many things coming at me all at once. Whether it’s news, or decisions, or work to be done. - My four children. - Dishes, Laundry, Kids. - Needless interruptions. - Lack of control. I work in IT, and often “urgent” things will come up that need to be investigated/fixed right away (their definition, not necessarily mine). - My own monkey mind. The amazing thing: all of these problems can be solved by one technique. Being Present. ### How Being Present Solves Problems When you look at all of the problems above, you can see if you look closely that the problems are entirely in the mind. Sure, there are external forces at work: an uncontrollable job, the stress of kids and chores and interruptions and digital distractions. But it’s how our mind handles those external forces that is the problem. If you are completely present, the external forces are no longer a problem, because there is only you and that external force, in this moment, and not a million other things you need to worry about. If your kid interrupts you, you can stress out because you have other things to worry about and now your kid is adding to your worries or interrupting your calm. Or you can be present, and there is then only you and the child. You can appreciate that child for who she is, and be grateful you have this moment with her. If your job demands that you focus on an urgent task, you can stress out because you have a million other things to do and not enough time to do them. Or you can be present, and focus completely on that task, and now there is only that one task and you. When you’re done, you can move on to the next task. Social media and other digital distractions don’t interrupt us if we close them and learn to pour ourselves completely into the present task. And if we need to do email, Twitter, or read blogs, we can set aside everything else and just be present with that one digital task. Being present becomes, then, a way to handle any problem, any distraction, any stressor. It allows everything else to fade away, leaving only you and whatever you’re dealing with right now. ### How to Practice Being Present The method for being present is fairly simple, but it’s the practice that matters most. Most people don’t learn to be present because they don’t practice, not because it’s so hard to do. When you practice something regularly, you become good at it. It becomes more a mode of being rather than a task on your to-do or someday list. Practice, practice, and being present will become natural. Here’s how to do it: whatever you’re doing, right now, learn to focus completely on doing that one thing. Pay attention: to every aspect of what you’re doing, to your body, to the sensations, to your thoughts. You will notice your thoughts, if you’re paying attention, jump to other things. That’s OK - you are not trying to force all other thoughts from your mind. But by becoming aware of that jumping around in your thoughts, you have found the tool for gently bringing yourself back to your present task. Just notice the jumping thoughts, and lovingly come back. Do this once, then do it again. Don’t worry about how many times you must do it. Just do it now. It can become tiring at first, if you’re not used to it. Don’t worry about that. Let yourself rest if you grow tired. Come back and practice again in a little while. It’s not meant to be exhausting - instead you should notice how your worries melt away and you enjoy your present task much more. Be joyful in whatever you’re doing, grateful that you’re able to do that task, and fully appreciate every little movement and tactile sensation of the task. You’ll learn that anything can be an amazing experience, anything can be a miracle. Practice throughout your day, every day. Little “mindfulness bells” are useful to remind you to come back to the present. Thich Nhat Hanh once recommended that stoplights be your mindfulness bell as you drive. You can find mindfulness bells everywhere: your child’s voice, your co-workers appearing before you, a regular event on your computer, the noise of traffic. Meditation is a fantastic way to practice, only because it removes much of the complexity of the world and allows you to just learn to be aware of your mind, and to bring yourself back to the present moment. It’s not complicated: meditation can be done anywhere, anytime. A meditation teacher is useful if you can find one. Practice, repeatedly, in small easy beautiful steps. Each step is a wonder in itself, and each practice helps you to find that calm in the middle of the traffic of your life. ‘Drink your tea slowly and reverently, as if it is the axis on which the world earth revolves - slowly, evenly, without rushing toward the future. Live the actual moment. Only this moment is life.’ ~Thich Nhat Hanh Originally published at [zenhabits.net](https://zenhabits.net/mindful/). Public domain. [All states](https://umairalikhatri.com/zen/) ## The rest of “I'm not present” 11 more posts collected for this state. - [The Zen Habits Beginner's Guide to Mindfulness 2016 · 810 words](https://umairalikhatri.com/zen/not-present/the-zen-habits-beginner-s-guide-to-mindfulness/) - [6 Practical Ways to Practice Being Present 2016 · 764 words](https://umairalikhatri.com/zen/not-present/6-practical-ways-to-practice-being-present/) - [How to Meditate Daily 2012 · 1,118 words](https://umairalikhatri.com/zen/not-present/how-to-meditate-daily/) - [The Mindfulness Guide for the Super Busy: How to Live Life to the Fullest 2009 · 1,221 words](https://umairalikhatri.com/zen/not-present/the-mindfulness-guide-for-the-super-busy-how-to-live-life-to-the-fulle/) - [Meditation: The Most Fundamental Habit 2013 · 1,021 words](https://umairalikhatri.com/zen/not-present/meditation-the-most-fundamental-habit/) - [How to Savor Life 2013 · 1,427 words](https://umairalikhatri.com/zen/not-present/how-to-savor-life/) - [9 Mindfulness Rituals to Make Your Day Better 2011 · 781 words](https://umairalikhatri.com/zen/not-present/9-mindfulness-rituals-to-make-your-day-better/) - [Our Relationship with the Present Moment 2016 · 568 words](https://umairalikhatri.com/zen/not-present/our-relationship-with-the-present-moment/) - [12 Indispensable Mindful Living Tools 2013 · 1,524 words](https://umairalikhatri.com/zen/not-present/12-indispensable-mindful-living-tools/) - [Meditation for Beginners: 20 Practical Tips for Understanding the Mind 2016 · 1,417 words](https://umairalikhatri.com/zen/not-present/meditation-for-beginners-20-practical-tips-for-understanding-the-mind/) - [The Honest Guide to Mindfulness 2020 · 1,152 words](https://umairalikhatri.com/zen/not-present/the-honest-guide-to-mindfulness/) This shelf is sorted by feeling rather than by date. That sorting is the same instinct behind [the rest of my work](https://umairalikhatri.com/work/) — deciding what to keep, and in what order. [All twelve states](https://umairalikhatri.com/zen/). --- # I want to begin again — Zen Habits for this moment > The restart, and how to make it stick this time. 12 public-domain Zen Habits posts by Leo Babauta for exactly this. You get one, not a list. Source: https://umairalikhatri.com/zen/begin-again/ Author: Umair Ali Khatri Updated: 2026-08-22 --- [← Back](https://umairalikhatri.com/zen/) # I want to begin again ## The Magic of a Fresh Start Leo Babauta · 2020 · 409 words One of the biggest obstacles to sticking with a habit change, a new system, a goal or long-term project … is that we get disrupted. Something interrupts our progress - we skip a workout day or two - and then some programming in our brains turns that into a message of how we’re not good enough, we can’t do it, we should just give up. This stops so many people from making long-term progress. It stops us from simply starting again. This is because most of us don’t realize the power and magic of a Fresh Start. A Fresh Start is when we get to start anew, with a blank slate. It’s waking up to a brand new morning, with a day we get to use however we want. When we miss a few days of meditation, or eat junk for a week because of various celebrations, or fall off from writing our book … instead of making that to mean that this whole thing is a waste of time or that we somehow suck … we can look at it as a Fresh Start. I’m not simply reframing things to “be positive.” There’s a lot of power available to us in a Fresh Start that we miss out on. A Fresh Start is magical: - We can see the habit or project with fresh eyes, as if we’d never seen it before, and bring a sense of wonder and curiosity to what we’re doing - There’s a sacredness to letting everything go from the past and just showing up in a new moment - We can learn something from the past failure or disruption, and use this new start as a way to get better at that difficulty, armed with this new information, so that every Fresh Start becomes a new opportunity to learn, grow, get better at something - We get to reinvent ourselves, reinvent what we’re taking on, reinvent what we want to make our lives to be - We can recommit, and remind ourselves of why we’re committed to this This is all missed when we ignore the magic and power of a Fresh Start! The beautiful thing is that a Fresh Start is available to us not only when we get disrupted or stumble … but in every moment. Every day. Every new meditation or workout or work session. Every new meeting with someone, every new conversation. Every new breath. Originally published at [zenhabits.net](https://zenhabits.net/anew/). Public domain. [All states](https://umairalikhatri.com/zen/) ## The rest of “I want to begin again” 11 more posts collected for this state. - [How to Change Your Life: A User's Guide 2013 · 1,289 words](https://umairalikhatri.com/zen/begin-again/how-to-change-your-life-a-user-s-guide/) - [7 Little Habits That Can Change Your Life, and How to Form Them 2008 · 1,484 words](https://umairalikhatri.com/zen/begin-again/7-little-habits-that-can-change-your-life-and-how-to-form-them/) - [New Year: The Beautiful Minimalism of a Blank Slate 2019 · 401 words](https://umairalikhatri.com/zen/begin-again/new-year-the-beautiful-minimalism-of-a-blank-slate/) - [How to Deal With Major Disruptions to Your Routine 2009 · 1,268 words](https://umairalikhatri.com/zen/begin-again/how-to-deal-with-major-disruptions-to-your-routine/) - [Become Your New Habit 2022 · 701 words](https://umairalikhatri.com/zen/begin-again/become-your-new-habit/) - [Change Your Story to Change Your Life 2015 · 707 words](https://umairalikhatri.com/zen/begin-again/change-your-story-to-change-your-life/) - [Sacred Bow: An Intentional Way to Close Out the Year & Start the New Year 2018 · 750 words](https://umairalikhatri.com/zen/begin-again/sacred-bow-an-intentional-way-to-close-out-the-year-start-the-new-year/) - [My Morning Routine 2024 · 404 words](https://umairalikhatri.com/zen/begin-again/my-morning-routine/) - [Create Time to Change Your Life 2011 · 1,037 words](https://umairalikhatri.com/zen/begin-again/create-time-to-change-your-life/) - [Why Perfectionism Stops Us from Creating New Habits 2022 · 489 words](https://umairalikhatri.com/zen/begin-again/why-perfectionism-stops-us-from-creating-new-habits/) - [8 Ways Doing Less Can Transform Your Work & Life 2009 · 963 words](https://umairalikhatri.com/zen/begin-again/8-ways-doing-less-can-transform-your-work-life/) This shelf is sorted by feeling rather than by date. That sorting is the same instinct behind [the rest of my work](https://umairalikhatri.com/work/) — deciding what to keep, and in what order. [All twelve states](https://umairalikhatri.com/zen/).