<!DOCTYPE html><!--1xXhDNeddo_za6UW_EocE--><html lang="en" class="text-black bg-white light  __variable_ac79ff __variable_8a4d12 __variable_6dc595"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/1d3ab314c572fe59-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/90115db7815c8d63-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/ec1a1eae803b668e-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/f0519f43f8688da0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/f980ec13b5b5e554.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/ff03e98909115ed9-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Fimages%2Fblog_avatar.jpg&amp;w=256&amp;q=75 1x, /_next/image?url=%2Fimages%2Fblog_avatar.jpg&amp;w=384&amp;q=75 2x"/><link rel="preload" as="image" href="/builds/pierre-icon.svg"/><link rel="preload" as="image" href="/builds/ration-icon.png"/><link rel="preload" as="image" href="/builds/respite-icon.png"/><link rel="stylesheet" href="/_next/static/css/278239499a84a6ba.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-efc4e18c43752574.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-38b49df12a94ee57.js" async=""></script><script src="/_next/static/chunks/main-app-f9b5d20365cb8be2.js" async=""></script><script src="/_next/static/chunks/9da6db1e-85033184608e4611.js" async=""></script><script src="/_next/static/chunks/619-ba102abea3e3d0e4.js" async=""></script><script src="/_next/static/chunks/337-a7723cf83adcdc50.js" async=""></script><script src="/_next/static/chunks/app/layout-ce7b881e17c46f10.js" async=""></script><script src="/_next/static/chunks/356-1143d17a0ca27254.js" async=""></script><script src="/_next/static/chunks/app/page-8edc6fa7ae41533d.js" async=""></script><link rel="preload" href="https://getfrostline.com/t.js" as="script"/><meta name="next-size-adjust" content=""/><title>Jamis Charles</title><meta name="description" content="I build things. No drama. Just craft."/><meta name="robots" content="index, follow"/><meta name="googlebot" content="index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"/><meta property="og:title" content="Jamis Charles"/><meta property="og:description" content="I build things. No drama. Just craft."/><meta property="og:url" content="https://jamischarles.com"/><meta property="og:site_name" content="Jamis Charles"/><meta property="og:locale" content="en_US"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:creator" content="@jamischarles"/><meta name="twitter:title" content="Jamis Charles"/><meta name="twitter:description" content="I build things. No drama. Just craft."/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="antialiased max-w-5xl mx-4 mt-2 lg:mx-auto"><div hidden=""><!--$--><!--/$--></div><script type="application/ld+json">{"@context":"https://schema.org","@type":"Person","name":"Jamis Charles","url":"https://jamischarles.com","jobTitle":"Software Engineer","sameAs":["https://x.com/jamischarles","https://github.com/jamischarles","https://www.linkedin.com/in/jamischarles/"]}</script><div class="flex"><main class="flex flex-col flex-1 min-w-0 mt-2 px-2 md:px-0 min-h-screen"><aside class="-ml-[8px] tracking-tight font-mono text-sm"><div class="lg:sticky lg:top-20"><nav class="grid flex-row  items-end relative px-0 pb-0 fade md:overflow-auto scroll-pr-6 md:relative" id="nav"><div class="flex flex-row space-x-0 pr-0 justify-between align-middle"><div><a class="font-bold transition-all hover:text-neutral-800 dark:hover:text-neutral-500  align-middle relative py-1 px-1 m-0 " href="/">Jamis Charles</a></div><div><a class="font-bold  transition-all hover:text-neutral-800 dark:hover:text-neutral-500  align-middle relative py-1 px-2 m-0" href="/builds">Builds</a><a class="font-bold  transition-all hover:text-neutral-800 dark:hover:text-neutral-500  align-middle relative py-1 px-2 m-0" href="/til">TIL</a><a class="font-bold  transition-all hover:text-neutral-800 dark:hover:text-neutral-500  align-middle relative py-1 px-2 m-0" href="/essays">Essays</a><div class="contents relative py-1 px-1 m-0">|</div><a class="inline-block transition-all hover:text-neutral-800 dark:hover:text-neutral-500 flex align-middle relative py-1 px-2 m-0" href="https://github.com/jamischarles">GitHub</a><a class="inline-block transition-all hover:text-neutral-800 dark:hover:text-neutral-500 flex align-middle relative py-1 px-2 m-0" href="https://x.com/jamischarles">Twitter</a></div></div></nav></div></aside><div class="basis-3/4 content-center"><section><div class="flex flex-col md:flex-row items-start gap-8 mt-8"><img alt="Jamis Charles" width="192" height="192" decoding="async" data-nimg="1" class="rounded-2xl flex-none" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fblog_avatar.jpg&amp;w=256&amp;q=75 1x, /_next/image?url=%2Fimages%2Fblog_avatar.jpg&amp;w=384&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fblog_avatar.jpg&amp;w=384&amp;q=75"/><div class="self-center"><h1 class="text-3xl font-black tracking-tight">Jamis Charles</h1><p class="mt-2 text-lg text-neutral-600 font-mono">I build things. No drama. Just craft.</p><a class="inline-block mt-4 px-4 py-2 text-sm font-mono font-bold bg-black text-white rounded hover:bg-neutral-800 transition-colors" href="/builds">See what I&#x27;ve built</a></div></div><div class="mt-16"><div class="flex items-baseline justify-between mb-6"><h2 class="text-xl font-bold tracking-tight">Latest Builds</h2><a class="text-sm font-mono text-neutral-500 hover:text-black transition-colors" href="/builds">View all →</a></div><div class="grid gap-4 sm:grid-cols-2 lg:grid-cols-3"><a class="flex items-start gap-3 p-4 border border-neutral-200 rounded-lg hover:border-neutral-400 transition-colors group" href="/builds/pierre-notabot"><div class="flex-none w-10 h-10 rounded-xl overflow-hidden rotate-3 shadow-sm group-hover:rotate-6 transition-transform" style="border-color:#1e3a5f30;border-width:1px"><img src="/builds/pierre-icon.svg" alt="Pierre Notabot icon" width="40" height="40" class="w-full h-full object-cover"/></div><div class="min-w-0"><h3 class="font-bold font-mono">Pierre Notabot</h3><p class="text-sm text-neutral-800 mt-0.5 font-mono leading-snug">What if AI education had personality instead of dry docs?</p></div></a><a class="flex items-start gap-3 p-4 border border-neutral-200 rounded-lg hover:border-neutral-400 transition-colors group" href="/builds/ration"><div class="flex-none w-10 h-10 rounded-xl overflow-hidden rotate-3 shadow-sm group-hover:rotate-6 transition-transform" style="border-color:#2d6a4f30;border-width:1px"><img src="/builds/ration-icon.png" alt="Ration icon" width="40" height="40" class="w-full h-full object-cover"/></div><div class="min-w-0"><h3 class="font-bold font-mono">Ration</h3><p class="text-sm text-neutral-800 mt-0.5 font-mono leading-snug">What if you could ration your scrolling instead of going cold-turkey?</p></div></a><a class="flex items-start gap-3 p-4 border border-neutral-200 rounded-lg hover:border-neutral-400 transition-colors group" href="/builds/respite"><div class="flex-none w-10 h-10 rounded-xl overflow-hidden rotate-3 shadow-sm group-hover:rotate-6 transition-transform" style="border-color:#6b5b9530;border-width:1px"><img src="/builds/respite-icon.png" alt="Respite icon" width="40" height="40" class="w-full h-full object-cover"/></div><div class="min-w-0"><h3 class="font-bold font-mono">Respite</h3><p class="text-sm text-neutral-800 mt-0.5 font-mono leading-snug">What if your computer enforced the breaks you keep skipping?</p></div></a></div></div></section><!--$--><!--/$--></div><footer class="mb-16 mt-16 border-t border-neutral-200 pt-8"><div class="flex flex-col gap-4 md:flex-row md:gap-12"><div><p class="text-xs font-mono text-neutral-400 mb-2">More</p><ul class="font-sm flex flex-col space-y-1 text-neutral-600 dark:text-neutral-300"><li><a class="flex items-center transition-all hover:text-neutral-800 dark:hover:text-neutral-100" href="/til"><svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2.07102 11.3494L0.963068 10.2415L9.2017 1.98864H2.83807L2.85227 0.454545H11.8438V9.46023H10.2955L10.3097 3.09659L2.07102 11.3494Z" fill="currentColor"></path></svg><p class="ml-2 h-7">TIL</p></a></li><li><a class="flex items-center transition-all hover:text-neutral-800 dark:hover:text-neutral-100" href="/at-work"><svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2.07102 11.3494L0.963068 10.2415L9.2017 1.98864H2.83807L2.85227 0.454545H11.8438V9.46023H10.2955L10.3097 3.09659L2.07102 11.3494Z" fill="currentColor"></path></svg><p class="ml-2 h-7">At Work</p></a></li><li><a class="flex items-center transition-all hover:text-neutral-800 dark:hover:text-neutral-100" href="/rss"><svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2.07102 11.3494L0.963068 10.2415L9.2017 1.98864H2.83807L2.85227 0.454545H11.8438V9.46023H10.2955L10.3097 3.09659L2.07102 11.3494Z" fill="currentColor"></path></svg><p class="ml-2 h-7">RSS</p></a></li></ul></div><div><p class="text-xs font-mono text-neutral-400 mb-2">Elsewhere</p><ul class="font-sm flex flex-col space-y-1 text-neutral-600 dark:text-neutral-300"><li><a class="flex items-center transition-all hover:text-neutral-800 dark:hover:text-neutral-100" rel="noopener noreferrer" target="_blank" href="https://github.com/jamischarles"><svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2.07102 11.3494L0.963068 10.2415L9.2017 1.98864H2.83807L2.85227 0.454545H11.8438V9.46023H10.2955L10.3097 3.09659L2.07102 11.3494Z" fill="currentColor"></path></svg><p class="ml-2 h-7">GitHub</p></a></li><li><a class="flex items-center transition-all hover:text-neutral-800 dark:hover:text-neutral-100" rel="noopener noreferrer" target="_blank" href="https://x.com/jamischarles"><svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2.07102 11.3494L0.963068 10.2415L9.2017 1.98864H2.83807L2.85227 0.454545H11.8438V9.46023H10.2955L10.3097 3.09659L2.07102 11.3494Z" fill="currentColor"></path></svg><p class="ml-2 h-7">Twitter</p></a></li><li><a class="flex items-center transition-all hover:text-neutral-800 dark:hover:text-neutral-100" rel="noopener noreferrer" target="_blank" href="https://www.linkedin.com/in/jamischarles/"><svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2.07102 11.3494L0.963068 10.2415L9.2017 1.98864H2.83807L2.85227 0.454545H11.8438V9.46023H10.2955L10.3097 3.09659L2.07102 11.3494Z" fill="currentColor"></path></svg><p class="ml-2 h-7">LinkedIn</p></a></li><li><a class="flex items-center transition-all hover:text-neutral-800 dark:hover:text-neutral-100" rel="noopener noreferrer" target="_blank" href="/jamis_resume.pdf"><svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2.07102 11.3494L0.963068 10.2415L9.2017 1.98864H2.83807L2.85227 0.454545H11.8438V9.46023H10.2955L10.3097 3.09659L2.07102 11.3494Z" fill="currentColor"></path></svg><p class="ml-2 h-7">Resume</p></a></li></ul></div></div><p class="mt-8 text-neutral-400 text-xs font-mono">© <!-- -->2026<!-- --> Jamis Charles</p></footer><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--></main></div><script src="/_next/static/chunks/webpack-efc4e18c43752574.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7456,[\"229\",\"static/chunks/9da6db1e-85033184608e4611.js\",\"619\",\"static/chunks/619-ba102abea3e3d0e4.js\",\"337\",\"static/chunks/337-a7723cf83adcdc50.js\",\"177\",\"static/chunks/app/layout-ce7b881e17c46f10.js\"],\"PostHogProvider\"]\n3:I[2619,[\"619\",\"static/chunks/619-ba102abea3e3d0e4.js\",\"356\",\"static/chunks/356-1143d17a0ca27254.js\",\"974\",\"static/chunks/app/page-8edc6fa7ae41533d.js\"],\"\"]\n4:I[9766,[],\"\"]\n5:I[8924,[],\"\"]\n10:I[7150,[],\"\"]\n:HL[\"/_next/static/media/1d3ab314c572fe59-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/90115db7815c8d63-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/ec1a1eae803b668e-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/f0519f43f8688da0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/f980ec13b5b5e554.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/ff03e98909115ed9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/278239499a84a6ba.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"1xXhDNeddo_za6UW-EocE\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/278239499a84a6ba.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"text-black bg-white light  __variable_ac79ff __variable_8a4d12 __variable_6dc595\",\"children\":[\"$\",\"body\",null,{\"className\":\"antialiased max-w-5xl mx-4 mt-2 lg:mx-auto\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"suppressHydrationWarning\":true,\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Jamis Charles\\\",\\\"url\\\":\\\"https://jamischarles.com\\\",\\\"jobTitle\\\":\\\"Software Engineer\\\",\\\"sameAs\\\":[\\\"https://x.com/jamischarles\\\",\\\"https://github.com/jamischarles\\\",\\\"https://www.linkedin.com/in/jamischarles/\\\"]}\"}}],[\"$\",\"$L2\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"flex\",\"children\":[\"$\",\"main\",null,{\"className\":\"flex flex-col flex-1 min-w-0 mt-2 px-2 md:px-0 min-h-screen\",\"children\":[[\"$\",\"aside\",null,{\"className\":\"-ml-[8px] tracking-tight font-mono text-sm\",\"children\":[\"$\",\"div\",null,{\"className\":\"lg:sticky lg:top-20\",\"children\":[\"$\",\"nav\",null,{\"className\":\"grid flex-row  items-end relative px-0 pb-0 fade md:overflow-auto scroll-pr-6 md:relative\",\"id\":\"nav\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-row space-x-0 pr-0 justify-between align-middle\",\"children\":[[\"$\",\"div\",null,{\"children\":[\"$\",\"$L3\",\"/\",{\"href\":\"/\",\"className\":\"font-bold transition-all hover:text-neutral-800 dark:hover:text-neutral-500  align-middle relative py-1 px-1 m-0 \",\"children\":\"Jamis Charles\"}]}],[\"$\",\"div\",null,{\"children\":[[[\"$\",\"$L3\",\"/builds\",{\"href\":\"/builds\",\"className\":\"font-bold  transition-all hover:text-neutral-800 dark:hover:text-neutral-500  align-middle relative py-1 px-2 m-0\",\"children\":\"Builds\"}],[\"$\",\"$L3\",\"/til\",{\"href\":\"/til\",\"className\":\"font-bold  transition-all hover:text-neutral-800 dark:hover:text-neutral-500  align-middle relative py-1 px-2 m-0\",\"children\":\"TIL\"}],[\"$\",\"$L3\",\"/essays\",{\"href\":\"/essays\",\"className\":\"font-bold  transition-all hover:text-neutral-800 dark:hover:text-neutral-500  align-middle relative py-1 px-2 m-0\",\"children\":\"Essays\"}]],[\"$\",\"div\",null,{\"className\":\"contents relative py-1 px-1 m-0\",\"children\":\"|\"}],[[\"$\",\"$L3\",\"https://github.com/jamischarles\",{\"href\":\"https://github.com/jamischarles\",\"className\":\"inline-block transition-all hover:text-neutral-800 dark:hover:text-neutral-500 flex align-middle relative py-1 px-2 m-0\",\"children\":\"GitHub\"}],[\"$\",\"$L3\",\"https://x.com/jamischarles\",{\"href\":\"https://x.com/jamischarles\",\"className\":\"inline-block transition-all hover:text-neutral-800 dark:hover:text-neutral-500 flex align-middle relative py-1 px-2 m-0\",\"children\":\"Twitter\"}]]]}]]}]}]}]}],[\"$\",\"div\",null,{\"className\":\"basis-3/4 content-center\",\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"section\",null,{\"children\":[[\"$\",\"h1\",null,{\"className\":\"mb-8 text-2xl font-semibold tracking-tighter\",\"children\":\"404 - Page Not Found\"}],[\"$\",\"p\",null,{\"className\":\"mb-4\",\"children\":\"The page you are looking for does not exist.\"}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"footer\",null,{\"className\":\"mb-16 mt-16 border-t border-neutral-200 pt-8\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-4 md:flex-row md:gap-12\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"text-xs font-mono text-neutral-400 mb-2\",\"children\":\"More\"}],[\"$\",\"ul\",null,{\"className\":\"font-sm flex flex-col space-y-1 text-neutral-600 dark:text-neutral-300\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"$\",\"$L3\",null,{\"className\":\"flex items-center transition-all hover:text-neutral-800 dark:hover:text-neutral-100\",\"href\":\"/til\",\"children\":[[\"$\",\"svg\",null,{\"width\":\"12\",\"height\":\"12\",\"viewBox\":\"0 0 12 12\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"children\":[\"$\",\"path\",null,{\"d\":\"M2.07102 11.3494L0.963068 10.2415L9.2017 1.98864H2.83807L2.85227 0.454545H11.8438V9.46023H10.2955L10.3097 3.09659L2.07102 11.3494Z\",\"fill\":\"currentColor\"}]}],\"$L6\"]}]}],\"$L7\",\"$L8\"]}]]}],\"$L9\"]}],\"$La\"]}],\"$Lb\",\"$Lc\",\"$Ld\"]}]}]}]]}]}]]}],{\"children\":[\"__PAGE__\",\"$Le\",{},null,false]},null,false],\"$Lf\",false]],\"m\":\"$undefined\",\"G\":[\"$10\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"11:I[7025,[\"229\",\"static/chunks/9da6db1e-85033184608e4611.js\",\"619\",\"static/chunks/619-ba102abea3e3d0e4.js\",\"337\",\"static/chunks/337-a7723cf83adcdc50.js\",\"177\",\"static/chunks/app/layout-ce7b881e17c46f10.js\"],\"Analytics\"]\n12:I[1130,[\"229\",\"static/chunks/9da6db1e-85033184608e4611.js\",\"619\",\"static/chunks/619-ba102abea3e3d0e4.js\",\"337\",\"static/chunks/337-a7723cf83adcdc50.js\",\"177\",\"static/chunks/app/layout-ce7b881e17c46f10.js\"],\"SpeedInsights\"]\n13:I[1402,[\"229\",\"static/chunks/9da6db1e-85033184608e4611.js\",\"619\",\"static/chunks/619-ba102abea3e3d0e4.js\",\"337\",\"static/chunks/337-a7723cf83adcdc50.js\",\"177\",\"static/chunks/app/layout-ce7b881e17c46f10.js\"],\"\"]\n14:I[1356,[\"619\",\"static/chunks/619-ba102abea3e3d0e4.js\",\"356\",\"static/chunks/356-1143d17a0ca27254.js\",\"974\",\"static/chunks/app/page-8edc6fa7ae41533d.js\"],\"Image\"]\n15:I[4431,[],\"OutletBoundary\"]\n17:I[5278,[],\"AsyncMetadataOutlet\"]\n19:I[4431,[],\"ViewportBoundary\"]\n1b:I[4431,[],\"MetadataBoundary\"]\n1c:\"$Sreact.suspense\"\n6:[\"$\",\"p\",null,{\"className\":\"ml-2 h-7\",\"children\":\"TIL\"}]\n7:[\"$\",\"li\",null,{\"children\":[\"$\",\"$L3\",null,{\"className\":\"flex items-center transition-all hover:text-neutral-800 dark:hover:text-neutral-100\",\"href\":\"/at-work\",\"children\":[[\"$\",\"svg\",null,{\"width\":\"12\",\"height\":\"12\",\"viewBox\":\"0 0 12 12\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"children\":[\"$\",\"path\",null,{\"d\":\"M2.07102 11.3494L0.963068 10.2415L9.2017 1.98864H2.83807L2.85227 0.454545H11.8438V9.46023H10.2955L10.3097 3.09659L2.07102 11.3494Z\",\"fill\":\"currentColor\"}]}],[\"$\",\"p\",null,{\"className\":\"ml-2 h-7\",\"children\":\"At Work\"}]]}]}]\n8:[\"$\",\"li\",null,{\"children\":[\"$\",\"$L3\",null,{\"className\":\"flex items-center transition-all hover:text-neutral-800 dark:hover:text-neutral-100\",\"href\":\"/rss\",\"children\":[[\"$\",\"svg\",null,{\"width\":\"12\",\"height\":\"12\",\"viewBox\":\"0 0 12 12\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"children\":[\"$\",\"path\",null,{\"d\":\"M2.07102 11.3494L0.963068 10.2415L9.2017 1.98864H2.83807L2.85227 0.454545H11.8438V9.46023H10.2955L10.3097 3.09659L2.07102 11.3494Z\",\"fill\":\"cu"])</script><script>self.__next_f.push([1,"rrentColor\"}]}],[\"$\",\"p\",null,{\"className\":\"ml-2 h-7\",\"children\":\"RSS\"}]]}]}]\n"])</script><script>self.__next_f.push([1,"9:[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"text-xs font-mono text-neutral-400 mb-2\",\"children\":\"Elsewhere\"}],[\"$\",\"ul\",null,{\"className\":\"font-sm flex flex-col space-y-1 text-neutral-600 dark:text-neutral-300\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"$\",\"a\",null,{\"className\":\"flex items-center transition-all hover:text-neutral-800 dark:hover:text-neutral-100\",\"rel\":\"noopener noreferrer\",\"target\":\"_blank\",\"href\":\"https://github.com/jamischarles\",\"children\":[[\"$\",\"svg\",null,{\"width\":\"12\",\"height\":\"12\",\"viewBox\":\"0 0 12 12\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"children\":[\"$\",\"path\",null,{\"d\":\"M2.07102 11.3494L0.963068 10.2415L9.2017 1.98864H2.83807L2.85227 0.454545H11.8438V9.46023H10.2955L10.3097 3.09659L2.07102 11.3494Z\",\"fill\":\"currentColor\"}]}],[\"$\",\"p\",null,{\"className\":\"ml-2 h-7\",\"children\":\"GitHub\"}]]}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"a\",null,{\"className\":\"flex items-center transition-all hover:text-neutral-800 dark:hover:text-neutral-100\",\"rel\":\"noopener noreferrer\",\"target\":\"_blank\",\"href\":\"https://x.com/jamischarles\",\"children\":[[\"$\",\"svg\",null,{\"width\":\"12\",\"height\":\"12\",\"viewBox\":\"0 0 12 12\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"children\":[\"$\",\"path\",null,{\"d\":\"M2.07102 11.3494L0.963068 10.2415L9.2017 1.98864H2.83807L2.85227 0.454545H11.8438V9.46023H10.2955L10.3097 3.09659L2.07102 11.3494Z\",\"fill\":\"currentColor\"}]}],[\"$\",\"p\",null,{\"className\":\"ml-2 h-7\",\"children\":\"Twitter\"}]]}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"a\",null,{\"className\":\"flex items-center transition-all hover:text-neutral-800 dark:hover:text-neutral-100\",\"rel\":\"noopener noreferrer\",\"target\":\"_blank\",\"href\":\"https://www.linkedin.com/in/jamischarles/\",\"children\":[[\"$\",\"svg\",null,{\"width\":\"12\",\"height\":\"12\",\"viewBox\":\"0 0 12 12\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"children\":[\"$\",\"path\",null,{\"d\":\"M2.07102 11.3494L0.963068 10.2415L9.2017 1.98864H2.83807L2.85227 0.454545H11.8438V9.46023H10.2955L10.3097 3.09659L2.07102 11.3494Z\",\"fill\":\"currentColor\"}]}],[\"$\",\"p\",null,{\"className\":\"ml-2 h-7\",\"children\":\"LinkedIn\"}]]}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"a\",null,{\"className\":\"flex items-center transition-all hover:text-neutral-800 dark:hover:text-neutral-100\",\"rel\":\"noopener noreferrer\",\"target\":\"_blank\",\"href\":\"/jamis_resume.pdf\",\"children\":[[\"$\",\"svg\",null,{\"width\":\"12\",\"height\":\"12\",\"viewBox\":\"0 0 12 12\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"children\":[\"$\",\"path\",null,{\"d\":\"M2.07102 11.3494L0.963068 10.2415L9.2017 1.98864H2.83807L2.85227 0.454545H11.8438V9.46023H10.2955L10.3097 3.09659L2.07102 11.3494Z\",\"fill\":\"currentColor\"}]}],[\"$\",\"p\",null,{\"className\":\"ml-2 h-7\",\"children\":\"Resume\"}]]}]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"a:[\"$\",\"p\",null,{\"className\":\"mt-8 text-neutral-400 text-xs font-mono\",\"children\":[\"© \",2026,\" Jamis Charles\"]}]\nb:[\"$\",\"$L11\",null,{}]\nc:[\"$\",\"$L12\",null,{}]\nd:[\"$\",\"$L13\",null,{\"defer\":true,\"src\":\"https://getfrostline.com/t.js\",\"data-key\":\"fl_2c6636aabd8c8176e62a3ba49b96e1e6\",\"strategy\":\"afterInteractive\"}]\n"])</script><script>self.__next_f.push([1,"e:[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"section\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col md:flex-row items-start gap-8 mt-8\",\"children\":[[\"$\",\"$L14\",null,{\"src\":\"/images/blog_avatar.jpg\",\"className\":\"rounded-2xl flex-none\",\"alt\":\"Jamis Charles\",\"height\":192,\"width\":192,\"priority\":true}],[\"$\",\"div\",null,{\"className\":\"self-center\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-3xl font-black tracking-tight\",\"children\":\"Jamis Charles\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-lg text-neutral-600 font-mono\",\"children\":\"I build things. No drama. Just craft.\"}],[\"$\",\"$L3\",null,{\"href\":\"/builds\",\"className\":\"inline-block mt-4 px-4 py-2 text-sm font-mono font-bold bg-black text-white rounded hover:bg-neutral-800 transition-colors\",\"children\":\"See what I've built\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-16\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-baseline justify-between mb-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-bold tracking-tight\",\"children\":\"Latest Builds\"}],[\"$\",\"$L3\",null,{\"href\":\"/builds\",\"className\":\"text-sm font-mono text-neutral-500 hover:text-black transition-colors\",\"children\":\"View all →\"}]]}],[\"$\",\"div\",null,{\"className\":\"grid gap-4 sm:grid-cols-2 lg:grid-cols-3\",\"children\":[[\"$\",\"$L3\",\"pierre-notabot\",{\"href\":\"/builds/pierre-notabot\",\"className\":\"flex items-start gap-3 p-4 border border-neutral-200 rounded-lg hover:border-neutral-400 transition-colors group\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-none w-10 h-10 rounded-xl overflow-hidden rotate-3 shadow-sm group-hover:rotate-6 transition-transform\",\"style\":{\"borderColor\":\"#1e3a5f30\",\"borderWidth\":\"1px\"},\"children\":[\"$\",\"img\",null,{\"src\":\"/builds/pierre-icon.svg\",\"alt\":\"Pierre Notabot icon\",\"width\":40,\"height\":40,\"className\":\"w-full h-full object-cover\"}]}],[\"$\",\"div\",null,{\"className\":\"min-w-0\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-bold font-mono\",\"children\":\"Pierre Notabot\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-neutral-800 mt-0.5 font-mono leading-snug\",\"children\":\"What if AI education had personality instead of dry docs?\"}]]}]]}],[\"$\",\"$L3\",\"ration\",{\"href\":\"/builds/ration\",\"className\":\"flex items-start gap-3 p-4 border border-neutral-200 rounded-lg hover:border-neutral-400 transition-colors group\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-none w-10 h-10 rounded-xl overflow-hidden rotate-3 shadow-sm group-hover:rotate-6 transition-transform\",\"style\":{\"borderColor\":\"#2d6a4f30\",\"borderWidth\":\"1px\"},\"children\":[\"$\",\"img\",null,{\"src\":\"/builds/ration-icon.png\",\"alt\":\"Ration icon\",\"width\":40,\"height\":40,\"className\":\"w-full h-full object-cover\"}]}],[\"$\",\"div\",null,{\"className\":\"min-w-0\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-bold font-mono\",\"children\":\"Ration\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-neutral-800 mt-0.5 font-mono leading-snug\",\"children\":\"What if you could ration your scrolling instead of going cold-turkey?\"}]]}]]}],[\"$\",\"$L3\",\"respite\",{\"href\":\"/builds/respite\",\"className\":\"flex items-start gap-3 p-4 border border-neutral-200 rounded-lg hover:border-neutral-400 transition-colors group\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex-none w-10 h-10 rounded-xl overflow-hidden rotate-3 shadow-sm group-hover:rotate-6 transition-transform\",\"style\":{\"borderColor\":\"#6b5b9530\",\"borderWidth\":\"1px\"},\"children\":[\"$\",\"img\",null,{\"src\":\"/builds/respite-icon.png\",\"alt\":\"Respite icon\",\"width\":40,\"height\":40,\"className\":\"w-full h-full object-cover\"}]}],[\"$\",\"div\",null,{\"className\":\"min-w-0\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-bold font-mono\",\"children\":\"Respite\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-neutral-800 mt-0.5 font-mono leading-snug\",\"children\":\"What if your computer enforced the breaks you keep skipping?\"}]]}]]}]]}]]}]]}],null,[\"$\",\"$L15\",null,{\"children\":[\"$L16\",[\"$\",\"$L17\",null,{\"promise\":\"$@18\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"f:[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L19\",null,{\"children\":\"$L1a\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$L1b\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$1c\",null,{\"fallback\":null,\"children\":\"$L1d\"}]}]}]]}]\n"])</script><script>self.__next_f.push([1,"1a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n16:null\n"])</script><script>self.__next_f.push([1,"18:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Jamis Charles\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"I build things. No drama. Just craft.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"3\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:title\",\"content\":\"Jamis Charles\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:description\",\"content\":\"I build things. No drama. Just craft.\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:url\",\"content\":\"https://jamischarles.com\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:site_name\",\"content\":\"Jamis Charles\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"10\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:creator\",\"content\":\"@jamischarles\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:title\",\"content\":\"Jamis Charles\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"I build things. No drama. Just craft.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"1d:\"$18:metadata\"\n"])</script></body></html>