PageSourceSearch

https://kitze.io/newsletter

html kitze.io collected 2026-09-24 10:19:16 UTC 80,220 bytes, 1 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" href="/avatar.jpg"/><link rel="preload" href="/newsletter-icons/homeassistant.svg" as="image"/><link rel="preload" href="/newsletter-icons/docker.svg" as="image"/><link rel="preload" href="/newsletter-icons/claude.svg" as="image"/><link rel="preload" href="/newsletter-icons/codex.svg" as="image"/><link rel="preload" href="/newsletter-icons/pi.svg" as="image"/><link rel="stylesheet" href="/_next/static/chunks/39xr4f6jl0x63.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/3jhvwyoss_ylk.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/0rd-db5h7xpth.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/3oiqygwnh-dmh.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1-fniqkg9bhua.js"/>
1<script src="/_next/static/chunks/2w1787e9lzn9f.js" async=""></script>
1<script src="/_next/static/chunks/0_g9oe9xwqnoa.js" async=""></script>
1<script src="/_next/static/chunks/3a2vy53_4_wkp.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-374qvf9zk7w85.js" async=""></script>
1<script src="/_next/static/chunks/0p73756wi5l2m.js" async=""></script>
1<script src="/_next/static/chunks/2g0nocu04uzym.js" async=""></script>
1<script src="/_next/static/chunks/0rc_3f4n6h6op.js" async=""></script>
1<script src="/_next/static/chunks/3q02uj3y4r8r8.js" async=""></script>
1<script src="/_next/static/chunks/2kau6fj1eghk5.js" async=""></script>
1<script src="/_next/static/chunks/2uzdgcgjmg_e3.js" async=""></script>
1<script src="/_next/static/chunks/19x-bo4kvso2z.js" async=""></script>
1<script src="/_next/static/chunks/3wzoiuekz7bus.js" async=""></script>
1<script src="/_next/static/chunks/02lud4adea1s_.js" async=""></script>
1<script src="/_next/static/chunks/0nk6ggxf-4ril.js" async=""></script>
1<script src="/_next/static/chunks/2dob_w8ikus-7.js" async=""></script>
1<script src="/_next/static/chunks/0yg4n3pll7pay.js" async=""></script>
1<script src="/_next/static/chunks/0m-3zq7tog3uz.js" async=""></script>
1<script src="/_next/static/chunks/3yra7k4jjwsez.js" async=""></script>
1<script src="/_next/static/chunks/2e8r1xdmh-a8p.js" async=""></script>
1<script src="/_next/static/chunks/20wdadmh99mr-.js" async=""></script>
1<script src="/_next/static/chunks/1xgencmnb6pf3.js" async=""></script>
1<title>Kitze&#x27;s Newsletter</title><meta name="description" content="Notes from my tinkering adventures: habits, fitness, self-improvement, side projects, self-hosting, AI, and whatever rabbit hole I fall into next."/><link rel="manifest" href="/manifest.webmanifest"/><link rel="canonical" href="https://www.kitze.io/newsletter"/><meta property="og:title" content="Kitze&#x27;s Newsletter"/><meta property="og:description" content="Notes from my tinkering adventures: habits, fitness, self-improvement, side projects, self-hosting, AI, and whatever rabbit hole I fall into next."/><meta property="og:url" content="https://www.kitze.io/newsletter"/><meta property="og:image" content="https://www.kitze.io/newsletter/opengraph-image-1r41lm.png?opengraph-image.3rlzyt-5xwkkv.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1727"/><meta property="og:image:height" content="911"/><meta property="og:image:alt" content="Kitze&#x27;s Newsletter — AI agents, indie hacking, and a lot of tinkering. Illustrated badges for Codex, Claude, Pi, Home Assistant, SaaS, OpenClaw, self-hosting, and shipping products."/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Kitze&#x27;s Newsletter"/><meta name="twitter:description" content="Notes from my tinkering adventures: habits, fitness, self-improvement, side projects, self-hosting, AI, and whatever rabbit hole I fall into next."/><meta name="twitter:image" content="https://www.kitze.io/newsletter/opengraph-image-1r41lm.png?opengraph-image.3rlzyt-5xwkkv.png"/><meta name="twitter:image:alt" content="Kitze&#x27;s Newsletter — AI agents, indie hacking, and a lot of tinkering. Illustrated badges for Codex, Claude, Pi, Home Assistant, SaaS, OpenClaw, self-hosting, and shipping products."/><meta name="twitter:image:type" content="image/png"/><meta name="twitter:image:width" content="1727"/><meta name="twitter:image:height" content="911"/><meta name="next-size-adjust" content=""/>
1<script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script>
1</head><body class="inter_173403c7-module__czr2iW__variable space_grotesk_6787e66d-module__nsbTLq__variable" style="font-family:var(--font-space-grotesk)"><div hidden=""><!--$--><!--/$--></div>
1<script>(self.__next_s=self.__next_s||[]).push([0,{"children":"\n              (function() {\n                // Always follow system preference - clear any stored theme preference\n                localStorage.removeItem('theme');\n                \n                // Prevent theme from being stored in localStorage\n                const originalSetItem = localStorage.setItem;\n                localStorage.setItem = function(key, value) {\n                  if (key === 'theme') {\n                    // Don't store theme preference, always use system\n                    return;\n                  }\n                  originalSetItem.apply(this, arguments);\n                };\n                \n                // Check system preference and apply immediately to avoid FOUC\n                const isDark = window.matchMedia('(prefers-color-scheme: dark)').matches;\n                document.documentElement.classList.toggle('dark', isDark);\n              })();\n            ","id":"theme-init"}])</script>
1<!--$--><!--/$-->
1<script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script>
1<div class="app-background min-h-screen w-screen text-foreground"><div class="fixed inset-x-0 top-0 z-50 md:hidden"><div style="height:60px" class="w-full z-30 flex items-center justify-between backdrop-blur-xl text-foreground/80 transition-all duration-200 bg-transparent"><div class="flex max-w-[1200px] items-center justify-between w-full px-4 py-3"><div class="flex-1"><div class="flex items-center gap-3"><a class="flex items-center gap-3" href="/"><img src="/avatar.jpg" alt="Kitze" class="relative min-w-10 min-h-10 size-10 rounded-full overflow-hidden border-2 border-gray-200 dark:border-zinc-700 object-cover"/><span class="font-semibold text-gray-900 dark:text-zinc-100">Kitze</span></a><a class="hidden sm:flex items-center gap-1.5 px-3 py-1.5 bg-gray-900 dark:bg-zinc-100 text-white dark:text-zinc-900 text-xs font-semibold rounded-full hover:bg-gray-800 dark:hover:bg-zinc-200 transition-all ml-1" href="/meet"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar" aria-hidden="true"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg><span>Meet</span></a></div></div><div class="flex-1 flex justify-end"><div class="flex items-center gap-2"><span role="status" class="block py-2 text-xs text-zinc-500">Loading account…</span><button class="gap-2 whitespace-nowrap font-medium transition-all cursor-pointer active:scale-95 focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 text-[var(--button-color)] bg-transparent dark:text-[var(--button-dark-color)] hover:bg-[var(--button-color)]/10 dark:hover:bg-[var(--button-dark-color)]/10 text-sm rounded-md min-h-10 min-w-10 h-10 w-10 max-h-10 max-w-10 flex items-center justify-center" style="--button-color:var(--color-zinc-900);--button-dark-color:var(--color-zinc-100)" aria-label="Menu" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-_R_bcnqlb_" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu shrink-0" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg></button></div></div></div></div></div><div class="flex flex-row"><div class="hidden md:block h-screen fixed inset-y-0 left-0 z-40"><div class="h-full border-r border-gray-200 dark:border-zinc-800 overflow-hidden" style="width:300px"><div class="w-full flex h-full bg-white dark:bg-card/80 relative overflow-hidden"><div data-sidebar-rail="true" class="w-[72px] shrink-0 bg-gray-50 dark:bg-zinc-950 border-r border-gray-200 dark:border-zinc-800 flex flex-col items-center px-3 py-3 gap-1"><a class="" href="/"><img src="/avatar.jpg" alt="Avatar" class="relative min-w-10 min-h-10 size-10 overflow-hidden border-2 border-gray-200 dark:border-zinc-700 object-cover w-10 h-10 rounded-xl mb-1"/></a><div class="h-px w-10 bg-gray-300 dark:bg-zinc-800 mb-1 shrink-0"></div><div class="flex min-h-0 flex-1 flex-col items-center gap-1 overflow-y-auto pb-1 *:shrink-0"><a class="w-10 h-10 flex items-center justify-center rounded-lg transition-all cursor-pointer relative text-gray-600 dark:text-zinc-400 hover:bg-gray-200 dark:hover:bg-zinc-900 hover:text-gray-900 dark:hover:text-white" data-state="closed" data-slot="tooltip-trigger" href="/posts"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="w-5 h-5" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M12 20h9"></path><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"></path></svg></a><a class="w-10 h-10 flex items-center justify-center rounded-lg transition-all cursor-pointer relative bg-gray-900 dark:bg-white text-white dark:text-zinc-950" data-state="closed" data-slot="tooltip-trigger" href="/newsletter"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="w-5 h-5" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"></path><polyline points="22,6 12,13 2,6"></polyline></svg></a><a class="w-10 h-10 flex items-center justify-center rounded-lg transition-all cursor-pointer relative text-gray-600 dark:text-zinc-400 hover:bg-gray-200 dark:hover:bg-zinc-900 hover:text-gray-900 dark:hover:text-white" data-state="closed" data-slot="tooltip-trigger" href="/sponsors"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="w-5 h-5" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg></a><a class="w-10 h-10 flex items-center justify-center rounded-lg transition-all cursor-pointer relative text-gray-600 dark:text-zinc-400 hover:bg-gray-200 dark:hover:bg-zinc-900 hover:text-gray-900 dark:hover:text-white" data-state="closed" data-slot="tooltip-trigger" href="/videos"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 576 512" class="w-5 h-5" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"></path></svg></a><a class="w-10 h-10 flex items-center justify-center rounded-lg transition-all cursor-pointer relative text-gray-600 dark:text-zinc-400 hover:bg-gray-200 dark:hover:bg-zinc-900 hover:text-gray-900 dark:hover:text-white" data-state="closed" data-slot="tooltip-trigger" href="/projects"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="w-5 h-5" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg></a><a class="w-10 h-10 flex items-center justify-center rounded-lg transition-all cursor-pointer relative text-gray-600 dark:text-zinc-400 hover:bg-gray-200 dark:hover:bg-zinc-900 hover:text-gray-900 dark:hover:text-white" data-state="closed" data-slot="tooltip-trigger" href="/workflows"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="w-5 h-5" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg></a><a class="w-10 h-10 flex items-center justify-center rounded-lg transition-all cursor-pointer relative text-gray-600 dark:text-zinc-400 hover:bg-gray-200 dark:hover:bg-zinc-900 hover:text-gray-900 dark:hover:text-white" data-state="closed" data-slot="tooltip-trigger" href="/gear"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="w-5 h-5" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><line x1="16.5" y1="9.4" x2="7.5" y2="4.21"></line><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg></a><a class="w-10 h-10 flex items-center justify-center rounded-lg transition-all cursor-pointer relative text-gray-600 dark:text-zinc-400 hover:bg-gray-200 dark:hover:bg-zinc-900 hover:text-gray-900 dark:hover:text-white" data-state="closed" data-slot="tooltip-trigger" href="/talks"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="w-5 h-5" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2"></path><line x1="12" y1="19" x2="12" y2="23"></line><line x1="8" y1="23" x2="16" y2="23"></line></svg></a><a class="w-10 h-10 flex items-center justify-center rounded-lg transition-all cursor-pointer relative text-gray-600 dark:text-zinc-400 hover:bg-gray-200 dark:hover:bg-zinc-900 hover:text-gray-900 dark:hover:text-white" data-state="closed" data-slot="tooltip-trigger" href="/workshops"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" class="w-5 h-5" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z"></path></svg></a><a class="w-10 h-10 flex items-center justify-center rounded-lg transition-all cursor-pointer relative text-gray-600 dark:text-zinc-400 hover:bg-gray-200 dark:hover:bg-zinc-900 hover:text-gray-900 dark:hover:text-white" data-state="closed" data-slot="tooltip-trigger" href="/podcasts"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="w-5 h-5" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="2"></circle><path d="M16.24 7.76a6 6 0 0 1 0 8.49m-8.48-.01a6 6 0 0 1 0-8.49m11.31-2.82a10 10 0 0 1 0 14.14m-14.14 0a10 10 0 0 1 0-14.14"></path></svg></a><a class="w-10 h-10 flex items-center justify-center rounded-lg transition-all cursor-pointer relative text-gray-600 dark:text-zinc-400 hover:bg-gray-200 dark:hover:bg-zinc-900 hover:text-gray-900 dark:hover:text-white" data-state="closed" data-slot="tooltip-trigger" href="/tools"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="w-5 h-5" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 
10 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg></a><a class="w-10 h-10 flex items-center justify-center rounded-lg transition-all cursor-pointer relative text-gray-600 dark:text-zinc-400 hover:bg-gray-200 dark:hover:bg-zinc-900 hover:text-gray-900 dark:hover:text-white" data-state="closed" data-slot="tooltip-trigger" href="/gallery"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 576 512" class="w-5 h-5" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z"></path></svg></a><a class="w-10 h-10 flex items-center justify-center rounded-lg transition-all cursor-pointer relative text-gray-600 dark:text-zinc-400 hover:bg-gray-200 dark:hover:bg-zinc-900 hover:text-gray-900 dark:hover:text-white" data-state="closed" data-slot="tooltip-trigger" href="/demos"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-flask-conical w-5 h-5" aria-hidden="true"><path d="M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2"></path><path d="M6.453 15h11.094"></path><path d="M8.5 2h7"></path></svg></a><a class="w-10 h-10 flex items-center justify-center rounded-lg transition-all cursor-pointer text-gray-600 dark:text-zinc-400 hover:bg-gray-200 dark:hover:bg-zinc-900 hover:text-gray-900 dark:hover:text-white" data-state="closed" data-slot="tooltip-trigger" href="/comics"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 496 512" class="w-5 h-5" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"></path></svg></a></div><div class="shrink-0 border-t border-gray-200 pt-2 dark:border-zinc-800"><span role="status" class="flex min-h-12 w-11 shrink-0 flex-col items-center justify-center gap-1 rounded-lg text-zinc-600 transition-colors hover:bg-zinc-200 focus-visible:outline-2 focus-visible:outline-offset-2 dark:text-zinc-300 dark:hover:bg-zinc-800"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user-round size-5 animate-pulse" aria-hidden="true"><circle cx="12" cy="8" r="5"></circle><path d="M20 21a8 8 0 0 0-16 0"></path></svg><span class="sr-only">Loading account…</span></span></div></div><div class="flex-1 flex flex-col"><div class="p-4 border-b border-gray-200 dark:border-zinc-800"><div class="relative mb-1.5 group/collapse-target"><div data-testid="sidebar-name-row" class="flex w-fit shrink-0 items-center gap-3"><a class="inline-flex w-auto shrink-0" href="/"><h2 class="text-base font-bold text-gray-900 dark:text-foreground hover:text-gray-700 dark:hover:text-zinc-300 transition-colors">Kitze</h2></a><div data-testid="sidebar-social-icons" class="flex shrink-0 items-center gap-2"><a href="https://github.com/kitze" target="_blank" rel="noopener noreferrer" class="text-gray-600 dark:text-zinc-400 hover:text-gray-900 dark:hover:text-white transition-colors"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 496 512" height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg></a><a href="https://twitter.com/thekitze" target="_blank" rel="noopener noreferrer" class="text-gray-600 dark:text-zinc-400 hover:text-gray-900 dark:hover:text-white transition-colors"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg></a><a href="https://youtube.com/kitze" target="_blank" rel="noopener noreferrer" class="text-gray-600 dark:text-zinc-400 hover:text-gray-900 dark:hover:text-white transition-colors"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 576 512" height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"></path></svg></a><a href="https://twitch.tv/thekitze" target="_blank" rel="noopener noreferrer" class="text-gray-600 dark:text-zinc-400 hover:text-gray-900 dark:hover:text-white transition-colors"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M391.17,103.47H352.54v109.7h38.63ZM285,103H246.37V212.75H285ZM120.83,0,24.31,91.42V420.58H140.14V512l96.53-91.42h77.25L487.69,256V0ZM449.07,237.75l-77.22,73.12H294.61l-67.6,64v-64H140.14V36.58H449.07Z"></path></svg></a></div></div><button type="button" aria-label="Collapse sidebar" class="p-2 rounded-full bg-white border border-gray-200 shadow-sm hover:bg-gray-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-300 absolute -right-4 top-0 hidden md:inline-flex opacity-0 pointer-events-none transition-all duration-200 -translate-y-1/2 group-hover/collapse-target:
1opacity-100 group-hover/collapse-target:pointer-events-auto"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" aria-hidden="true" class="w-5 h-5 text-gray-600" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M15.707 15.707a1 1 0 01-1.414 0l-5-5a1 1 0 010-1.414l5-5a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 010 1.414zm-6 0a1 1 0 01-1.414 0l-5-5a1 1 0 010-1.414l5-5a1 1 0 011.414 1.414L5.414 10l4.293 4.293a1 1 0 010 1.414z" clip-rule="evenodd"></path></svg></button></div><p class="text-sm text-gray-600 dark:text-zinc-400 mb-2">Building apps, working with AI agents, and teaching others how to ship.</p></div><div class="flex-1 overflow-y-auto"><div class="px-4 py-3 border-b border-gray-200 dark:border-zinc-800"><a href="/talks"><div class="text-xs font-semibold text-gray-500 hover:text-gray-700 dark:hover:text-zinc-300 mb-1.5 uppercase tracking-wider cursor-pointer transition-colors">Upcoming Talks</div></a><div class="space-y-1"><a href="https://www.ai.engineer/paris/2026" target="_blank" rel="noopener noreferrer" class="flex items-center gap-2 px-2 py-1.5 rounded-md hover:bg-gray-50 dark:hover:bg-zinc-900/50 transition-all cursor-pointer group"><div class="flex flex-col items-center justify-center w-9 flex-shrink-0 rounded bg-gray-100 dark:bg-zinc-900 py-1"><div class="text-[10px] font-semibold text-gray-500 dark:text-zinc-500 uppercase leading-none">Sep</div><div class="text-sm font-bold text-gray-700 dark:text-zinc-300 leading-none mt-0.5">23</div></div><div class="flex-1 min-w-0"><div class="text-sm font-medium text-gray-700 dark:text-zinc-300 group-hover:text-gray-900 dark:group-hover:text-white transition-colors truncate">AI Engineer Paris 2026</div><div class="text-xs text-gray-500 dark:text-zinc-500 truncate flex items-center gap-1"><span class="text-sm">🇫🇷</span><span>Paris, France</span></div></div></a><a href="https://reactalicante.es/" target="_blank" rel="noopener noreferrer" class="flex items-center gap-2 px-2 py-1.5 rounded-md hover:bg-gray-50 dark:hover:bg-zinc-900/50 transition-all cursor-pointer group"><div class="flex flex-col items-center justify-center w-9 flex-shrink-0 rounded bg-gray-100 dark:bg-zinc-900 py-1"><div class="text-[10px] font-semibold text-gray-500 dark:text-zinc-500 uppercase leading-none">Sep</div><div class="text-sm font-bold text-gray-700 dark:text-zinc-300 leading-none mt-0.5">24</div></div><div class="flex-1 min-w-0"><div class="text-sm font-medium text-gray-700 dark:text-zinc-300 group-hover:text-gray-900 dark:group-hover:text-white transition-colors truncate">React Alicante 2026</div><div class="text-xs text-gray-500 dark:text-zinc-500 truncate flex items-center gap-1"><span class="text-sm">🇪🇸</span><span>Alicante, Spain</span></div></div></a><a href="https://athens.cityjsconf.org/" target="_blank" rel="noopener noreferrer" class="flex items-center gap-2 px-2 py-1.5 rounded-md hover:bg-gray-50 dark:hover:bg-zinc-900/50 transition-all cursor-pointer group"><div class="flex flex-col items-center justify-center w-9 flex-shrink-0 rounded bg-gray-100 dark:bg-zinc-900 py-1"><div class="text-[10px] font-semibold text-gray-500 dark:text-zinc-500 uppercase leading-none">Oct</div><div class="text-sm font-bold text-gray-700 dark:text-zinc-300 leading-none mt-0.5">21</div></div><div class="flex-1 min-w-0"><div class="text-sm font-medium text-gray-700 dark:text-zinc-300 group-hover:text-gray-900 dark:group-hover:text-white transition-colors truncate">CityJS Athens 2026</div><div class="text-xs text-gray-500 dark:text-zinc-500 truncate flex items-center gap-1"><span class="text-sm">🇬🇷</span><span>Athens, Greece</span></div></div></a></div></div><div class="px-4 py-3 border-b border-gray-200 dark:border-zinc-800"><div class="text-xs font-semibold text-gray-500 hover:text-gray-700 dark:hover:text-zinc-300 mb-1.5 uppercase tracking-wider cursor-pointer transition-colors">Products</div><div class="space-y-0.5"></div></div><div class="px-4 py-3"><div class="text-xs font-semibold text-gray-500 hover:text-gray-700 dark:hover:text-zinc-300 mb-1.5 uppercase tracking-wider cursor-pointer transition-colors">Side Projects</div><div class="space-y-0.5"></div></div></div><div class="px-4 py-3 border-t border-gray-200 dark:border-zinc-800 flex gap-2"><a class="flex-1 flex items-center justify-center gap-1.5 px-3 py-2 bg-gray-900 dark:bg-white text-white dark:text-zinc-950 text-sm font-semibold rounded-lg hover:bg-gray-800 dark:hover:bg-zinc-100 transition-all" href="/meet"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg><span>Meet</span></a><a href="https://shop.kitze.io" target="_blank" rel="noopener noreferrer" class="flex-1 flex items-center justify-center gap-1.5 px-3 py-2 bg-gray-100 dark:bg-zinc-900 text-gray-900 dark:text-zinc-100 text-sm font-semibold rounded-lg hover:bg-gray-200 dark:hover:bg-zinc-800 transition-all"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"></path><line x1="3" y1="6" x2="21" y2="6"></line><path d="M16 10a4 4 0 0 1-8 0"></path></svg><span>Merch</span></a></div></div></div></div></div><main class="w-full overflow-x-hidden bg-white pt-[60px] dark:bg-card/80 md:ml-[300px] md:h-screen md:overflow-y-auto md:pt-0"><div class="flex w-full max-w-[1200px]! flex-1 flex-col gap-6 px-6 py-8 sm:px-8 lg:px-12"><div class="py-6 md:py-10 newsletter-module__Yofm3a__page"><section><p class="mb-5 text-xs font-semibold uppercase tracking-[0.18em] text-zinc-500">Free newsletter</p><h1 class="text-5xl font-medium leading-[1.02] tracking-tighter text-zinc-900 sm:text-6xl xl:text-7xl dark:text-zinc-100 newsletter-module__Yofm3a__headline">Kitze’s Newsletter</h1><p class="mt-4 text-2xl font-light leading-snug tracking-tight text-zinc-500 sm:text-3xl dark:text-zinc-400">Notes from my rabbit holes.</p></section><section class="mt-8 grid grid-cols-1 gap-8 md:mt-10 xl:grid-cols-[minmax(0,1fr)_minmax(340px,440px)] xl:items-start xl:gap-14"><div class="order-2 space-y-4 text-lg font-light leading-relaxed text-zinc-600 md:text-xl xl:order-1 dark:text-zinc-400 newsletter-module__Yofm3a__measure"><p>I tinker with everything: tech, habits, fitness, my own brain. Sometimes I build an app. Sometimes I just find a better way to get through the day.</p><p>This is where I share what I’m trying, what sticks, and the useful things I find along the way.</p></div><div class="order-1 xl:order-2"><div class="w-full rounded-2xl border border-zinc-200 bg-white p-2 text-zinc-900 shadow-sm dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-100 dark:shadow-none newsletter-module__Yofm3a__card"><div class="flex flex-wrap items-baseline justify-between gap-x-4 gap-y-1 px-3 pb-2 pt-3"><h2 class="text-base font-bold tracking-tight">Come along for the ride.</h2><span class="text-xs text-zinc-500 dark:text-zinc-400">Free. Unsubscribe anytime.</span></div><div class="newsletter-module__Yofm3a__embed" aria-hidden="true"></div><p class="px-3 pb-2 pt-2 text-xs text-zinc-500 dark:text-zinc-400">Form not loading?<!-- --> <a href="https://kitze.substack.com/subscribe" class="font-medium text-zinc-700 hover:underline dark:text-zinc-300">Subscribe on Substack</a></p></div></div></section><section class="mt-16 md:mt-20"><h2 class="text-2xl font-bold tracking-tight text-zinc-900 md:text-3xl dark:text-zinc-100">A few of my rabbit holes</h2><div class="mt-8 grid grid-cols-1 gap-x-12 gap-y-10 sm:grid-cols-2"><article class="flex flex-col gap-3 border-t border-zinc-200 pt-5 dark:border-zinc-800"><div class="flex items-center gap-2 text-xs font-semibold text-zinc-500 dark:text-zinc-400"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wrench h-4 w-4" aria-hidden="true"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z"></path></svg>Tinkering</div><h3 class="text-xl font-bold tracking-tight text-zinc-900 dark:text-zinc-100">One rabbit hole leads to another</h3><p class="text-base leading-relaxed text-zinc-600 dark:text-zinc-400">Gadgets, self-hosting, home automation, and things I probably could have left alone. The fun discoveries, the overcomplicated setups, and what was actually worth it.</p><ul class="flex flex-wrap items-center gap-x-4 gap-y-2 pt-1"><li class="inline-flex items-center gap-1.5 text-xs font-semibold text-zinc-700 dark:text-zinc-300"><img src="/newsletter-icons/homeassistant.svg" alt="" width="18" height="18" class="h-[18px] w-[18px] shrink-0 dark:invert"/>Home Assistant</li><li class="inline-flex items-center gap-1.5 text-xs font-semibold text-zinc-700 dark:text-zinc-300"><img src="/newsletter-icons/docker.svg" alt="" width="18" height="18" class="h-[18px] w-[18px] shrink-0 dark:invert"/>Docker</li></ul></article><article class="flex flex-col gap-3 border-t border-zinc-200 pt-5 dark:border-zinc-800"><div class="flex items-center gap-2 text-xs font-semibold text-zinc-500 dark:text-zinc-400"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-repeat2 lucide-repeat-2 h-4 w-4" aria-hidden="true"><path d="m2 9 3-3 3 3"></path><path d="M13 18H7a2 2 0 0 1-2-2V6"></path><path d="m22 15-3 3-3-3"></path><path d="M11 6h6a2 2 0 0 1 2 2v10"></path></svg>Habits</div><h3 class="text-xl font-bold tracking-tight text-zinc-900 dark:text-zinc-100">Making the good stuff stick</h3><p class="text-base leading-relaxed text-zinc-600 dark:text-zinc-400">Routines, focus, screen time, and the systems I try to make everyday life a little better. What helps, what gets in the way, and what I change next.</p></article><article class="flex flex-col gap-3 border-t border-zinc-200 pt-5 dark:border-zinc-800"><div class="flex items-center gap-2 text-xs font-semibold text-zinc-500 dark:text-zinc-400"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-dumbbell h-4 w-4" aria-hidden="true"><path d="M17.596 12.768a2 2 0 1 0 2.829-2.829l-1.768-1.767a2 2 0 0 0 2.828-2.829l-2.828-2.828a2 2 0 0 0-2.829 2.828l-1.767-1.768a2 2 0 1 0-2.829 2.829z"></path><path d="m2.5 21.5 1.4-1.4"></path><path d="m20.1 3.9 1.4-1.4"></path><path d="M5.343 21.485a2 2 0 1 0 2.829-2.828l1.767 1.768a2 2 0 1 0 2.829-2.829l-6.364-6.364a2 2 0 1 0-2.829 2.829l1.768 1.767a2 2 0 0 0-2.828 2.829z"></path><path d="m9.6 14.4 4.8-4.8"></path></svg>
1Fitness</div><h3 class="text-xl font-bold tracking-tight text-zinc-900 dark:text-zinc-100">Getting out of the chair</h3><p class="text-base leading-relaxed text-zinc-600 dark:text-zinc-400">Training, movement, sleep, and feeling better. What I’m trying, what keeps me showing up, and how it fits around a life spent building things.</p></article><article class="flex flex-col gap-3 border-t border-zinc-200 pt-5 dark:border-zinc-800"><div class="flex items-center gap-2 text-xs font-semibold text-zinc-500 dark:text-zinc-400"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open h-4 w-4" aria-hidden="true"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg>Self-improvement</div><h3 class="text-xl font-bold tracking-tight text-zinc-900 dark:text-zinc-100">Still figuring myself out</h3><p class="text-base leading-relaxed text-zinc-600 dark:text-zinc-400">Books, ideas, mindset shifts, and honest notes on getting unstuck. Personal experiments from someone who is very much a work in progress.</p></article><article class="flex flex-col gap-3 border-t border-zinc-200 pt-5 dark:border-zinc-800"><div class="flex items-center gap-2 text-xs font-semibold text-zinc-500 dark:text-zinc-400"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rocket h-4 w-4" aria-hidden="true"><path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z"></path><path d="m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z"></path><path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0"></path><path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"></path></svg>Building things</div><h3 class="text-xl font-bold tracking-tight text-zinc-900 dark:text-zinc-100">From “what if” to shipped</h3><p class="text-base leading-relaxed text-zinc-600 dark:text-zinc-400">Side projects, indie hacking, product demos, and running my own little corner of the internet. What I’m making, why it exists, and what I learn along the way.</p></article><article class="flex flex-col gap-3 border-t border-zinc-200 pt-5 dark:border-zinc-800"><div class="flex items-center gap-2 text-xs font-semibold text-zinc-500 dark:text-zinc-400"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bot h-4 w-4" aria-hidden="true"><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg>AI</div><h3 class="text-xl font-bold tracking-tight text-zinc-900 dark:text-zinc-100">Useful tools, weird experiments</h3><p class="text-base leading-relaxed text-zinc-600 dark:text-zinc-400">AI is part of the adventure too. Coding tools, personal agents, and experiments that save time—or send me down another rabbit hole.</p><ul class="flex flex-wrap items-center gap-x-4 gap-y-2 pt-1"><li class="inline-flex items-center gap-1.5 text-xs font-semibold text-zinc-700 dark:text-zinc-300"><img src="/newsletter-icons/claude.svg" alt="" width="18" height="18" class="h-[18px] w-[18px] shrink-0 dark:invert"/>Claude Code</li><li class="inline-flex items-center gap-1.5 text-xs font-semibold text-zinc-700 dark:text-zinc-300"><img src="/newsletter-icons/codex.svg" alt="" width="18" height="18" class="h-[18px] w-[18px] shrink-0 dark:invert"/>Codex</li><li class="inline-flex items-center gap-1.5 text-xs font-semibold text-zinc-700 dark:text-zinc-300"><img src="/newsletter-icons/pi.svg" alt="" width="18" height="18" class="h-[18px] w-[18px] shrink-0 "/>Pi</li></ul></article></div></section><div class="mt-16 flex flex-col gap-4 border-t border-zinc-200 pt-6 sm:flex-row sm:items-center sm:justify-between dark:border-zinc-800"><p class="text-sm leading-relaxed text-zinc-600 dark:text-zinc-400">For the deeper tech rabbit holes, come hang out in<!-- --> <a href="https://tinkerer.club" class="font-medium text-zinc-900 hover:underline dark:text-zinc-100">Tinkerer Club</a>.</p><a href="https://kitze.substack.com" class="inline-flex shrink-0 items-center gap-1.5 text-sm font-semibold text-zinc-900 no-underline hover:underline dark:text-zinc-100">kitze.substack.com <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right h-4 w-4" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></div></div><!--$--><!--/$--></div></main></div></div>
1<script src="/_next/static/chunks/1-fniqkg9bhua.js" id="_R_" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0])</script>
1<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[36506,[\"/_next/static/chunks/0p73756wi5l2m.js\",\"/_next/static/chunks/2g0nocu04uzym.js\",\"/_next/static/chunks/0rc_3f4n6h6op.js\",\"/_next/static/chunks/3q02uj3y4r8r8.js\",\"/_next/static/chunks/2kau6fj1eghk5.js\"],\"\"]\n3:I[656998,[\"/_next/static/chunks/0p73756wi5l2m.js\",\"/_next/static/chunks/2g0nocu04uzym.js\",\"/_next/static/chunks/0rc_3f4n6h6op.js\",\"/_next/static/chunks/3q02uj3y4r8r8.js\",\"/_next/static/chunks/2kau6fj1eghk5.js\"],\"NuqsAdapter\"]\n4:I[142865,[\"/_next/static/chunks/0p73756wi5l2m.js\",\"/_next/static/chunks/2g0nocu04uzym.js\",\"/_next/static/chunks/0rc_3f4n6h6op.js\",\"/_next/static/chunks/3q02uj3y4r8r8.js\",\"/_next/static/chunks/2kau6fj1eghk5.js\"],\"Providers\"]\n5:I[62199,[\"/_next/static/chunks/2uzdgcgjmg_e3.js\"],\"default\"]\n6:I[557815,[\"/_next/static/chunks/2uzdgcgjmg_e3.js\"],\"default\"]\nd:I[280892,[\"/_next/static/chunks/0p73756wi5l2m.js\",\"/_next/static/chunks/2g0nocu04uzym.js\",\"/_next/static/chunks/0rc_3f4n6h6op.js\",\"/_next/static/chunks/3q02uj3y4r8r8.js\",\"/_next/static/chunks/2kau6fj1eghk5.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/39xr4f6jl0x63.css\",\"style\"]\n:HL[\"/_next/static/chunks/3jhvwyoss_ylk.css\",\"style\"]\n:HL[\"/_next/static/chunks/0rd-db5h7xpth.css\",\"style\"]\n:HL[\"/_next/static/media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/chunks/3oiqygwnh-dmh.css\",\"style\"]\n7:T15f2,\n  if (!window.__KITZE_POSTHOG_BOOTSTRAPPED__) {\n    window.__KITZE_POSTHOG_BOOTSTRAPPED__ = true;\n    var hasLoadedPostHog =\n      window.posthog \u0026\u0026\n      !Array.isArray(window.posthog) \u0026\u0026\n      (window.posthog.__loaded ||\n        typeof window.posthog.capture === 'function' ||\n        typeof window.posthog.init === 'function');\n    if (!hasLoadedPostHog) {\n      if (!Array.isArray(window.posthog)) window.posthog = [];\n  !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(\".\");2==o.length\u0026\u0026(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement(\"script\")).type=\"text/javascript\",p.crossOrigin=\"anonymous\",p.async=!0,p.src=s.api_host.replace(\".i.posthog.com\",\"-assets.i.posthog.com\")+\"/static/array.js\",(r=t.getElementsByTagName(\"script\")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a=\"posthog\",u.people=u.people||[],u.toString=function(t){var e=\"posthog\";return\"posthog\"!==a\u0026\u0026(e+=\".\"+a),t||(e+=\" (stub)\"),e},u.people.toString=function(){return u.toString(1)+\".people (stub)\"},o=\"init capture register register_once register_for_session unregister unregister_for_session getFeatureFlag getFeatureFlagPayload isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey getNextSurveyStep identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty createPersonProfile opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing debug\".split(\" \"),n=0;n\u003co.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);\n  posthog.init('phc_vkBAd6QCGZPRhSfi8tPvuVUoof97gsjHXuBiBijMKXoy', {\n    api_host: 'https://posthog.server.kitze.io',\n    ui_host: 'https://posthog.server.kitze.io',\n    defaults: '2026-01-30',\n    capture_pageview: 'history_change',\n    capture_pageleave: true,\n    enable_heatmaps: true,\n    disable_session_recording: false,\n  });\n    }\n  }\n\n  try {\n    if (window.posthog \u0026\u0026 posthog.register) {\n      posthog.register({ app_name: 'kitze.io' });\n    }\n  } catch (error) {\n    // PostHog can be mid-bootstrap during dev/HMR; click tracking still installs below.\n  }\n\n  if (!window.__KITZE_PRODUCT_CLICK_LISTENER__) {\n    window.__KITZE_PRODUCT_CLICK_LISTENER__ = true;
1\n  (function() {\n    var productHosts = {\n      'benji.so': 'benji',\n      'dmx.to': 'dmx',\n      'glink.so': 'glink',\n      'justwrite.ink': 'justwrite',\n      'passlock.to': 'passlock',\n      'sizzy.co': 'sizzy',\n      'sotto.to': 'sotto',\n      'tinkerer.club': 'tinkerer',\n      'tubely.cc': 'tubely',\n      'zerotoshipped.com': 'zerotoshipped'\n    };\n\n    function toProductSlug(product) {\n      return product === 'zerotoshipped' ? 'zero-to-shipped' : product;\n    }\n\n    function decorateProductUrl(url, product, sourcePath, toolId) {\n      var distinctId = posthog.get_distinct_id \u0026\u0026 posthog.get_distinct_id();\n      var sessionId = posthog.get_session_id \u0026\u0026 posthog.get_session_id();\n      if (distinctId) url.searchParams.set('ph_kitze_id', distinctId);\n      if (sessionId) url.searchParams.set('ph_kitze_sid', sessionId);\n      if (!url.searchParams.has('utm_source')) {\n        url.searchParams.set('utm_source', 'kitze.io');\n      }\n      if (!url.searchParams.has('utm_medium')) {\n        url.searchParams.set('utm_medium', toolId ? 'tools_hub' : 'referral');\n      }\n      if (!url.searchParams.has('utm_campaign')) {\n        url.searchParams.set(\n          'utm_campaign',\n          toolId ? 'portfolio_tools' : 'kitze_product_click'\n        );\n      }
1\n      if (!url.searchParams.has('utm_content')) {\n        url.searchParams.set('utm_content', toolId || product);\n      }\n      if (toolId) url.searchParams.set('kitze_tool_id', toolId);\n      url.searchParams.set('kitze_path', sourcePath);\n      return url;\n    }\n\n    document.addEventListener('click', function(event) {\n      var target = event.target;\n      if (!target || !target.closest) return;\n      var link = target.closest('a[href]');\n      if (!link) return;\n\n      var url;\n      try {\n        url = new URL(link.href);\n      } catch (error) {\n        return;\n      }\n\n      var host = url.hostname.replace(/^www\\./, '');\n      var product = link.getAttribute('data-product') || productHosts[host];\n      if (!product) return;\n      var sourcePath = window.location.pathname;\n      var toolId = link.getAttribute('data-tool-id');\n      var placement = link.getAttribute('data-placement') || undefined;\n      var eventName = toolId ? 'tool_hub_clicked' : 'kitze_product_clicked';\n\n      var decoratedUrl = decorateProductUrl(url, product, sourcePath, toolId);\n      if (placement \u0026\u0026 !decoratedUrl.searchParams.has('utm_term')) {\n        decoratedUrl.searchParams.set('utm_term', placement);\n      }\n      link.href = decoratedUrl.toString();\n\n      posthog.capture(eventName, {\n        product: product,\n        product_slug: toProductSlug(product),\n        placement: placement,\n        tool_id: toolId || undefined,\n        destination_host: host,\n        destination_url: decoratedUrl.toString(),\n        source_path: sourcePath,\n        outbound_surface: toolId ? 'kitze_tools_hub' : 'kitze_product_link'\n      });\n    }, true);\n  })();\n  }\nb:X\n0:{\"P\":null,\"c\":[\"\",\"newsletter\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"(constraint-layout)\",{\"children\":[\"newsletter\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/39xr4f6jl0x63.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3jhvwyoss_ylk.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0rd-db5h7xpth.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0p73756wi5l2m.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/2g0nocu04uzym.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/0rc_3f4n6h6op.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/3q02uj3y4r8r8.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/2kau6fj1eghk5.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"inter_173403c7-module__czr2iW__variable space_grotesk_6787e66d-module__nsbTLq__variable\",\"style\":{\"fontFamily\":\"var(--font-space-grotesk)\"},\"children\":[[\"$\",\"$L2\",null,{\"id\":\"theme-init\",\"strategy\":\"beforeInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"\\n              (function() {\\n                // Always follow system preference - clear any stored theme preference\\n                localStorage.removeItem('theme');\\n                \\n                // Prevent theme from being stored in localStorage\\n                const originalSetItem = localStorage.setItem;\\n                localStorage.setItem = function(key, value) {\\n                  if (key === 'theme') {\\n                    // Don't store theme preference, always use system\\n                    return;\\n                  }
1\\n                  originalSetItem.apply(this, arguments);\\n                };\\n                \\n                // Check system preference and apply immediately to avoid FOUC\\n                const isDark = window.matchMedia('(prefers-color-scheme: dark)').matches;\\n                document.documentElement.classList.toggle('dark', isDark);\\n              })();\\n            \"}}],[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}],[\"$\",\"$L2\",null,{\"id\":\"posthog\",\"strategy\":\"afterInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"$7\"}}]]}]}]]}],{\"children\":[\"$L8\",{\"children\":[\"$L9\",{\"children\":[\"$La\",{},null,false,null]},null,false,\"$b\"]},null,false,null]},null,false,null],\"$Lc\",false]],\"m\":\"$undefined\",\"G\":[\"$d\",[\"$Le\",\"$Lf\",\"$L10\"]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"QQ4oInnshNvMLoSfrEC1D\"}\n11:I[313601,[\"/_next/static/chunks/0p73756wi5l2m.js\",\"/_next/static/chunks/2g0nocu04uzym.js\",\"/_next/static/chunks/0rc_3f4n6h6op.js\",\"/_next/static/chunks/3q02uj3y4r8r8.js\",\"/_next/static/chunks/2kau6fj1eghk5.js\",\"/_next/static/chunks/19x-bo4kvso2z.js\",\"/_next/static/chunks/3wzoiuekz7bus.js\",\"/_next/static/chunks/02lud4adea1s_.js\",\"/_next/static/chunks/0nk6ggxf-4ril.js\",\"/_next/static/chunks/2dob_w8ikus-7.js\",\"/_next/static/chunks/0yg4n3pll7pay.js\",\"/_next/static/chunks/0m-3zq7tog3uz.js\",\"/_next/static/chunks/3yra7k4jjwsez.js\",\"/_next/static/chunks/2e8r1xdmh-a8p.js\",\"/_next/static/chunks/20wdadmh99mr-.js\"],\"Header\"]\n12:I[18327,[\"/_next/static/chunks/0p73756wi5l2m.js\",\"/_next/static/chunks/2g0nocu04uzym.js\",\"/_next/static/chunks/0rc_3f4n6h6op.js\",\"/_next/static/chunks/3q02uj3y4r8r8.js\",\"/_next/static/chunks/2kau6fj1eghk5.js\",\"/_next/static/chunks/19x-bo4kvso2z.js\",\"/_next/static/chunks/3wzoiuekz7bus.js\",\"/_next/static/chunks/02lud4adea1s_.js\",\"/_next/static/chunks/0nk6ggxf-4ril.js\",\"/_next/static/chunks/2dob_w8ikus-7.js\",\"/_next/static/chunks/0yg4n3pll7pay.js\",\"/_next/static/chunks/0m-3zq7tog3uz.js\",\"/_next/static/chunks/3yra7k4jjwsez.js\",\"/_next/static/chunks/2e8r1xdmh-a8p.js\",\"/_next/static/chunks/20wdadmh99mr-.js\"],\"Sidebar\"]\n13:I[36076,[\"/_next/static/chunks/0p73756wi5l2m.js\",\"/_next/static/chunks/2g0nocu04uzym.js\",\"/_next/static/chunks/0rc_3f4n6h6op.js\",\"/_next/static/chunks/3q02uj3y4r8r8.js\",\"/_next/static/chunks/2kau6fj1eghk5.js\",\"/_next/static/chunks/19x-bo4kvso2z.js\",\"/_next/static/chunks/3wzoiuekz7bus.js\",\"/_next/static/chunks/02lud4adea1s_.js\",\"/_next/static/chunks/0nk6ggxf-4ril.js\",\"/_next/static/chunks/2dob_w8ikus-7.js\",\"/_next/static/chunks/0yg4n3pll7pay.js\",\"/_next/static/chunks/0m-3zq7tog3uz.js\",\"/_next/static/chunks/3
1yra7k4jjwsez.js\",\"/_next/static/chunks/2e8r1xdmh-a8p.js\",\"/_next/static/chunks/20wdadmh99mr-.js\",\"/_next/static/chunks/1xgencmnb6pf3.js\"],\"NewsletterSubscribe\"]\n22:I[776842,[\"/_next/static/chunks/2uzdgcgjmg_e3.js\"],\"ViewportBoundary\"]\n24:I[776842,[\"/_next/static/chunks/2uzdgcgjmg_e3.js\"],\"MetadataBoundary\"]\n25:\"$Sreact.suspense\"\n:HL[\"/newsletter-icons/homeassistant.svg\",\"image\"]\n:HL[\"/newsletter-icons/docker.svg\",\"image\"]\n8:[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/19x-bo4kvso2z.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/3wzoiuekz7bus.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/02lud4adea1s_.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/0nk6ggxf-4ril.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/2dob_w8ikus-7.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/_next/static/chunks/0yg4n3pll7pay.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/_next/static/chunks/0m-3zq7tog3uz.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-7\",{\"src\":\"/_next/static/chunks/3yra7k4jjwsez.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-8\",{\"src\":\"/_next/static/chunks/2e8r1xdmh-a8p.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-9\",{\"src\":\"/_next/static/chunks/20wdadmh99mr-.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"div\",null,{\"className\":\"app-background min-h-screen w-screen text-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"fixed inset-x-0 top-0 z-50 md:hidden\",\"children\":[\"$\",\"$L11\",null,{}]}],[\"$\",\"div\",null,{\"className\":\"flex flex-row\",\"children\":[[\"$\",\"$L12\",null,{\"classNames\":{\"root\":\"fixed inset-y-0 left-0 z-40\"}}],[\"$\",\"main\",null,{\"className\":\"w-full overflow-x-hidden bg-white pt-[60px] dark:bg-card/80 md:ml-[300px] md:h-screen md:overflow-y-auto md:pt-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex w-full max-w-[1200px]! flex-1 flex-col gap-6 px-6 py-8 sm:px-8 lg:px-12\",\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:1:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}]]}]\n9:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\na:[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"py-6 md:py-10 newsletter-module__Yofm3a__page\",\"children\":[[\"$\",\"section\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"mb-5 text-xs font-semibold uppercase tracking-[0.18em] text-zinc-500\",\"children\":\"Free newsletter\"}],[\"$\",\"h1\",null,{\"className\":\"text-5xl font-medium leading-[1.02] tracking-tighter text-zinc-900 sm:text-6xl xl:text-7xl dark:text-zinc-100 newsletter-module__Yofm3a__headline\",\"children\":\"Kitze’s Newsletter\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-2xl font-light leading-snug tracking-tight text-zinc-500 sm:text-3xl dark:text-zinc-400\",\"children\":\"Notes from my rabbit holes.\"}]]}],[\"$\",\"section\",null,{\"className\":\"mt-8 grid grid-cols-1 gap-8 md:mt-10 xl:grid-cols-[minmax(0,1fr)_minmax(340px,440px)] xl:items-start xl:gap-14\",\"children\":[[\"$\",\"div\",null,{\"className\":\"order-2 space-y-4 text-lg font-light leading-relaxed text-zinc-600 md:text-xl xl:order-1 dark:text-zinc-400 newsletter-module__Yofm3a__measure\",\"children\":[[\"$\",\"p\",null,{\"children\":\"I tinker with everything: tech, habits, fitness, my own brain. Sometimes I build an app. Sometimes I just find a better way to get through the day.\"}],[\"$\",\"p\",null,{\"children\":\"This is where I share what I’m trying, what sticks, and the useful things I find along the way.\"}]]}],[\"$\",\"div\",null,{\"className\":\"order-1 xl:order-2\",\"children\":[\"$\",\"$L13\",null,{}]}]]}],[\"$\",\"section\",null,{\"className\":\"mt-16 md:mt-20\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold tracking-tight text-zinc-900 md:text-3xl dark:text-zinc-100\",\"children\":\"A few of my rabbit holes\"}],[\"$\",\"div\",null,{\"className\":\"mt-8 grid grid-cols-1 gap-x-12 gap-y-10 sm:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Tinkering\",{\"className\":\"flex flex-col gap-3 border-t border-zinc-200 pt-5 dark:border-zinc-800\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 text-xs font-semibold text-zinc-500 dark:text-zinc-400\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-wrench h-4 w-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ngwbx\",{\"d\":\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z\"}],\"$undefined\"]}],\"Tinkering\"]}],[\"$\",\"h3\",null,{\"className\":\"text-xl font-bold tracking-tight text-zinc-900 dark:text-zinc-100\",\"children\":\"One rabbit hole leads to another\"}],[\"$\",\"p\",null,{\"className\":\"text-base leading-relaxed text-zinc-600 dark:text-zinc-400\",\"children\":\"Gadgets, self-hosting, home automation, and things I probably could have left alone. The fun discoveries, the overcomplicated setups, and what was actually worth it.\"}],[\"$\",\"ul\",null,{\"className\":\"flex flex-wrap items-center gap-x-4 gap-y-2 pt-1\",\"children\":[[\"$\",\"li\",\"Home Assistant\",{\"className\":\"inline-flex items-center gap-1.5 text-xs font-semibold text-zinc-700 dark:text-zinc-300\",\"children\":[[\"$\",\"img\",null,{\"src\":\"/newsletter-icons/homeassistant.svg\",\"alt\":\"\",\"width\":18,\"height\":18,\"className\":\"h-[18px] w-[18px] shrink-0 dark:invert\"}],\"Home Assistant\"]}],[\"$\",\"li\",\"Docker\",{\"className\":\"inline-flex items-center gap-1.5 text-xs font-semibold text-zinc-700 dark:text-zinc-300\",\"children\":[[\"$\",\"img\",null,{\"src\":\"/newsletter-icons/docker.svg\",\"alt\":\"\",\"width\":18,\"height\":18,\"className\":\"h-[18px] w-[18px] shrink-0 dark:invert\"}],\"Docker\"]}]]}]]}],[\"$\",\"article\",\"Habits\",{\"className\":\"flex flex-col gap-3 border-t border-zinc-200 pt-5 dark:border-zinc-800\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 text-xs font-semibold text-zinc-500 dark:text-zinc-400\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-repeat2 lucide-repeat-2 h-4 w-4\",\"aria-hidden\":\"true\",\"children\":[\"$L14\",\"$L15\",\"$L16\",\"$L17\",\"$undefined\"]}],\"Habits\"]}],\"$L18\",\"$L19\",false]}],\"$L1a\",\"$L1b\",\"$L1c\",\"$L1d\"]}]]}],\"$L1e\"]}],[\"$L1f\",\"$L20\"],\"$L21\"]}]\nc:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L22\",null,{\"children\":\"$L23\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L24\",null,{\"children\":[\"$\",\"$25\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L26\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\ne:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/39xr4f6jl0x63.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\nf:[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3jhvwyoss_ylk.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n10:[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0rd-db5h7xpth.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n27:I[776842,[\"/_next/static/chunks/2uzdgcgjmg_e3.js\"],\"OutletBoundary\"]\n:HL[\"/newsletter-icons/claude.svg\",\"image\"]\n:HL[\"/newsletter-icons/codex.svg\",\"image\"]\n:HL[\"/newsletter-icons/pi.svg\",\"image\"]\nb:C\n14:[\"$\",\"path\",\"1ltn5i\",{\"d\":\"m2 9 3-3 3 3\"}]\n15:[\"$\",\"path\",\"1r6tfw\",{\"d\":\"M13 18H7a2 2 0 0 1-2-2V6\"}]\n16:[\"$\",\"path\",\"4rnwn2\",{\"d\":\"m22 15-3 3-3-3\"}]\n17:[\"$\",\"path\",\"2f72bc\",{\"d\":\"M11 6h6a2 2 0 0 1 2 2v10\"}]\n18:[\"$\",\"h3\",null,{\"className\":\"text-xl font-bold tracking-tight text-zinc-900 dark:text-zinc-100\",\"children\":\"Making the good stuff stick\"}]\n19:[\"$\",\"p\",null,{\"className\":\"text-base leading-relaxed text-zinc-600 dark:text-zinc-400\",\"children\":\"Routines, focus, screen time, and the systems I try to make everyday life a little better. What helps, what gets in the way, and what I change next.\"}]\n1a:[\"$\",\"article\",\"Fitness\",{\"className\":\"flex flex-col gap-3 border-t border-zinc-200 pt-5 dark:border-zinc-800\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 text-xs font-semibold text-zinc-500 dark:text-zinc-400\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-dumbbell h-4 w-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"9m4mmf\",{\"d\":\"M17.596 12.768a2 2 0 1 0 2.829-2.829l-1.768-1.767a2 2 0 0 0 2.828-2.829l-2.828-2.828a2 2 0 0 0-2.829 2.828l-1.767-1.768a2 2 0 1 0-2.829 2.829z\"}],[\"$\",\"path\",\"17g3f0\",{\"d\":\"m2.5 21.5 1.4-1.4\"}],[\"$\",\"path\",\"1qn309\",{\"d\":\"m20.1 3.9 1.4-1.4\"}],[\"$\",\"path\",\"1t2c92\",{\"d\":\"M5.343 21.485a2 2 0 1 0 2.829-2.828l1.767 1.768a2 2 0 1 0 2.829-2.829l-6.364-6.364a2 2 0 1 0-2.829 2.829l1.768 1.767a2 2 0 0 0-2.828 2.829z\"}],[\"$\",\"path\",\"6umqxw\",{\"d\":\"m9.6 14.4 4.8-4.8\"}],\"$undefined\"]}],\"Fitness\"]}],[\"$\",\"h3\",null,{\"className\":\"text-xl font-bold tracking-tight text-zinc-900 dark:text-zinc-100\",\"children\":\"Getting out of the chair\"}],[\"$\",\"p\",null,{\"className\":\"text-base leading-relaxed text-zinc-600 dark:text-zinc-400\",\"children\":\"Training, movement, sleep, and feeling better. What I’m trying, what keeps me showing up, and how it fits around a life spent building things.\"}],false]}]\n1b:[\"$\",\"article\",\"Self-improvement\",{\"className\":\"flex flex-col gap-3 border-t border-zinc-200 pt-5 dark:border-zinc-800\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 text-xs font-semibold text-zinc-500 dark:text-zinc-400\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-book-open h-4 w-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1akyts\",{\"d\":\"M12 7v14\"}],[\"$\",\"path\",\"ruj8y\",{\"d\":\"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z\"}],\"$undefined\"]}],\"Self-improvement\"]}],[\"$\",\"h3\",null,{\"className\":\"text-xl font-bold tracking-tight text-zinc-900 dark:text-zinc-100\",\"children\":\"Still figuring myself out\"}],[\"$\",\"p\",null,{\"className\":\"text-base leading-relaxed text-zinc-600 dark:text-zinc-400\",\"children\":\"Books, ideas, mindset shifts, and honest notes on getting unstuck. Personal experiments from someone who is very much a work in progress.\"}],false]}]\n1c:[\"$\",\"article\",\"Building things\",{\"className\":\"flex flex-col gap-3 border-t border-zinc-200 pt-5 dark:border-zinc-800\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 text-xs font-semibold text-zinc-500 dark:text-zinc-400\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-rocket h-4 w-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"m3kijz\",{\"d\":\"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z\"}],[\"$\",\"path\",\"1fmvmk\",{\"d\":\"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z\"}],[\"$\",\"path\",\"1f8sc4\",{\"d\":\"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0\"}],[\"$\",\"path\",\"qeys4\",{\"d\":\"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5\"}],\"$undefined\"]}],\"Building things\"]}],[\"$\",\"h3\",null,{\"className\":\"text-xl font-bold tracking-tight text-zinc-900 dark:text-zinc-100\",\"children\":\"From “what if” to shipped\"}],[\"$\",\"p\",null,{\"className\":\"text-base leading-relaxed text-zinc-600 dark:text-zinc-400\",\"children\":\"Side projects, indie hacking, product demos, and running my own little corner of the internet. What I’m making, why it exists, and what I learn along the way.\"}],false]}]\n1d:[\"$\",\"article\",\"AI\",{\"className\":\"flex flex-col gap-3 border-t border-zinc-200 pt-5 dark:border-zinc-800\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 text-xs font-semibold text-zinc-500 dark:text-zinc-400\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-bot h-4 w-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"hb8ula\",{\"d\":\"M12 8V4H8\"}],[\"$\",\"rect\",\"enze0r\",{\"width\":\"16\",\"height\":\"12\",\"x\":\"4\",\"y\":\"8\",\"rx\":\"2\"}],[\"$\",\"path\",\"vft8re\",{\"d\":\"M2 14h2\"}],[\"$\",\"path\",\"4cs60a\",{\"d\":\"M20 14h2\"}],[\"$\",\"path\",\"1xurst\",{\"d\":\"M15 13v2\"}],[\"$\",\"path\",\"rq6x2g\",{\"d\":\"M9 13v2\"}],\"$undefined\"]}],\"AI\"]}],[\"$\",\"h3\",null,{\"className\":\"text-xl font-bold tracking-tight text-zinc-900 dark:text-zinc-100\",\"children\":\"Useful tools, weird experiments\"}],[\"$\",\"p\",null,{\"className\":\"text-base leading-relaxed text-zinc-600 dark:text-zinc-400\",\"children\":\"AI is part of the adventure too. Coding tools, personal agents, and experiments that save time—or send me down another rabbit hole.\"}],[\"$\",\"ul\",null,{\"className\":\"flex flex-wrap items-center gap-x-4 gap-y-2 pt-1\",\"children\":[[\"$\",\"li\",\"Claude Code\",{\"className\":\"inline-flex items-center gap-1.5 text-xs font-semibold text-zinc-700 dark:text-zinc-300\",\"children\":[[\"$\",\"img\",null,{\"src\":\"/newsletter-icons/claude.svg\",\"alt\":\"\",\"width\":18,\"height\":18,\"className\":\"h-[18px] w-[18px] shrink-0 dark:invert\"}],\"Claude Code\"]}],[\"$\",\"li\",\"Codex\",{\"className\":\"inline-flex items-center gap-1.5 text-xs font-semibold text-zinc-700 dark:text-zinc-300\",\"children\":[[\"$\",\"img\",null,{\"src\":\"/newsletter-icons/codex.svg\",\"alt\":\"\",\"width\":18,\"height\":18,\"className\":\"h-[18px] w-[18px] shrink-0 dark:invert\"}],\"Codex\"]}],[\"$\",\"li\",\"Pi\",{\"className\":\"inline-flex items-center gap-1.5 text-xs font-semibold text-zinc-700 dark:text-zinc-300\",\"children\":[[\"$\",\"img\",null,{\"src\":\"/newsletter-icons/pi.svg\",\"alt\":\"\",\"width\":18,\"height\":18,\"className\":\"h-[18px] w-[18px] shrink-0 \"}],\"Pi\"]}]]}]]}]\n1e:[\"$\",\"div\",null,{\"className\":\"mt-16 flex flex-col gap-4 border-t border-zinc-200 pt-6 sm:flex-row sm:items-center sm:justify-between dark:border-zinc-800\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-sm leading-relaxed text-zinc-600 dark:text-zinc-400\",\"children\":[\"For the deeper tech rabbit holes, come hang out in\",\" \",[\"$\",\"a\",null,{\"href\":\"https://tinkerer.club\",\"className\":\"font-medium text-zinc-900 hover:underline dark:text-zinc-100\",\"children\":\"Tinkerer Club\"}],\".\"]}],[\"$\",\"a\",null,{\"href\":\"https://kitze.substack.com\",\"className\":\"inline-flex shrink-0 items-center gap-1.5 text-sm font-semibold text-zinc-900 no-underline hover:underline dark:text-zinc-100\",\"children\":[\"kitze.substack.com \",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-up-right h-4 w-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1tivn9\",{\"d\":\"M7 7h10v10\"}],[\"$\",\"path\",\"1vkiza\",{\"d\":\"M7 17 17 7\"}],\"$undefined\"]}]]}]]}]\n1f:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3oiqygwnh-dmh.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n20:[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/1xgencmnb6pf3.js\",\"async\":true,\"nonce\":\"$undefined\"}]\n21:[\"$\",\"$L27\",null,{\"children\":[\"$\",\"$25\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@28\"}]}]\n23:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n26:[[\"$\",\"title\",\"0\",{\"children\":\"Kitze's Newsletter\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Notes from my tinkering adventures: habits, fitness, self-improvement, side projects, self
1-hosting, AI, and whatever rabbit hole I fall into next.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"canonical\",\"href\":\"https://www.kitze.io/newsletter\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:title\",\"content\":\"Kitze's Newsletter\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:description\",\"content\":\"Notes from my tinkering adventures: habits, fitness, self-improvement, side projects, self-hosting, AI, and whatever rabbit hole I fall into next.\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:url\",\"content\":\"https://www.kitze.io/newsletter\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:image\",\"content\":\"https://www.kitze.io/newsletter/opengraph-image-1r41lm.png?opengraph-image.3rlzyt-5xwkkv.png\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:image:width\",\"content\":\"1727\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image:height\",\"content\":\"911\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image:alt\",\"content\":\"Kitze's Newsletter — AI agents, indie hacking, and a lot of tinkering. Illustrated badges for Codex, Claude, Pi, Home Assistant, SaaS, OpenClaw, self-hosting, and shipping products.\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:title\",\"content\":\"Kitze's Newsletter\"}],[\"$\",\"meta\",\"15\",{\"name\":\"twitter:description\",\"content\":\"Notes from my tinkering adventures: habits, fitness, self-improvement, side projects, self-hosting, AI, and whatever rabbit hole I fall into next.\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:image\",\"content\":\"https://www.kitze.io/newsletter/opengraph-image-1r41lm.png?opengraph-image.3rlzyt-5xwkkv.png\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:image:alt\",\"content\":\"Kitze's Newsletter — AI agents, indie hacking, and a lot of tinkering. Illustrated badges for Codex, Claude, Pi, Home Assistant, SaaS, OpenClaw, self-hosting, and shipping products.\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:image:width\",\"content\":\"1727\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:image:height\",\"content\":\"911\"}]]\n28:null\n"])</script>
1</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.