1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="robots" content="noindex, nofollow"/><title>I Will Never Create Value I Cannot Capture | Domdhi</title><meta property="og:title" content="I Will Never Create Value I Cannot Capture"/><meta name="description" content="Why employment is designed extraction, how the value-capture spread actually works, and the filter I run every project through before spending a single hour on it."/><meta property="og:description" content="Why employment is designed extraction, how the value-capture spread actually works, and the filter I run every project through before spending a single hour on it."/><meta property="og:type" content="article"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="I Will Never Create Value I Cannot Capture"/><meta name="twitter:description" content="Why employment is designed extraction, how the value-capture spread actually works, and the filter I run every project through before spending a single hour on it."/><link rel="canonical" href="https://domdhi.com/logs/value-i-cannot-capture"/><meta property="og:url" content="https://domdhi.com/logs/value-i-cannot-capture"/><meta property="og:site_name" content="Domdhi"/><meta name="robots" content="index, follow"/><meta name="article:published_time" content="2026-09-22T08:00:00+00:00"/><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="icon" href="/favicon.ico" sizes="48x48"/><link rel="apple-touch-icon" href="/apple-touch-icon.png"/><link rel="manifest" href="/site.webmanifest"/><link rel="alternate" type="application/rss+xml" title="Domdhi RSS Feed" href="/api/feed.xml"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="preconnect" href="https://api.fontshare.com" crossorigin="anonymous"/><link rel="modulepreload" href="/assets/entry.client-CAXdPubk.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/chunk-6CSD65Y2-D6zLy3dp.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/react-dom-xtO3DKtk.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/jsx-runtime-BGLTrfZy.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/root-Bcndpy-H.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/button-DrB63Wrb.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/error-page-DXluEbBN.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/use-toast-B-AEaVB6.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/nonce-CWOxB_-x.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/route-error-oT57U1b3.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/utils-UvpNVb9C.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/dist-DwVSkiDL.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/dist-CxHP7aHd.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/dist-CWWr0mHq.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/dist-k5UaVEGE.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/x-4NTPRLP3.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/createLucideIcon-Dya2zrSk.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/route-4AcQuCWI.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/PublicFooter-BtHZR4m5.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/logs._slug-DAXjEbJa.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/content-BjTwqayj.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/PostRow-CyG6palb.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/tts-provider-aX8KnGCy.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/use-timezone-BxbxSbxz.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/safe-marked-xGcjNsFK.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/>
1<link rel="modulepreload" href="/assets/string-utils-Bgl0RdLr.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/time-utils-DcRCMNV5.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="modulepreload" href="/assets/text-utils--3CW0i-p.js" nonce="Ql0JXR4Puj4oTJMlexwARQ"/><link rel="stylesheet" href="/assets/root-WJoKqX3L.css"/><link rel="stylesheet" href="https://api.fontshare.com/v2/css?f[]=clash-display@600,700&display=swap"/></head><body><div class="bg-void text-white font-mono min-h-screen flex flex-col overflow-x-clip selection:bg-amethyst selection:text-white relative"><div class="scanlines"></div><div class="fixed top-0 left-1/2 -translate-x-1/2 w-[800px] h-[600px] bg-amethyst/10 blur-[120px] rounded-full pointer-events-none z-0"></div><header class="fixed top-0 w-full z-50 h-[60px] flex items-center justify-between px-6 backdrop-blur-sm border-b border-white/[0.16] bg-void/95"><a href="/" class="flex items-center gap-2 no-underline" aria-label="Domdhi home"><img src="/favicon.svg" loading="lazy" width="32" height="32" alt="Domdhi logo" style="flex-shrink:0;display:block"/><span class="font-mono text-[13px] font-bold tracking-[0.14em] text-white">DOMDHI<span class="text-amethyst">.OS</span></span></a><nav class="flex items-center"><div class="hidden md:flex items-center"><a class="inline-flex items-center justify-center font-bold font-mono uppercase tracking-[0.07em] transition-button disabled:opacity-50 disabled:cursor-not-allowed bg-transparent border border-transparent px-4 py-2 text-xs text-zinc-400 hover:text-violet hover:border-white/20 hover:text-glow-violet" href="/logs" data-discover="true">[/WRITING]</a><a class="inline-flex items-center justify-center font-bold font-mono uppercase tracking-[0.07em] transition-button disabled:opacity-50 disabled:cursor-not-allowed bg-transparent border border-transparent px-4 py-2 text-xs text-zinc-400 hover:text-cyan hover:border-white/20 hover:text-glow-cyan" href="/builds" data-discover="true">[/BUILDS]</a></div><a class="inline-flex items-center justify-center font-bold font-mono uppercase tracking-[0.07em] transition-button disabled:opacity-50 disabled:cursor-not-allowed bg-transparent border-2 border-white/20 hover:translate-x-[-2px] hover:translate-y-[-2px] active:translate-x-[1px] active:translate-y-[1px] px-4 py-2 text-xs text-white shadow-soft-amethyst hover:border-amethyst hover:text-amethyst hover:shadow-soft-amethyst hover:text-glow-amethyst active:shadow-soft-amethyst ml-3" href="/login" data-discover="true">[INITIALIZE â]</a></nav></header><main class="relative z-10 pt-20 flex-1">
1<script type="application/ld+json" nonce="Ql0JXR4Puj4oTJMlexwARQ">{"@context":"https://schema.org","@type":"Article","headline":"I Will Never Create Value I Cannot Capture","description":"Why employment is designed extraction, how the value-capture spread actually works, and the filter I run every project through before spending a single hour on it.","datePublished":"2026-09-22T08:00:00+00:00","dateModified":"2026-09-22T08:01:51.628+00:00","author":{"@type":"Person","name":"Dominic Baca"},"url":"https://domdhi.com/logs/value-i-cannot-capture"}</script>
1<div class="max-w-5xl mx-auto px-5 sm:px-8 md:px-10"><div class="fixed top-[60px] left-0 right-0 h-[2px] z-[70] pointer-events-none"><div class="h-full" style="width:0%;background:#FFB000;box-shadow:0 0 10px #FFB000;transition:width .1s linear"></div></div><div aria-hidden="true" class="absolute top-0 left-1/2 -translate-x-1/2 w-[900px] max-w-full h-[540px] rounded-full pointer-events-none z-0" style="background:rgba(255,176,0,0.07);filter:blur(130px)"></div><nav class="relative z-10 flex items-center gap-[10px] py-[18px] font-mono text-[10px] tracking-[0.16em] text-zinc-500"><a class="text-zinc-500 no-underline hover:text-white transition-colors" href="/" data-discover="true">// HOME</a><span class="text-zinc-700">/</span><a class="text-zinc-500 no-underline hover:text-white transition-colors" href="/logs" data-discover="true">WRITING</a><span class="text-zinc-700">/</span><span style="color:#FFB000">ARTICLE</span></nav><header class="relative z-10 border-t border-white/[0.07] pt-10"><div class="flex items-center gap-3 mb-5"><span class="font-mono text-[9px] tracking-[0.14em] px-[7px] py-[3px] border whitespace-nowrap inline-block text-amber border-[rgba(255,176,0,0.4)]">FREEDOM</span></div><h1 class="font-brand font-bold text-[clamp(34px,5.4vw,68px)] leading-[0.98] tracking-[-0.025em] m-0 text-white">I Will Never Create Value I Cannot Capture</h1><p class="font-mono text-zinc-500 text-[15.5px] leading-[1.6] mt-[22px] max-w-[56ch]">The mantra isn't a flex, it's a filter. Employment isn't theft -- it's a spread, and the spread is the entire business model. You produce, they capture, you get a number that was decided before you got good. Here's how to tell the difference between building an asset and renting out your best hours.</p><div class="flex flex-wrap items-center gap-x-[18px] gap-y-[14px] mt-7 pb-[26px]"><span class="flex items-center gap-[11px]"><span class="w-[34px] h-[34px] border border-white/[0.16] grid place-items-center font-brand font-bold text-[14px] text-amethyst">D</span><span class="flex flex-col gap-[2px]"><span class="font-header font-semibold text-[13px] text-white">Dominic Baca</span><span class="font-mono text-[10px] tracking-[0.1em] text-zinc-500">SOLO ENGINEER · DOMDHI.OS</span></span></span><span class="w-px h-7 bg-white/[0.16]"></span><span class="font-mono text-[11px] text-zinc-500">2026.09.22</span><span class="font-mono text-[11px] text-zinc-500">6<!-- --> MIN READ</span><span class="ml-auto flex gap-2"><button type="button" class="font-mono text-[11px] tracking-[0.12em] px-3 py-1.5 border border-white/[0.16] text-zinc-400 hover:text-white hover:border-white/30 transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-amethyst">COPY LINK</button></span></div></header><div class="relative z-10"><div class="relative aspect-[16/7] overflow-hidden border border-white/[0.16]" style="background:radial-gradient(circle at 50% 45%, rgba(255,176,0,0.20), rgba(157,78,221,0.10) 45%, rgba(2,2,2,0.9) 82%)"><span class="absolute inset-0 flex items-center justify-center font-brand font-bold uppercase pointer-events-none" style="font-size:clamp(48px,11vw,150px);letter-spacing:-0.04em;opacity:0.09">FREEDOM</span><span class="absolute top-4 left-4 font-mono text-[10px] tracking-[0.18em]" style="color:rgba(255,176,0,0.6)">// FIG.01</span><div class="absolute inset-0 pointer-events-none" style="background-image:repeating-linear-gradient(0deg, rgba(255,255,255,0.035) 0 1px, transparent 1px 3px)"></div></div></div><div class="relative z-10"><div class="grid grid-cols-1 gap-7 pt-10 pb-5 border-t border-white/[0.07] min-[900px]:grid-cols-[220px_minmax(0,1fr)] min-[900px]:gap-14"><aside class="self-start static min-[900px]:sticky min-[900px]:top-24"><span class="block font-mono text-[10px] tracking-[0.25em]" style="color:#FFB000">// CONTENTS</span><nav class="mt-4 flex flex-col border-l border-white/[0.07]"><a href="#the-spread-is-the-business-model" class="grid grid-cols-[24px_1fr] gap-2 px-3 py-[9px] -ml-px no-underline transition-colors" style="border-left:2px solid transparent"><span class="font-mono text-[10px]" style="color:#3f3f46">01</span><span class="font-mono text-[11.5px] leading-[1.4]" style="color:#71717a">The Spread Is The Business Model</span></a><a href="#capture-has-a-definition-and-it-isnt-feeling-appreciated" class="grid grid-cols-[24px_1fr] gap-2 px-3 py-[9px] -ml-px no-underline transition-colors" style="border-left:2px solid transparent"><span class="font-mono text-[10px]" style="color:#3f3f46">02</span><span class="font-mono text-[11.5px] leading-[1.4]" style="color:#71717a">Capture Has A Definition, And It Isn't "Feeling Appreciated"</span></a>
1<a href="#golden-handcuffs-are-still-handcuffs-and-they-still-fit-great" class="grid grid-cols-[24px_1fr] gap-2 px-3 py-[9px] -ml-px no-underline transition-colors" style="border-left:2px solid transparent"><span class="font-mono text-[10px]" style="color:#3f3f46">03</span><span class="font-mono text-[11.5px] leading-[1.4]" style="color:#71717a">Golden Handcuffs Are Still Handcuffs, And They Still Fit Great</span></a><a href="#the-number-that-makes-this-personal" class="grid grid-cols-[24px_1fr] gap-2 px-3 py-[9px] -ml-px no-underline transition-colors" style="border-left:2px solid transparent"><span class="font-mono text-[10px]" style="color:#3f3f46">04</span><span class="font-mono text-[11.5px] leading-[1.4]" style="color:#71717a">The Number That Makes This Personal</span></a><a href="#the-filter-in-practice" class="grid grid-cols-[24px_1fr] gap-2 px-3 py-[9px] -ml-px no-underline transition-colors" style="border-left:2px solid transparent"><span class="font-mono text-[10px]" style="color:#3f3f46">05</span><span class="font-mono text-[11.5px] leading-[1.4]" style="color:#71717a">The Filter, In Practice</span></a><a href="#the-uncomfortable-half" class="grid grid-cols-[24px_1fr] gap-2 px-3 py-[9px] -ml-px no-underline transition-colors" style="border-left:2px solid transparent"><span class="font-mono text-[10px]" style="color:#3f3f46">06</span><span class="font-mono text-[11.5px] leading-[1.4]" style="color:#71717a">The Uncomfortable Half</span></a><a href="#say-it-like-a-rule-not-a-feeling" class="grid grid-cols-[24px_1fr] gap-2 px-3 py-[9px] -ml-px no-underline transition-colors" style="border-left:2px solid transparent"><span class="font-mono text-[10px]" style="color:#3f3f46">07</span><span class="font-mono text-[11.5px] leading-[1.4]" style="color:#71717a">Say It Like A Rule, Not A Feeling</span></a></nav><div class="mt-6 pt-[18px] border-t border-white/[0.07] flex flex-col gap-[10px]"><span class="flex justify-between gap-[10px] font-mono text-[10px] tracking-[0.06em] text-zinc-500"><span>FILED</span><span style="color:#c4c4c8">2026.09.22</span></span><span class="flex justify-between gap-[10px] font-mono text-[10px] tracking-[0.06em] text-zinc-500"><span>UPDATED</span><span style="color:#c4c4c8">2026.09.22</span></span><span class="flex justify-between gap-[10px] font-mono text-[10px] tracking-[0.06em] text-zinc-500"><span>STATUS</span><span style="color:#00FF9F">PUBLISHED</span></span></div></aside><article class="article-prose min-w-0" style="--art-accent:#FFB000;--art-accent-rgb:255,176,0"> 2<p>I say it like a mantra because it functions like one. Not motivation... a filter. Every project, every job, every "hey can you just quickly look at this" gets run through the same question before I spend a single hour on it.</p> 3<p>Can I capture the value I'm about to create?</p> 4<p>If the answer is no, I'm not doing it. Not because I'm bitter. Because I did the math once and now I can't unsee it.</p> 5<h2 id="the-spread-is-the-business-model">The Spread Is The Business Model</h2> 6<p>Here's the part nobody says out loud at the all-hands.</p> 7<p>Your employer is not paying you what you're worth. They mathematically cannot. If they paid you what you produce, they'd make zero, and a company that makes zero on its labor stops existing. The gap between what you generate and what lands in your account isn't a bug, it isn't greed, it isn't your manager being a dick. It's the product. The spread <strong>is</strong> the business.</p> 8<p>This is fine. This is how it works. What's not fine is not knowing the number.</p> 9<p>Because the moment you see it as a spread instead of a salary, the whole thing reframes. You're not an employee. You're a supplier with one customer, no pricing power, and a contract you didn't negotiate. That's a rough position in any market. In this one you also have to pretend to be grateful for it.</p> 10<p>Either way... the structure isn't the insult. The insult is spending a decade inside it without ever running the numbers.</p> 11<h2 id="capture-has-a-definition-and-it-isnt-feeling-appreciated">Capture Has A Definition, And It Isn't "Feeling Appreciated"</h2> 12<p>Value capture means you own the thing that keeps producing after you stop working on it.</p> 13<p>That's it. That's the whole test. Not "I got recognized." Not "it's great experience." Not equity you can't sell, a title that doesn't transfer, or a reference letter. Those are consolation prizes handed out at the exit of a building you no longer have keys to.</p> 14<p>Run the test on anything:</p> 15<ul> 16<li><strong>You fix a broken process that saves the company 20 hours a week.</strong> Do you own the process? No. You own a Slack message that says "nice work."
16 The 20 hours compound to somebody else, forever.</li> 17<li><strong>You write a tool that three teams now depend on.</strong> Do you own the tool? Check the employment agreement. You already know.</li> 18<li><strong>You build a product and put it on the internet under your own name.</strong> That one you own. It keeps producing while you sleep, and if it produces nothing, that's also yours.</li> 19</ul> 20<p>The third one is the only one where the ceiling isn't set by someone who decided your number before you got good.</p> 21<p>I'm not telling anyone to quit. I haven't quit. <a href="/logs/freedom-is-a-math-problem">The math on exactly when I can</a> is public and it isn't today. Quitting on principle with no runway isn't sovereignty, it's a tantrum with a mortgage attached.</p> 22<h2 id="golden-handcuffs-are-still-handcuffs-and-they-still-fit-great">Golden Handcuffs Are Still Handcuffs, And They Still Fit Great</h2> 23<p>The trap isn't the bad job. Nobody stays in a bad job for a decade.</p> 24<p>The trap is the <em>good</em> one. Comfortable salary, decent people, real problems to solve, a match on the 401k that makes leaving expensive. Every year they raise you just enough that the walk-away cost goes up. That's not a conspiracy -- it's just an incentive structure doing exactly what an incentive structure does. It doesn't need anyone to be evil. It just needs you to not look.</p> 25<p>The handcuffs are golden because they <em>work</em>. If they chafed you'd take them off.</p> 26<p>So I stopped trying to feel bad about wearing them and started treating the job as what it actually is: funding. It pays for the runway. The runway pays for the thing I own. <a href="/logs/forcing-functions">43% of my gross moves before I ever see it</a> -- 27% contribution, 16% match -- because the job's real job is to finance the exit from the job.</p> 27<p>Regardless of how much I like any given Tuesday... the arrangement is temporary by design. Written down. Dated.</p> 28<h2 id="the-number-that-makes-this-personal">The Number That Makes This Personal</h2> 29<p>Last two weeks: <strong>147 hours.</strong> Standard would be 80.</p> 30<p>Sixty-seven extra hours. In fourteen days. Every one of them producing something real, and not one of them producing anything I own.</p> 31<p>Annualize that rate and it's roughly <strong>1,740 hours a year</strong> of uncaptured work. That's not overtime. That's a second full-time job, performed at a high level, for an employer who already has my first one â and the capture on all of it is zero by design.</p> 32<p>Here's the part that actually stings. The <a href="/logs/vacation-velocity-experiment">vacation velocity experiment</a> was me shipping 7 features in a 6-hour block, on my own time, on my own thing. Six hours.</p> 33<p>Sixty-seven hours is <strong>eleven of those blocks</strong>. In two weeks.</p> 34<p>I know exactly what I can build with my own hours because I measured it. And I spent eleven blocks' worth of that capacity on the spread.</p> 35<p>So when I say employment is designed extraction, I'm not describing a system I observe from outside. I'm describing the one I fed 67 unpaid-in-equity hours to this fortnight, while <a href="/logs/63-days-of-silence">my own repo sat untouched for 63 days</a> and my owned income stayed at exactly zero.</p> 36<p>Not a hypothetical. A receipt.</p> 37<h2 id="the-filter-in-practice">The Filter, In Practice</h2> 38<p>Four questions. I run all four before starting anything.</p> 39<ol> 40<li><strong>Does it keep producing after I stop?</strong> If it dies the second I stop touching it, it's a shift, not an asset. Shifts are fine. Just price them as shifts.</li> 41<li><strong>Whose name is on it?</strong> Not whose idea. Whose name on the deed, the domain, the repo, the account.</li> 42<li><strong>Can it be taken?</strong> Anything living entirely inside someone else's platform, org chart, or employment agreement is a rental. Rentals can end without your input.</li> 43<li><strong>Does it compound?</strong> One-time value is a paycheck. Compounding value is an asset. A <a href="/builds">calculator that runs for anyone who finds it</a> costs the same to build whether 1 person uses it or 10,000.</li> 44</ol> 45<p>Most "opportunities" fail two or more of these instantly. That's the point of a filter -- it's supposed to kill things. A filter that passes everything isn't a filter, it's a hobby.</p> 46<h2 id="the-uncomfortable-half">The Uncomfortable Half</h2> 47<p>Here's where I'll be honest, since this whole thing collapses if I only argue the flattering side.</p> 48<p>Capture cuts both ways. If I own the upside, I own the downside. Nobody's covering my healthcare while a product finds product-market fit. Nobody's paying me on the 15th because I <em>tried hard</em>. The ceiling comes off but so does the floor, and the floor is the thing most people are actually buying with that spread.</p> 49<p>That's a real trade. Not a scam -- a trade. Plenty of people look at it clearly and choose the floor, and they're not cowards, they're solving for something different. Kids. A sick parent. A risk tolerance that isn't mine.</p> 50<p>What I object to is making the trade <em>by default</em>. Accepting the spread for thirty years without ever pricing it, then calling it "how life works."</p> 51<p>
51Price it. Then choose it, or don't.</p> 52<h2 id="say-it-like-a-rule-not-a-feeling">Say It Like A Rule, Not A Feeling</h2> 53<p>I will never create value I cannot capture.</p> 54<p>Not "I'd prefer to capture value." Not "I should probably start something on the side eventually." A rule. Rules survive bad Tuesdays. Preferences don't -- and I don't trust preferences with anything load-bearing, which is the entire reason I <a href="/logs/forcing-functions">build mechanics instead of relying on discipline</a>.</p> 55<p>So the hours go where the ownership is. Nights and weekends go into things with my name on the deed. The day job funds it and gets a hard, honest, fully-competent 40 -- I'm not advocating for quiet quitting, I'm advocating for accurate accounting. They get exactly what they're paying for. They don't get the compounding part. That part isn't for sale at this price.</p> 56<p>You can keep producing value you don't capture. Most people will, and for a stretch this year I did it 67 hours at a time. The spread stays invisible and the years keep clearing.</p> 57<p>Or you can run the four questions, find out what you actually own, and start moving hours toward the column that keeps paying after you stop.</p> 58<p>I already know which one I'm doing. <a href="/logs/freedom-is-a-math-problem">The date's on the wall.</a></p> 59</article></div></div><div class="relative z-10 mt-6"><div class="bg-black/60 border-2 border-amber p-6 md:p-8 my-12"><h3 class="font-mono font-bold text-lg text-amber tracking-wider uppercase mb-2">GET_TRANSMISSIONS</h3><p class="font-mono text-sm text-gray-400 mb-4">Raw signal on finance, freedom, fitness, and tech. No spam. Unsubscribe anytime.</p><form class="flex flex-col sm:flex-row gap-3" data-discover="true" action="/logs/value-i-cannot-capture" method="post"><input type="hidden" name="intent" value="subscribe_newsletter"/><input type="hidden" name="source" value="article:value-i-cannot-capture"/><input type="email" placeholder="[email protected]" required="" class="flex-1 bg-black/80 border-2 border-white/20 text-white font-mono text-sm px-4 py-2.5 placeholder:text-gray-600 focus:border-white/40 focus:outline-none transition-colors" name="email" value=""/><button class="inline-flex items-center justify-center font-bold font-mono uppercase tracking-[0.07em] transition-button disabled:opacity-50 disabled:cursor-not-allowed border-2 hover:translate-x-[-2px] hover:translate-y-[-2px] active:translate-x-[1px] active:translate-y-[1px] px-6 py-3 text-sm bg-amber/60 text-black border-white/[0.08] shadow-brutal-amber hover:border-amber hover:shadow-brutal-amber active:shadow-brutal-amber" disabled="" type="submit">SUBSCRIBE</button></form></div></div><div class="relative z-10"><div class="flex flex-wrap items-center gap-x-7 gap-y-5 p-6 mt-6 bg-panel border border-white/[0.07] border-l-2 border-l-amethyst"><span class="w-[52px] h-[52px] border border-white/[0.16] grid place-items-center font-brand font-bold text-[22px] text-amethyst shrink-0">D</span><div class="flex-1 min-w-[240px]"><div class="font-header font-semibold text-[15px] text-white mb-1">Dominic Baca</div><p class="font-mono text-[12.5px] leading-[1.65] text-zinc-500 m-0 max-w-[52ch]">One engineer building Domdhi.OS in public â money, freedom, and the occasional 2am migration. Every number live, every commit public.</p></div><a class="font-mono text-[11px] tracking-[0.12em] px-4 py-2 border border-amethyst text-amethyst hover:bg-amethyst hover:text-white transition-colors no-underline" href="/logs" data-discover="true">FOLLOW THE LOGS â</a></div></div><section class="relative z-10 border-t border-white/[0.07] pt-11 pb-2 mt-11"><span class="block font-mono text-[10px] tracking-[0.25em] text-zinc-500">// NEXT IN THE LOGS</span><div class="grid grid-cols-1 min-[700px]:grid-cols-3 gap-px bg-white/[0.07] border border-white/[0.07] mt-5"><a class="group bg-void p-[22px] flex flex-col gap-3 no-underline text-inherit min-h-[150px] transition-[border-color,box-shadow] duration-200 hover:border-white/[0.16]" style="border-top:2px solid #00F0FF" href="/logs/stack-that-prints-money" data-discover="true">
59<span class="self-start"><span class="font-mono text-[9px] tracking-[0.14em] px-[7px] py-[3px] border whitespace-nowrap inline-block text-cyan border-[rgba(0,240,255,0.4)]">TECH</span></span><span class="font-header font-semibold text-[16px] leading-[1.25] text-white flex-1 transition-colors group-hover:text-white">The Stack That Prints Money</span><span class="font-mono text-[10px] text-zinc-500">2026.08.11<!-- --> · <!-- -->5<!-- --> MIN</span></a><a class="group bg-void p-[22px] flex flex-col gap-3 no-underline text-inherit min-h-[150px] transition-[border-color,box-shadow] duration-200 hover:border-white/[0.16]" style="border-top:2px solid #00FF9F" href="/logs/glass-cockpit" data-discover="true"><span class="self-start"><span class="font-mono text-[9px] tracking-[0.14em] px-[7px] py-[3px] border whitespace-nowrap inline-block text-emerald border-[rgba(0,255,159,0.4)]">FINANCE</span></span><span class="font-header font-semibold text-[16px] leading-[1.25] text-white flex-1 transition-colors group-hover:text-white">The Glass Cockpit: Real-Time Financial Awareness</span><span class="font-mono text-[10px] text-zinc-500">2026.08.07<!-- --> · <!-- -->5<!-- --> MIN</span></a><a class="group bg-void p-[22px] flex flex-col gap-3 no-underline text-inherit min-h-[150px] transition-[border-color,box-shadow] duration-200 hover:border-white/[0.16]" style="border-top:2px solid #BF40FF" href="/logs/own-your-library-self-hosting" data-discover="true">
59<span class="self-start"><span class="font-mono text-[9px] tracking-[0.14em] px-[7px] py-[3px] border whitespace-nowrap inline-block text-violet border-[rgba(191,64,255,0.4)]">MEDIA</span></span><span class="font-header font-semibold text-[16px] leading-[1.25] text-white flex-1 transition-colors group-hover:text-white">Own Your Library: Self-Hosting Your Media Stack</span><span class="font-mono text-[10px] text-zinc-500">2026.08.04<!-- --> · <!-- -->5<!-- --> MIN</span></a></div><div class="py-7"><a class="font-mono text-[11px] tracking-[0.14em] text-zinc-500 no-underline hover:text-white transition-colors" href="/logs" data-discover="true">â ALL WRITING</a></div></section></div></main><footer class="relative z-10 border-t border-white/10 px-6 md:px-12 py-5"><div class="max-w-7xl mx-auto w-full flex flex-col md:flex-row justify-between items-center gap-4 font-mono text-[11px] text-zinc-500"><div>© 2026 <span class="text-white font-bold">DOMDHI</span><span class="text-amethyst font-bold">.OS</span><span class="text-zinc-700 mx-2">//</span>NO_COOKIES. JUST_DATA.<span class="text-zinc-700 mx-2">//</span>EDGE_REGION: US_WEST</div><div class="flex items-center gap-0"><a class="hover:text-white transition-colors" href="/privacy" data-discover="true">PRIVACY</a><span class="text-zinc-700 mx-2">//</span><a class="hover:text-white transition-colors" href="/terms" data-discover="true">TERMS</a><span class="text-zinc-700 mx-2">//</span><a class="hover:text-white transition-colors" href="/logs" data-discover="true">LOGS</a></div></div></footer></div><div class="cursor-glow" aria-hidden="true"></div><div class="cursor-lens" aria-hidden="true"></div><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events:none"><ol tabindex="-1" class="fixed bottom-6 right-6 z-50 flex flex-col gap-2 w-[320px]"></ol></div>
59<script nonce="Ql0JXR4Puj4oTJMlexwARQ">((storageKey2, restoreKey) => { 60 if (!window.history.state || !window.history.state.key) { 61 let key = Math.random().toString(32).slice(2); 62 window.history.replaceState({ key }, ""); 63 } 64 try { 65 let storedY = JSON.parse(sessionStorage.getItem(storageKey2) || "{}")[restoreKey || window.history.state.key]; 66 if (typeof storedY === "number") window.scrollTo(0, storedY); 67 } catch (error) { 68 console.error(error); 69 sessionStorage.removeItem(storageKey2); 70 } 71 })("react-router-scroll-positions", null)</script>
71<script nonce="Ql0JXR4Puj4oTJMlexwARQ">window.__reactRouterContext = {"basename":"/","future":{"unstable_optimizeDeps":false,"v8_passThroughRequests":true,"v8_trailingSlashAwareDataRequests":true,"unstable_previewServerPrerendering":false,"v8_middleware":false,"v8_splitRouteModules":true,"v8_viteEnvironmentApi":true},"routeDiscovery":{"mode":"lazy","manifestPath":"/__manifest"},"ssr":true,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script>
71<script nonce="Ql0JXR4Puj4oTJMlexwARQ" type="module" async="">; 72import * as route0 from "/assets/root-Bcndpy-H.js"; 73import * as route1 from "/assets/route-4AcQuCWI.js"; 74import * as route2 from "/assets/logs._slug-DAXjEbJa.js"; 75 window.__reactRouterManifest = { 76 "entry": { 77 "module": "/assets/entry.client-CAXdPubk.js", 78 "imports": [ 79 "/assets/chunk-6CSD65Y2-D6zLy3dp.js", 80 "/assets/react-dom-xtO3DKtk.js", 81 "/assets/jsx-runtime-BGLTrfZy.js" 82 ], 83 "css": [] 84 }, 85 "routes": { 86 "root": { 87 "id": "root", 88 "path": "", 89 "hasAction": false, 90 "hasLoader": false, 91 "hasClientAction": false, 92 "hasClientLoader": false, 93 "hasClientMiddleware": false, 94 "hasDefaultExport": true, 95 "hasErrorBoundary": true, 96 "module": "/assets/root-Bcndpy-H.js", 97 "imports": [ 98 "/assets/chunk-6CSD65Y2-D6zLy3dp.js", 99 "/assets/react-dom-xtO3DKtk.js", 100 "/assets/jsx-runtime-BGLTrfZy.js", 101 "/assets/button-DrB63Wrb.js", 102 "/assets/error-page-DXluEbBN.js", 103 "/assets/use-toast-B-AEaVB6.js", 104 "/assets/nonce-CWOxB_-x.js", 105 "/assets/route-error-oT57U1b3.js", 106 "/assets/utils-UvpNVb9C.js", 107 "/assets/dist-DwVSkiDL.js", 108 "/assets/dist-CxHP7aHd.js", 109 "/assets/dist-CWWr0mHq.js", 110 "/assets/dist-k5UaVEGE.js", 111 "/assets/x-4NTPRLP3.js", 112 "/assets/createLucideIcon-Dya2zrSk.js" 113 ], 114 "css": [ 115 "/assets/root-WJoKqX3L.css" 116 ] 117 }, 118 "routes/_public/route": { 119 "id": "routes/_public/route", 120 "parentId": "root", 121 "hasAction": false, 122 "hasLoader": true, 123 "hasClientAction": false, 124 "hasClientLoader": false, 125 "hasClientMiddleware": false, 126 "hasDefaultExport": true, 127 "hasErrorBoundary": true, 128 "module": "/assets/route-4AcQuCWI.js", 129 "imports": [ 130 "/assets/chunk-6CSD65Y2-D6zLy3dp.js", 131 "/assets/PublicFooter-BtHZR4m5.js", 132 "/assets/route-error-oT57U1b3.js", 133 "/assets/jsx-runtime-BGLTrfZy.js", 134 "/assets/button-DrB63Wrb.js", 135 "/assets/utils-UvpNVb9C.js", 136 "/assets/dist-k5UaVEGE.js" 137 ], 138 "css": [] 139 }, 140 "routes/_public/logs.$slug": { 141 "id": "routes/_public/logs.$slug", 142 "parentId": "routes/_public/route", 143 "path": "logs/:slug", 144 "hasAction": true, 145 "hasLoader": true, 146 "hasClientAction": false, 147 "hasClientLoader": false, 148 "hasClientMiddleware": false, 149 "hasDefaultExport": true, 150 "hasErrorBoundary": true, 151 "module": "/assets/logs._slug-DAXjEbJa.js", 152 "imports": [ 153 "/assets/chunk-6CSD65Y2-D6zLy3dp.js", 154 "/assets/content-BjTwqayj.js", 155 "/assets/nonce-CWOxB_-x.js", 156 "/assets/route-error-oT57U1b3.js", 157 "/assets/jsx-runtime-BGLTrfZy.js", 158 "/assets/PostRow-CyG6palb.js", 159 "/assets/button-DrB63Wrb.js", 160 "/assets/tts-provider-aX8KnGCy.js", 161 "/assets/use-timezone-BxbxSbxz.js", 162 "/assets/safe-marked-xGcjNsFK.js", 163 "/assets/string-utils-Bgl0RdLr.js", 164 "/assets/time-utils-DcRCMNV5.js", 165 "/assets/text-utils--3CW0i-p.js", 166 "/assets/utils-UvpNVb9C.js", 167 "/assets/dist-k5UaVEGE.js" 168 ], 169 "css": [] 170 }, 171 "routes/_index": { 172 "id": "routes/_index", 173 "parentId": "root", 174 "index": true, 175 "hasAction": false, 176 "hasLoader": true, 177 "hasClientAction": false, 178 "hasClientLoader": false, 179 "hasClientMiddleware": false, 180 "hasDefaultExport": true, 181 "hasErrorBoundary": true, 182 "module": "/assets/_index-zW7cdRR3.js", 183 "imports": [ 184 "/assets/chunk-6CSD65Y2-D6zLy3dp.js", 185 "/assets/PublicFooter-BtHZR4m5.js", 186 "/assets/OriginBlock-CbSpfUFF.js", 187 "/assets/PostRow-CyG6palb.js", 188 "/assets/button-DrB63Wrb.js", 189 "/assets/card-M0NVvXSP.js", 190 "/assets/route-error-oT57U1b3.js", 191 "/assets/time-utils-DcRCMNV5.js", 192 "/assets/utils-UvpNVb9C.js", 193 "/assets/jsx-runtime-BGLTrfZy.js", 194 "/assets/dist-k5UaVEGE.js" 195 ], 196 "css": [] 197 }, 198 "routes/_public/logs": { 199 "id": "routes/_public/logs", 200 "parentId": "routes/_public/route", 201 "path": "logs", 202 "hasAction": false, 203 "hasLoader": true, 204 "hasClientAction": false, 205 "hasClientLoader": false, 206 "hasClientMiddleware": false, 207 "hasDefaultExport": true, 208 "hasErrorBoundary": true, 209 "module": "/assets/logs-DGCHK-R_.js", 210 "imports": [ 211 "/assets/chunk-6CSD65Y2-D6zLy3dp.js", 212 "/assets/button-DrB63Wrb.js", 213 "/assets/calculators-aelNI-sd.js", 214 "/assets/route-error-oT57U1b3.js", 215 "/assets/time-utils-DcRCMNV5.js", 216 "/assets/jsx-runtime-BGLTrfZy.js", 217 "/assets/utils-UvpNVb9C.js", 218 "/assets/dist-k5UaVEGE.js" 219 ], 220 "css": [] 221 } 222 }, 223 "url": "/assets/manifest-a02d2527.js", 224 "version": "a02d2527" 225}; 226 window.__reactRouterRouteModules = {"root":route0,"routes/_public/route":route1,"routes/_public/logs.$slug":route2}; 227 228import("/assets/entry.client-CAXdPubk.js");</script>
228<!--$-->
228<script nonce="Ql0JXR4Puj4oTJMlexwARQ">window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_3\":-5,\"_4\":-5},\"loaderData\",{\"_5\":6,\"_7\":8},\"actionData\",\"errors\",\"routes/_public/route\",{\"_71\":12,\"_72\":-5},\"routes/_public/logs.$slug\",{\"_9\":10,\"_11\":12,\"_13\":14,\"_15\":16,\"_17\":18,\"_19\":20},\"post\",{\"_24\":60,\"_26\":46,\"_61\":62,\"_63\":64,\"_28\":65,\"_30\":50,\"_66\":52,\"_67\":-5,\"_68\":48,\"_69\":-5,\"_70\":18},\"isAdmin\",false,\"origin\",\"https://domdhi.com\",\"articleJsonLd\",{\"_41\":42,\"_43\":44,\"_45\":46,\"_47\":48,\"_49\":50,\"_51\":52,\"_53\":54,\"_55\":56},\"readMinutes\",6,\"nextPosts\",[21,22,23],{\"_24\":37,\"_26\":38,\"_28\":39,\"_30\":40,\"_17\":32},{\"_24\":33,\"_26\":34,\"_28\":35,\"_30\":36,\"_17\":32},{\"_24\":25,\"_26\":27,\"_28\":29,\"_30\":31,\"_17\":32},\"slug\",\"own-your-library-self-hosting\",\"title\",\"Own Your Library: Self-Hosting Your Media Stack\",\"pillar\",\"media\",\"published_at\",\"2026-08-04T08:00:00+00:00\",5,\"glass-cockpit\",\"The Glass Cockpit: Real-Time Financial Awareness\",\"finance\",\"2026-08-07T08:00:00+00:00\",\"stack-that-prints-money\",\"The Stack That Prints Money\",\"tech\",\"2026-08-11T08:00:00+00:00\",\"@context\",\"https://schema.org\",\"@type\",\"Article\",\"headline\",\"I Will Never Create Value I Cannot Capture\",\"description\",\"Why employment is designed extraction, how the value-capture spread actually works, and the filter I run every project through before spending a single hour on it.\",\"datePublished\",\"2026-09-22T08:00:00+00:00\",\"dateModified\",\"2026-09-22T08:01:51.628+00:00\",\"author\",{\"_43\":57,\"_58\":59},\"url\",\"https://domdhi.com/logs/value-i-cannot-capture\",\"Person\",\"name\",\"Dominic Baca\",\"value-i-cannot-capture\",\"excerpt\",\"The mantra isn't a flex, it's a filter. Employment isn't theft -- it's a spread, and the spread is the entire business model. You produce, they capture, you get a number that was decided before you got good. Here's how to tell the difference between building an asset and renting out your best hours.\",\"content\",\"# I Will Never Create Value I Cannot Capture\\n\\nI say it like a mantra because it functions like one. Not motivation... a filter. Every project, every job, every \\\"hey can you just quickly look at this\\\" gets run through the same question before I spend a single hour on it.\\n\\nCan I capture the value I'm about to create?\\n\\nIf the answer is no, I'm not doing it. Not because I'm bitter. Because I did the math once and now I can't unsee it.\\n\\n## The Spread Is The Business Model\\n\\nHere's the part nobody says out loud at the all-hands.\\n\\nYour employer is not paying you what you're worth. They mathematically cannot. If they paid you what you produce, they'd make zero, and a company that makes zero on its labor stops existing. The gap between what you generate and what lands in your account isn't a bug, it isn't greed, it isn't your manager being a dick. It's the product. The spread **is** the business.\\n\\nThis is fine. This is how it works. What's not fine is not knowing the number.\\n\\nBecause the moment you see it as a spread instead of a salary, the whole thing reframes. You're not an employee. You're a supplier with one customer, no pricing power, and a contract you didn't negotiate. That's a rough position in any market. In this one you also have to pretend to be grateful for it.\\n\\nEither way... the structure isn't the insult. The insult is spending a decade inside it without ever running the numbers.\\n\\n## Capture Has A Definition, And It Isn't \\\"Feeling Appreciated\\\"\\n\\nValue capture means you own the thing that keeps producing after you stop working on it.\\n\\nThat's it. That's the whole test. Not \\\"I got recognized.\\\" Not \\\"it's great experience.\\\" Not equity you can't sell, a title that doesn't transfer, or a reference letter. Those are consolation prizes handed out at the exit of a building you no longer have keys to.\\n\\nRun the test on anything:\\n\\n- **You fix a broken process that saves the company 20 hours a week.** Do you own the process? No. You own a Slack message that says \\\"nice work.\\\" The 20 hours compound to
228somebody else, forever.\\n- **You write a tool that three teams now depend on.** Do you own the tool? Check the employment agreement. You already know.\\n- **You build a product and put it on the internet under your own name.** That one you own. It keeps producing while you sleep, and if it produces nothing, that's also yours.\\n\\nThe third one is the only one where the ceiling isn't set by someone who decided your number before you got good.\\n\\nI'm not telling anyone to quit. I haven't quit. [The math on exactly when I can](/logs/freedom-is-a-math-problem) is public and it isn't today. Quitting on principle with no runway isn't sovereignty, it's a tantrum with a mortgage attached.\\n\\n## Golden Handcuffs Are Still Handcuffs, And They Still Fit Great\\n\\nThe trap isn't the bad job. Nobody stays in a bad job for a decade.\\n\\nThe trap is the *good* one. Comfortable salary, decent people, real problems to solve, a match on the 401k that makes leaving expensive. Every year they raise you just enough that the walk-away cost goes up. That's not a conspiracy -- it's just an incentive structure doing exactly what an incentive structure does. It doesn't need anyone to be evil. It just needs you to not look.\\n\\nThe handcuffs are golden because they *work*. If they chafed you'd take them off.\\n\\nSo I stopped trying to feel bad about wearing them and started treating the job as what it actually is: funding. It pays for the runway. The runway pays for the thing I own. [43% of my gross moves before I ever see it](/logs/forcing-functions) -- 27% contribution, 16% match -- because the job's real job is to finance the exit from the job.\\n\\nRegardless of how much I like any given Tuesday... the arrangement is temporary by design. Written down. Dated.\\n\\n## The Number That Makes This Personal\\n\\nLast two weeks: **147 hours.** Standard would be 80.\\n\\nSixty-seven extra hours. In fourteen days. Every one of them producing something real, and not one of them producing anything I own.\\n\\nAnnualize that rate and it's roughly **1,740 hours a year** of uncaptured work. That's not overtime. That's a second full-time job, performed at a high level, for an employer who already has my first one â and the capture on all of it is zero by design.\\n\\nHere's the part that actually stings. The [vacation velocity experiment](/logs/vacation-velocity-experiment) was me shipping 7 features in a 6-hour block, on my own time, on my own thing. Six hours.\\n\\nSixty-seven hours is **eleven of those blocks**. In two weeks.\\n\\nI know exactly what I can build with my own hours because I measured it. And I spent eleven blocks' worth of that capacity on the spread.\\n\\nSo when I say employment is designed extraction, I'm not describing a system I observe from outside. I'm describing the one I fed 67 unpaid-in-equity hours to this fortnight, while [my own repo sat untouched for 63 days](/logs/63-days-of-silence) and my owned income stayed at exactly zero.\\n\\nNot a hypothetical. A receipt.\\n\\n## The Filter, In Practice\\n\\nFour questions. I run all four before starting anything.\\n\\n1. **Does it keep producing after I stop?** If it dies the second I stop touching it, it's a shift, not an asset. Shifts are fine. Just price them as shifts.\\n2. **Whose name is on it?** Not whose idea. Whose name on the deed, the domain, the repo, the account.\\n3. **Can it be taken?** Anything living entirely inside someone else's platform, org chart, or employment agreement is a rental. Rentals can end without your input.\\n4. **Does it compound?** One-time value is a paycheck. Compounding value is an asset. A [calculator that runs for anyone who finds it](/builds) costs the same to build whether 1 person uses it or 10,000.\\n\\nMost \\\"opportunities\\\" fail two or more of these instantly. That's the point of a filter -- it's supposed to kill things. A filter that passes everything isn't a filter, it's a hobby.\\n\\n## The Uncomfortable Half\\n\\nHere's where I'll be honest, since this whole thing collapses if I only argue the flattering side.\\n\\nCapture cuts both ways. If I own the upside, I own the downside. Nobody's covering my healthcare while a product finds product-market fit. Nobody's paying me on the 15th because I *tried hard*. The ceiling comes off but so does the floor, and the floor is the thing most people are actually buying with that spread.\\n\\nThat's a real trade. Not a scam -- a trade. Plenty of people look at it clearly and choose the floor, and they're not cowards, they're solving for something different. Kids. A sick parent. A risk tolerance that isn't mine.\\n\\nWhat I object to is making the trade *by default*. Accepting the spread for thirty years without ever pricing it, then calling it \\\"how life works.\\\"\\n\\nPrice it. Then choose it, or don't.\\n\\n## Say It Like A Rule, Not A Feeling\\n\\nI will never create value I cannot capture.\\n\\nNot \\\"I'd prefer to capture value.\\\" Not \\\"I should probably start something on the side eventually.\\\" A rule. Rules survive bad Tuesdays. Preferences don't -- and I don't trust preferences with anything load-bearing, which is the entire reason I [build mechanics instead of relying on discipline](/logs/forcing-functions).\\n\\nSo the hours go where the ownership is. Nights and weekends go into things with my name on the deed. The day job funds it and gets a hard, honest, fully-competent 40 -- I'm not advocating for quiet quitting, I'm advocating for accurate accounting. They get exactly what they're paying for. They don't get the compounding part. That part isn't for sale at this price.\\n\\nYou can keep producing value you don't capture. Most people will, and for a stretch this year I did it 67 hours at a time. The spread stays invisible and the years keep clearing.\\n\\nOr you can run the four questions, find out what you actually own, and start moving hours toward the column that keeps paying after you stop.\\n\\nI already know which one I'm doing. [The date's on the wall.](/logs/freedom-is-a-math-problem)\",\"freedom\",\"updated_at\",\"cover_image\",\"seo_description\",\"og_image\",\"read_minutes\",\"isAuthenticated\",\"profile\"]\n");</script>
228<!--$-->
228<script nonce="Ql0JXR4Puj4oTJMlexwARQ">window.__reactRouterContext.streamController.close();</script>
228<!--/$--><!--/$-->
228<script nonce="Ql0JXR4Puj4oTJMlexwARQ">(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.nonce='Ql0JXR4Puj4oTJMlexwARQ';d.innerHTML="window.__CF$cv$params={r:'a4028d23fff32317',t:'MTc5MDI2MDkwMA=='};var a=document.createElement('script');a.nonce='Ql0JXR4Puj4oTJMlexwARQ';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
228<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" nonce="Ql0JXR4Puj4oTJMlexwARQ" data-cf-beacon='{"version":"2024.11.0","token":"fa9dd2df8ac84dfebea7843527bbd463","r":1,"spa":2}' crossorigin="anonymous"></script>
228 229</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.