<!DOCTYPE html><html lang="en" data-theme="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5, viewport-fit=cover"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Ffavicon%2Flogo-192x192.png&amp;w=32&amp;q=75 1x, /_next/image?url=%2Ffavicon%2Flogo-192x192.png&amp;w=64&amp;q=75 2x"/><link rel="stylesheet" href="/_next/static/chunks/0lua80ibtlz-p.css" nonce="YzUzOTU0NTQtZTM3My00MD" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/01449l62f7n30.css" nonce="YzUzOTU0NTQtZTM3My00MD" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/3gacd78ovyfwh.css" nonce="YzUzOTU0NTQtZTM3My00MD" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" nonce="YzUzOTU0NTQtZTM3My00MD" href="/_next/static/chunks/1ct4zu42qfxxb.js"/><script src="/_next/static/chunks/1rm737diirj6u.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/23kbcgtrk0klm.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/27mov6qantgkj.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/2t3cu_y24z8j6.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/3vf_dji0_pb81.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/turbopack-3ns0ovfhuy_mq.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/2yaf1cpbq9igh.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/0yibc-y1yvm15.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/3ka19vjd75lu3.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/3mxaz-vpv9256.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/23d_l7iu_9h-0.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/3c_zy1ewvdsiw.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/0meiyso28-u1g.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/2vwjux28gsejc.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/151nczr84id04.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/1ela8d9patr9e.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/44xaewm67819g.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/0wywmoaepm1jl.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/2ltdkm6w0insi.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/1_3hgur5fhnyi.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/1cm3l6an3y--_.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/0r4w0vc5mqztt.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/0m4tlxszw0ig-.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/0d8ukywq3jy7r.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/10zshk6d1sa0y.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/12e3pp_iug6v_.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><script src="/_next/static/chunks/0d__wi3r-eklm.js" async="" nonce="YzUzOTU0NTQtZTM3My00MD"></script><link rel="preload" href="/sw-unregister.js" as="script" nonce="YzUzOTU0NTQtZTM3My00MD"/><link rel="preload" href="https://umami.pythought.com/script.js" as="script" nonce="YzUzOTU0NTQtZTM3My00MD"/><meta name="next-size-adjust" content=""/><link rel="service-desc" type="application/yaml" href="/api/openapi.yaml"/><link rel="service-doc" type="text/html" href="/docs/api"/><meta name="google" content="notranslate"/><meta name="theme-color" content="#fafaf7" media="(prefers-color-scheme: light)"/><meta name="theme-color" content="#0c1118" media="(prefers-color-scheme: dark)"/><title>Pythoughts Blog Feed · Pythoughts</title><meta name="description" content="Discover the latest public posts and independent blogs across Pythoughts."/><link rel="author" href="https://pythoughts.com"/><meta name="author" content="Pythoughts"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="keywords" content="publishing platform,blog,writing,technology,science,philosophy,creative writing,independent creators"/><meta name="creator" content="Pythoughts"/><meta name="publisher" content="Pythoughts"/><meta name="robots" content="index, follow"/><meta name="googlebot" content="index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"/><meta name="category" content="publishing"/><link rel="canonical" href="https://pythoughts.com/blogs"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="Pythoughts"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><meta property="og:title" content="Pythoughts Blog Feed"/><meta property="og:description" content="Discover the latest public posts and independent blogs across Pythoughts."/><meta property="og:url" content="https://pythoughts.com/blogs"/><meta property="og:image" content="https://pythoughts.com/blogs/opengraph-image-sxch5r?6002fa45459bded8"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Pythoughts - Discover Fresh Thinking"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@pythoughts"/><meta name="twitter:creator" content="@pythoughts"/><meta name="twitter:title" content="Pythoughts"/><meta name="twitter:description" content="A publishing platform for thoughtful writing. Discover articles on technology, science, and philosophy."/><meta name="twitter:image" content="https://pythoughts.com/blogs/twitter-image-sxch5r?1489675ca56b3d26"/><meta name="twitter:image:alt" content="Pythoughts - Discover Fresh Thinking"/><meta name="twitter:image:type" content="image/png"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="630"/><link rel="icon" href="/favicon/favicon-16x16.png" sizes="16x16" type="image/png"/><link rel="icon" href="/favicon/favicon-32x32.png" sizes="32x32" type="image/png"/><link rel="icon" href="/favicon/favicon.ico" sizes="any"/><link rel="apple-touch-icon" href="/favicon/logo-192x192.png" sizes="192x192" type="image/png"/><script nonce="YzUzOTU0NTQtZTM3My00MD">(self.__next_s=self.__next_s||[]).push([0,{"nonce":"YzUzOTU0NTQtZTM3My00MD","children":"(function(){\n              try {\n                var saved = localStorage.getItem('pythoughts-theme');\n                var valid = ['dark', 'light', 'system'];\n                var pref = (saved \u0026\u0026 valid.indexOf(saved) !== -1) ? saved : 'system';\n                var t = pref === 'system'\n                  ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light')\n                  : pref;\n                document.documentElement.dataset.theme = t;\n                var c = { dark: '#0c1118', light: '#fafaf7' };\n                var m = document.querySelector('meta[name=\"theme-color\"]:not([media])');\n                if (!m) { m = document.createElement('meta'); m.name = 'theme-color'; document.head.appendChild(m); }\n                m.content = c[t];\n                var fs = localStorage.getItem('pythoughts-font-scale');\n                if (fs) { var n = Number(fs); if (!isNaN(n) \u0026\u0026 n \u003e= 0.25 \u0026\u0026 n \u003c= 1.75) { document.documentElement.style.setProperty('--blog-font-scale', fs); } }\n              } catch(e) { document.documentElement.dataset.theme = 'dark'; }\n            })();","id":"theme-bootstrap"}])</script><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule="" nonce="YzUzOTU0NTQtZTM3My00MD"></script></head><body class="satoshi_35a8106d-module__6R4z1G__variable playfair_98402459-module__0G2y1G__variable charter_1957e64a-module__gd2c9W__variable dmserifdisplay_96d22e15-module__y-MTJW__variable roboto_253838c5-module__guxh-G__variable font-sans antialiased notranslate" translate="no"><div hidden=""><!--$--><!--/$--></div><script id="site-structured-data" type="application/ld+json" nonce="YzUzOTU0NTQtZTM3My00MD">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://pythoughts.com/#organization","name":"Pythoughts","url":"https://pythoughts.com","logo":{"@type":"ImageObject","@id":"https://pythoughts.com/#logo","url":"https://pythoughts.com/favicon/logo-192x192.png","width":192,"height":192,"caption":"Pythoughts"},"description":"A publishing platform for thoughtful writing. Discover articles on technology, science, philosophy, and creative writing from independent creators.","sameAs":["https://twitter.com/pythoughts"]},{"@type":"WebSite","@id":"https://pythoughts.com/#website","url":"https://pythoughts.com","name":"Pythoughts","description":"A publishing platform for thoughtful writing. Discover articles on technology, science, philosophy, and creative writing from independent creators.","publisher":{"@id":"https://pythoughts.com/#organization"},"inLanguage":"en-US","potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://pythoughts.com/feed?q={search_term_string}"},"query-input":"required name=search_term_string"}},{"@type":"SoftwareApplication","@id":"https://pythoughts.com/#software","name":"Pythoughts","applicationCategory":"PublishingApplication","operatingSystem":"Web","url":"https://pythoughts.com","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"publisher":{"@id":"https://pythoughts.com/#organization"},"description":"A web publishing platform with public blogs and scoped REST APIs."}]}</script><script nonce="YzUzOTU0NTQtZTM3My00MD">(self.__next_s=self.__next_s||[]).push(["/sw-unregister.js",{}])</script><a href="#main-content" class="sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z-50 focus:px-4 focus:py-2 focus:bg-[var(--brand)] focus:text-white focus:rounded focus:shadow-lg focus:outline-none focus:ring-2 focus:ring-[var(--brand)] focus:ring-offset-2">Skip to main content</a><style nonce="YzUzOTU0NTQtZTM3My00MD">#nprogress{pointer-events:none}#nprogress .bar{background:var(--brand);position:fixed;z-index:1600;top: 0;left:0;width:100%;height:3px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px var(--brand),0 0 5px var(--brand);opacity:1;-webkit-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translate(0px,-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1600;top: 15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:var(--brand);border-left-color:var(--brand);border-radius:50%;-webkit-animation:nprogress-spinner 400ms linear infinite;animation:nprogress-spinner 400ms linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}</style><div class="relative flex min-h-screen flex-col"><header data-main-nav="true" class="fixed inset-x-0 top-0 z-50 px-4 transition-transform duration-300 ease-out" style="padding-top:calc(var(--safe-area-top, 0px) + 12px);padding-bottom:0;transition:padding 300ms cubic-bezier(0.4, 0, 0.2, 1)"><div class="mx-auto flex w-full items-center justify-between px-4 sm:px-5 py-3 bg-[#F5F5F0] dark:bg-[#1c1f24] border border-black/50 dark:border-white/15" style="max-width:80rem;border-radius:14px;box-shadow:0 4px 20px rgba(0,0,0,0.08), 0 1px 3px rgba(0,0,0,0.04);transition:max-width 350ms cubic-bezier(0.4, 0, 0.2, 1), border-radius 250ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1), background-color 200ms ease-out, border-color 200ms ease-out, padding 250ms cubic-bezier(0.4, 0, 0.2, 1)"><button type="button" class="lg:hidden p-2.5 min-w-[44px] min-h-[44px] flex items-center justify-center rounded-lg shrink-0 text-[var(--text-muted)] hover:text-[var(--text)] hover:bg-[var(--surface-muted)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface)] transition-colors duration-200" aria-label="Open navigation menu" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-_R_1cntdlb_" data-state="closed"><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-menu h-5 w-5" aria-hidden="true" focusable="false"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg></button><a class="group brand-logo-link flex items-center gap-3 select-none cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface)] rounded-lg flex-1 lg:flex-none justify-center lg:justify-start" href="/"><div class="shrink-0" tabindex="0"><img alt="Pythoughts logo" width="28" height="28" decoding="async" data-nimg="1" class="rounded-md" style="color:transparent" srcSet="/_next/image?url=%2Ffavicon%2Flogo-192x192.png&amp;w=32&amp;q=75 1x, /_next/image?url=%2Ffavicon%2Flogo-192x192.png&amp;w=64&amp;q=75 2x" src="/_next/image?url=%2Ffavicon%2Flogo-192x192.png&amp;w=64&amp;q=75"/></div><div class="flex flex-col leading-none select-none lg:hidden transition-opacity duration-200 group-hover:opacity-80 [&amp;&gt;span]:hidden"><svg viewBox="0 0 490 112" width="96" height="22" class="brand-logo-svg" role="img" aria-label="Pythoughts"><path d="M0 0 C5.81660061 -0.09944869 11.63269792 -0.1717413 17.44995117 -0.21972656 C19.4256249 -0.23974646 21.40124009 -0.26697092 23.37670898 -0.30175781 C26.2291515 -0.35070207 29.08080549 -0.37306525 31.93359375 -0.390625 C32.80584091 -0.41127014 33.67808807 -0.43191528 34.57676697 -0.45318604 C41.85862277 -0.45580451 47.89408803 1.35997482 53.5 6.125 C56.97860152 10.4732519 56 11.11885075 56 18 C64.25 18 72.5 18 81 18 C80.67 19.32 80.34 20.64 80 22 C78.68 22 77.36 22 76 22 C78.35523105 28.18412623 80.96847779 34.10866857 84.046875 39.96875 C85 42 85 42 85 44 C85.66 44 86.32 44 87 44 C87.18175781 43.43152344 87.36351563 42.86304688 87.55078125 42.27734375 C88.77627252 38.51288594 90.0213006 34.84423014 91.6875 31.25 C92.93340478 28.16490245 93.29740169 26.27141856 93 23 C91.35 22.34 89.7 21.68 88 21 C88 20.01 88 19.02 88 18 C93.94 18 99.88 18 106 18 C106 18.99 106 19.98 106 21 C107.65 21.33 109.3 21.66 111 22 C111 18.04 111 14.08 111 10 C114.96 10 118.92 10 123 10 C123 13.96 123 17.92 123 22 C126.63 22 130.26 22 134 22 C134 23.32 134 24.64 134 26 C130.37 26 126.74 26 123 26 C123.14050068 30.1044136 123.2871601 34.20844525 123.4375 38.3125 C123.47681641 39.47974609 123.51613281 40.64699219 123.55664062 41.84960938 C123.59853516 42.96787109 123.64042969 44.08613281 123.68359375 45.23828125 C123.72025146 46.26993408 123.75690918 47.30158691 123.79467773 48.36450195 C123.90161242 51.10748258 123.90161242 51.10748258 125 54 C128.3 54.33 131.6 54.66 135 55 C135 55.99 135 56.98 135 58 C129.2184468 60.52285958 124.33117368 61.89409705 118 61 C115.11608854 59.77280363 113.59664679 58.90944936 111.88330078 56.29785156 C110.71672641 53.26308154 110.77515683 50.73274886 110.8046875 47.484375 C110.81113281 46.23398438 110.81757812 44.98359375 110.82421875 43.6953125 C110.84935547 41.74238281 110.84935547 41.74238281 110.875 39.75 C110.88402344 38.43257812 110.89304687 37.11515625 110.90234375 35.7578125 C110.92591467 32.50502538 110.95881978 29.25260411 111 26 C108.69 26 106.38 26 104 26 C103.505 24.515 103.505 24.515 103 23 C100.34496125 25.34894646 99.05622021 27.65137541 97.6171875 30.875 C97.17673096 31.85138428 96.73627441 32.82776855 96.2824707 33.83374023 C95.81800537 34.87860596 95.35354004 35.92347168 94.875 37 C93.88719844 39.17860298 92.89891085 41.35698564 91.91015625 43.53515625 C90.51169377 46.6345383 89.11743833 49.73545711 87.73779297 52.84326172 C79.11826176 72.23453007 79.11826176 72.23453007 72 78 C68.39427296 79.20190901 65.7897565 79.32670315 62 79 C59.0625 77.4375 59.0625 77.4375 57 75 C56.50506038 71.47355518 56.31046725 69.18752863 58.125 66.0625 C61.01644441 64.42401484 62.71157811 64.49408894 66 65 C68.51629258 66.45520535 70.76381991 68.14754312 73 70 C73.89967213 68.97956651 74.76903728 67.93236572 75.625 66.875 C76.11226563 66.29492188 76.59953125 65.71484375 77.1015625 65.1171875 C78.44557782 61.94998618 77.19727405 60.15896887 76 57 C75.13895626 55.06090689 74.24419511 53.1365152 73.3203125 51.2265625 C72.80339844 50.1540625 72.28648438 49.0815625 71.75390625 47.9765625 C71.21636719 46.87054688 70.67882812 45.76453125 70.125 44.625 C69.59519531 43.52671875 69.06539063 42.4284375 68.51953125 41.296875 C67.48819892 39.1625545 66.45191787 37.0306166 65.41015625 34.90136719 C64.53610434 33.10302354 63.67641135 31.29752936 62.83984375 29.48144531 C60.83647543 25.03028002 60.83647543 25.03028002 56.75 22.5 C55.8425 22.335 54.935 22.17 54 22 C53.835 22.721875 53.67 23.44375 53.5 24.1875 C50.81848972 29.21533177 45.93262201 31.20421447 40.8125 33.3125 C35.17142053 34.32974384 29.72860649 34.1181156 24 34 C24.33 40.6 24.66 47.2 25 54 C27.31 54.99 29.62 55.98 32 57 C32 57.99 32 58.98 32 60 C21.44 60 10.88 60 0 60 C0 58.68 0 57.36 0 56 C2.64 55.67 5.28 55.34 8 55 C8 39.16 8 23.32 8 7 C5.36 5.68 2.72 4.36 0 3 C0 2.01 0 1.02 0 0 Z" class="fill-[#FA9441] dark:fill-[#fdba74]" transform="translate(16,25)"></path><path d="M0 0 C0.77714355 0.03673828 1.55428711 0.07347656 2.35498047 0.11132812 C7.90526244 0.37617779 13.45275296 0.67808722 19 1 C19 2.32 19 3.64 19 5 C16.36 5.33 13.72 5.66 11 6 C11.66 6.99 12.32 7.98 13 9 C13.34323612 12.7069501 13.29041516 15.29009627 11.875 18.75 C7.77630647 23.66843224 2.21351628 24.54442997 -3.875 25.1875 C-4.90753906 25.3102832 -4.90753906 25.3102832 -5.9609375 25.43554688 C-7.63947357 25.63370738 -9.31960481 25.81827787 -11 26 C-11 26.99 -11 27.98 -11 29 C-7.14832548 30.92583726 -2.11125468 30.33297167 2.171875 30.4296875 C8.02149388 30.66059351 12.06689382 31.80482117 16.84765625 35.3828125 C19.2596166 38.76773312 18.53054829 43.05878415 18 47 C16.10991611 51.14018375 13.34210327 52.54265905 9.3125 54.3125 C0.76830943 57.13759527 -10.19922469 57.61907285 -18.8125 54.8125 C-22.23305736 52.86747719 -24.10665297 51.45741632 -26 48 C-26 45.375 -26 45.375 -25 43 C-22.60121183 40.76664549 -19.96125343 39.37486766 -17 38 C-17.66 37.46375 -18.32 36.9275 -19 36.375 C-21 34 -21 34 -21.625 31 C-21 28 -21 28 -18 25.625 C-17.01 25.08875 -16.02 24.5525 -15 24 C-15.49371094 23.66226563 -15.98742187 23.32453125 -16.49609375 22.9765625 C-17.13675781 22.53054687 -17.77742188 22.08453125 -18.4375 21.625 C-19.07558594 21.18414062 -19.71367187 20.74328125 -20.37109375 20.2890625 C-22.41311441 18.67307492 -22.92039437 17.57884662 -23.2734375 15.01171875 C-23.45875136 10.77088228 -23.47724039 8.66524418 -20.9375 5.125 C-13.79556932 -0.04150305 -8.60094896 -0.42665361 0 0 Z" class="fill-[#161D2C] dark:fill-[#e5e7eb]" transform="translate(331,46)"></path><path d="M0 0 C4.93541168 2.53587451 8.58665679 6.48581357 11.0625 11.4375 C11.76335566 18.50612994 12.05189648 24.89754419 7.6953125 30.78515625 C2.3080269 36.23688306 -3.53274614 38.58088766 -11.125 38.75 C-18.06718088 38.67286466 -22.72215661 37.60348505 -27.71875 32.68359375 C-32.96176964 26.76046543 -33.28790666 22.81090197 -33.21484375 14.86328125 C-32.74901905 9.10936209 -30.08134638 6.36809402 -26 2.6875 C-18.45630903 -2.85480357 -8.70466474 -3.44344123 0 0 Z" class="fill-[#181E2D] dark:fill-[#e5e7eb]" transform="translate(238.9375,47.5625)"></path><path d="M0 0 C0.33 8.58 0.66 17.16 1 26 C3.64 24.35 6.28 22.7 9 21 C14.75070459 20.38659151 18.33908396 20.29868432 23 24 C25.99871985 26.5703313 26.89354411 28.63354178 27.20532227 32.63549805 C27.26030884 34.18297729 27.26030884 34.18297729 27.31640625 35.76171875 C27.35830078 36.87998047 27.40019531 37.99824219 27.44335938 39.15039062 C27.48267578 40.31763672 27.52199219 41.48488281 27.5625 42.6875 C27.60568359 43.86634766 27.64886719 45.04519531 27.69335938 46.25976562 C27.79951176 49.17305883 27.90156242 52.08643757 28 55 C29.32 55.66 30.64 56.32 32 57 C32 57.99 32 58.98 32 60 C24.41 60 16.82 60 9 60 C9 59.01 9 58.02 9 57 C10.32 56.34 11.64 55.68 13 55 C13.08696177 51.06263877 13.14037835 47.12552372 13.1875 43.1875 C13.21263672 42.06794922 13.23777344 40.94839844 13.26367188 39.79492188 C13.27817383 38.18520508 13.27817383 38.18520508 13.29296875 36.54296875 C13.31653442 35.0583313 13.31653442 35.0583313 13.34057617 33.54370117 C13.19454563 30.97665436 13.19454563 30.97665436 11.7043457 29.1418457 C9.84748096 27.65109444 9.84748096 27.65109444 6.4375 28.1875 C2.95751223 28.69215918 2.95751223 28.69215918 1 31 C0.72191783 33.52377655 0.72191783 33.52377655 0.8046875 36.4453125 C0.81113281 37.52167969 0.81757813 38.59804688 0.82421875 39.70703125 C0.84097656 40.83496094 0.85773438 41.96289062 0.875 43.125 C0.88402344 44.26066406 0.89304687 45.39632812 0.90234375 46.56640625 C0.92596902 49.37781299 0.95890987 52.18880298 1 55 C2.32 55.66 3.64 56.32 5 57 C5 57.99 5 58.98 5 60 C-2.92 60 -10.84 60 -19 60 C-19 59.01 -19 58.02 -19 57 C-17.35 56.34 -15.7 55.68 -14 55 C-14 39.16 -14 23.32 -14 7 C-15.98 6.01 -17.96 5.02 -20 4 C-20 3.01 -20 2.02 -20 1 C-17.97945706 0.82984902 -15.95854716 0.66405343 -13.9375 0.5 C-12.24947266 0.36078125 -12.24947266 0.36078125 -10.52734375 0.21875 C-7.02420162 0.00150088 -3.50987208 0 0 0 Z" class="fill-[#181F2D] dark:fill-[#e5e7eb]" transform="translate(369,25)"></path><path d="M0 0 C0.33 8.58 0.66 17.16 1 26 C3.64 24.35 6.28 22.7 9 21 C13.73952386 20.49445079 16.48260489 20.35932206 20.8125 22.1875 C24.25260427 25.03787211 26.71549148 27.46026943 27.54589844 31.9543457 C27.5668457 33.01741943 27.58779297 34.08049316 27.609375 35.17578125 C27.64160156 36.33271484 27.67382812 37.48964844 27.70703125 38.68164062 C27.72121094 39.87982422 27.73539063 41.07800781 27.75 42.3125 C27.77964844 43.53001953 27.80929688 44.74753906 27.83984375 46.00195312 C27.91041823 49.00136833 27.96317864 52.0000117 28 55 C29.32 55.66 30.64 56.32 32 57 C32 57.99 32 58.98 32 60 C24.41 60 16.82 60 9 60 C9 59.01 9 58.02 9 57 C11.475 56.505 11.475 56.505 14 56 C13.91928281 51.89501791 13.80642513 47.79153891 13.6875 43.6875 C13.65366211 41.93663086 13.65366211 41.93663086 13.61914062 40.15039062 C13.58369141 39.03212891 13.54824219 37.91386719 13.51171875 36.76171875 C13.48553467 35.73006592 13.45935059 34.69841309 13.43237305 33.63549805 C13.19749104 30.9824876 13.19749104 30.9824876 11.65551758 29.12817383 C9.91925754 27.69705454 9.91925754 27.69705454 7 28.1875 C3.85098417 28.86974913 3.85098417 28.86974913 1 31 C0.58321393 33.51896074 0.58321393 33.51896074 0.70703125 36.4453125 C0.71669922 37.52167969 0.72636719 38.59804688 0.73632812 39.70703125 C0.76146484 40.83496094 0.78660156 41.96289062 0.8125 43.125 C0.82603516 44.26066406 0.83957031 45.39632812 0.85351562 46.56640625 C0.88895681 49.37807387 0.93836483 52.18880417 1 55 C2.32 55.66 3.64 56.32 5 57 C5 57.99 5 58.98 5 60 C-2.59 60 -10.18 60 -18 60 C-18 59.01 -18 58.02 -18 57 C-15.525 56.505 -15.525 56.505 -13 56 C-13.33 39.83 -13.66 23.66 -14 7 C-15.98 6.01 -17.96 5.02 -20 4 C-20 3.01 -20 2.02 -20 1 C-17.79187393 0.83060951 -15.58348776 0.66460778 -13.375 0.5 C-12.14523438 0.4071875 -10.91546875 0.314375 -9.6484375 0.21875 C-6.43723193 0.02621519 -3.21697231 0 0 0 Z" class="fill-[#181E2D] dark:fill-[#e5e7eb]" transform="translate(170,25)"></path><path d="M0 0 C0.01981934 0.9286084 0.03963867 1.8572168 0.06005859 2.81396484 C0.13808613 6.2545052 0.22477462 9.69459891 0.31738281 13.13476562 C0.35569998 14.62458889 0.39054808 16.11450554 0.421875 17.60449219 C0.46746729 19.74448048 0.52546874 21.88382436 0.5859375 24.0234375 C0.63306885 25.95582275 0.63306885 25.95582275 0.68115234 27.92724609 C0.68458268 31.10481505 0.68458268 31.10481505 3 33 C7.13830989 32.69903201 9.51847024 32.32101984 13 30 C13.44922892 27.61390445 13.44922892 27.61390445 13.36328125 24.84375 C13.36263672 23.82152344 13.36199219 22.79929687 13.36132812 21.74609375 C13.34521484 20.67488281 13.32910156 19.60367188 13.3125 18.5 C13.31572266 17.42878906 13.31894531 16.35757813 13.32226562 15.25390625 C13.67080128 9.56814153 13.67080128 9.56814153 11 5 C8.93125966 4.3574765 8.93125966 4.3574765 7 4 C7 3.01 7 2.02 7 1 C13.53204428 0.15715558 19.25932045 0 26 0 C26.33 11.22 26.66 22.44 27 34 C28.65 34.33 30.3 34.66 32 35 C32 35.99 32 36.98 32 38 C26.06 38.33 20.12 38.66 14 39 C14 37.35 14 35.7 14 34 C13.54109375 34.34933594 13.0821875 34.69867188 12.609375 35.05859375 C11.68898438 35.74115234 11.68898438 35.74115234 10.75 36.4375 C10.14671875 36.88996094 9.5434375 37.34242187 8.921875 37.80859375 C4.73425181 40.40457967 -0.18120414 40.66721789 -5 40 C-8.4136674 38.2931663 -10.42459308 37.14787996 -12.14916992 33.70751953 C-13.06932649 30.77938858 -13.23956656 28.43084724 -13.23828125 25.3671875 C-13.25439453 24.31402344 -13.27050781 23.26085937 -13.28710938 22.17578125 C-13.3040961 19.96750711 -13.30922183 17.7591112 -13.30273438 15.55078125 C-13.32271484 14.50019531 -13.34269531 13.44960938 -13.36328125 12.3671875 C-13.36626221 11.40925293 -13.36924316 10.45131836 -13.37231445 9.46435547 C-13.7689955 6.74171449 -13.7689955 6.74171449 -16.53979492 5.35205078 C-17.3516626 4.90587402 -18.16353027 4.45969727 -19 4 C-19 3.01 -19 2.02 -19 1 C-16.95857606 0.83038614 -14.91684689 0.66444404 -12.875 0.5 C-11.16957031 0.36078125 -11.16957031 0.36078125 -9.4296875 0.21875 C-6.27300381 0.01741254 -3.16154133 -0.01551677 0 0 Z" class="fill-[#161D2B] dark:fill-[#e5e7eb]" transform="translate(272,46)"></path><path d="M0 0 C0 -0.66 0 -1.32 0 -2 C1.32 -2 2.64 -2 4 -2 C4 2.29 4 6.58 4 11 C3.01 11 2.02 11 1 11 C-0.36363208 9.02053408 -1.69418644 7.0180755 -3 5 C-5.6397492 2.26922496 -6.7567075 2.02097349 -10.625 1.6875 C-14.06994771 1.64401371 -14.06994771 1.64401371 -16 4 C-16.0825146 6.55275918 -16.0825146 6.55275918 -15 9 C-12.71500273 10.33947507 -12.71500273 10.33947507 -9.875 11.0625 C-4.24588114 12.88282545 0.54308191 14.70159275 4.9375 18.8125 C6.50389384 22.0374285 6.37239163 24.46227952 6 28 C4.088114 32.56728322 1.21721752 34.53995645 -3 37 C-6.3133541 38.10445137 -8.82695195 38.13304048 -12.3125 38.125 C-13.97732422 38.12886719 -13.97732422 38.12886719 -15.67578125 38.1328125 C-19 38 -19 38 -22.16796875 37.4296875 C-25.21625575 36.78112906 -25.21625575 36.78112906 -29 38 C-29 33.05 -29 28.1 -29 23 C-28.01 23 -27.02 23 -26 23 C-24.7890625 24.64453125 -24.7890625 24.64453125 -23.625 26.8125 C-21.51306355 30.3638217 -19.98765997 32.48089144 -16 34 C-11.34043098 34.38076718 -11.34043098 34.38076718 -7 33 C-6.59270772 30.67843403 -6.25561323 28.3431213 -6 26 C-6.64066406 25.81824219 -7.28132813 25.63648437 -7.94140625 25.44921875 C-23.72771903 20.86154216 -23.72771903 20.86154216 -28 14 C-28.90940795 9.93159602 -28.48705374 6.84297762 -26.375 3.1875 C-19.13116943 -3.48444921 -8.92835505 -3.9681578 0 0 Z" class="fill-[#181F2E] dark:fill-[#e5e7eb]" transform="translate(464,48)"></path><path d="M0 0 C3.96 0 7.92 0 12 0 C12 3.96 12 7.92 12 12 C15.63 12 19.26 12 23 12 C23 13.32 23 14.64 23 16 C19.37 16 15.74 16 12 16 C12.14050068 20.1044136 12.2871601 24.20844525 12.4375 28.3125 C12.47681641 29.47974609 12.51613281 30.64699219 12.55664062 31.84960938 C12.59853516 32.96787109 12.64042969 34.08613281 12.68359375 35.23828125 C12.72025146 36.26993408 12.75690918 37.30158691 12.79467773 38.36450195 C12.90161242 41.10748258 12.90161242 41.10748258 14 44 C17.3 44.33 20.6 44.66 24 45 C24 45.99 24 46.98 24 48 C18.2184468 50.52285958 13.33117368 51.89409705 7 51 C4.11608854 49.77280363 2.59664679 48.90944936 0.88330078 46.29785156 C-0.28327359 43.26308154 -0.22484317 40.73274886 -0.1953125 37.484375 C-0.18564453 35.60878906 -0.18564453 35.60878906 -0.17578125 33.6953125 C-0.15902344 32.39335938 -0.14226562 31.09140625 -0.125 29.75 C-0.11597656 28.43257812 -0.10695313 27.11515625 -0.09765625 25.7578125 C-0.07408533 22.50502538 -0.04118022 19.25260411 0 16 C-2.31 16 -4.62 16 -7 16 C-7 14.68 -7 13.36 -7 12 C-4.69 12 -2.38 12 0 12 C0 8.04 0 4.08 0 0 Z" class="fill-[#121928] dark:fill-[#e5e7eb]" transform="translate(127,35)"></path><path d="M0 0 C3.96 0 7.92 0 12 0 C12 3.96 12 7.92 12 12 C15.63 12 19.26 12 23 12 C23 13.32 23 14.64 23 16 C19.37 16 15.74 16 12 16 C12.11360633 20.10477592 12.24036599 24.20840664 12.375 28.3125 C12.4059375 29.47974609 12.436875 30.64699219 12.46875 31.84960938 C12.50742187 32.96787109 12.54609375 34.08613281 12.5859375 35.23828125 C12.63306885 36.7857605 12.63306885 36.7857605 12.68115234 38.36450195 C12.82674629 41.22843236 12.82674629 41.22843236 15 44 C16.96361864 44.57748803 16.96361864 44.57748803 19.125 44.6875 C20.40375 44.790625 21.6825 44.89375 23 45 C22.8125 46.875 22.8125 46.875 22 49 C17.59531221 51.84173406 12.05258975 51.54847191 7 51 C3.31376989 49.38727433 2.24645 48.369675 0 45 C-0.22705078 41.99731445 -0.22705078 41.99731445 -0.1953125 38.36328125 C-0.18564453 36.41518555 -0.18564453 36.41518555 -0.17578125 34.42773438 C-0.1590706 33.05598693 -0.14214071 31.68424214 -0.125 30.3125 C-0.11496674 28.92904282 -0.10584149 27.54557873 -0.09765625 26.16210938 C-0.07404967 22.77456548 -0.04112037 19.38736928 0 16 C-2.31 16 -4.62 16 -7 16 C-7 14.68 -7 13.36 -7 12 C-4.69 12 -2.38 12 0 12 C0 8.04 0 4.08 0 0 Z" class="fill-[#121928] dark:fill-[#e5e7eb]" transform="translate(409,35)"></path><path d="M0 0 C3.54311064 0.75385333 4.74541935 1.78341397 6.9375 4.625 C8.31223284 8.74919852 8.16141707 12.61751509 8.1875 16.9375 C8.208125 17.77990234 8.22875 18.62230469 8.25 19.49023438 C8.28223124 24.64320398 7.7913868 28.15714324 4.9375 32.625 C2.9375 34.625 2.9375 34.625 0.0625 35 C-3.0625 34.625 -3.0625 34.625 -5.375 32.875 C-8.92138676 28.14648431 -8.34725844 22.43521846 -8.4375 16.75 C-8.49357422 15.42162109 -8.49357422 15.42162109 -8.55078125 14.06640625 C-8.60981462 9.66514073 -8.52453284 6.56882373 -5.73046875 3.03125 C-3.0625 0.625 -3.0625 0.625 0 0 Z" class="fill-[#ECEFF2] dark:fill-[#1f2937]" transform="translate(228.0625,48.375)"></path><path d="M0 0 C9.22222222 0 9.22222222 0 13 3 C15.34693138 6.52039707 15.32723764 8.20057009 15.375 12.375 C15.40335938 13.49648438 15.43171875 14.61796875 15.4609375 15.7734375 C14.90647354 19.65468519 13.74152048 21.24856444 11 24 C6.94332892 25.81255516 4.55062656 26 0 26 C0 17.42 0 8.84 0 0 Z" class="fill-[#F1F2F3] dark:fill-[#1f2937]" transform="translate(40,29)"></path><path d="M0 0 C2.57385205 -0.2773676 4.87031753 -0.37287588 7.4375 -0.3125 C8.11876953 -0.31572266 8.80003906 -0.31894531 9.50195312 -0.32226562 C13.19980816 -0.28242585 14.85171631 -0.0988558 18 2 C18.66067416 8.05617978 18.66067416 8.05617978 16.6875 10.875 C12.53329328 13.64447115 7.80220443 13.59712174 3 13 C-0.0625 11.375 -0.0625 11.375 -2 9 C-2.58763244 4.8865729 -2.33043558 3.49565336 0 0 Z" class="fill-[#EBEEF1] dark:fill-[#374151]" transform="translate(320,86)"></path><path d="M0 0 C6.52464229 0.48330684 6.52464229 0.48330684 8.4375 2.5625 C9.50022182 7.16762789 9.34718817 11.3682156 8.375 15.9375 C7 18 7 18 4.0625 19 C1 19 1 19 -0.8125 17.75 C-3.6374905 13.5868561 -3.52440669 8.84202174 -3 4 C-1.5 1.4375 -1.5 1.4375 0 0 Z" class="fill-[#E3E6EA] dark:fill-[#374151]" transform="translate(323,49)"></path></svg><span class="text-[10px] font-normal tracking-[0.2em] uppercase text-[var(--text-muted)] mt-0.5">Inspire through words</span></div><div class="flex-col leading-none select-none hidden lg:flex transition-opacity duration-200 group-hover:opacity-80"><svg viewBox="0 0 490 112" width="120" height="27" class="brand-logo-svg" role="img" aria-label="Pythoughts"><path d="M0 0 C5.81660061 -0.09944869 11.63269792 -0.1717413 17.44995117 -0.21972656 C19.4256249 -0.23974646 21.40124009 -0.26697092 23.37670898 -0.30175781 C26.2291515 -0.35070207 29.08080549 -0.37306525 31.93359375 -0.390625 C32.80584091 -0.41127014 33.67808807 -0.43191528 34.57676697 -0.45318604 C41.85862277 -0.45580451 47.89408803 1.35997482 53.5 6.125 C56.97860152 10.4732519 56 11.11885075 56 18 C64.25 18 72.5 18 81 18 C80.67 19.32 80.34 20.64 80 22 C78.68 22 77.36 22 76 22 C78.35523105 28.18412623 80.96847779 34.10866857 84.046875 39.96875 C85 42 85 42 85 44 C85.66 44 86.32 44 87 44 C87.18175781 43.43152344 87.36351563 42.86304688 87.55078125 42.27734375 C88.77627252 38.51288594 90.0213006 34.84423014 91.6875 31.25 C92.93340478 28.16490245 93.29740169 26.27141856 93 23 C91.35 22.34 89.7 21.68 88 21 C88 20.01 88 19.02 88 18 C93.94 18 99.88 18 106 18 C106 18.99 106 19.98 106 21 C107.65 21.33 109.3 21.66 111 22 C111 18.04 111 14.08 111 10 C114.96 10 118.92 10 123 10 C123 13.96 123 17.92 123 22 C126.63 22 130.26 22 134 22 C134 23.32 134 24.64 134 26 C130.37 26 126.74 26 123 26 C123.14050068 30.1044136 123.2871601 34.20844525 123.4375 38.3125 C123.47681641 39.47974609 123.51613281 40.64699219 123.55664062 41.84960938 C123.59853516 42.96787109 123.64042969 44.08613281 123.68359375 45.23828125 C123.72025146 46.26993408 123.75690918 47.30158691 123.79467773 48.36450195 C123.90161242 51.10748258 123.90161242 51.10748258 125 54 C128.3 54.33 131.6 54.66 135 55 C135 55.99 135 56.98 135 58 C129.2184468 60.52285958 124.33117368 61.89409705 118 61 C115.11608854 59.77280363 113.59664679 58.90944936 111.88330078 56.29785156 C110.71672641 53.26308154 110.77515683 50.73274886 110.8046875 47.484375 C110.81113281 46.23398438 110.81757812 44.98359375 110.82421875 43.6953125 C110.84935547 41.74238281 110.84935547 41.74238281 110.875 39.75 C110.88402344 38.43257812 110.89304687 37.11515625 110.90234375 35.7578125 C110.92591467 32.50502538 110.95881978 29.25260411 111 26 C108.69 26 106.38 26 104 26 C103.505 24.515 103.505 24.515 103 23 C100.34496125 25.34894646 99.05622021 27.65137541 97.6171875 30.875 C97.17673096 31.85138428 96.73627441 32.82776855 96.2824707 33.83374023 C95.81800537 34.87860596 95.35354004 35.92347168 94.875 37 C93.88719844 39.17860298 92.89891085 41.35698564 91.91015625 43.53515625 C90.51169377 46.6345383 89.11743833 49.73545711 87.73779297 52.84326172 C79.11826176 72.23453007 79.11826176 72.23453007 72 78 C68.39427296 79.20190901 65.7897565 79.32670315 62 79 C59.0625 77.4375 59.0625 77.4375 57 75 C56.50506038 71.47355518 56.31046725 69.18752863 58.125 66.0625 C61.01644441 64.42401484 62.71157811 64.49408894 66 65 C68.51629258 66.45520535 70.76381991 68.14754312 73 70 C73.89967213 68.97956651 74.76903728 67.93236572 75.625 66.875 C76.11226563 66.29492188 76.59953125 65.71484375 77.1015625 65.1171875 C78.44557782 61.94998618 77.19727405 60.15896887 76 57 C75.13895626 55.06090689 74.24419511 53.1365152 73.3203125 51.2265625 C72.80339844 50.1540625 72.28648438 49.0815625 71.75390625 47.9765625 C71.21636719 46.87054688 70.67882812 45.76453125 70.125 44.625 C69.59519531 43.52671875 69.06539063 42.4284375 68.51953125 41.296875 C67.48819892 39.1625545 66.45191787 37.0306166 65.41015625 34.90136719 C64.53610434 33.10302354 63.67641135 31.29752936 62.83984375 29.48144531 C60.83647543 25.03028002 60.83647543 25.03028002 56.75 22.5 C55.8425 22.335 54.935 22.17 54 22 C53.835 22.721875 53.67 23.44375 53.5 24.1875 C50.81848972 29.21533177 45.93262201 31.20421447 40.8125 33.3125 C35.17142053 34.32974384 29.72860649 34.1181156 24 34 C24.33 40.6 24.66 47.2 25 54 C27.31 54.99 29.62 55.98 32 57 C32 57.99 32 58.98 32 60 C21.44 60 10.88 60 0 60 C0 58.68 0 57.36 0 56 C2.64 55.67 5.28 55.34 8 55 C8 39.16 8 23.32 8 7 C5.36 5.68 2.72 4.36 0 3 C0 2.01 0 1.02 0 0 Z" class="fill-[#FA9441] dark:fill-[#fdba74]" transform="translate(16,25)"></path><path d="M0 0 C0.77714355 0.03673828 1.55428711 0.07347656 2.35498047 0.11132812 C7.90526244 0.37617779 13.45275296 0.67808722 19 1 C19 2.32 19 3.64 19 5 C16.36 5.33 13.72 5.66 11 6 C11.66 6.99 12.32 7.98 13 9 C13.34323612 12.7069501 13.29041516 15.29009627 11.875 18.75 C7.77630647 23.66843224 2.21351628 24.54442997 -3.875 25.1875 C-4.90753906 25.3102832 -4.90753906 25.3102832 -5.9609375 25.43554688 C-7.63947357 25.63370738 -9.31960481 25.81827787 -11 26 C-11 26.99 -11 27.98 -11 29 C-7.14832548 30.92583726 -2.11125468 30.33297167 2.171875 30.4296875 C8.02149388 30.66059351 12.06689382 31.80482117 16.84765625 35.3828125 C19.2596166 38.76773312 18.53054829 43.05878415 18 47 C16.10991611 51.14018375 13.34210327 52.54265905 9.3125 54.3125 C0.76830943 57.13759527 -10.19922469 57.61907285 -18.8125 54.8125 C-22.23305736 52.86747719 -24.10665297 51.45741632 -26 48 C-26 45.375 -26 45.375 -25 43 C-22.60121183 40.76664549 -19.96125343 39.37486766 -17 38 C-17.66 37.46375 -18.32 36.9275 -19 36.375 C-21 34 -21 34 -21.625 31 C-21 28 -21 28 -18 25.625 C-17.01 25.08875 -16.02 24.5525 -15 24 C-15.49371094 23.66226563 -15.98742187 23.32453125 -16.49609375 22.9765625 C-17.13675781 22.53054687 -17.77742188 22.08453125 -18.4375 21.625 C-19.07558594 21.18414062 -19.71367187 20.74328125 -20.37109375 20.2890625 C-22.41311441 18.67307492 -22.92039437 17.57884662 -23.2734375 15.01171875 C-23.45875136 10.77088228 -23.47724039 8.66524418 -20.9375 5.125 C-13.79556932 -0.04150305 -8.60094896 -0.42665361 0 0 Z" class="fill-[#161D2C] dark:fill-[#e5e7eb]" transform="translate(331,46)"></path><path d="M0 0 C4.93541168 2.53587451 8.58665679 6.48581357 11.0625 11.4375 C11.76335566 18.50612994 12.05189648 24.89754419 7.6953125 30.78515625 C2.3080269 36.23688306 -3.53274614 38.58088766 -11.125 38.75 C-18.06718088 38.67286466 -22.72215661 37.60348505 -27.71875 32.68359375 C-32.96176964 26.76046543 -33.28790666 22.81090197 -33.21484375 14.86328125 C-32.74901905 9.10936209 -30.08134638 6.36809402 -26 2.6875 C-18.45630903 -2.85480357 -8.70466474 -3.44344123 0 0 Z" class="fill-[#181E2D] dark:fill-[#e5e7eb]" transform="translate(238.9375,47.5625)"></path><path d="M0 0 C0.33 8.58 0.66 17.16 1 26 C3.64 24.35 6.28 22.7 9 21 C14.75070459 20.38659151 18.33908396 20.29868432 23 24 C25.99871985 26.5703313 26.89354411 28.63354178 27.20532227 32.63549805 C27.26030884 34.18297729 27.26030884 34.18297729 27.31640625 35.76171875 C27.35830078 36.87998047 27.40019531 37.99824219 27.44335938 39.15039062 C27.48267578 40.31763672 27.52199219 41.48488281 27.5625 42.6875 C27.60568359 43.86634766 27.64886719 45.04519531 27.69335938 46.25976562 C27.79951176 49.17305883 27.90156242 52.08643757 28 55 C29.32 55.66 30.64 56.32 32 57 C32 57.99 32 58.98 32 60 C24.41 60 16.82 60 9 60 C9 59.01 9 58.02 9 57 C10.32 56.34 11.64 55.68 13 55 C13.08696177 51.06263877 13.14037835 47.12552372 13.1875 43.1875 C13.21263672 42.06794922 13.23777344 40.94839844 13.26367188 39.79492188 C13.27817383 38.18520508 13.27817383 38.18520508 13.29296875 36.54296875 C13.31653442 35.0583313 13.31653442 35.0583313 13.34057617 33.54370117 C13.19454563 30.97665436 13.19454563 30.97665436 11.7043457 29.1418457 C9.84748096 27.65109444 9.84748096 27.65109444 6.4375 28.1875 C2.95751223 28.69215918 2.95751223 28.69215918 1 31 C0.72191783 33.52377655 0.72191783 33.52377655 0.8046875 36.4453125 C0.81113281 37.52167969 0.81757813 38.59804688 0.82421875 39.70703125 C0.84097656 40.83496094 0.85773438 41.96289062 0.875 43.125 C0.88402344 44.26066406 0.89304687 45.39632812 0.90234375 46.56640625 C0.92596902 49.37781299 0.95890987 52.18880298 1 55 C2.32 55.66 3.64 56.32 5 57 C5 57.99 5 58.98 5 60 C-2.92 60 -10.84 60 -19 60 C-19 59.01 -19 58.02 -19 57 C-17.35 56.34 -15.7 55.68 -14 55 C-14 39.16 -14 23.32 -14 7 C-15.98 6.01 -17.96 5.02 -20 4 C-20 3.01 -20 2.02 -20 1 C-17.97945706 0.82984902 -15.95854716 0.66405343 -13.9375 0.5 C-12.24947266 0.36078125 -12.24947266 0.36078125 -10.52734375 0.21875 C-7.02420162 0.00150088 -3.50987208 0 0 0 Z" class="fill-[#181F2D] dark:fill-[#e5e7eb]" transform="translate(369,25)"></path><path d="M0 0 C0.33 8.58 0.66 17.16 1 26 C3.64 24.35 6.28 22.7 9 21 C13.73952386 20.49445079 16.48260489 20.35932206 20.8125 22.1875 C24.25260427 25.03787211 26.71549148 27.46026943 27.54589844 31.9543457 C27.5668457 33.01741943 27.58779297 34.08049316 27.609375 35.17578125 C27.64160156 36.33271484 27.67382812 37.48964844 27.70703125 38.68164062 C27.72121094 39.87982422 27.73539063 41.07800781 27.75 42.3125 C27.77964844 43.53001953 27.80929688 44.74753906 27.83984375 46.00195312 C27.91041823 49.00136833 27.96317864 52.0000117 28 55 C29.32 55.66 30.64 56.32 32 57 C32 57.99 32 58.98 32 60 C24.41 60 16.82 60 9 60 C9 59.01 9 58.02 9 57 C11.475 56.505 11.475 56.505 14 56 C13.91928281 51.89501791 13.80642513 47.79153891 13.6875 43.6875 C13.65366211 41.93663086 13.65366211 41.93663086 13.61914062 40.15039062 C13.58369141 39.03212891 13.54824219 37.91386719 13.51171875 36.76171875 C13.48553467 35.73006592 13.45935059 34.69841309 13.43237305 33.63549805 C13.19749104 30.9824876 13.19749104 30.9824876 11.65551758 29.12817383 C9.91925754 27.69705454 9.91925754 27.69705454 7 28.1875 C3.85098417 28.86974913 3.85098417 28.86974913 1 31 C0.58321393 33.51896074 0.58321393 33.51896074 0.70703125 36.4453125 C0.71669922 37.52167969 0.72636719 38.59804688 0.73632812 39.70703125 C0.76146484 40.83496094 0.78660156 41.96289062 0.8125 43.125 C0.82603516 44.26066406 0.83957031 45.39632812 0.85351562 46.56640625 C0.88895681 49.37807387 0.93836483 52.18880417 1 55 C2.32 55.66 3.64 56.32 5 57 C5 57.99 5 58.98 5 60 C-2.59 60 -10.18 60 -18 60 C-18 59.01 -18 58.02 -18 57 C-15.525 56.505 -15.525 56.505 -13 56 C-13.33 39.83 -13.66 23.66 -14 7 C-15.98 6.01 -17.96 5.02 -20 4 C-20 3.01 -20 2.02 -20 1 C-17.79187393 0.83060951 -15.58348776 0.66460778 -13.375 0.5 C-12.14523438 0.4071875 -10.91546875 0.314375 -9.6484375 0.21875 C-6.43723193 0.02621519 -3.21697231 0 0 0 Z" class="fill-[#181E2D] dark:fill-[#e5e7eb]" transform="translate(170,25)"></path><path d="M0 0 C0.01981934 0.9286084 0.03963867 1.8572168 0.06005859 2.81396484 C0.13808613 6.2545052 0.22477462 9.69459891 0.31738281 13.13476562 C0.35569998 14.62458889 0.39054808 16.11450554 0.421875 17.60449219 C0.46746729 19.74448048 0.52546874 21.88382436 0.5859375 24.0234375 C0.63306885 25.95582275 0.63306885 25.95582275 0.68115234 27.92724609 C0.68458268 31.10481505 0.68458268 31.10481505 3 33 C7.13830989 32.69903201 9.51847024 32.32101984 13 30 C13.44922892 27.61390445 13.44922892 27.61390445 13.36328125 24.84375 C13.36263672 23.82152344 13.36199219 22.79929687 13.36132812 21.74609375 C13.34521484 20.67488281 13.32910156 19.60367188 13.3125 18.5 C13.31572266 17.42878906 13.31894531 16.35757813 13.32226562 15.25390625 C13.67080128 9.56814153 13.67080128 9.56814153 11 5 C8.93125966 4.3574765 8.93125966 4.3574765 7 4 C7 3.01 7 2.02 7 1 C13.53204428 0.15715558 19.25932045 0 26 0 C26.33 11.22 26.66 22.44 27 34 C28.65 34.33 30.3 34.66 32 35 C32 35.99 32 36.98 32 38 C26.06 38.33 20.12 38.66 14 39 C14 37.35 14 35.7 14 34 C13.54109375 34.34933594 13.0821875 34.69867188 12.609375 35.05859375 C11.68898438 35.74115234 11.68898438 35.74115234 10.75 36.4375 C10.14671875 36.88996094 9.5434375 37.34242187 8.921875 37.80859375 C4.73425181 40.40457967 -0.18120414 40.66721789 -5 40 C-8.4136674 38.2931663 -10.42459308 37.14787996 -12.14916992 33.70751953 C-13.06932649 30.77938858 -13.23956656 28.43084724 -13.23828125 25.3671875 C-13.25439453 24.31402344 -13.27050781 23.26085937 -13.28710938 22.17578125 C-13.3040961 19.96750711 -13.30922183 17.7591112 -13.30273438 15.55078125 C-13.32271484 14.50019531 -13.34269531 13.44960938 -13.36328125 12.3671875 C-13.36626221 11.40925293 -13.36924316 10.45131836 -13.37231445 9.46435547 C-13.7689955 6.74171449 -13.7689955 6.74171449 -16.53979492 5.35205078 C-17.3516626 4.90587402 -18.16353027 4.45969727 -19 4 C-19 3.01 -19 2.02 -19 1 C-16.95857606 0.83038614 -14.91684689 0.66444404 -12.875 0.5 C-11.16957031 0.36078125 -11.16957031 0.36078125 -9.4296875 0.21875 C-6.27300381 0.01741254 -3.16154133 -0.01551677 0 0 Z" class="fill-[#161D2B] dark:fill-[#e5e7eb]" transform="translate(272,46)"></path><path d="M0 0 C0 -0.66 0 -1.32 0 -2 C1.32 -2 2.64 -2 4 -2 C4 2.29 4 6.58 4 11 C3.01 11 2.02 11 1 11 C-0.36363208 9.02053408 -1.69418644 7.0180755 -3 5 C-5.6397492 2.26922496 -6.7567075 2.02097349 -10.625 1.6875 C-14.06994771 1.64401371 -14.06994771 1.64401371 -16 4 C-16.0825146 6.55275918 -16.0825146 6.55275918 -15 9 C-12.71500273 10.33947507 -12.71500273 10.33947507 -9.875 11.0625 C-4.24588114 12.88282545 0.54308191 14.70159275 4.9375 18.8125 C6.50389384 22.0374285 6.37239163 24.46227952 6 28 C4.088114 32.56728322 1.21721752 34.53995645 -3 37 C-6.3133541 38.10445137 -8.82695195 38.13304048 -12.3125 38.125 C-13.97732422 38.12886719 -13.97732422 38.12886719 -15.67578125 38.1328125 C-19 38 -19 38 -22.16796875 37.4296875 C-25.21625575 36.78112906 -25.21625575 36.78112906 -29 38 C-29 33.05 -29 28.1 -29 23 C-28.01 23 -27.02 23 -26 23 C-24.7890625 24.64453125 -24.7890625 24.64453125 -23.625 26.8125 C-21.51306355 30.3638217 -19.98765997 32.48089144 -16 34 C-11.34043098 34.38076718 -11.34043098 34.38076718 -7 33 C-6.59270772 30.67843403 -6.25561323 28.3431213 -6 26 C-6.64066406 25.81824219 -7.28132813 25.63648437 -7.94140625 25.44921875 C-23.72771903 20.86154216 -23.72771903 20.86154216 -28 14 C-28.90940795 9.93159602 -28.48705374 6.84297762 -26.375 3.1875 C-19.13116943 -3.48444921 -8.92835505 -3.9681578 0 0 Z" class="fill-[#181F2E] dark:fill-[#e5e7eb]" transform="translate(464,48)"></path><path d="M0 0 C3.96 0 7.92 0 12 0 C12 3.96 12 7.92 12 12 C15.63 12 19.26 12 23 12 C23 13.32 23 14.64 23 16 C19.37 16 15.74 16 12 16 C12.14050068 20.1044136 12.2871601 24.20844525 12.4375 28.3125 C12.47681641 29.47974609 12.51613281 30.64699219 12.55664062 31.84960938 C12.59853516 32.96787109 12.64042969 34.08613281 12.68359375 35.23828125 C12.72025146 36.26993408 12.75690918 37.30158691 12.79467773 38.36450195 C12.90161242 41.10748258 12.90161242 41.10748258 14 44 C17.3 44.33 20.6 44.66 24 45 C24 45.99 24 46.98 24 48 C18.2184468 50.52285958 13.33117368 51.89409705 7 51 C4.11608854 49.77280363 2.59664679 48.90944936 0.88330078 46.29785156 C-0.28327359 43.26308154 -0.22484317 40.73274886 -0.1953125 37.484375 C-0.18564453 35.60878906 -0.18564453 35.60878906 -0.17578125 33.6953125 C-0.15902344 32.39335938 -0.14226562 31.09140625 -0.125 29.75 C-0.11597656 28.43257812 -0.10695313 27.11515625 -0.09765625 25.7578125 C-0.07408533 22.50502538 -0.04118022 19.25260411 0 16 C-2.31 16 -4.62 16 -7 16 C-7 14.68 -7 13.36 -7 12 C-4.69 12 -2.38 12 0 12 C0 8.04 0 4.08 0 0 Z" class="fill-[#121928] dark:fill-[#e5e7eb]" transform="translate(127,35)"></path><path d="M0 0 C3.96 0 7.92 0 12 0 C12 3.96 12 7.92 12 12 C15.63 12 19.26 12 23 12 C23 13.32 23 14.64 23 16 C19.37 16 15.74 16 12 16 C12.11360633 20.10477592 12.24036599 24.20840664 12.375 28.3125 C12.4059375 29.47974609 12.436875 30.64699219 12.46875 31.84960938 C12.50742187 32.96787109 12.54609375 34.08613281 12.5859375 35.23828125 C12.63306885 36.7857605 12.63306885 36.7857605 12.68115234 38.36450195 C12.82674629 41.22843236 12.82674629 41.22843236 15 44 C16.96361864 44.57748803 16.96361864 44.57748803 19.125 44.6875 C20.40375 44.790625 21.6825 44.89375 23 45 C22.8125 46.875 22.8125 46.875 22 49 C17.59531221 51.84173406 12.05258975 51.54847191 7 51 C3.31376989 49.38727433 2.24645 48.369675 0 45 C-0.22705078 41.99731445 -0.22705078 41.99731445 -0.1953125 38.36328125 C-0.18564453 36.41518555 -0.18564453 36.41518555 -0.17578125 34.42773438 C-0.1590706 33.05598693 -0.14214071 31.68424214 -0.125 30.3125 C-0.11496674 28.92904282 -0.10584149 27.54557873 -0.09765625 26.16210938 C-0.07404967 22.77456548 -0.04112037 19.38736928 0 16 C-2.31 16 -4.62 16 -7 16 C-7 14.68 -7 13.36 -7 12 C-4.69 12 -2.38 12 0 12 C0 8.04 0 4.08 0 0 Z" class="fill-[#121928] dark:fill-[#e5e7eb]" transform="translate(409,35)"></path><path d="M0 0 C3.54311064 0.75385333 4.74541935 1.78341397 6.9375 4.625 C8.31223284 8.74919852 8.16141707 12.61751509 8.1875 16.9375 C8.208125 17.77990234 8.22875 18.62230469 8.25 19.49023438 C8.28223124 24.64320398 7.7913868 28.15714324 4.9375 32.625 C2.9375 34.625 2.9375 34.625 0.0625 35 C-3.0625 34.625 -3.0625 34.625 -5.375 32.875 C-8.92138676 28.14648431 -8.34725844 22.43521846 -8.4375 16.75 C-8.49357422 15.42162109 -8.49357422 15.42162109 -8.55078125 14.06640625 C-8.60981462 9.66514073 -8.52453284 6.56882373 -5.73046875 3.03125 C-3.0625 0.625 -3.0625 0.625 0 0 Z" class="fill-[#ECEFF2] dark:fill-[#1f2937]" transform="translate(228.0625,48.375)"></path><path d="M0 0 C9.22222222 0 9.22222222 0 13 3 C15.34693138 6.52039707 15.32723764 8.20057009 15.375 12.375 C15.40335938 13.49648438 15.43171875 14.61796875 15.4609375 15.7734375 C14.90647354 19.65468519 13.74152048 21.24856444 11 24 C6.94332892 25.81255516 4.55062656 26 0 26 C0 17.42 0 8.84 0 0 Z" class="fill-[#F1F2F3] dark:fill-[#1f2937]" transform="translate(40,29)"></path><path d="M0 0 C2.57385205 -0.2773676 4.87031753 -0.37287588 7.4375 -0.3125 C8.11876953 -0.31572266 8.80003906 -0.31894531 9.50195312 -0.32226562 C13.19980816 -0.28242585 14.85171631 -0.0988558 18 2 C18.66067416 8.05617978 18.66067416 8.05617978 16.6875 10.875 C12.53329328 13.64447115 7.80220443 13.59712174 3 13 C-0.0625 11.375 -0.0625 11.375 -2 9 C-2.58763244 4.8865729 -2.33043558 3.49565336 0 0 Z" class="fill-[#EBEEF1] dark:fill-[#374151]" transform="translate(320,86)"></path><path d="M0 0 C6.52464229 0.48330684 6.52464229 0.48330684 8.4375 2.5625 C9.50022182 7.16762789 9.34718817 11.3682156 8.375 15.9375 C7 18 7 18 4.0625 19 C1 19 1 19 -0.8125 17.75 C-3.6374905 13.5868561 -3.52440669 8.84202174 -3 4 C-1.5 1.4375 -1.5 1.4375 0 0 Z" class="fill-[#E3E6EA] dark:fill-[#374151]" transform="translate(323,49)"></path></svg><span class="text-[10px] font-normal tracking-[0.2em] uppercase text-[var(--text-muted)] mt-0.5">Inspire through words</span></div></a><div class="lg:hidden w-11 shrink-0" aria-hidden="true"></div><nav class="hidden items-center gap-1 text-sm font-semibold text-slate-700 dark:text-slate-300 lg:flex" aria-label="Main navigation"><a class="relative flex items-center gap-1.5 px-3 py-2 rounded-lg transition-all duration-200 border hover:bg-slate-200/80 dark:hover:bg-white/15 hover:text-slate-900 dark:hover:text-white hover:border-slate-400/60 dark:hover:border-white/30 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface)] motion-safe:transition-all motion-reduce:transition-none text-slate-900 dark:text-white bg-slate-100 dark:bg-white/10 border-slate-300 dark:border-white/20" href="/blogs"><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-compass h-4 w-4 transition-opacity duration-200 opacity-100" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="10"></circle><path d="m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z"></path></svg>Explore<div class="absolute bottom-0 left-3 right-3 h-0.5 bg-[var(--brand)] rounded-full"></div></a><a class="relative flex items-center gap-1.5 px-3 py-2 rounded-lg transition-all duration-200 border border-transparent hover:bg-slate-200/80 dark:hover:bg-white/15 hover:text-slate-900 dark:hover:text-white hover:border-slate-400/60 dark:hover:border-white/30 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface)] motion-safe:transition-all motion-reduce:transition-none" href="/#features"><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-zap h-4 w-4 transition-opacity duration-200 opacity-80" aria-hidden="true" focusable="false"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg>Features</a><a class="relative flex items-center gap-1.5 px-3 py-2 rounded-lg transition-all duration-200 border border-transparent hover:bg-slate-200/80 dark:hover:bg-white/15 hover:text-slate-900 dark:hover:text-white hover:border-slate-400/60 dark:hover:border-white/30 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface)] motion-safe:transition-all motion-reduce:transition-none" href="/authors"><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-users-round h-4 w-4 transition-opacity duration-200 opacity-80" aria-hidden="true" focusable="false"><path d="M18 21a8 8 0 0 0-16 0"></path><circle cx="10" cy="8" r="5"></circle><path d="M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3"></path></svg>Writers</a></nav><div class="hidden lg:flex items-center gap-3"><button type="button" disabled="" aria-label="Theme settings" class="p-2.5 min-w-[44px] min-h-[44px] flex items-center justify-center rounded-lg text-[var(--text-muted)] transition-colors"><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-moon h-5 w-5" aria-hidden="true" focusable="false"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"></path></svg></button><a class="inline-flex items-center justify-center gap-2 rounded-[var(--radius-sm)] border font-medium focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--button-focus-ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-transparent disabled:pointer-events-none disabled:opacity-50 bg-transparent text-[var(--text)] h-11 px-3 text-xs border-orange-400/50 shadow-[0_0_10px_rgba(251,146,60,0.3)] hover:shadow-[0_0_20px_rgba(251,146,60,0.1)] hover:border-orange-400/70 hover:bg-orange-400/5 transition-all duration-300" href="/sign-in">Sign in</a></div></div></header><main id="main-content" class="flex-1 pt-24"><!--$?--><template id="B:0"></template><div class="mx-auto w-full px-4 sm:px-6 lg:px-8 max-w-5xl"><div class="mx-auto max-w-4xl space-y-6"><div class="flex items-center justify-between gap-4"><div class="flex gap-2"><div class="h-9 w-24 animate-pulse rounded-md bg-[var(--surface-muted)]"></div><div class="h-9 w-24 animate-pulse rounded-md bg-[var(--surface-muted)]"></div><div class="h-9 w-24 animate-pulse rounded-md bg-[var(--surface-muted)]"></div><div class="h-9 w-24 animate-pulse rounded-md bg-[var(--surface-muted)]"></div></div><div class="h-9 w-48 animate-pulse rounded-md bg-[var(--surface-muted)]"></div></div><div class="space-y-4"><div class="rounded-lg border border-[var(--border)] bg-[var(--surface)] p-6"><div class="flex items-start gap-3"><div class="h-10 w-10 animate-pulse rounded-full bg-[var(--surface-muted)]"></div><div class="flex-1 space-y-2"><div class="h-4 w-32 animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="h-3 w-48 animate-pulse rounded bg-[var(--surface-muted)]"></div></div></div><div class="mt-4 space-y-3"><div class="h-6 w-3/4 animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="space-y-2"><div class="h-4 w-full animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="h-4 w-5/6 animate-pulse rounded bg-[var(--surface-muted)]"></div></div></div><div class="mt-4 flex items-center justify-between"><div class="flex gap-4"><div class="h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]"></div></div><div class="h-4 w-20 animate-pulse rounded bg-[var(--surface-muted)]"></div></div></div><div class="rounded-lg border border-[var(--border)] bg-[var(--surface)] p-6"><div class="flex items-start gap-3"><div class="h-10 w-10 animate-pulse rounded-full bg-[var(--surface-muted)]"></div><div class="flex-1 space-y-2"><div class="h-4 w-32 animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="h-3 w-48 animate-pulse rounded bg-[var(--surface-muted)]"></div></div></div><div class="mt-4 space-y-3"><div class="h-6 w-3/4 animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="space-y-2"><div class="h-4 w-full animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="h-4 w-5/6 animate-pulse rounded bg-[var(--surface-muted)]"></div></div></div><div class="mt-4 flex items-center justify-between"><div class="flex gap-4"><div class="h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]"></div></div><div class="h-4 w-20 animate-pulse rounded bg-[var(--surface-muted)]"></div></div></div><div class="rounded-lg border border-[var(--border)] bg-[var(--surface)] p-6"><div class="flex items-start gap-3"><div class="h-10 w-10 animate-pulse rounded-full bg-[var(--surface-muted)]"></div><div class="flex-1 space-y-2"><div class="h-4 w-32 animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="h-3 w-48 animate-pulse rounded bg-[var(--surface-muted)]"></div></div></div><div class="mt-4 space-y-3"><div class="h-6 w-3/4 animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="space-y-2"><div class="h-4 w-full animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="h-4 w-5/6 animate-pulse rounded bg-[var(--surface-muted)]"></div></div></div><div class="mt-4 flex items-center justify-between"><div class="flex gap-4"><div class="h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]"></div></div><div class="h-4 w-20 animate-pulse rounded bg-[var(--surface-muted)]"></div></div></div><div class="rounded-lg border border-[var(--border)] bg-[var(--surface)] p-6"><div class="flex items-start gap-3"><div class="h-10 w-10 animate-pulse rounded-full bg-[var(--surface-muted)]"></div><div class="flex-1 space-y-2"><div class="h-4 w-32 animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="h-3 w-48 animate-pulse rounded bg-[var(--surface-muted)]"></div></div></div><div class="mt-4 space-y-3"><div class="h-6 w-3/4 animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="space-y-2"><div class="h-4 w-full animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="h-4 w-5/6 animate-pulse rounded bg-[var(--surface-muted)]"></div></div></div><div class="mt-4 flex items-center justify-between"><div class="flex gap-4"><div class="h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]"></div></div><div class="h-4 w-20 animate-pulse rounded bg-[var(--surface-muted)]"></div></div></div><div class="rounded-lg border border-[var(--border)] bg-[var(--surface)] p-6"><div class="flex items-start gap-3"><div class="h-10 w-10 animate-pulse rounded-full bg-[var(--surface-muted)]"></div><div class="flex-1 space-y-2"><div class="h-4 w-32 animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="h-3 w-48 animate-pulse rounded bg-[var(--surface-muted)]"></div></div></div><div class="mt-4 space-y-3"><div class="h-6 w-3/4 animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="space-y-2"><div class="h-4 w-full animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="h-4 w-5/6 animate-pulse rounded bg-[var(--surface-muted)]"></div></div></div><div class="mt-4 flex items-center justify-between"><div class="flex gap-4"><div class="h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]"></div><div class="h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]"></div></div><div class="h-4 w-20 animate-pulse rounded bg-[var(--surface-muted)]"></div></div></div></div><div class="flex justify-center gap-2"><div class="h-10 w-10 animate-pulse rounded-md bg-[var(--surface-muted)]"></div><div class="h-10 w-10 animate-pulse rounded-md bg-[var(--surface-muted)]"></div><div class="h-10 w-10 animate-pulse rounded-md bg-[var(--surface-muted)]"></div></div></div></div><!--/$--></main><footer class="mt-auto border-t border-[var(--border)] bg-[var(--surface)]/50"><div class="mx-auto max-w-7xl px-4 py-8 sm:px-6 lg:px-8"><nav class="flex flex-wrap items-center justify-center gap-x-6 gap-y-2 mb-4"><a class="text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]" href="/about">About</a><a class="text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]" href="/docs/terms">Terms</a><a class="text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]" href="/docs/privacy">Privacy</a><a class="text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]" href="/docs">Docs</a><a class="text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]" href="/blogs">Blog</a><a class="text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]" href="/community">Community</a></nav><p class="text-center text-sm text-[var(--text-muted)]">© <!-- -->2026<!-- --> Pythoughts</p></div></footer></div><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section><script nonce="YzUzOTU0NTQtZTM3My00MD">requestAnimationFrame(function(){$RT=performance.now()});</script><script src="/_next/static/chunks/1ct4zu42qfxxb.js" nonce="YzUzOTU0NTQtZTM3My00MD" id="_R_" async=""></script><div hidden id="S:0"><template id="P:1"></template><!--$--><!--/$--></div><script nonce="YzUzOTU0NTQtZTM3My00MD">(self.__next_f=self.__next_f||[]).push([0])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"1:\"$Sreact.fragment\"\n4:I[339756,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\"],\"default\"]\n5:I[273078,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\",\"/_next/static/chunks/0meiyso28-u1g.js\",\"/_next/static/chunks/2vwjux28gsejc.js\",\"/_next/static/chunks/151nczr84id04.js\",\"/_next/static/chunks/1ela8d9patr9e.js\",\"/_next/static/chunks/44xaewm67819g.js\",\"/_next/static/chunks/0wywmoaepm1jl.js\",\"/_next/static/chunks/2ltdkm6w0insi.js\",\"/_next/static/chunks/1_3hgur5fhnyi.js\",\"/_next/static/chunks/1cm3l6an3y--_.js\"],\"default\"]\n6:I[837457,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\"],\"default\"]\n8:I[505014,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\",\"/_next/static/chunks/0meiyso28-u1g.js\",\"/_next/static/chunks/2vwjux28gsejc.js\",\"/_next/static/chunks/151nczr84id04.js\",\"/_next/static/chunks/1ela8d9patr9e.js\",\"/_next/static/chunks/44xaewm67819g.js\",\"/_next/static/chunks/0wywmoaepm1jl.js\",\"/_next/static/chunks/2ltdkm6w0insi.js\",\"/_next/static/chunks/1_3hgur5fhnyi.js\",\"/_next/static/chunks/0r4w0vc5mqztt.js\",\"/_next/static/chunks/0m4tlxszw0ig-.js\",\"/_next/static/chunks/0d8ukywq3jy7r.js\",\"/_next/static/chunks/10zshk6d1sa0y.js\"],\"default\"]\n9:I[522016,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\",\"/_next/static/chunks/0meiyso28-u1g.js\",\"/_next/static/chunks/2vwjux28gsejc.js\",\"/_next/static/chunks/151nczr84id04.js\",\"/_next/static/chunks/1ela8d9patr9e.js\",\"/_next/static/chunks/44xaewm67819g.js\",\"/_next/static/chunks/0wywmoaepm1jl.js\",\"/_next/static/chunks/2ltdkm6w0insi.js\",\"/_next/static/chunks/1_3hgur5fhnyi.js\",\"/_next/static/chunks/0r4w0vc5mqztt.js\",\"/_next/static/chunks/0m4tlxszw0ig-.js\",\"/_next/static/chunks/0d8ukywq3jy7r.js\",\"/_next/static/chunks/10zshk6d1sa0y.js\"],\"\"]\n11:I[253348,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\",\"/_next/static/chunks/12e3pp_iug6v_.js\"],\"default\"]\n15:I[339756,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\"],\"LoadingBoundaryProvider\"]\n1d:I[897367,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\"],\"OutletBoundary\"]\n1e:\"$Sreact.suspense\"\n21:I[897367,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\"],\"ViewportBoundary\"]\n23:I[897367,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\"],\"MetadataBoundary\"]\n25:I[479520,[\""])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\"],\"\"]\n2e:I[240657,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\"],\"DevConsoleFilter\"]\n2f:I[818421,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\"],\"default\"]\n30:I[110812,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\"],\"ThemeProvider\"]\n31:I[53232,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\"],\"AppearanceProvider\"]\n32:I[87884,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\"],\"ThemeColorMeta\"]\n33:I[852042,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\"],\"ConsentProvider\"]\n34:I[296631,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\"],\"ToastProvider\"]\n35:I[133443,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\"],\"ErrorBoundaryWrapper\"]\n36:I[878563,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\"],\"AlertBanner\"]\n37:I[830394,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\"],\"UpdateBanner\"]\n38:I[408821,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\",\"/_next/static/chunks/0d__wi3r-eklm.js\"],\"default\"]\n3d:I[672016,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\"],\"ConsentBanner\"]\n3e:I[701533,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\"],\"ConsentSettings\"]\n3f:I[360804,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\",\"/_next/static/chunks/0meiyso28-u"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"1g.js\",\"/_next/static/chunks/2vwjux28gsejc.js\",\"/_next/static/chunks/151nczr84id04.js\",\"/_next/static/chunks/1ela8d9patr9e.js\",\"/_next/static/chunks/44xaewm67819g.js\",\"/_next/static/chunks/0wywmoaepm1jl.js\",\"/_next/static/chunks/2ltdkm6w0insi.js\",\"/_next/static/chunks/1_3hgur5fhnyi.js\"],\"MainNavClient\"]\n40:I[27201,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\"],\"IconMark\"]\n:HL[\"/_next/static/chunks/0lua80ibtlz-p.css\",\"style\",{\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}]\n:HL[\"/_next/static/chunks/01449l62f7n30.css\",\"style\",{\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}]\n:HL[\"/_next/static/chunks/3gacd78ovyfwh.css\",\"style\",{\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}]\n:HL[\"/_next/static/media/Satoshi_Variable-s.p.2ta4m073o532p.woff2\",\"font\",{\"crossOrigin\":\"\",\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/Satoshi_VariableItalic-s.p.3w48syjfdtm3_.woff2\",\"font\",{\"crossOrigin\":\"\",\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/charter_bold-s.p.1_zw812dsp0gs.woff2\",\"font\",{\"crossOrigin\":\"\",\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/charter_bold_italic-s.p.36q48wqt724c4.woff2\",\"font\",{\"crossOrigin\":\"\",\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/charter_italic-s.p.2vp80fgwi5d9y.woff2\",\"font\",{\"crossOrigin\":\"\",\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/charter_regular-s.p.30wo2tiulwmjc.woff2\",\"font\",{\"crossOrigin\":\"\",\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\",\"type\":\"font/woff2\"}]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"blogs\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"(feed)\",{\"children\":[\"blogs\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",4]},\"$undefined\",\"$undefined\",8]},\"$undefined\",\"$undefined\",24],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0lua80ibtlz-p.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/01449l62f7n30.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3gacd78ovyfwh.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"async\":true,\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0yibc-y1yvm15.js\",\"async\":true,\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/3ka19vjd75lu3.js\",\"async\":true,\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/3mxaz-vpv9256.js\",\"async\":true,\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"async\":true,\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/_next/static/chunks/3c_zy1ewvdsiw.js\",\"async\":true,\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}]],\"$L2\"]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0meiyso28-u1g.js\",\"async\":true,\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/2vwjux28gsejc.js\",\"async\":true,\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/151nczr84id04.js\",\"async\":true,\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/1ela8d9patr9e.js\",\"async\":true,\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/44xaewm67819g.js\",\"async\":true,\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/_next/static/chunks/0wywmoaepm1jl.js\",\"async\":true,\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/_next/static/chunks/2ltdkm6w0insi.js\",\"async\":true,\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}],[\"$\",\"script\",\"script-7\",{\"src\":\"/_next/static/chunks/1_3hgur5fhnyi.js\",\"async\":true,\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}]],[\"$\",\"div\",null,{\"className\":\"relative flex min-h-screen flex-col\",\"children\":[\"$L3\",[\"$\",\"main\",null,{\"id\":\"main-content\",\"className\":\"flex-1 pt-24\",\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$5\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/1cm3l6an3y--_.js\",\"async\":true}]],\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"relative flex min-h-screen flex-col\",\"children\":[\"$L7\",[\"$\",\"main\",null,{\"id\":\"main-content\",\"className\":\"flex-1 pt-24\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex min-h-[60vh] flex-col items-center justify-center px-4 text-center\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-6 flex h-20 w-20 items-center justify-center rounded-full bg-[var(--muted)]\",\"children\":[\"$\",\"$L8\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\",\"key\":\"1oefj6\"}],[\"path\",{\"d\":\"M12 17h.01\",\"key\":\"p32p05\"}],[\"path\",{\"d\":\"M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3\",\"key\":\"mhlwft\"}]],\"className\":\"lucide-file-question-mark h-10 w-10 text-[var(--muted-foreground)]\",\"aria-hidden\":\"true\",\"focusable\":\"false\"}]}],[\"$\",\"h1\",null,{\"className\":\"mb-2 text-3xl font-bold\",\"children\":\"Page not found\"}],[\"$\",\"p\",null,{\"className\":\"mb-8 max-w-md text-[var(--muted-foreground)]\",\"children\":\"The page you're looking for doesn't exist or has been moved.\"}],[\"$\",\"div\",null,{\"className\":\"flex gap-3\",\"children\":[[\"$\",\"$L9\",null,{\"href\":\"/blogs\",\"children\":\"Browse Feed\",\"className\":\"inline-flex items-center justify-center gap-2 rounded-[var(--radius-sm)] border font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--button-focus-ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-transparent disabled:pointer-events-none disabled:opacity-50 border-transparent bg-[var(--button-primary-bg)] text-[var(--button-primary-text)] hover:bg-[var(--button-primary-bg-hover)] h-10 min-h-[44px] px-4 text-sm\",\"ref\":null}],\"$La\"]}]]}]}],\"$Lb\"]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],\"$Lc\"]}]]}],{\"children\":[\"$Ld\",{\"children\":[\"$Le\",{},null,false,null]},null,false,\"$@f\"]},null,false,null]},null,false,null],\"$L10\",false]],\"m\":\"$undefined\",\"G\":[\"$11\",[\"$L12\",\"$L13\",\"$L14\"]],\"S\":false,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"2pluamOTYdwdseK6Rv6Ow\"}\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"a:[\"$\",\"$L9\",null,{\"href\":\"/\",\"children\":\"Go Home\",\"className\":\"inline-flex items-center justify-center gap-2 rounded-[var(--radius-sm)] border font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--button-focus-ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-transparent disabled:pointer-events-none disabled:opacity-50 border-[var(--button-secondary-border)] bg-transparent text-[var(--text)] hover:border-[var(--button-secondary-border-hover)] hover:bg-[var(--button-secondary-bg-hover)] h-10 min-h-[44px] px-4 text-sm\",\"ref\":null}]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"b:[\"$\",\"footer\",null,{\"className\":\"mt-auto border-t border-[var(--border)] bg-[var(--surface)]/50\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-7xl px-4 py-8 sm:px-6 lg:px-8\",\"children\":[[\"$\",\"nav\",null,{\"className\":\"flex flex-wrap items-center justify-center gap-x-6 gap-y-2 mb-4\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"$L9\",\"/about\",{\"href\":\"/about\",\"className\":\"text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]\",\"suppressHydrationWarning\":true,\"children\":\"About\"}],[\"$\",\"$L9\",\"/docs/terms\",{\"href\":\"/docs/terms\",\"className\":\"text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]\",\"suppressHydrationWarning\":true,\"children\":\"Terms\"}],[\"$\",\"$L9\",\"/docs/privacy\",{\"href\":\"/docs/privacy\",\"className\":\"text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]\",\"suppressHydrationWarning\":true,\"children\":\"Privacy\"}],[\"$\",\"$L9\",\"/docs\",{\"href\":\"/docs\",\"className\":\"text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]\",\"suppressHydrationWarning\":true,\"children\":\"Docs\"}],[\"$\",\"$L9\",\"/blogs\",{\"href\":\"/blogs\",\"className\":\"text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]\",\"suppressHydrationWarning\":true,\"children\":\"Blog\"}],[\"$\",\"$L9\",\"/community\",{\"href\":\"/community\",\"className\":\"text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]\",\"suppressHydrationWarning\":true,\"children\":\"Community\"}]]}],[\"$\",\"p\",null,{\"className\":\"text-center text-sm text-[var(--text-muted)]\",\"suppressHydrationWarning\":true,\"children\":[\"© \",2026,\" Pythoughts\"]}]]}]}]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"c:[\"$\",\"footer\",null,{\"className\":\"mt-auto border-t border-[var(--border)] bg-[var(--surface)]/50\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-7xl px-4 py-8 sm:px-6 lg:px-8\",\"children\":[[\"$\",\"nav\",null,{\"className\":\"flex flex-wrap items-center justify-center gap-x-6 gap-y-2 mb-4\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"$L9\",\"/about\",{\"href\":\"/about\",\"className\":\"text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]\",\"suppressHydrationWarning\":true,\"children\":\"About\"}],[\"$\",\"$L9\",\"/docs/terms\",{\"href\":\"/docs/terms\",\"className\":\"text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]\",\"suppressHydrationWarning\":true,\"children\":\"Terms\"}],[\"$\",\"$L9\",\"/docs/privacy\",{\"href\":\"/docs/privacy\",\"className\":\"text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]\",\"suppressHydrationWarning\":true,\"children\":\"Privacy\"}],[\"$\",\"$L9\",\"/docs\",{\"href\":\"/docs\",\"className\":\"text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]\",\"suppressHydrationWarning\":true,\"children\":\"Docs\"}],[\"$\",\"$L9\",\"/blogs\",{\"href\":\"/blogs\",\"className\":\"text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]\",\"suppressHydrationWarning\":true,\"children\":\"Blog\"}],[\"$\",\"$L9\",\"/community\",{\"href\":\"/community\",\"className\":\"text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]\",\"suppressHydrationWarning\":true,\"children\":\"Community\"}]]}],[\"$\",\"p\",null,{\"className\":\"text-center text-sm text-[var(--text-muted)]\",\"suppressHydrationWarning\":true,\"children\":[\"© \",2026,\" Pythoughts\"]}]]}]}]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"d:[\"$\",\"$L15\",null,{\"loading\":[[\"$\",\"div\",\"l\",{\"className\":\"mx-auto w-full px-4 sm:px-6 lg:px-8 max-w-5xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-4xl space-y-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"div\",\"1\",{\"className\":\"h-9 w-24 animate-pulse rounded-md bg-[var(--surface-muted)]\"}],[\"$\",\"div\",\"2\",{\"className\":\"h-9 w-24 animate-pulse rounded-md bg-[var(--surface-muted)]\"}],[\"$\",\"div\",\"3\",{\"className\":\"h-9 w-24 animate-pulse rounded-md bg-[var(--surface-muted)]\"}],[\"$\",\"div\",\"4\",{\"className\":\"h-9 w-24 animate-pulse rounded-md bg-[var(--surface-muted)]\"}]]}],[\"$\",\"div\",null,{\"className\":\"h-9 w-48 animate-pulse rounded-md bg-[var(--surface-muted)]\"}]]}],[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",\"1\",{\"className\":\"rounded-lg border border-[var(--border)] bg-[var(--surface)] p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-start gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-10 w-10 animate-pulse rounded-full bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"flex-1 space-y-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-32 animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"h-3 w-48 animate-pulse rounded bg-[var(--surface-muted)]\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-4 space-y-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-6 w-3/4 animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"space-y-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-full animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"h-4 w-5/6 animate-pulse rounded bg-[var(--surface-muted)]\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-4 flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]\"}]]}],[\"$\",\"div\",null,{\"className\":\"h-4 w-20 animate-pulse rounded bg-[var(--surface-muted)]\"}]]}]]}],[\"$\",\"div\",\"2\",{\"className\":\"rounded-lg border border-[var(--border)] bg-[var(--surface)] p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-start gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-10 w-10 animate-pulse rounded-full bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"flex-1 space-y-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-32 animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"h-3 w-48 animate-pulse rounded bg-[var(--surface-muted)]\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-4 space-y-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-6 w-3/4 animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"space-y-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-full animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"h-4 w-5/6 animate-pulse rounded bg-[var(--surface-muted)]\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-4 flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]\"}]]}],[\"$\",\"div\",null,{\"className\":\"h-4 w-20 animate-pulse rounded bg-[var(--surface-muted)]\"}]]}]]}],[\"$\",\"div\",\"3\",{\"className\":\"rounded-lg border border-[var(--border)] bg-[var(--surface)] p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-start gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-10 w-10 animate-pulse rounded-full bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"flex-1 space-y-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-32 animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"h-3 w-48 animate-pulse rounded bg-[var(--surface-muted)]\"}]]}]]}],\"$L16\",\"$L17\"]}],\"$L18\",\"$L19\"]}],\"$L1a\"]}]}],[],[]],\"children\":\"$L1b\"}]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"e:[\"$\",\"$1\",\"c\",{\"children\":[\"$L1c\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0r4w0vc5mqztt.js\",\"async\":true,\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0m4tlxszw0ig-.js\",\"async\":true,\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/0d8ukywq3jy7r.js\",\"async\":true,\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/10zshk6d1sa0y.js\",\"async\":true,\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}]],[\"$\",\"$L1d\",null,{\"children\":[\"$\",\"$1e\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@1f\"}]}]]}]\n20:[]\nf:\"$W20\"\n10:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L21\",null,{\"children\":\"$L22\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L23\",null,{\"children\":[\"$\",\"$1e\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L24\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n12:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0lua80ibtlz-p.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}]\n13:[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/01449l62f7n30.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}]\n14:[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3gacd78ovyfwh.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}]\n16:[\"$\",\"div\",null,{\"className\":\"mt-4 space-y-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-6 w-3/4 animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"space-y-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-full animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"h-4 w-5/6 animate-pulse rounded bg-[var(--surface-muted)]\"}]]}]]}]\n17:[\"$\",\"div\",null,{\"className\":\"mt-4 flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]\"}]]}],[\"$\",\"div\",null,{\"className\":\"h-4 w-20 animate-pulse rounded bg-[var(--surface-muted)]\"}]]}]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"18:[\"$\",\"div\",\"4\",{\"className\":\"rounded-lg border border-[var(--border)] bg-[var(--surface)] p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-start gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-10 w-10 animate-pulse rounded-full bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"flex-1 space-y-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-32 animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"h-3 w-48 animate-pulse rounded bg-[var(--surface-muted)]\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-4 space-y-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-6 w-3/4 animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"space-y-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-full animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"h-4 w-5/6 animate-pulse rounded bg-[var(--surface-muted)]\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-4 flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]\"}]]}],[\"$\",\"div\",null,{\"className\":\"h-4 w-20 animate-pulse rounded bg-[var(--surface-muted)]\"}]]}]]}]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"19:[\"$\",\"div\",\"5\",{\"className\":\"rounded-lg border border-[var(--border)] bg-[var(--surface)] p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-start gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-10 w-10 animate-pulse rounded-full bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"flex-1 space-y-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-32 animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"h-3 w-48 animate-pulse rounded bg-[var(--surface-muted)]\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-4 space-y-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-6 w-3/4 animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"space-y-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-full animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"h-4 w-5/6 animate-pulse rounded bg-[var(--surface-muted)]\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-4 flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]\"}],[\"$\",\"div\",null,{\"className\":\"h-4 w-16 animate-pulse rounded bg-[var(--surface-muted)]\"}]]}],[\"$\",\"div\",null,{\"className\":\"h-4 w-20 animate-pulse rounded bg-[var(--surface-muted)]\"}]]}]]}]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"1a:[\"$\",\"div\",null,{\"className\":\"flex justify-center gap-2\",\"children\":[[\"$\",\"div\",\"1\",{\"className\":\"h-10 w-10 animate-pulse rounded-md bg-[var(--surface-muted)]\"}],[\"$\",\"div\",\"2\",{\"className\":\"h-10 w-10 animate-pulse rounded-md bg-[var(--surface-muted)]\"}],[\"$\",\"div\",\"3\",{\"className\":\"h-10 w-10 animate-pulse rounded-md bg-[var(--surface-muted)]\"}]]}]\n1b:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n26:T452,(function(){\n              try {\n                var saved = localStorage.getItem('pythoughts-theme');\n                var valid = ['dark', 'light', 'system'];\n                var pref = (saved \u0026\u0026 valid.indexOf(saved) !== -1) ? saved : 'system';\n                var t = pref === 'system'\n                  ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light')\n                  : pref;\n                document.documentElement.dataset.theme = t;\n                var c = { dark: '#0c1118', light: '#fafaf7' };\n                var m = document.querySelector('meta[name=\"theme-color\"]:not([media])');\n                if (!m) { m = document.createElement('meta'); m.name = 'theme-color'; document.head.appendChild(m); }\n                m.content = c[t];\n                var fs = localStorage.getItem('pythoughts-font-scale');\n                if (fs) { var n = Number(fs); if (!isNaN(n) \u0026\u0026 n \u003e= 0.25 \u0026\u0026 n \u003c= 1.75) { document.documentElement.style.setProperty('--blog-font-scale', fs); } }\n              } catch(e) { document.documentElement.dataset.theme = 'dark'; }\n            })();27:T5cf,"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://pythoughts.com/#organization\",\"name\":\"Pythoughts\",\"url\":\"https://pythoughts.com\",\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https://pythoughts.com/#logo\",\"url\":\"https://pythoughts.com/favicon/logo-192x192.png\",\"width\":192,\"height\":192,\"caption\":\"Pythoughts\"},\"description\":\"A publishing platform for thoughtful writing. Discover articles on technology, science, philosophy, and creative writing from independent creators.\",\"sameAs\":[\"https://twitter.com/pythoughts\"]},{\"@type\":\"WebSite\",\"@id\":\"https://pythoughts.com/#website\",\"url\":\"https://pythoughts.com\",\"name\":\"Pythoughts\",\"description\":\"A publishing platform for thoughtful writing. Discover articles on technology, science, philosophy, and creative writing from independent creators.\",\"publisher\":{\"@id\":\"https://pythoughts.com/#organization\"},\"inLanguage\":\"en-US\",\"potentialAction\":{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https://pythoughts.com/feed?q={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}},{\"@type\":\"SoftwareApplication\",\"@id\":\"https://pythoughts.com/#software\",\"name\":\"Pythoughts\",\"applicationCategory\":\"PublishingApplication\",\"operatingSystem\":\"Web\",\"url\":\"https://pythoughts.com\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"USD\"},\"publisher\":{\"@id\":\"https://pythoughts.com/#organization\"},\"description\":\"A web publishing platform with public blogs and scoped REST APIs.\"}]}"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"2:[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"data-theme\":\"dark\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"service-desc\",\"type\":\"application/yaml\",\"href\":\"/api/openapi.yaml\"}],[\"$\",\"link\",null,{\"rel\":\"service-doc\",\"type\":\"text/html\",\"href\":\"/docs/api\"}],[\"$\",\"meta\",null,{\"name\":\"google\",\"content\":\"notranslate\"}],[\"$\",\"$L25\",null,{\"id\":\"theme-bootstrap\",\"strategy\":\"beforeInteractive\",\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\",\"dangerouslySetInnerHTML\":{\"__html\":\"$26\"}}]]}],[\"$\",\"body\",null,{\"className\":\"satoshi_35a8106d-module__6R4z1G__variable playfair_98402459-module__0G2y1G__variable charter_1957e64a-module__gd2c9W__variable dmserifdisplay_96d22e15-module__y-MTJW__variable roboto_253838c5-module__guxh-G__variable font-sans antialiased notranslate\",\"translate\":\"no\",\"children\":[[\"$\",\"script\",null,{\"id\":\"site-structured-data\",\"type\":\"application/ld+json\",\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\",\"dangerouslySetInnerHTML\":{\"__html\":\"$27\"}}],\"$L28\",\"$L29\",\"$L2a\",\"$L2b\",\"$L2c\",\"$L2d\"]}]]}]\n28:[\"$\",\"$L2e\",null,{}]\n29:[\"$\",\"$L25\",null,{\"src\":\"/sw-unregister.js\",\"strategy\":\"beforeInteractive\"}]\n2a:[\"$\",\"a\",null,{\"href\":\"#main-content\",\"className\":\"sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z-50 focus:px-4 focus:py-2 focus:bg-[var(--brand)] focus:text-white focus:rounded focus:shadow-lg focus:outline-none focus:ring-2 focus:ring-[var(--brand)] focus:ring-offset-2\",\"children\":\"Skip to main content\"}]\n2b:[\"$\",\"$L2f\",null,{\"color\":\"var(--brand)\",\"height\":3,\"showSpinner\":false,\"shadow\":\"0 0 10px var(--brand),0 0 5px var(--brand)\",\"crawlSpeed\":200,\"speed\":200,\"nonce\":\"YzUzOTU0NTQtZTM3My00MD\"}]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"2c:[\"$\",\"$L30\",null,{\"children\":[\"$\",\"$L31\",null,{\"children\":[[\"$\",\"$L32\",null,{}],[\"$\",\"$L33\",null,{\"children\":[[\"$\",\"$L34\",null,{\"children\":[\"$\",\"$L35\",null,{\"level\":\"page\",\"children\":[[\"$\",\"$L36\",null,{}],[\"$\",\"$L37\",null,{\"initialBuildId\":\"2pluamOTYdwdseK6Rv6Ow\",\"versionLabel\":\"ultra-explorer\",\"deployedAt\":\"\",\"environment\":\"\"}],[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$38\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0d__wi3r-eklm.js\",\"async\":true}]],\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"relative flex min-h-screen flex-col\",\"children\":[\"$L39\",[\"$\",\"main\",null,{\"id\":\"main-content\",\"className\":\"flex-1 pt-24\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex min-h-[60vh] flex-col items-center justify-center px-4 text-center\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-6 flex h-20 w-20 items-center justify-center rounded-full bg-[var(--muted)]\",\"children\":[\"$\",\"$L8\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$0:f:0:1:1:children:0:props:children:1:props:children:1:props:children:props:notFound:0:props:children:1:props:children:props:children:0:props:children:props:iconNode\",\"className\":\"lucide-file-question-mark h-10 w-10 text-[var(--muted-foreground)]\",\"aria-hidden\":\"true\",\"focusable\":\"false\"}]}],[\"$\",\"h1\",null,{\"className\":\"mb-2 text-3xl font-bold\",\"children\":\"Page not found\"}],[\"$\",\"p\",null,{\"className\":\"mb-8 max-w-md text-[var(--muted-foreground)]\",\"children\":\"The page you're looking for doesn't exist or has been moved.\"}],[\"$\",\"div\",null,{\"className\":\"flex gap-3\",\"children\":[[\"$\",\"$L9\",null,{\"href\":\"/blogs\",\"children\":\"Browse Feed\",\"className\":\"inline-flex items-center justify-center gap-2 rounded-[var(--radius-sm)] border font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--button-focus-ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-transparent disabled:pointer-events-none disabled:opacity-50 border-transparent bg-[var(--button-primary-bg)] text-[var(--button-primary-text)] hover:bg-[var(--button-primary-bg-hover)] h-10 min-h-[44px] px-4 text-sm\",\"ref\":null}],[\"$\",\"$L9\",null,{\"href\":\"/\",\"children\":\"Go Home\",\"className\":\"inline-flex items-center justify-center gap-2 rounded-[var(--radius-sm)] border font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--button-focus-ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-transparent disabled:pointer-events-none disabled:opacity-50 border-[var(--button-secondary-border)] bg-transparent text-[var(--text)] hover:border-[var(--button-secondary-border-hover)] hover:bg-[var(--button-secondary-bg-hover)] h-10 min-h-[44px] px-4 text-sm\",\"ref\":null}]]}]]}]}],[\"$\",\"footer\",null,{\"className\":\"mt-auto border-t border-[var(--border)] bg-[var(--surface)]/50\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-7xl px-4 py-8 sm:px-6 lg:px-8\",\"children\":[[\"$\",\"nav\",null,{\"className\":\"flex flex-wrap items-center justify-center gap-x-6 gap-y-2 mb-4\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"$L9\",\"/about\",{\"href\":\"/about\",\"className\":\"text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]\",\"suppressHydrationWarning\":true,\"children\":\"About\"}],[\"$\",\"$L9\",\"/docs/terms\",{\"href\":\"/docs/terms\",\"className\":\"text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]\",\"suppressHydrationWarning\":true,\"children\":\"Terms\"}],[\"$\",\"$L9\",\"/docs/privacy\",{\"href\":\"/docs/privacy\",\"className\":\"text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]\",\"suppressHydrationWarning\":true,\"children\":\"Privacy\"}],[\"$\",\"$L9\",\"/docs\",{\"href\":\"/docs\",\"className\":\"text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]\",\"suppressHydrationWarning\":true,\"children\":\"Docs\"}],[\"$\",\"$L9\",\"/blogs\",{\"href\":\"/blogs\",\"className\":\"text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]\",\"suppressHydrationWarning\":true,\"children\":\"Blog\"}],[\"$\",\"$L9\",\"/community\",{\"href\":\"/community\",\"className\":\"text-sm text-[var(--text-muted)] transition-colors hover:text-[var(--text)]\",\"suppressHydrationWarning\":true,\"children\":\"Community\"}]]}],\"$L3a\"]}]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}],\"$L3b\",\"$L3c\"]}]]}]}]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"2d:[\"$\",\"$L25\",null,{\"src\":\"https://umami.pythought.com/script.js\",\"data-website-id\":\"cd3cc133-8540-4a3e-b9ff-7ef6e1f5be0b\",\"strategy\":\"afterInteractive\"}]\n3a:[\"$\",\"p\",null,{\"className\":\"text-center text-sm text-[var(--text-muted)]\",\"suppressHydrationWarning\":true,\"children\":[\"© \",2026,\" Pythoughts\"]}]\n3b:[\"$\",\"$L3d\",null,{}]\n3c:[\"$\",\"$L3e\",null,{}]\n22:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=5, viewport-fit=cover\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#fafaf7\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"content\":\"#0c1118\",\"media\":\"(prefers-color-scheme: dark)\"}]]\n3:[\"$\",\"$L3f\",null,{\"siteName\":\"Pythoughts\",\"tagline\":\"Inspire through words\",\"marketingNav\":[{\"href\":\"/blogs\",\"label\":\"Explore\",\"icon\":\"Compass\"},{\"href\":\"/#features\",\"label\":\"Features\",\"icon\":\"Zap\"},{\"href\":\"/authors\",\"label\":\"Writers\",\"icon\":\"Users2\"}],\"dashboardNav\":[{\"href\":\"/dashboard\",\"label\":\"Overview\",\"icon\":\"LayoutDashboard\"},{\"href\":\"/community\",\"label\":\"Community\",\"icon\":\"Users\"},{\"href\":\"/dashboard/bookmarks\",\"label\":\"Bookmarks\",\"icon\":\"Bookmark\"},{\"href\":\"/billing\",\"label\":\"Billing\",\"icon\":\"CreditCard\"},{\"href\":\"/settings\",\"label\":\"Settings\",\"icon\":\"Settings\"}],\"adminNav\":[{\"href\":\"/admin\",\"label\":\"Overview\",\"icon\":\"Shield\"},{\"href\":\"/admin/content\",\"label\":\"Content\",\"icon\":\"FileText\"},{\"href\":\"/admin/users\",\"label\":\"Users\",\"icon\":\"Users\"},{\"href\":\"/admin/users-ip\",\"label\":\"Users IP\",\"icon\":\"Network\"},{\"href\":\"/admin/moderation\",\"label\":\"Moderation\",\"icon\":\"AlertTriangle\"},{\"href\":\"/admin/analytics\",\"label\":\"Analytics\",\"icon\":\"BarChart2\"},{\"href\":\"/admin/subscriptions\",\"label\":\"Subscriptions\",\"icon\":\"CreditCard\"},{\"href\":\"/admin/promo-codes\",\"label\":\"Promo Codes\",\"icon\":\"Tag\"},{\"href\":\"/admin/emails\",\"label\":\"Emails\",\"icon\":\"Mail\"}],\"user\":null,\"writeHref\":\"/write\"}]\n7:[\"$\",\"$L3f\",null,{\"siteName\":\"Pythoughts\",\"tagline\":\"Inspire through words\",\"marketingNav\":\"$3:props:marketingNav\",\"dashboardNav\":\"$3:props:dashboardNav\",\"adminNav\":\"$3:props:adminNav\",\"user\":null,\"writeHref\":\"/write\"}]\n39:[\"$\",\"$L3f\",null,{\"siteName\":\"Pythoughts\",\"tagline\":\"Inspire through words\",\"marketingNav\":\"$3:props:marketingNav\",\"dashboardNav\":\"$3:props:dashboardNav\",\"adminNav\":\"$3:props:adminNav\",\"user\":null,\"writeHref\":\"/write\"}]\n1f:null\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"24:[[\"$\",\"title\",\"0\",{\"children\":\"Pythoughts Blog Feed · Pythoughts\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Discover the latest public posts and independent blogs across Pythoughts.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"author\",\"href\":\"https://pythoughts.com\"}],[\"$\",\"meta\",\"3\",{\"name\":\"author\",\"content\":\"Pythoughts\"}],[\"$\",\"link\",\"4\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"5\",{\"name\":\"keywords\",\"content\":\"publishing platform,blog,writing,technology,science,philosophy,creative writing,independent creators\"}],[\"$\",\"meta\",\"6\",{\"name\":\"creator\",\"content\":\"Pythoughts\"}],[\"$\",\"meta\",\"7\",{\"name\":\"publisher\",\"content\":\"Pythoughts\"}],[\"$\",\"meta\",\"8\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"9\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"meta\",\"10\",{\"name\":\"category\",\"content\":\"publishing\"}],[\"$\",\"link\",\"11\",{\"rel\":\"canonical\",\"href\":\"https://pythoughts.com/blogs\"}],[\"$\",\"meta\",\"12\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"13\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"Pythoughts\"}],[\"$\",\"meta\",\"14\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:title\",\"content\":\"Pythoughts Blog Feed\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:description\",\"content\":\"Discover the latest public posts and independent blogs across Pythoughts.\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:url\",\"content\":\"https://pythoughts.com/blogs\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:image\",\"content\":\"https://pythoughts.com/blogs/opengraph-image-sxch5r?6002fa45459bded8\"}],[\"$\",\"meta\",\"19\",{\"property\":\"og:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"20\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"21\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"22\",{\"property\":\"og:image:alt\",\"content\":\"Pythoughts - Discover Fresh Thinking\"}],[\"$\",\"meta\",\"23\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:site\",\"content\":\"@pythoughts\"}],[\"$\",\"meta\",\"26\",{\"name\":\"twitter:creator\",\"content\":\"@pythoughts\"}],[\"$\",\"meta\",\"27\",{\"name\":\"twitter:title\",\"content\":\"Pythoughts\"}],[\"$\",\"meta\",\"28\",{\"name\":\"twitter:description\",\"content\":\"A publishing platform for thoughtful writing. Discover articles on technology, science, and philosophy.\"}],[\"$\",\"meta\",\"29\",{\"name\":\"twitter:image\",\"content\":\"https://pythoughts.com/blogs/twitter-image-sxch5r?1489675ca56b3d26\"}],[\"$\",\"meta\",\"30\",{\"name\":\"twitter:image:alt\",\"content\":\"Pythoughts - Discover Fresh Thinking\"}],[\"$\",\"meta\",\"31\",{\"name\":\"twitter:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"32\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"33\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"34\",{\"rel\":\"icon\",\"href\":\"/favicon/favicon-16x16.png\",\"sizes\":\"16x16\",\"type\":\"image/png\"}],[\"$\",\"link\",\"35\",{\"rel\":\"icon\",\"href\":\"/favicon/favicon-32x32.png\",\"sizes\":\"32x32\",\"type\":\"image/png\"}],[\"$\",\"link\",\"36\",{\"rel\":\"icon\",\"href\":\"/favicon/favicon.ico\",\"sizes\":\"any\"}],[\"$\",\"link\",\"37\",{\"rel\":\"apple-touch-icon\",\"href\":\"/favicon/logo-192x192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"$L40\",\"38\",{}]]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"41:T10b7,"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https://pythoughts.com/blogs?filter=new\",\"url\":\"https://pythoughts.com/blogs?filter=new\",\"name\":\"Discover - Pythoughts\",\"description\":\"Fresh thinking from our community. Explore trending and latest posts from developers and creators.\",\"isPartOf\":{\"@type\":\"WebSite\",\"@id\":\"https://pythoughts.com/#website\",\"url\":\"https://pythoughts.com\",\"name\":\"Pythoughts\",\"description\":\"A publishing platform for developers and creators\"}},{\"@type\":\"ItemList\",\"@id\":\"https://pythoughts.com/blogs?filter=new#feed\",\"name\":\"Featured Blog Posts\",\"description\":\"Latest and trending posts from Pythoughts\",\"numberOfItems\":3,\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"BlogPosting\",\"@id\":\"https://pythoughts.com/@dr_glitch/posts/post-1780614487592\",\"headline\":\"Pythinker Code: The Review-First AI Coding Agent for Serious Developers\",\"description\":\"Most AI coding tools rush straight into generation. They read a prompt, produce code, and leave the developer to figure out whether the result is secure, mainta...\",\"url\":\"https://pythoughts.com/@dr_glitch/posts/post-1780614487592\",\"datePublished\":\"2026-06-04T23:13:36.996Z\",\"image\":\"/api/media/bf2742f2-fbda-4d60-b77d-1d3f4aa6e7aa/VL58-LB9eqKIGr3bWaPuZ/uploads/1780614480467-ars6pi-image.png\",\"author\":{\"@type\":\"Person\",\"name\":\"Dr Glitch\",\"url\":\"https://pythoughts.com/@dr_glitch\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Pythoughts\",\"url\":\"https://pythoughts.com\"},\"interactionStatistic\":[{\"@type\":\"InteractionCounter\",\"interactionType\":\"https://schema.org/LikeAction\",\"userInteractionCount\":0},{\"@type\":\"InteractionCounter\",\"interactionType\":\"https://schema.org/CommentAction\",\"userInteractionCount\":0},{\"@type\":\"InteractionCounter\",\"interactionType\":\"https://schema.org/ViewAction\",\"userInteractionCount\":0}],\"timeRequired\":\"PT6M\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"BlogPosting\",\"@id\":\"https://pythoughts.com/@melkholy/posts/post-1779992445260\",\"headline\":\"Beyond “Make it Beautiful”: The Anti-Slop Framework for AI Premium Design\",\"description\":\"AI coding tools can build interfaces incredibly fast. The problem is that they often build the same interface over and over again. You know the look. A centered...\",\"url\":\"https://pythoughts.com/@melkholy/posts/post-1779992445260\",\"datePublished\":\"2026-05-28T18:32:49.770Z\",\"image\":\"/api/media/ac2c2632-713e-4110-8fc5-48c0f2b8eefd/dTWxmwomaL5ALeqYHBuyr/SIT8Ms43sia7ZilJX28Ck/1779992670738-c7tfww-ui_design.png\",\"author\":{\"@type\":\"Person\",\"name\":\"Mohamed Elkholy\",\"url\":\"https://pythoughts.com/@melkholy\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Pythoughts\",\"url\":\"https://pythoughts.com\"},\"interactionStatistic\":[{\"@type\":\"InteractionCounter\",\"interactionType\":\"https://schema.org/LikeAction\",\"userInteractionCount\":1},{\"@type\":\"InteractionCounter\",\"interactionType\":\"https://schema.org/CommentAction\",\"userInteractionCount\":1},{\"@type\":\"InteractionCounter\",\"interactionType\":\"https://schema.org/ViewAction\",\"userInteractionCount\":3}],\"timeRequired\":\"PT14M\"}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"BlogPosting\",\"@id\":\"https://pythoughts.com/@melkholy/posts/post-1779988560770\",\"headline\":\"Claude Code: A Deep Practical Guide to Using Every Major Feature\",\"description\":\"Introduction I use Claude Code not only as a coding assistant, but as a practical development partner for planning, editing, debugging, testing, documenting, an...\",\"url\":\"https://pythoughts.com/@melkholy/posts/post-1779988560770\",\"datePublished\":\"2026-05-28T17:19:04.738Z\",\"image\":\"/api/media/ac2c2632-713e-4110-8fc5-48c0f2b8eefd/dTWxmwomaL5ALeqYHBuyr/JzMjQsxAQ1FNfVkAJBNa-/1779988717698-6kyxac-chatgpt-image-may-28_-2026_-01_18_10-pm.png\",\"author\":{\"@type\":\"Person\",\"name\":\"Mohamed Elkholy\",\"url\":\"https://pythoughts.com/@melkholy\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Pythoughts\",\"url\":\"https://pythoughts.com\"},\"interactionStatistic\":[{\"@type\":\"InteractionCounter\",\"interactionType\":\"https://schema.org/LikeAction\",\"userInteractionCount\":0},{\"@type\":\"InteractionCounter\",\"interactionType\":\"https://schema.org/CommentAction\",\"userInteractionCount\":0},{\"@type\":\"InteractionCounter\",\"interactionType\":\"https://schema.org/ViewAction\",\"userInteractionCount\":2}],\"timeRequired\":\"PT21M\"}}]}]}"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"1c:[\"$\",\"div\",null,{\"className\":\"relative min-h-screen\",\"children\":[[\"$\",\"script\",null,{\"id\":\"feed-structured-data\",\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$41\"}}],\"$L42\",\"$L43\",\"$L44\",\"$L45\"]}]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"46:I[329909,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\",\"/_next/static/chunks/0meiyso28-u1g.js\",\"/_next/static/chunks/2vwjux28gsejc.js\",\"/_next/static/chunks/151nczr84id04.js\",\"/_next/static/chunks/1ela8d9patr9e.js\",\"/_next/static/chunks/44xaewm67819g.js\",\"/_next/static/chunks/0wywmoaepm1jl.js\",\"/_next/static/chunks/2ltdkm6w0insi.js\",\"/_next/static/chunks/1_3hgur5fhnyi.js\",\"/_next/static/chunks/0r4w0vc5mqztt.js\",\"/_next/static/chunks/0m4tlxszw0ig-.js\",\"/_next/static/chunks/0d8ukywq3jy7r.js\",\"/_next/static/chunks/10zshk6d1sa0y.js\"],\"BlogSearch\"]\n47:I[832205,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\",\"/_next/static/chunks/0meiyso28-u1g.js\",\"/_next/static/chunks/2vwjux28gsejc.js\",\"/_next/static/chunks/151nczr84id04.js\",\"/_next/static/chunks/1ela8d9patr9e.js\",\"/_next/static/chunks/44xaewm67819g.js\",\"/_next/static/chunks/0wywmoaepm1jl.js\",\"/_next/static/chunks/2ltdkm6w0insi.js\",\"/_next/static/chunks/1_3hgur5fhnyi.js\",\"/_next/static/chunks/0r4w0vc5mqztt.js\",\"/_next/static/chunks/0m4tlxszw0ig-.js\",\"/_next/static/chunks/0d8ukywq3jy7r.js\",\"/_next/static/chunks/10zshk6d1sa0y.js\"],\"FeedFilterBar\"]\n48:I[501309,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\",\"/_next/static/chunks/0meiyso28-u1g.js\",\"/_next/static/chunks/2vwjux28gsejc.js\",\"/_next/static/chunks/151nczr84id04.js\",\"/_next/static/chunks/1ela8d9patr9e.js\",\"/_next/static/chunks/44xaewm67819g.js\",\"/_next/static/chunks/0wywmoaepm1jl.js\",\"/_next/static/chunks/2ltdkm6w0insi.js\",\"/_next/static/chunks/1_3hgur5fhnyi.js\",\"/_next/static/chunks/0r4w0vc5mqztt.js\",\"/_next/static/chunks/0m4tlxszw0ig-.js\",\"/_next/static/chunks/0d8ukywq3jy7r.js\",\"/_next/static/chunks/10zshk6d1sa0y.js\"],\"FeedSidebarMobile\"]\n49:I[455628,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\",\"/_next/static/chunks/0meiyso28-u1g.js\",\"/_next/static/chunks/2vwjux28gsejc.js\",\"/_next/static/chunks/151nczr84id04.js\",\"/_next/static/chunks/1ela8d9patr9e.js\",\"/_next/static/chunks/44xaewm67819g.js\",\"/_next/static/chunks/0wywmoaepm1jl.js\",\"/_next/static/chunks/2ltdkm6w0insi.js\",\"/_next/static/chunks/1_3hgur5fhnyi.js\",\"/_next/static/chunks/0r4w0vc5mqztt.js\",\"/_next/static/chunks/0m4tlxszw0ig-.js\",\"/_next/static/chunks/0d8ukywq3jy7r.js\",\"/_next/static/chunks/10zshk6d1sa0y.js\"],\"ErrorBoundary\"]\n4a:I[328452,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\",\"/_next/static/chunks/0meiyso28-u1g.js\",\"/_next/static/chunks/2vwjux28gsejc.js\",\"/_next/static/chunks/151nczr84id04.js\",\"/_next/static/chunks/1ela8d9patr9e.js\",\"/_next/static/chunks/44xaewm67819g.js\",\"/_next/static/chunks/0wywmoaepm1jl.js\",\"/_next/static/chunks/2ltdkm6w0insi.js\",\"/_next/static/chunks/1_3hgur5fhnyi.js\",\"/_next/static/chunks/0r4w0vc5mqztt.js\",\"/_next/static/chunks/0m4tlxszw0ig-.js\",\"/_next/static/chunks/0d8ukywq3jy7r.js\",\"/_next/static/chunks/10zshk6d1sa0y.js\"],\"FeedCard\"]\n42:[\"$\",\"header\",null,{\"className\":\"border-b border-border/40\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto w-full px-4 sm:px-6 lg:px-8 max-w-7xl py-5 md:py-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 gap-4 md:grid-cols-[1fr_280px] md:items-end md:gap-8 lg:grid-cols-[1fr_300px]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"s"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"pace-y-1\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-3xl font-normal tracking-[-0.01em] text-[var(--text-heading)] md:text-5xl\",\"style\":{\"fontFamily\":\"var(--font-playfair), Georgia, serif\"},\"children\":\"Discover\"}],[\"$\",\"p\",null,{\"className\":\"text-sm italic text-[var(--text-tertiary)]\",\"style\":{\"fontFamily\":\"var(--font-playfair), Georgia, serif\"},\"children\":\"Fresh thinking from our community\"}]]}],[\"$\",\"$1e\",null,{\"fallback\":[\"$\",\"div\",null,{\"className\":\"h-8 w-full animate-pulse rounded\"}],\"children\":[\"$\",\"$L46\",null,{}]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-6 grid grid-cols-1 gap-4 md:grid-cols-[1fr_280px] md:gap-8 lg:grid-cols-[1fr_300px]\",\"children\":[[\"$\",\"$1e\",null,{\"fallback\":[\"$\",\"div\",null,{\"className\":\"h-10 animate-pulse rounded-lg\"}],\"children\":[\"$\",\"$L47\",null,{\"isAuthenticated\":false}]}],[\"$\",\"div\",null,{\"className\":\"hidden md:block\",\"aria-hidden\":\"true\"}]]}],\"\"]}]}]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"43:[\"$\",\"$L48\",null,{\"featuredPosts\":[{\"id\":\"5P9upbgK2Yt4P5d-bdaVk\",\"title\":\"Pythinker Code: The Review-First AI Coding Agent for Serious Developers\",\"slug\":\"post-1780614487592\",\"excerpt\":\"Most AI coding tools rush straight into generation. They read a prompt, produce code, and leave the developer to figure out whether the result is secure, mainta...\",\"featuredImage\":\"/api/media/bf2742f2-fbda-4d60-b77d-1d3f4aa6e7aa/VL58-LB9eqKIGr3bWaPuZ/uploads/1780614480467-ars6pi-image.png\",\"content\":{\"type\":\"doc\",\"content\":[{\"type\":\"image\",\"attrs\":{\"alt\":\"image\",\"src\":\"/api/media/bf2742f2-fbda-4d60-b77d-1d3f4aa6e7aa/VL58-LB9eqKIGr3bWaPuZ/uploads/1780614480467-ars6pi-image.png\",\"align\":\"center\",\"sizes\":null,\"title\":null,\"width\":null,\"height\":null,\"srcset\":null,\"caption\":null,\"loading\":\"lazy\",\"mediaId\":\"013089f9-ff04-4a98-a030-b3356777da24\",\"blurhash\":null,\"data-uid\":\"8407fd51-3a47-4246-ba8d-d34e1fead7be\"}},{\"type\":\"heading\",\"attrs\":{\"id\":\"seo-blog-marketing-draft-for-pythinker-code\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"seo-blog-marketing-draft-for-pythinker-code\",\"data-heading-text\":null}},{\"type\":\"horizontalRule\"},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"dfc32afd-0f58-45da-b810-e20a5147d419\",\"textAlign\":null},\"content\":[{\"text\":\"Most AI coding tools rush straight into generation. They read a prompt, produce code, and leave the developer to figure out whether the result is secure, maintainable, or even connected to the real problem.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"378c9457-10c2-427b-b88d-d0b839485c62\",\"textAlign\":null},\"content\":[{\"text\":\"Pythinker Code takes a different approach: think first, then code.\",\"type\":\"text\",\"marks\":[{\"type\":\"bold\"}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"dc8904bf-ebab-4637-bee8-1d650e07104b\",\"textAlign\":null},\"content\":[{\"text\":\"Pythinker Code is an open-source, terminal-native AI engineering agent built around a review-first workflow. It does not simply jump into file edits. It reads your repository, audits your code, investigates failures, scans for security risks, and only then writes scoped fixes based on the analysis. Its GitHub README describes it as a “review-first AI engineering agent” for the terminal, combining code review, vulnerability scanning, root-cause debugging, and code creation in one shell-native loop. (\",\"type\":\"text\"},{\"text\":\"GitHub\",\"type\":\"text\",\"marks\":[{\"type\":\"link\",\"attrs\":{\"rel\":\"noopener noreferrer nofollow\",\"href\":\"https://github.com/Pythoughts-labs/pythinker-code\",\"class\":\"text-blue-600 dark:text-blue-400 underline hover:text-blue-700 dark:hover:text-blue-300\",\"title\":\"GitHub - Pythoughts-labs/pythinker-code: Think first, then code. Review-first AI engineering agent for the terminal — code reviewer, security scanner, root-cause debugger, and code creator in one shell-native loop. · GitHub\",\"target\":\"_blank\"}}]},{\"text\":\")\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"24d5feb4-ae42-47d2-9570-7f90f8ad7f10\",\"textAlign\":null},\"content\":[{\"text\":\"For developers who already live in the command line, this matters. Pythinker Code is designed to keep the entire engineering workflow close to the repo, close to the shell, and close to the evidence.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"what-is-pythinker-code\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"what-is-pythinker-code\",\"data-heading-text\":null},\"content\":[{\"text\":\"What Is Pythinker Code?\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"26ac77fa-01f9-422a-8b19-21abb637bee7\",\"textAlign\":null},\"content\":[{\"text\":\"Pythinker Code is an AI engineering agent for developers who want analysis before automation.\",\"type\":\"text\",\"marks\":[{\"type\":\"bold\"}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"5d2aa4c2-afde-4178-8f57-a34c244720fe\",\"textAlign\":null},\"content\":[{\"text\":\"Instead of acting like a simple chatbot that generates code on request, Pythinker Code works more like an engineering partner inside your terminal. It can review diffs, scan for vulnerabilities, diagnose bugs, and then implement changes after it has enough context to understand the problem. (\",\"type\":\"text\"},{\"text\":\"GitHub\",\"type\":\"text\",\"marks\":[{\"type\":\"link\",\"attrs\":{\"rel\":\"noopener noreferrer nofollow\",\"href\":\"https://github.com/Pythoughts-labs/pythinker-code\",\"class\":\"text-blue-600 dark:text-blue-400 underline hover:text-blue-700 dark:hover:text-blue-300\",\"title\":\"GitHub - Pythoughts-labs/pythinker-code: Think first, then code. Review-first AI engineering agent for the terminal — code reviewer, security scanner, root-cause debugger, and code creator in one shell-native loop. · GitHub\",\"target\":\"_blank\"}}]},{\"text\":\")\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"0166cf7c-2b8d-48d9-83dd-2d76aacfd2f1\",\"textAlign\":null},\"content\":[{\"text\":\"Its workflow is built around four practical engineering roles:\",\"type\":\"text\"}]},{\"type\":\"orderedList\",\"attrs\":{\"type\":null,\"start\":1},\"content\":[{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"68a84f29-8e6b-4d19-a0e8-2def0495da43\",\"textAlign\":null},\"content\":[{\"text\":\"Code reviewer\",\"type\":\"text\",\"marks\":[{\"type\":\"bold\"}]},{\"text\":\" — reviews changes and gives critique before implementation.\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"734cbdbd-bb52-4dab-9b85-a5aa3e4ac221\",\"textAlign\":null},\"content\":[{\"text\":\"Security reviewer\",\"type\":\"text\",\"marks\":[{\"type\":\"bold\"}]},{\"text\":\" — looks for validated vulnerability findings.\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"5541ba0e-03e4-46d5-a49a-b2172a1ee5ae\",\"textAlign\":null},\"content\":[{\"text\":\"Debugger\",\"type\":\"text\",\"marks\":[{\"type\":\"bold\"}]},{\"text\":\" — investigates failures and root causes.\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"607891c5-c97a-4943-a450-34a9559b206f\",\"textAlign\":null},\"content\":[{\"text\":\"Coder / implementer\",\"type\":\"text\",\"marks\":[{\"type\":\"bold\"}]},{\"text\":\" — makes scoped code edits after the review and diagnosis phase. (\",\"type\":\"text\"},{\"text\":\"GitHub\",\"type\":\"text\",\"marks\":[{\"type\":\"link\",\"attrs\":{\"rel\":\"noopener noreferrer nofollow\",\"href\":\"https://github.com/Pythoughts-labs/pythinker-code\",\"class\":\"text-blue-600 dark:text-blue-400 underline hover:text-blue-700 dark:hover:text-blue-300\",\"title\":\"GitHub - Pythoughts-labs/pythinker-code: Think first, then code. Review-first AI engineering agent for the terminal — code reviewer, security scanner, root-cause debugger, and code creator in one shell-native loop. · GitHub\",\"target\":\"_blank\"}}]},{\"text\":\")\",\"type\":\"text\"}]}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"6eb45fe1-3984-48b5-8065-1536536d1a30\",\"textAlign\":null},\"content\":[{\"text\":\"That makes Pythinker Code especially useful for developers, indie hackers, technical founders, and engineering teams who want AI assistance without losing control of quality.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"why-review-first-is-better-than-generate-first\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"why-review-first-is-better-than-generate-first\",\"data-heading-text\":null},\"content\":[{\"text\":\"Why “Review First” Is Better Than “Generate First”\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"85737782-08c8-48e5-96ea-d651cae8b7b4\",\"textAlign\":null},\"content\":[{\"text\":\"A lot of AI coding assistants are optimized for speed. That can be useful, but speed without review can create hidden technical debt.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"c8c425ee-06fe-458e-8e42-468148c8d1c8\",\"textAlign\":null},\"content\":[{\"text\":\"Pythinker Code focuses on a safer loop:\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"c5b12338-a92c-4bf7-abc9-bf3c2480f87f\",\"textAlign\":null},\"content\":[{\"text\":\"Review → Secure → Diagnose → Create\",\"type\":\"text\",\"marks\":[{\"type\":\"bold\"}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"0503b24d-b5d1-4398-aaee-b120616dceab\",\"textAlign\":null},\"content\":[{\"text\":\"This is the core marketing message. It positions Pythinker Code as more than another AI code generator. It is a tool for developers who care about reasoning, security, and maintainability.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"4dcdc3a1-2692-4758-8aaa-70d031c82dfe\",\"textAlign\":null},\"content\":[{\"text\":\"The repo explains that Pythinker reads your code before writing changes, auditing diffs, scanning for vulnerabilities, and root-causing failures before editing files. (\",\"type\":\"text\"},{\"text\":\"GitHub\",\"type\":\"text\",\"marks\":[{\"type\":\"link\",\"attrs\":{\"rel\":\"noopener noreferrer nofollow\",\"href\":\"https://github.com/Pythoughts-labs/pythinker-code\",\"class\":\"text-blue-600 dark:text-blue-400 underline hover:text-blue-700 dark:hover:text-blue-300\",\"title\":\"GitHub - Pythoughts-labs/pythinker-code: Think first, then code. Review-first AI engineering agent for the terminal — code reviewer, security scanner, root-cause debugger, and code creator in one shell-native loop. · GitHub\",\"target\":\"_blank\"}}]},{\"text\":\")\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"233751bf-eb3c-4cd2-ba1e-ac3730eeecda\",\"textAlign\":null},\"content\":[{\"text\":\"That makes it a strong fit for workflows where correctness matters, including:\",\"type\":\"text\"}]},{\"type\":\"bulletList\",\"content\":[{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"920d22c6-341f-46b8-8ffe-33a415a2e756\",\"textAlign\":null},\"content\":[{\"text\":\"debugging production issues\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"f8ddb3aa-4ea1-4c3d-83c2-2d6228ddc60d\",\"textAlign\":null},\"content\":[{\"text\":\"reviewing pull requests\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"89e31347-99f0-4c94-ba38-7667a2077f9d\",\"textAlign\":null},\"content\":[{\"text\":\"refactoring legacy code\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"37bab988-ee65-4660-9e89-3ecad9958cc8\",\"textAlign\":null},\"content\":[{\"text\":\"investigating security concerns\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"654b9b61-4e97-49fc-8757-f975719b98a0\",\"textAlign\":null},\"content\":[{\"text\":\"working across large repositories\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"0288dafd-1791-4081-99e1-ca4e3597a435\",\"textAlign\":null},\"content\":[{\"text\":\"preparing code before deployment\",\"type\":\"text\"}]}]}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"built-for-the-terminal\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"built-for-the-terminal\",\"data-heading-text\":null},\"content\":[{\"text\":\"Built for the Terminal\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"5e572041-d961-4b10-a458-cba47961a57f\",\"textAlign\":null},\"content\":[{\"text\":\"Pythinker Code is terminal-first. Developers can plan, edit, run, and verify work without leaving the shell. The project describes every action as visible, scriptable, and auditable, which is important for engineers who want transparency in their AI workflow. (\",\"type\":\"text\"},{\"text\":\"GitHub\",\"type\":\"text\",\"marks\":[{\"type\":\"link\",\"attrs\":{\"rel\":\"noopener noreferrer nofollow\",\"href\":\"https://github.com/Pythoughts-labs/pythinker-code\",\"class\":\"text-blue-600 dark:text-blue-400 underline hover:text-blue-700 dark:hover:text-blue-300\",\"title\":\"GitHub - Pythoughts-labs/pythinker-code: Think first, then code. Review-first AI engineering agent for the terminal — code reviewer, security scanner, root-cause debugger, and code creator in one shell-native loop. · GitHub\",\"target\":\"_blank\"}}]},{\"text\":\")\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"4973d3cb-23d7-4e8f-8fbd-098d4a721a81\",\"textAlign\":null},\"content\":[{\"text\":\"This is one of the product’s strongest differentiators.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"1be5a463-4430-4a7e-b7ff-37566288e093\",\"textAlign\":null},\"content\":[{\"text\":\"Many AI development tools pull users into a separate chat window or IDE sidebar. Pythinker Code stays where many engineers already work: the command line.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"5691491d-a2e1-4b54-8748-0c9e78bfd46e\",\"textAlign\":null},\"content\":[{\"text\":\"That means less context switching, less copy-pasting, and fewer disconnected conversations about code.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"key-features-of-pythinker-code\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"key-features-of-pythinker-code\",\"data-heading-text\":null},\"content\":[{\"text\":\"Key Features of Pythinker Code\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"1-ai-code-review-before-code-generation\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"1-ai-code-review-before-code-generation\",\"data-heading-text\":null},\"content\":[{\"text\":\"1. AI Code Review Before Code Generation\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"41df44a4-1d16-4da8-bdb7-0051f12719ad\",\"textAlign\":null},\"content\":[{\"text\":\"Pythinker Code is designed to inspect code before modifying it. This helps developers catch problems earlier and avoid blindly accepting generated changes.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"2-security-and-vulnerability-scanning\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"2-security-and-vulnerability-scanning\",\"data-heading-text\":null},\"content\":[{\"text\":\"2. Security and Vulnerability Scanning\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"2f90b4e3-9a9a-4f68-9ca8-a34a6889f5bd\",\"textAlign\":null},\"content\":[{\"text\":\"The project positions security review as a first-class part of the workflow, not an afterthought. It includes a security-focused subagent for vulnerability findings. (\",\"type\":\"text\"},{\"text\":\"GitHub\",\"type\":\"text\",\"marks\":[{\"type\":\"link\",\"attrs\":{\"rel\":\"noopener noreferrer nofollow\",\"href\":\"https://github.com/Pythoughts-labs/pythinker-code\",\"class\":\"text-blue-600 dark:text-blue-400 underline hover:text-blue-700 dark:hover:text-blue-300\",\"title\":\"GitHub - Pythoughts-labs/pythinker-code: Think first, then code. Review-first AI engineering agent for the terminal — code reviewer, security scanner, root-cause debugger, and code creator in one shell-native loop. · GitHub\",\"target\":\"_blank\"}}]},{\"text\":\")\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"3-root-cause-debugging\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"3-root-cause-debugging\",\"data-heading-text\":null},\"content\":[{\"text\":\"3. Root-Cause Debugging\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"983360ce-9b1d-464d-a7de-0639eb46cb89\",\"textAlign\":null},\"content\":[{\"text\":\"Instead of only patching symptoms, Pythinker Code can investigate failures and diagnose the underlying issue before implementation.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"4-shell-command-mode\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"4-shell-command-mode\",\"data-heading-text\":null},\"content\":[{\"text\":\"4. Shell Command Mode\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"63d47b8b-536c-405c-a383-03e99e0db1d6\",\"textAlign\":null},\"content\":[{\"text\":\"Pythinker Code includes a shell command mode. Developers can press \",\"type\":\"text\"},{\"text\":\"Ctrl-X\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" to run direct shell commands inside the agent, then return to AI mode with context preserved. (\",\"type\":\"text\"},{\"text\":\"GitHub\",\"type\":\"text\",\"marks\":[{\"type\":\"link\",\"attrs\":{\"rel\":\"noopener noreferrer nofollow\",\"href\":\"https://github.com/Pythoughts-labs/pythinker-code\",\"class\":\"text-blue-600 dark:text-blue-400 underline hover:text-blue-700 dark:hover:text-blue-300\",\"title\":\"GitHub - Pythoughts-labs/pythinker-code: Think first, then code. Review-first AI engineering agent for the terminal — code reviewer, security scanner, root-cause debugger, and code creator in one shell-native loop. · GitHub\",\"target\":\"_blank\"}}]},{\"text\":\")\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"5-acp-ide-integration\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"5-acp-ide-integration\",\"data-heading-text\":null},\"content\":[{\"text\":\"5. ACP IDE Integration\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"b6b52475-0922-49cc-a1b7-99c77d66de5e\",\"textAlign\":null},\"content\":[{\"text\":\"Pythinker Code supports the Agent Client Protocol, allowing ACP-aware editors such as Zed and JetBrains to use a Pythinker session inline. (\",\"type\":\"text\"},{\"text\":\"GitHub\",\"type\":\"text\",\"marks\":[{\"type\":\"link\",\"attrs\":{\"rel\":\"noopener noreferrer nofollow\",\"href\":\"https://github.com/Pythoughts-labs/pythinker-code\",\"class\":\"text-blue-600 dark:text-blue-400 underline hover:text-blue-700 dark:hover:text-blue-300\",\"title\":\"GitHub - Pythoughts-labs/pythinker-code: Think first, then code. Review-first AI engineering agent for the terminal — code reviewer, security scanner, root-cause debugger, and code creator in one shell-native loop. · GitHub\",\"target\":\"_blank\"}}]},{\"text\":\")\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"6-mcp-tool-loading\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"6-mcp-tool-loading\",\"data-heading-text\":null},\"content\":[{\"text\":\"6. MCP Tool Loading\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d7c01163-ec3b-4f0d-94df-806615ce27af\",\"textAlign\":null},\"content\":[{\"text\":\"Pythinker Code can manage stdio and HTTP MCP servers through \",\"type\":\"text\"},{\"text\":\"pythinker mcp\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\", including OAuth-backed servers, persistent config, and ad-hoc files. (\",\"type\":\"text\"},{\"text\":\"GitHub\",\"type\":\"text\",\"marks\":[{\"type\":\"link\",\"attrs\":{\"rel\":\"noopener noreferrer nofollow\",\"href\":\"https://github.com/Pythoughts-labs/pythinker-code\",\"class\":\"text-blue-600 dark:text-blue-400 underline hover:text-blue-700 dark:hover:text-blue-300\",\"title\":\"GitHub - Pythoughts-labs/pythinker-code: Think first, then code. Review-first AI engineering agent for the terminal — code reviewer, security scanner, root-cause debugger, and code creator in one shell-native loop. · GitHub\",\"target\":\"_blank\"}}]},{\"text\":\")\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"7-subagents-skills-hooks-and-plugins\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"7-subagents-skills-hooks-and-plugins\",\"data-heading-text\":null},\"content\":[{\"text\":\"7. Subagents, Skills, Hooks, and Plugins\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"4e1cc896-898e-4468-824b-3fa3781a9e02\",\"textAlign\":null},\"content\":[{\"text\":\"The project supports built-in subagents, reusable skills, prompt flows, hooks, and plugins. This makes it hackable and extensible for more advanced developer workflows. (\",\"type\":\"text\"},{\"text\":\"GitHub\",\"type\":\"text\",\"marks\":[{\"type\":\"link\",\"attrs\":{\"rel\":\"noopener noreferrer nofollow\",\"href\":\"https://github.com/Pythoughts-labs/pythinker-code\",\"class\":\"text-blue-600 dark:text-blue-400 underline hover:text-blue-700 dark:hover:text-blue-300\",\"title\":\"GitHub - Pythoughts-labs/pythinker-code: Think first, then code. Review-first AI engineering agent for the terminal — code reviewer, security scanner, root-cause debugger, and code creator in one shell-native loop. · GitHub\",\"target\":\"_blank\"}}]},{\"text\":\")\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"8-bring-your-own-model\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"8-bring-your-own-model\",\"data-heading-text\":null},\"content\":[{\"text\":\"8. Bring Your Own Model\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"8cdc40ae-2175-4276-b857-7d1f05f81ba4\",\"textAlign\":null},\"content\":[{\"text\":\"Pythinker Code lets developers swap providers and models per session, including hosted Pythinker models or their own keys. (\",\"type\":\"text\"},{\"text\":\"GitHub\",\"type\":\"text\",\"marks\":[{\"type\":\"link\",\"attrs\":{\"rel\":\"noopener noreferrer nofollow\",\"href\":\"https://github.com/Pythoughts-labs/pythinker-code\",\"class\":\"text-blue-600 dark:text-blue-400 underline hover:text-blue-700 dark:hover:text-blue-300\",\"title\":\"GitHub - Pythoughts-labs/pythinker-code: Think first, then code. Review-first AI engineering agent for the terminal — code reviewer, security scanner, root-cause debugger, and code creator in one shell-native loop. · GitHub\",\"target\":\"_blank\"}}]},{\"text\":\")\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"privacy-friendly-by-design\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"privacy-friendly-by-design\",\"data-heading-text\":null},\"content\":[{\"text\":\"Privacy-Friendly by Design\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"89dc9e2f-8de7-4935-8590-1dc29964e672\",\"textAlign\":null},\"content\":[{\"text\":\"Pythinker Code is not the LLM itself. According to the project README, users bring their own API key, and prompts and responses go directly between the terminal and the configured model provider. The README says Pythinker does not see, store, or forward those prompts or model responses. (\",\"type\":\"text\"},{\"text\":\"GitHub\",\"type\":\"text\",\"marks\":[{\"type\":\"link\",\"attrs\":{\"rel\":\"noopener noreferrer nofollow\",\"href\":\"https://github.com/Pythoughts-labs/pythinker-code\",\"class\":\"text-blue-600 dark:text-blue-400 underline hover:text-blue-700 dark:hover:text-blue-300\",\"title\":\"GitHub - Pythoughts-labs/pythinker-code: Think first, then code. Review-first AI engineering agent for the terminal — code reviewer, security scanner, root-cause debugger, and code creator in one shell-native loop. · GitHub\",\"target\":\"_blank\"}}]},{\"text\":\")\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"ef46d43f-538b-4061-aeed-9f8586aaa603\",\"textAlign\":null},\"content\":[{\"text\":\"For developers working with private repositories, internal tools, or sensitive code, this is an important trust signal.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"easy-installation-across-platforms\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"easy-installation-across-platforms\",\"data-heading-text\":null},\"content\":[{\"text\":\"Easy Installation Across Platforms\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"5178dc55-c6ea-4b3b-b8c7-2a93ce833dc0\",\"textAlign\":null},\"content\":[{\"text\":\"Pythinker Code provides several installation options. The GitHub README lists native installers for Windows, macOS, Linux, Docker, Homebrew, Scoop, Nix, system packages, and a Python fallback through \",\"type\":\"text\"},{\"text\":\"pip install pythinker-code\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\". (\",\"type\":\"text\"},{\"text\":\"GitHub\",\"type\":\"text\",\"marks\":[{\"type\":\"link\",\"attrs\":{\"rel\":\"noopener noreferrer nofollow\",\"href\":\"https://github.com/Pythoughts-labs/pythinker-code\",\"class\":\"text-blue-600 dark:text-blue-400 underline hover:text-blue-700 dark:hover:text-blue-300\",\"title\":\"GitHub - Pythoughts-labs/pythinker-code: Think first, then code. Review-first AI engineering agent for the terminal — code reviewer, security scanner, root-cause debugger, and code creator in one shell-native loop. · GitHub\",\"target\":\"_blank\"}}]},{\"text\":\")\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"5cac2894-248f-4841-98d5-e6c46e3de235\",\"textAlign\":null},\"content\":[{\"text\":\"After installation, the basic flow is simple:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"72e6b905-3f59-4434-8416-07cdaad55a97\",\"language\":\"bash\"},\"content\":[{\"text\":\"curl -fsSL https://pythinker.com/install.sh | bash\\npythinker --version\\npythinker login\\npythinker\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"c63a75b1-bb29-4d83-8dc1-e09c943e3f64\",\"textAlign\":null},\"content\":[{\"text\":\"The project also supports updates through \",\"type\":\"text\"},{\"text\":\"pythinker update\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\". (\",\"type\":\"text\"},{\"text\":\"GitHub\",\"type\":\"text\",\"marks\":[{\"type\":\"link\",\"attrs\":{\"rel\":\"noopener noreferrer nofollow\",\"href\":\"https://github.com/Pythoughts-labs/pythinker-code\",\"class\":\"text-blue-600 dark:text-blue-400 underline hover:text-blue-700 dark:hover:text-blue-300\",\"title\":\"GitHub - Pythoughts-labs/pythinker-code: Think first, then code. Review-first AI engineering agent for the terminal — code reviewer, security scanner, root-cause debugger, and code creator in one shell-native loop. · GitHub\",\"target\":\"_blank\"}}]},{\"text\":\")\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"who-should-use-pythinker-code\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"who-should-use-pythinker-code\",\"data-heading-text\":null},\"content\":[{\"text\":\"Who Should Use Pythinker Code?\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d2140d21-a2dc-4d30-9aa7-17f7759d55bb\",\"textAlign\":null},\"content\":[{\"text\":\"Pythinker Code is a strong fit for:\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"2ebc4892-428d-484e-85d5-5f6ea7579416\",\"textAlign\":null},\"content\":[{\"text\":\"Developers who want AI inside the terminal\",\"type\":\"text\",\"marks\":[{\"type\":\"bold\"}]},{\"type\":\"hardBreak\"},{\"text\":\"It keeps the workflow shell-native and avoids unnecessary switching between tools.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"0158536d-a5aa-4075-a239-a6661eebe930\",\"textAlign\":null},\"content\":[{\"text\":\"Engineering teams that care about review quality\",\"type\":\"text\",\"marks\":[{\"type\":\"bold\"}]},{\"type\":\"hardBreak\"},{\"text\":\"The review-first design makes it useful for code review, debugging, and safer implementation.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"b6173edb-7c66-4673-8210-38030cd255e1\",\"textAlign\":null},\"content\":[{\"text\":\"Security-conscious developers\",\"type\":\"text\",\"marks\":[{\"type\":\"bold\"}]},{\"type\":\"hardBreak\"},{\"text\":\"Security scanning is part of the core workflow rather than a separate add-on.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"3f000054-8912-4c0d-9b9e-adc981c92259\",\"textAlign\":null},\"content\":[{\"text\":\"Open-source maintainers\",\"type\":\"text\",\"marks\":[{\"type\":\"bold\"}]},{\"type\":\"hardBreak\"},{\"text\":\"Because it is open-source and Apache-2.0 licensed, developers can inspect, extend, and integrate it into their own workflows. (\",\"type\":\"text\"},{\"text\":\"GitHub\",\"type\":\"text\",\"marks\":[{\"type\":\"link\",\"attrs\":{\"rel\":\"noopener noreferrer nofollow\",\"href\":\"https://github.com/Pythoughts-labs/pythinker-code\",\"class\":\"text-blue-600 dark:text-blue-400 underline hover:text-blue-700 dark:hover:text-blue-300\",\"title\":\"GitHub - Pythoughts-labs/pythinker-code: Think first, then code. Review-first AI engineering agent for the terminal — code reviewer, security scanner, root-cause debugger, and code creator in one shell-native loop. · GitHub\",\"target\":\"_blank\"}}]},{\"text\":\")\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"dd7b49f9-7c4e-4fd4-996b-350252560961\",\"textAlign\":null},\"content\":[{\"text\":\"AI power users\",\"type\":\"text\",\"marks\":[{\"type\":\"bold\"}]},{\"type\":\"hardBreak\"},{\"text\":\"With MCP, ACP, plugins, hooks, skills, and model flexibility, Pythinker Code is built for developers who want more than a basic AI chat assistant.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"pythinker-code-vs-traditional-ai-coding-assistants\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"pythinker-code-vs-traditional-ai-coding-assistants\",\"data-heading-text\":null},\"content\":[{\"text\":\"Pythinker Code vs. Traditional AI Coding Assistants\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"262259a7-142d-4072-86cc-13a395ac0cb0\",\"textAlign\":null},\"content\":[{\"text\":\"Traditional AI coding assistants often start with generation. Pythinker Code starts with understanding.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"a496f3ca-6181-47a4-8a86-8a99c2267e4b\",\"textAlign\":null},\"content\":[{\"text\":\"That difference is the product’s core advantage.\",\"type\":\"text\"}]},{\"type\":\"table\",\"attrs\":{\"caption\":null,\"tableId\":null},\"content\":[{\"type\":\"tableRow\",\"content\":[{\"type\":\"tableHeader\",\"attrs\":{\"align\":null,\"colspan\":1,\"rowspan\":1,\"colwidth\":null,\"textAlign\":\"left\",\"backgroundColor\":null},\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"e3432bfa-ff6b-4517-b611-7cd27a1dabf1\",\"textAlign\":null},\"content\":[{\"text\":\"Traditional AI Coding Assistant\",\"type\":\"text\"}]}]},{\"type\":\"tableHeader\",\"attrs\":{\"align\":null,\"colspan\":1,\"rowspan\":1,\"colwidth\":null,\"textAlign\":\"left\",\"backgroundColor\":null},\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"ff8d4e7f-d210-495b-b6ce-76846029b892\",\"textAlign\":null},\"content\":[{\"text\":\"Pythinker Code\",\"type\":\"text\"}]}]}]},{\"type\":\"tableRow\",\"content\":[{\"type\":\"tableCell\",\"attrs\":{\"align\":null,\"colspan\":1,\"rowspan\":1,\"colwidth\":null,\"textAlign\":\"left\",\"backgroundColor\":null},\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"64115283-37b1-43e1-ba54-c2157d9e3b3f\",\"textAlign\":null},\"content\":[{\"text\":\"Generates code quickly\",\"type\":\"text\"}]}]},{\"type\":\"tableCell\",\"attrs\":{\"align\":null,\"colspan\":1,\"rowspan\":1,\"colwidth\":null,\"textAlign\":\"left\",\"backgroundColor\":null},\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"a82cc281-6210-4eeb-aa3e-f3e1b374b098\",\"textAlign\":null},\"content\":[{\"text\":\"Reviews and diagnoses before writing\",\"type\":\"text\"}]}]}]},{\"type\":\"tableRow\",\"content\":[{\"type\":\"tableCell\",\"attrs\":{\"align\":null,\"colspan\":1,\"rowspan\":1,\"colwidth\":null,\"textAlign\":\"left\",\"backgroundColor\":null},\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"be2772bf-b71e-4b25-b805-e785292ebb1c\",\"textAlign\":null},\"content\":[{\"text\":\"Often works in a chat or IDE panel\",\"type\":\"text\"}]}]},{\"type\":\"tableCell\",\"attrs\":{\"align\":null,\"colspan\":1,\"rowspan\":1,\"colwidth\":null,\"textAlign\":\"left\",\"backgroundColor\":null},\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"354293ec-4a29-47da-984b-98b26176e65e\",\"textAlign\":null},\"content\":[{\"text\":\"Runs terminal-first\",\"type\":\"text\"}]}]}]},{\"type\":\"tableRow\",\"content\":[{\"type\":\"tableCell\",\"attrs\":{\"align\":null,\"colspan\":1,\"rowspan\":1,\"colwidth\":null,\"textAlign\":\"left\",\"backgroundColor\":null},\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d64d8ae2-61e9-4cb0-b749-2a123735aefc\",\"textAlign\":null},\"content\":[{\"text\":\"May require manual context sharing\",\"type\":\"text\"}]}]},{\"type\":\"tableCell\",\"attrs\":{\"align\":null,\"colspan\":1,\"rowspan\":1,\"colwidth\":null,\"textAlign\":\"left\",\"backgroundColor\":null},\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"dc33ba5d-9537-4f12-a377-8bb4ae22b997\",\"textAlign\":null},\"content\":[{\"text\":\"Reads the repo directly\",\"type\":\"text\"}]}]}]},{\"type\":\"tableRow\",\"content\":[{\"type\":\"tableCell\",\"attrs\":{\"align\":null,\"colspan\":1,\"rowspan\":1,\"colwidth\":null,\"textAlign\":\"left\",\"backgroundColor\":null},\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"7fe7d1b6-318c-4adb-ac04-102cd33cdae4\",\"textAlign\":null},\"content\":[{\"text\":\"Focuses mainly on code output\",\"type\":\"text\"}]}]},{\"type\":\"tableCell\",\"attrs\":{\"align\":null,\"colspan\":1,\"rowspan\":1,\"colwidth\":null,\"textAlign\":\"left\",\"backgroundColor\":null},\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"21a9a978-c915-4c9b-8df2-e9f923156f32\",\"textAlign\":null},\"content\":[{\"text\":\"Combines review, security, debugging, and implementation\",\"type\":\"text\"}]}]}]},{\"type\":\"tableRow\",\"content\":[{\"type\":\"tableCell\",\"attrs\":{\"align\":null,\"colspan\":1,\"rowspan\":1,\"colwidth\":null,\"textAlign\":\"left\",\"backgroundColor\":null},\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"84678f6a-7da5-4fef-9cc3-0cdade870757\",\"textAlign\":null},\"content\":[{\"text\":\"Can feel like a black box\",\"type\":\"text\"}]}]},{\"type\":\"tableCell\",\"attrs\":{\"align\":null,\"colspan\":1,\"rowspan\":1,\"colwidth\":null,\"textAlign\":\"left\",\"backgroundColor\":null},\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"f3fbbe7d-3d70-42ae-a3a5-702c195a07ab\",\"textAlign\":null},\"content\":[{\"text\":\"Emphasizes visible, auditable actions\",\"type\":\"text\"}]}]}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"53a8b17a-2481-4408-8f9c-b2749e677921\",\"textAlign\":null},\"content\":[{\"text\":\"Pythinker Code is not just trying to help developers write more code. It is trying to help developers write better, safer, more grounded code.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"final-takeaway\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"final-takeaway\",\"data-heading-text\":null},\"content\":[{\"text\":\"Final Takeaway\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"428c92c4-1832-4efc-96d9-112b6bb5ea20\",\"textAlign\":null},\"content\":[{\"text\":\"Pythinker Code is built for developers who do not want AI to blindly generate code. They want AI to inspect, reason, review, debug, and then implement.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"4afa1296-12e4-4b4d-8d82-b03b45781e9b\",\"textAlign\":null},\"content\":[{\"text\":\"That is the power of the review-first approach.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"03b3fb9e-f9eb-40a4-82e6-40391944ba6f\",\"textAlign\":null},\"content\":[{\"text\":\"With terminal-native workflows, security scanning, root-cause debugging, ACP and MCP support, subagents, skills, hooks, plugins, and bring-your-own-model flexibility, Pythinker Code gives engineers a serious AI coding workflow without forcing them out of the shell.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"009f4b4a-aad7-4a61-9b34-3e1cf725b81f\",\"textAlign\":null},\"content\":[{\"text\":\"Think first. Then code. That is Pythinker Code.\",\"type\":\"text\",\"marks\":[{\"type\":\"bold\"}]}]},{\"type\":\"horizontalRule\"},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"53edaea7-022d-40e1-a730-dae29c2324fe\",\"textAlign\":null}}]},\"publishedAt\":\"2026-06-04T23:13:36.996Z\",\"categories\":[],\"tags\":[\"ai coding agent\",\"coding\",\"claude\",\"codex\"],\"featured\":false,\"featuredAt\":null,\"featuredOrder\":null,\"starsCount\":0,\"commentsCount\":0,\"viewsCount\":0,\"blog\":{\"id\":\"VL58-LB9eqKIGr3bWaPuZ\",\"name\":\"Dr Glitch's Blog\",\"slug\":\"default\",\"ownerId\":\"bf2742f2-fbda-4d60-b77d-1d3f4aa6e7aa\"},\"author\":{\"id\":\"bf2742f2-fbda-4d60-b77d-1d3f4aa6e7aa\",\"name\":\"Dr Glitch\",\"username\":\"dr_glitch\",\"handle\":\"dr_glitch\",\"image\":\"https://lh3.googleusercontent.com/a/ACg8ocKxE0ioalTUKCp1A15mDwp2puIP5FZYOGMUc8RFhj-gS3nxdpsx=s96-c\"}},{\"id\":\"SIT8Ms43sia7ZilJX28Ck\",\"title\":\"Beyond “Make it Beautiful”: The Anti-Slop Framework for AI Premium Design\",\"slug\":\"post-1779992445260\",\"excerpt\":\"AI coding tools can build interfaces incredibly fast. The problem is that they often build the same interface over and over again. You know the look. A centered...\",\"featuredImage\":\"/api/media/ac2c2632-713e-4110-8fc5-48c0f2b8eefd/dTWxmwomaL5ALeqYHBuyr/SIT8Ms43sia7ZilJX28Ck/1779992670738-c7tfww-ui_design.png\",\"content\":{\"type\":\"doc\",\"content\":[{\"type\":\"heading\",\"attrs\":{\"id\":\"beyond-make-it-beautiful-the-anti-slop-framework-for-ai-frontend-craftsmanship\",\"level\":1,\"textAlign\":null,\"data-toc-id\":\"beyond-make-it-beautiful-the-anti-slop-framework-for-ai-frontend-craftsmanship\",\"data-heading-text\":null}},{\"type\":\"image\",\"attrs\":{\"alt\":\"ui design\",\"src\":\"/api/media/ac2c2632-713e-4110-8fc5-48c0f2b8eefd/dTWxmwomaL5ALeqYHBuyr/SIT8Ms43sia7ZilJX28Ck/1779992670738-c7tfww-ui_design.png\",\"align\":\"center\",\"sizes\":null,\"title\":null,\"width\":null,\"height\":null,\"srcset\":null,\"caption\":null,\"loading\":\"lazy\",\"mediaId\":\"fdb6d4b8-f366-4b72-8110-93a74d19718d\",\"blurhash\":null,\"data-uid\":\"b02630d8-b039-4e7a-904c-fee499d9944e\"}},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"aed80eda-7eb5-4351-a86a-895e82bc4906\",\"textAlign\":null}},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"e504e256-ca50-4b6b-81e9-ffa513ac1f4a\",\"textAlign\":null},\"content\":[{\"text\":\"AI coding tools can build interfaces incredibly fast. The problem is that they often build the same interface over and over again.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"48dcca30-d8d4-4a8f-a5c2-3ae4a3380098\",\"textAlign\":null},\"content\":[{\"text\":\"You know the look.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"3faab654-6697-44b7-a916-e86e91d131da\",\"textAlign\":null},\"content\":[{\"text\":\"A centered hero section. A purple-blue gradient. A small “BETA” badge. Three identical feature cards. Inter everywhere. Soft shadows on every container. Animations that feel slow because everything is using \",\"type\":\"text\"},{\"text\":\"transition: all\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\".\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"ec2cbf98-1466-4eb7-8e81-c59c3968962e\",\"textAlign\":null},\"content\":[{\"text\":\"It is clean enough to pass at a glance, but it does not feel designed.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"e145429a-ee7c-4f09-a4ca-977a85404d70\",\"textAlign\":null},\"content\":[{\"text\":\"This is the problem with generic AI UI. The model is not necessarily bad at frontend work. The issue is that most prompts are too vague. When you ask an AI agent to “make it beautiful” or “make it premium,” it reaches for the safest, most common SaaS patterns in its training data.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"04a9cf37-fe58-4e24-b22e-60282b77feac\",\"textAlign\":null},\"content\":[{\"text\":\"That is how you get AI design monoculture.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"729973c0-10e1-4e96-8560-97881cd7936b\",\"textAlign\":null},\"content\":[{\"text\":\"The solution is not to ask for prettier screens. The solution is to give the AI stronger design constraints, a clearer workflow, and a stricter quality bar.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"c94ec465-1a25-4b4d-8e5f-80af1e3debd2\",\"textAlign\":null},\"content\":[{\"text\":\"In this article, we will look at three powerful AI design skills that can help you push AI-generated frontend work beyond generic templates:\",\"type\":\"text\"}]},{\"type\":\"orderedList\",\"attrs\":{\"type\":null,\"start\":1},\"content\":[{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"a58eb7ae-9042-46d7-8a82-84268d58e4d4\",\"textAlign\":null},\"content\":[{\"text\":\"Emil Kowalski’s Skill \",\"type\":\"text\",\"marks\":[{\"type\":\"link\",\"attrs\":{\"rel\":\"noopener noreferrer nofollow\",\"href\":\"https://emilkowal.ski/\",\"class\":\"text-blue-600 dark:text-blue-400 underline hover:text-blue-700 dark:hover:text-blue-300\",\"title\":null,\"target\":\"_blank\"}},{\"type\":\"bold\"}]},{\"type\":\"hardBreak\"},{\"text\":\"A frontend engineering skill inspired by Emil Kowalski’s writing on UI animation, motion quality, spring physics, and fast micro-interactions.\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"f494d2cd-c542-4dc0-9337-5de9eef3b9d9\",\"textAlign\":null},\"content\":[{\"text\":\"Impeccable Style\",\"type\":\"text\",\"marks\":[{\"type\":\"link\",\"attrs\":{\"rel\":\"noopener noreferrer nofollow\",\"href\":\"https://impeccable.style/\",\"class\":\"text-blue-600 dark:text-blue-400 underline hover:text-blue-700 dark:hover:text-blue-300\",\"title\":null,\"target\":\"_blank\"}},{\"type\":\"bold\"}]},{\"type\":\"hardBreak\"},{\"text\":\"A design workflow skill for AI harnesses, built around commands for teaching the agent your product, shaping layouts, refining typography, auditing quality, and polishing final code.\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"867dc9e9-5d24-4e50-b332-3a6c1c1f471f\",\"textAlign\":null},\"content\":[{\"text\":\"Taste Skill\",\"type\":\"text\",\"marks\":[{\"type\":\"link\",\"attrs\":{\"rel\":\"noopener noreferrer nofollow\",\"href\":\"https://www.tasteskill.dev/\",\"class\":\"text-blue-600 dark:text-blue-400 underline hover:text-blue-700 dark:hover:text-blue-300\",\"title\":null,\"target\":\"_blank\"}},{\"type\":\"bold\"}]},{\"type\":\"hardBreak\"},{\"text\":\"An anti-slop frontend framework that helps AI agents infer mood, audience, visual density, and layout direction before generating interface code.\",\"type\":\"text\"}]}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"93c22acb-c347-49bc-94a4-9704ce881339\",\"textAlign\":null},\"content\":[{\"text\":\"Together, these skills help turn your AI agent from a template generator into a more disciplined design engineering partner.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"why-ai-ui-looks-generic\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"why-ai-ui-looks-generic\",\"data-heading-text\":null},\"content\":[{\"text\":\"Why AI UI Looks Generic\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"801b2485-f9ce-4643-a733-0a078ea6b2a7\",\"textAlign\":null},\"content\":[{\"text\":\"Most AI-generated interfaces fail for the same reason: the prompt gives the model too much freedom.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"e468871d-3c04-4d7d-b8be-67b68f11180a\",\"textAlign\":null},\"content\":[{\"text\":\"When you say:\",\"type\":\"text\"}]},{\"type\":\"blockquote\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"1efda9d1-8683-4aa5-bb86-1655e49c786f\",\"textAlign\":null},\"content\":[{\"text\":\"“Create a modern dashboard.”\",\"type\":\"text\"}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"6170e1c0-c087-42a8-846d-9a8aadf012b4\",\"textAlign\":null},\"content\":[{\"text\":\"The AI hears:\",\"type\":\"text\"}]},{\"type\":\"blockquote\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"fba09264-18a3-4242-9119-78d8a6cab4b4\",\"textAlign\":null},\"content\":[{\"text\":\"“Use the most statistically common dashboard pattern.”\",\"type\":\"text\"}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"43793569-2eaf-45a7-8998-5edde49390e6\",\"textAlign\":null},\"content\":[{\"text\":\"That usually means cards, rounded corners, blue accents, generic navigation, neutral typography, and predictable spacing.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"b6bf1f29-4bf7-4c4c-8fbf-947066d4e42c\",\"textAlign\":null},\"content\":[{\"text\":\"When you say:\",\"type\":\"text\"}]},{\"type\":\"blockquote\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"4516089f-cc7e-4a11-9d46-b54e6d507a62\",\"textAlign\":null},\"content\":[{\"text\":\"“Make this landing page look premium.”\",\"type\":\"text\"}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"b891de1d-402a-48f2-8d29-bb95c86dad36\",\"textAlign\":null},\"content\":[{\"text\":\"The AI often reaches for the same visual clichés: gradients, floating icons, fake product mockups, badge labels, and symmetrical feature sections.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"ffd13456-380c-4bc9-9944-7148a193fcff\",\"textAlign\":null},\"content\":[{\"text\":\"The problem is not only visual. It also affects interaction quality.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"362bdbf1-3ebf-4d84-95c5-f3057457786b\",\"textAlign\":null},\"content\":[{\"text\":\"Generic AI UI often includes:\",\"type\":\"text\"}]},{\"type\":\"bulletList\",\"content\":[{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"1f3c55bd-cac1-422d-99d9-6adb62d97d11\",\"textAlign\":null},\"content\":[{\"text\":\"Overused fonts like Inter, Roboto, Arial, or Open Sans\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d36f4eed-279f-4ff1-b9fd-925143f63dca\",\"textAlign\":null},\"content\":[{\"text\":\"Purple-blue gradients with no brand logic\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"4c7c3e1e-55f3-4d29-8ccd-bc93afc450f7\",\"textAlign\":null},\"content\":[{\"text\":\"Repeated three-card grids\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d5ede600-c289-4068-8026-630a9dd86d1c\",\"textAlign\":null},\"content\":[{\"text\":\"Centered hero sections with weak hierarchy\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"0a942512-7aae-4c5a-acff-c64bf6780743\",\"textAlign\":null},\"content\":[{\"text\":\"Decorative badges that do not add meaning\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"9f16c39e-c2b1-4ebc-bc2c-a3ebd148a8c6\",\"textAlign\":null},\"content\":[{\"text\":\"Too many nested cards\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"52e2ac7d-2fad-4648-8bd8-cec68e4175e7\",\"textAlign\":null},\"content\":[{\"text\":\"Low-contrast gray text\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"6fbba3b9-fea8-435d-b203-ffe37a7ab1a7\",\"textAlign\":null},\"content\":[{\"text\":\"Weak mobile adaptation\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"957edcc5-11e9-4c8c-ad0d-eb05fb021bfa\",\"textAlign\":null},\"content\":[{\"text\":\"Heavy animation using \",\"type\":\"text\"},{\"text\":\"transition: all\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"73e7f792-34e4-402d-b92a-324257917d35\",\"textAlign\":null},\"content\":[{\"text\":\"Motion applied to interactions that should feel instant\",\"type\":\"text\"}]}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"4a656a6d-31a4-4c8c-99bf-a567a1a254d1\",\"textAlign\":null},\"content\":[{\"text\":\"This is why better prompting matters.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"0aa63fdf-7963-4ff2-be32-280aed07021c\",\"textAlign\":null},\"content\":[{\"text\":\"A good UI prompt should not only describe the final look. It should shape the process that creates the interface.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"the-better-ai-frontend-workflow\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"the-better-ai-frontend-workflow\",\"data-heading-text\":null},\"content\":[{\"text\":\"The Better AI Frontend Workflow\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"19b17224-53a5-4015-ae19-4bcf12236cde\",\"textAlign\":null},\"content\":[{\"text\":\"A strong AI frontend workflow should move through five stages:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"640845ea-7e36-4f61-8f3e-38ada95bc134\",\"language\":\"text\"},\"content\":[{\"text\":\"Design Strategy → Layout Constraints → Production Code → Motion Polish → Quality Audit\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"e3c3ca41-770c-42cd-a7a0-83878562ae88\",\"textAlign\":null},\"content\":[{\"text\":\"Most people skip straight to production code. That is the mistake.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"279c74b0-bb4f-4728-bff8-2137dfa44a9d\",\"textAlign\":null},\"content\":[{\"text\":\"Before the AI writes JSX, CSS, or Tailwind classes, it should first understand the product, audience, visual direction, and constraints. Then it should build with those rules in mind. After that, it should audit its own output for accessibility, motion performance, layout repetition, and generic design patterns.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"9de17067-ee6b-463b-a6e3-9970ded4e967\",\"textAlign\":null},\"content\":[{\"text\":\"This is where Impeccable, Taste Skill, and Emil Kowalski-style motion principles work well together.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"09276827-fa0f-452e-9974-52db05096c67\",\"textAlign\":null},\"content\":[{\"text\":\"Impeccable gives the agent a workflow.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"fdc8cf03-e4c2-4be2-9eb3-37b6c3d007c5\",\"textAlign\":null},\"content\":[{\"text\":\"Taste Skill blocks generic layout decisions.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d0908da5-c4f3-4a13-b829-ef5315fdaf9a\",\"textAlign\":null},\"content\":[{\"text\":\"Emil Kowalski’s motion principles make the interface feel fast, physical, and intentional.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"a20a00f2-acd6-4463-bf38-1653aee13f79\",\"textAlign\":null},\"content\":[{\"text\":\"Now let’s turn that into practical prompts.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"top-10-prompts-to-enhance-ui-designs-using-ai-skills\",\"level\":1,\"textAlign\":null,\"data-toc-id\":\"top-10-prompts-to-enhance-ui-designs-using-ai-skills\",\"data-heading-text\":null},\"content\":[{\"text\":\"Top 10 Prompts to Enhance UI Designs Using AI Skills\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"1-ui-design-strategy-prompt\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"1-ui-design-strategy-prompt\",\"data-heading-text\":null},\"content\":[{\"text\":\"1. UI Design Strategy Prompt\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"69522ef1-0e9f-4953-b309-355a61fa4e41\",\"textAlign\":null},\"content\":[{\"text\":\"Use this before building anything.\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"da283254-9556-4fd6-96d6-00b538f89549\",\"language\":\"markdown\"},\"content\":[{\"text\":\"Act as a senior design engineer.\\n\\nBefore writing code, analyze the product, audience, goal, and visual direction.\\n\\nUse:\\n- Impeccable Style for workflow planning, design tokens, typography, and polish.\\n- Taste Skill for anti-slop layout discipline and visual constraints.\\n- Emil Kowalski-style principles for motion quality and interaction behavior.\\n\\nFirst define:\\n1. Is this a brand-first interface or a product-first interface?\\n2. Who is the target audience?\\n3. What visual style should the UI express?\\n4. What generic AI design patterns must be banned?\\n5. What should the user feel when using the interface?\\n\\nDo not generate code yet. Output only the design strategy and wait for approval.\\n\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"why-this-works\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"why-this-works\",\"data-heading-text\":null},\"content\":[{\"text\":\"Why this works\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"7209d7d1-27e5-49cf-b147-011f56486420\",\"textAlign\":null},\"content\":[{\"text\":\"This prompt stops the AI from rushing into code. It forces the agent to make design decisions first.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"bfa40643-0773-415d-89b3-42761b49b3a7\",\"textAlign\":null},\"content\":[{\"text\":\"That matters because the best interfaces are not just collections of components. They are decisions about hierarchy, intent, mood, behavior, and clarity.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"90ca61a5-061f-4e63-9e2c-0bb5ed3ed16c\",\"textAlign\":null},\"content\":[{\"text\":\"Use this prompt whenever you start a new page, redesign an existing screen, or want the AI to behave more like a product designer than a code generator.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"2-anti-slop-landing-page-prompt\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"2-anti-slop-landing-page-prompt\",\"data-heading-text\":null},\"content\":[{\"text\":\"2. Anti-Slop Landing Page Prompt\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"ad770a33-cf7c-43f7-854d-57587508fa1e\",\"textAlign\":null},\"content\":[{\"text\":\"Use this for marketing pages, SaaS pages, portfolios, and product launch pages.\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"1bb6875f-17ad-4a8d-87fb-497e6db42421\",\"language\":\"markdown\"},\"content\":[{\"text\":\"Design a premium landing page using Impeccable in brand mode and Taste Skill anti-slop rules.\\n\\nAvoid generic AI design:\\n- No purple-blue gradient background.\\n- No centered badge + headline + 3-card grid.\\n- No fake dashboard mockups.\\n- No floating icon pills.\\n- No generic SaaS “BETA” badges.\\n\\nCreate:\\n- A bold hero section.\\n- Strong typography.\\n- Asymmetric layout.\\n- One memorable visual anchor per section.\\n- Clear CTA hierarchy.\\n- Responsive mobile layout.\\n\\nApply Emil Kowalski-style motion rules:\\n- Animate only transform and opacity where possible.\\n- Keep motion under 300ms.\\n- Use custom easing.\\n- Respect prefers-reduced-motion.\\n\\nGenerate production-ready React and Tailwind code.\\n\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"why-this-works\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"why-this-works\",\"data-heading-text\":null},\"content\":[{\"text\":\"Why this works\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"fd924de0-465f-41b7-872e-d8695ae5deff\",\"textAlign\":null},\"content\":[{\"text\":\"Most AI landing pages look the same because the model defaults to familiar SaaS marketing patterns.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"6d1708cd-cdc1-4094-b672-8b089f0a6a06\",\"textAlign\":null},\"content\":[{\"text\":\"This prompt blocks those defaults. It asks for distinction, not just cleanliness. It also forces the page to have a memorable visual idea, which is what generic AI landing pages usually lack.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"a5df41ef-4a9b-403f-98c0-9fd93974ecb0\",\"textAlign\":null},\"content\":[{\"text\":\"A good landing page should not feel like a template with swapped text. It should feel like a product with a point of view.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"3-product-dashboard-prompt\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"3-product-dashboard-prompt\",\"data-heading-text\":null},\"content\":[{\"text\":\"3. Product Dashboard Prompt\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"2752fd84-2408-4230-978b-74549e90a5a4\",\"textAlign\":null},\"content\":[{\"text\":\"Use this for admin panels, analytics dashboards, CRM screens, SaaS apps, and internal tools.\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"438e55aa-ed02-412e-a3ed-8231ec279b6e\",\"language\":\"markdown\"},\"content\":[{\"text\":\"Design a high-quality product dashboard using Impeccable in product mode.\\n\\nPrioritize:\\n- Speed.\\n- Clarity.\\n- Density.\\n- Predictable navigation.\\n- Low cognitive load.\\n\\nUse Taste Skill with high visual density and restrained visual variance.\\n\\nRules:\\n- Do not use cards for everything.\\n- Use spacing, borders, typography, and alignment to group information.\\n- Use tabular numbers for metrics, prices, dates, and data columns.\\n- Use subtle color only where it improves comprehension.\\n- Avoid decorative gradients and unnecessary shadows.\\n\\nMotion rules:\\n- Do not animate keyboard shortcuts, filters, search, or rapid actions.\\n- Add only subtle hover and active states.\\n- Keep interactions instant and useful.\\n\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"why-this-works\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"why-this-works\",\"data-heading-text\":null},\"content\":[{\"text\":\"Why this works\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"05776a17-7c3d-4f9e-8fbd-2a7ecf9419b6\",\"textAlign\":null},\"content\":[{\"text\":\"Product UI and marketing UI should not follow the same rules.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"644f75af-8e15-42c1-8d07-fcbdc9efd201\",\"textAlign\":null},\"content\":[{\"text\":\"A landing page can be expressive. A dashboard should be efficient.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"e503f2d6-39b3-4440-867f-6af43f32dd41\",\"textAlign\":null},\"content\":[{\"text\":\"This prompt pushes the AI toward clarity, density, and function. It also prevents one of the most common AI dashboard mistakes: wrapping everything in separate cards until the whole screen becomes a padded grid of boxes.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d110e3c0-7419-4610-a1d1-6474a2ff93ce\",\"textAlign\":null},\"content\":[{\"text\":\"Good product design often uses less decoration, not more.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"4-typography-polish-prompt\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"4-typography-polish-prompt\",\"data-heading-text\":null},\"content\":[{\"text\":\"4. Typography Polish Prompt\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"c31cb9cb-f472-4f54-9c5a-52001713be13\",\"textAlign\":null},\"content\":[{\"text\":\"Use this when the UI looks generic, flat, or obviously AI-made.\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"8bcf7be7-deb4-4d6e-8f78-d40378b52876\",\"language\":\"markdown\"},\"content\":[{\"text\":\"Run a typography polish pass using /impeccable typeset and Taste Skill rules.\\n\\nImprove the interface typography by:\\n- Removing generic font choices like Inter, Roboto, Arial, Open Sans, and Montserrat.\\n- Creating a stronger font pairing or refined system font stack.\\n- Defining clear heading, body, label, and caption hierarchy.\\n- Limiting paragraph width to 65-75 characters.\\n- Setting body line-height around 1.5.\\n- Using tabular numbers for prices, dates, metrics, and tables.\\n- Improving uppercase labels with better letter spacing.\\n\\nAlso remove em dashes and replace them with commas, colons, parentheses, or simple hyphens.\\n\\nOutput the improved typography system and updated component code.\\n\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"why-this-works\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"why-this-works\",\"data-heading-text\":null},\"content\":[{\"text\":\"Why this works\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"35269507-fb84-4450-aac7-2562c0148de8\",\"textAlign\":null},\"content\":[{\"text\":\"Typography is one of the fastest ways to make an AI-generated interface feel more intentional.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"e811507b-26e2-4af9-a3fa-c94b4b3b9aed\",\"textAlign\":null},\"content\":[{\"text\":\"Generic AI UI often uses the same font stack, the same heading weights, and the same spacing rhythm. This prompt forces the agent to treat typography as a system.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"fc72849c-369c-4ad8-b176-9dbd987d7c14\",\"textAlign\":null},\"content\":[{\"text\":\"The goal is not to choose a fancy font. The goal is to create hierarchy, rhythm, readability, and personality.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"5-bento-grid-prompt\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"5-bento-grid-prompt\",\"data-heading-text\":null},\"content\":[{\"text\":\"5. Bento Grid Prompt\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"2076bd84-20af-4a80-b5a9-6743a328d8a9\",\"textAlign\":null},\"content\":[{\"text\":\"Use this for feature sections, pricing summaries, product highlights, and benefit layouts.\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"d251e7aa-38b5-4f2d-8b11-3f20dfed6508\",\"language\":\"markdown\"},\"content\":[{\"text\":\"Create an asymmetric bento grid using Taste Skill layout discipline.\\n\\nRules:\\n- The number of content items must exactly match the number of grid cells.\\n- No empty cells.\\n- No generic 3-column card row.\\n- Use one dominant feature cell.\\n- Mix large, medium, and compact cells.\\n- Use CSS grid areas intentionally.\\n- Maintain consistent spacing.\\n- Preserve hierarchy on mobile.\\n\\nThe result should feel premium, editorial, and intentionally composed.\\n\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"why-this-works\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"why-this-works\",\"data-heading-text\":null},\"content\":[{\"text\":\"Why this works\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"eda94ab2-2c89-475e-b741-2c2294c723ea\",\"textAlign\":null},\"content\":[{\"text\":\"A grid is not automatically a design.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"5748ae18-9fe0-4d1e-a274-867b210dac6d\",\"textAlign\":null},\"content\":[{\"text\":\"AI agents often generate symmetrical three-column layouts because they are safe and common. But safe and common can quickly become boring.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"7e84f1ef-ff74-4ff7-84b1-0a6406ad87f4\",\"textAlign\":null},\"content\":[{\"text\":\"This prompt asks for composition. It makes the agent create a visual anchor, vary scale, and preserve structure across breakpoints.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"f2c5a818-2775-4b25-a985-76dd50c188e7\",\"textAlign\":null},\"content\":[{\"text\":\"That is how you get a section that feels designed instead of assembled.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"6-motion-polish-prompt\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"6-motion-polish-prompt\",\"data-heading-text\":null},\"content\":[{\"text\":\"6. Motion Polish Prompt\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"9430ce45-0255-4975-9dae-836b3275a692\",\"textAlign\":null},\"content\":[{\"text\":\"Use this when the UI feels static, robotic, or sluggish.\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"2a07d19b-0d7c-447e-912f-d4272ab258a9\",\"language\":\"markdown\"},\"content\":[{\"text\":\"Apply Emil Kowalski-style motion polish to this UI.\\n\\nRules:\\n- No transition: all.\\n- Animate only transform and opacity where possible.\\n- Keep most transitions between 120ms and 250ms.\\n- Never use ease-in for entrances.\\n- Use custom easing:\\n  cubic-bezier(0.23, 1, 0.32, 1) for responsive UI motion.\\n  cubic-bezier(0.77, 0, 0.175, 1) for larger layout transitions.\\n- Add active button feedback using scale(0.98) or translateY(1px).\\n- Remove animation from high-frequency actions.\\n- Respect prefers-reduced-motion.\\n\\nOutput a Before / After / Why table and then provide the improved code.\\n\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"why-this-works\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"why-this-works\",\"data-heading-text\":null},\"content\":[{\"text\":\"Why this works\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"0e0b2856-ed0c-4533-8586-5545506272d3\",\"textAlign\":null},\"content\":[{\"text\":\"Bad animation makes UI feel slower.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"6a2f968b-691a-410b-8ba4-6e00c3b77519\",\"textAlign\":null},\"content\":[{\"text\":\"Good animation makes UI feel more responsive.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"122db5ea-dce8-4019-a9a9-3934be4a78b3\",\"textAlign\":null},\"content\":[{\"text\":\"The difference is usually in timing, easing, and restraint. This prompt tells the AI exactly what to avoid and what to use instead. It also prevents the common mistake of animating everything just because animation is available.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"b3a2f319-beb8-40b2-9f81-8e81b613a14b\",\"textAlign\":null},\"content\":[{\"text\":\"High-frequency actions should feel immediate. Occasional interactions can carry more polish. Rare moments can have more delight.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"dbcb3577-bce3-46a0-9f7e-7e93bb246c9e\",\"textAlign\":null},\"content\":[{\"text\":\"That distinction is what makes motion feel intentional.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"7-color-system-prompt\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"7-color-system-prompt\",\"data-heading-text\":null},\"content\":[{\"text\":\"7. Color System Prompt\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"945bd2ca-0ff6-4f57-b4b1-22b064cdac3d\",\"textAlign\":null},\"content\":[{\"text\":\"Use this to make a UI feel more polished and less template-like.\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"9bbc2711-7b3e-4b68-91bf-4f1738cb7b50\",\"language\":\"markdown\"},\"content\":[{\"text\":\"Create a light and dark mode color system using OKLCH.\\n\\nRules:\\n- Do not use pure black #000.\\n- Do not use pure white #fff.\\n- Tint neutral colors toward the brand hue.\\n- Maintain WCAG AA contrast:\\n  - 4.5:1 for body text.\\n  - 3:1 for large headings.\\n- Use restrained color for product UI.\\n- Use stronger committed color for brand or marketing UI.\\n- Avoid washed-out gray text.\\n- Avoid oversaturated dark mode colors.\\n\\nOutput CSS variables and Tailwind-compatible design tokens.\\n\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"why-this-works\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"why-this-works\",\"data-heading-text\":null},\"content\":[{\"text\":\"Why this works\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"f6eff9de-fee1-499f-8283-85ddf95ad657\",\"textAlign\":null},\"content\":[{\"text\":\"Many AI-generated color systems are just collections of hex values.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"4253bf58-1dad-4a24-af17-126e1925605b\",\"textAlign\":null},\"content\":[{\"text\":\"This prompt turns color into architecture.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"778573b9-9628-4150-bc97-0a3aceb5abd9\",\"textAlign\":null},\"content\":[{\"text\":\"OKLCH helps create more controlled palettes across light and dark modes. Tinted neutrals make the interface feel more cohesive. Contrast rules keep the design usable.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"e3910cb8-438c-4497-b4b4-6f45851ab752\",\"textAlign\":null},\"content\":[{\"text\":\"The result is a UI that feels more deliberate and less like a default Tailwind theme.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"8-existing-ui-redesign-audit-prompt\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"8-existing-ui-redesign-audit-prompt\",\"data-heading-text\":null},\"content\":[{\"text\":\"8. Existing UI Redesign Audit Prompt\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"6c22408d-8520-4597-a700-0be27743825e\",\"textAlign\":null},\"content\":[{\"text\":\"Use this before redesigning an existing app.\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"e6be47e2-4aee-4e83-bd96-a8990e7dbd37\",\"language\":\"markdown\"},\"content\":[{\"text\":\"Act as a principal design engineer.\\n\\nAudit the existing interface before changing code.\\n\\nAnalyze:\\n- Current design tokens.\\n- Typography.\\n- Spacing system.\\n- Grid structure.\\n- Color palette.\\n- Repeated layout patterns.\\n- Accessibility issues.\\n- Animation problems.\\n- SEO and route invariants.\\n- Form field names.\\n- Conversion links.\\n\\nIdentify:\\n1. What must be preserved.\\n2. What must be removed.\\n3. What patterns make the UI feel generic.\\n4. What modernization strategy should be used.\\n\\nDo not write code yet. Output the redesign audit and wait for approval.\\n\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"why-this-works\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"why-this-works\",\"data-heading-text\":null},\"content\":[{\"text\":\"Why this works\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"6de8892f-c7af-4a3e-9a00-288e8247c2c5\",\"textAlign\":null},\"content\":[{\"text\":\"Redesigning an existing interface is risky.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d3b05832-ec52-4ff6-abf0-6030bdeea76b\",\"textAlign\":null},\"content\":[{\"text\":\"The AI might accidentally change routes, labels, form fields, SEO headings, or conversion links. A visual redesign should not break product behavior.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"52d3307d-77b2-4acf-8c1f-b26ee75d77d4\",\"textAlign\":null},\"content\":[{\"text\":\"This prompt forces the agent to inspect before acting. It separates diagnosis from execution, which is essential for real production work.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"9-hero-section-prompt\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"9-hero-section-prompt\",\"data-heading-text\":null},\"content\":[{\"text\":\"9. Hero Section Prompt\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"cd66426f-1400-4c26-bcd4-504f044ffeab\",\"textAlign\":null},\"content\":[{\"text\":\"Use this for homepage and landing page hero areas.\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"6e087bdf-cbe8-421f-9809-9819c983e907\",\"language\":\"markdown\"},\"content\":[{\"text\":\"Design a premium above-the-fold hero section.\\n\\nRules:\\n- Header must fit in one row.\\n- Header height must stay under 80px.\\n- Hero content must be visible without scrolling on desktop.\\n- Headline must be maximum two lines.\\n- Subtext must be maximum 20 words.\\n- CTA must be visible immediately.\\n- CTA text must not wrap.\\n- No fake SaaS badges.\\n- No scroll arrows.\\n- No floating stamps.\\n- No decorative text strips.\\n\\nUse strong typography, confident spacing, and one clear visual idea.\\n\\nPrepare the section for subtle motion using transform and opacity only.\\n\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"why-this-works\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"why-this-works\",\"data-heading-text\":null},\"content\":[{\"text\":\"Why this works\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"31edaff4-d073-487f-8099-3f69fc760cf5\",\"textAlign\":null},\"content\":[{\"text\":\"The hero section is where generic AI design is easiest to spot.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"17446304-6ed5-478f-babd-8fb3707e9cce\",\"textAlign\":null},\"content\":[{\"text\":\"Bad AI heroes usually contain too many ornaments and not enough hierarchy. This prompt removes the gimmicks and forces the section to focus on message, spacing, CTA clarity, and one strong visual concept.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"cb314c16-a366-4f30-a748-9207afe8f57d\",\"textAlign\":null},\"content\":[{\"text\":\"A good hero does not need ten decorations. It needs one clear idea.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"10-final-ui-quality-control-prompt\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"10-final-ui-quality-control-prompt\",\"data-heading-text\":null},\"content\":[{\"text\":\"10. Final UI Quality Control Prompt\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"b6b1f8cb-536a-4bb1-97de-b9bebd4f724b\",\"textAlign\":null},\"content\":[{\"text\":\"Use this before accepting any generated UI.\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"32385532-7c9f-4b33-a818-9a18b2aaf5ba\",\"language\":\"markdown\"},\"content\":[{\"text\":\"Run a final Impeccable polish and Taste Skill pre-flight check.\\n\\nCheck:\\n- Text contrast passes WCAG AA.\\n- Buttons are readable.\\n- Navigation stays under 80px.\\n- CTAs do not wrap.\\n- No duplicate CTA intent.\\n- No generic card-grid repetition.\\n- No em dashes.\\n- No Inter/Roboto default styling.\\n- No transition: all.\\n- No animation on width, height, margin, top, or left.\\n- React keys are stable and unique.\\n- Semantic HTML is used correctly.\\n- Empty, loading, and error states are present.\\n\\nIf anything fails, fix it before delivering the final code.\\n\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"why-this-works\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"why-this-works\",\"data-heading-text\":null},\"content\":[{\"text\":\"Why this works\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"98fdd6c3-98cf-4630-b4e6-57fdc65365a1\",\"textAlign\":null},\"content\":[{\"text\":\"A final polish prompt turns quality into a gate.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d172ffa1-5d58-4a5e-b2e8-3a9153569df6\",\"textAlign\":null},\"content\":[{\"text\":\"Without this step, the AI may produce something that looks acceptable but still has weak accessibility, unstable React keys, repeated layout patterns, slow animation, or missing empty states.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"85d37950-ab39-4d2a-b454-7d2ec26fd655\",\"textAlign\":null},\"content\":[{\"text\":\"This prompt tells the agent that failure is not a note. Failure blocks delivery.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"19b06666-2de5-427c-a5cf-e1f04fad5d73\",\"textAlign\":null},\"content\":[{\"text\":\"That is the mindset you want for production UI.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"best-workflow-to-use\",\"level\":1,\"textAlign\":null,\"data-toc-id\":\"best-workflow-to-use\",\"data-heading-text\":null},\"content\":[{\"text\":\"Best Workflow to Use\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"f85faeb5-2aac-462a-8e64-28da8b3ee292\",\"textAlign\":null},\"content\":[{\"text\":\"The strongest workflow is linear:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"3a3f37e9-be7e-4b90-8f23-c7c45993bb4d\",\"language\":\"text\"},\"content\":[{\"text\":\"/impeccable teach\\n→ /impeccable shape\\n→ Taste Skill brief inference\\n→ Build with anti-slop constraints\\n→ Typography polish\\n→ OKLCH color pass\\n→ Emil Kowalski motion polish\\n→ /impeccable audit\\n→ /impeccable polish\\n→ Final pre-flight check\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"dc509494-671f-4d40-abb2-c7e938485983\",\"textAlign\":null},\"content\":[{\"text\":\"This sequence works because each stage has a different job.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"3d9287a0-9bb9-4fce-b96b-4761737d1a74\",\"textAlign\":null},\"content\":[{\"text\":\"The early stages define the design direction. The middle stages build and refine the interface. The final stages audit the result and force corrections.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"696f89c3-bba5-49bc-95b2-133b8ce2063d\",\"textAlign\":null},\"content\":[{\"text\":\"Do not let the AI skip the strategy phase. Do not let it skip the audit phase either.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"6d6788fa-3f9d-4984-883b-8633de953548\",\"textAlign\":null},\"content\":[{\"text\":\"Those two steps are where most of the quality improvement happens.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"quick-win-the-master-prompt\",\"level\":1,\"textAlign\":null,\"data-toc-id\":\"quick-win-the-master-prompt\",\"data-heading-text\":null},\"content\":[{\"text\":\"Quick Win: The Master Prompt\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"939678de-a785-4f8b-bd8b-b8eb19d208b0\",\"textAlign\":null},\"content\":[{\"text\":\"Use this one prompt whenever you want better UI from an AI coding agent.\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"0ddd322c-2c51-4f08-8761-fee40b8eb8b5\",\"language\":\"markdown\"},\"content\":[{\"text\":\"Before generating UI, run a design strategy pass.\\n\\nUse Impeccable for workflow, Taste Skill for anti-slop constraints, and Emil Kowalski-style principles for motion.\\n\\nFirst decide:\\n- Brand mode or product mode.\\n- Visual density.\\n- Design variance.\\n- Motion intensity.\\n- Typography direction.\\n- Color system.\\n- Banned generic patterns.\\n\\nThen build the UI.\\n\\nAfter building, audit:\\n- Layout repetition.\\n- Typography quality.\\n- Color contrast.\\n- Motion performance.\\n- Accessibility.\\n- Responsiveness.\\n- Semantic HTML.\\n\\nFix all failures before final output.\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"0fdc39f4-442f-457e-9c31-5f8d3a4470b1\",\"textAlign\":null},\"content\":[{\"text\":\"This is the strongest reusable prompt because it forces the AI to think like a design engineer before acting like a code generator.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"final-thoughts\",\"level\":1,\"textAlign\":null,\"data-toc-id\":\"final-thoughts\",\"data-heading-text\":null},\"content\":[{\"text\":\"Final Thoughts\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"49d5ac17-9af7-4bd1-8b46-c478cef418a2\",\"textAlign\":null},\"content\":[{\"text\":\"The future of AI frontend design is not about asking models to “make it beautiful.”\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"b9165a0f-5ac0-4fb1-a7df-1a53f5ea0fe8\",\"textAlign\":null},\"content\":[{\"text\":\"That phrase is too vague. It gives the model permission to fall back on generic patterns.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"9d46389d-a251-48b9-bca1-87bd1909a194\",\"textAlign\":null},\"content\":[{\"text\":\"The better approach is to give the AI a design process.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"1c9ba8c1-d0f9-4055-996d-c381203d73af\",\"textAlign\":null},\"content\":[{\"text\":\"Use Impeccable to structure the workflow. Use Taste Skill to block generic layout choices. Use Emil Kowalski-style motion principles to make interactions feel fast, physical, and polished.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"0e2c3549-7381-4897-8ea1-29e7fd9f1077\",\"textAlign\":null},\"content\":[{\"text\":\"When you combine these skills, AI-generated UI starts to feel less like a template and more like a real product decision.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"00d4b2a7-355c-490d-a635-e0f0f4aa3e98\",\"textAlign\":null},\"content\":[{\"text\":\"Good design prompts do not just describe the output.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"bee00a8b-e8c1-4381-953c-6ccc31303090\",\"textAlign\":null},\"content\":[{\"text\":\"They shape the thinking that creates it.\",\"type\":\"text\"}]}]},\"publishedAt\":\"2026-05-28T18:32:49.770Z\",\"categories\":[],\"tags\":[\"ai\",\"code\",\"ui\",\"ui ux design\"],\"featured\":false,\"featuredAt\":null,\"featuredOrder\":null,\"starsCount\":1,\"commentsCount\":1,\"viewsCount\":3,\"blog\":{\"id\":\"dTWxmwomaL5ALeqYHBuyr\",\"name\":\"Mohamed Elkholy's Blog\",\"slug\":\"default\",\"ownerId\":\"ac2c2632-713e-4110-8fc5-48c0f2b8eefd\"},\"author\":{\"id\":\"ac2c2632-713e-4110-8fc5-48c0f2b8eefd\",\"name\":\"Mohamed Elkholy\",\"username\":\"melkholy\",\"handle\":\"melkholy\",\"image\":\"https://lh3.googleusercontent.com/a/ACg8ocKSb2jl0G7_8xxvi-_WiBIFTLsRl6l2niOZsaRjnqKOXKpvnias=s96-c\"}},{\"id\":\"JzMjQsxAQ1FNfVkAJBNa-\",\"title\":\"Claude Code: A Deep Practical Guide to Using Every Major Feature\",\"slug\":\"post-1779988560770\",\"excerpt\":\"Introduction I use Claude Code not only as a coding assistant, but as a practical development partner for planning, editing, debugging, testing, documenting, an...\",\"featuredImage\":\"/api/media/ac2c2632-713e-4110-8fc5-48c0f2b8eefd/dTWxmwomaL5ALeqYHBuyr/JzMjQsxAQ1FNfVkAJBNa-/1779988717698-6kyxac-chatgpt-image-may-28_-2026_-01_18_10-pm.png\",\"content\":{\"type\":\"doc\",\"content\":[{\"type\":\"image\",\"attrs\":{\"alt\":\"ChatGPT Image May 28, 2026, 01 18 10 PM\",\"src\":\"/api/media/ac2c2632-713e-4110-8fc5-48c0f2b8eefd/dTWxmwomaL5ALeqYHBuyr/JzMjQsxAQ1FNfVkAJBNa-/1779988717698-6kyxac-chatgpt-image-may-28_-2026_-01_18_10-pm.png\",\"align\":\"center\",\"sizes\":null,\"title\":null,\"width\":null,\"height\":null,\"srcset\":null,\"caption\":null,\"loading\":\"lazy\",\"mediaId\":\"a20cb050-0af9-46b2-9541-7b6ab22f4cac\",\"blurhash\":null,\"data-uid\":\"72418543-ac30-46e1-957e-97268a925aec\"}},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"785c826f-8ca9-4ee7-81f0-a3fc9ac76aa8\",\"textAlign\":null}},{\"type\":\"heading\",\"attrs\":{\"id\":\"introduction\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"introduction\",\"data-heading-text\":null},\"content\":[{\"text\":\"Introduction\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"a9dff0a2-0079-467d-8009-c146a45d83a7\",\"textAlign\":null},\"content\":[{\"text\":\"I use Claude Code not only as a coding assistant, but as a practical development partner for planning, editing, debugging, testing, documenting, and improving software workflows.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"23bd0d98-5f40-4dd3-a63b-6d35f96d738d\",\"textAlign\":null},\"content\":[{\"text\":\"This article is written from the perspective of someone who cares about real-world AI-assisted development, not just tool hype. Claude Code, Codex CLI, Gemini CLI, Cursor, and other coding agents are becoming more powerful every month. However, many developers still evaluate these tools based on surface-level details: which one sounds nicer, which one has a cleaner interface, or which one gives more polished explanations.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"a4377f74-6225-45b5-9cb2-529056ccfa67\",\"textAlign\":null},\"content\":[{\"text\":\"That is not how I judge coding agents.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d137b0d8-092d-41b1-8922-ee9aaef14454\",\"textAlign\":null},\"content\":[{\"text\":\"A serious coding agent should be judged by the final result: the quality of the pull request, the correctness of the implementation, the reliability of the tests, and how well it fits into an engineering workflow. The goal is not to admire the agent while it works. The goal is to give it the right context, define the task clearly, and let it produce useful work.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"5ec7419c-2e7c-4546-af1d-9bb6ec2f3040\",\"textAlign\":null},\"content\":[{\"text\":\"The central argument of this article is simple:\",\"type\":\"text\"}]},{\"type\":\"blockquote\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"1f821375-972a-4efe-8d4c-de54e5dd7603\",\"textAlign\":null},\"content\":[{\"text\":\"Claude Code becomes powerful when you stop treating it like a chatbot and start treating it like an engineering system.\",\"type\":\"text\"}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"7a207e58-90ab-4618-b6e0-91278462842e\",\"textAlign\":null},\"content\":[{\"text\":\"That system includes context files, planning workflows, hooks, skills, command-line tools, session recovery, GitHub Actions, SDK usage, and well-designed permissions. Each feature matters most when it supports a larger development process.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"145bbbca-8fc2-4d69-b760-25cd475b6647\",\"textAlign\":null},\"content\":[{\"text\":\"This guide explains how I think about each major Claude Code feature, how I would use it in practice, where it can go wrong, and what lessons developers should take away.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"how-to-read-this-article\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"how-to-read-this-article\",\"data-heading-text\":null},\"content\":[{\"text\":\"How to Read This Article\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"ed035026-8495-4d52-8cd8-2516fbd39c35\",\"textAlign\":null},\"content\":[{\"text\":\"This is not meant to be a quick marketing overview. It is a practical guide for developers, technical founders, AI workflow builders, and engineering teams who want to understand how Claude Code can fit into real software work.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"7d5b02b4-4de4-483a-8d26-91fad19dd1c9\",\"textAlign\":null},\"content\":[{\"text\":\"You can read it in three ways:\",\"type\":\"text\"}]},{\"type\":\"orderedList\",\"attrs\":{\"type\":null,\"start\":1},\"content\":[{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"0634521e-2383-4538-9687-9c08260f46e7\",\"textAlign\":null},\"content\":[{\"text\":\"As a beginner:\",\"type\":\"text\",\"marks\":[{\"type\":\"bold\"}]},{\"text\":\" use it to understand what the main Claude Code features are and why they matter.\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d7871489-f627-460c-a2b3-ff1b3ff4145d\",\"textAlign\":null},\"content\":[{\"text\":\"As a daily user:\",\"type\":\"text\",\"marks\":[{\"type\":\"bold\"}]},{\"text\":\" use it to improve your workflow, avoid common mistakes, and manage context better.\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"dd359820-b172-44d5-9e9b-26c9c4ced407\",\"textAlign\":null},\"content\":[{\"text\":\"As a team or enterprise builder:\",\"type\":\"text\",\"marks\":[{\"type\":\"bold\"}]},{\"text\":\" use it to think about governance, automation, testing, permissions, and scalable AI-assisted development.\",\"type\":\"text\"}]}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"51fb73a3-d938-4a33-b855-7497d38f6b00\",\"textAlign\":null},\"content\":[{\"text\":\"The article is intentionally detailed because Claude Code is not just one tool. It is a collection of features that become much more valuable when they are combined correctly.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"1-claudemd-the-constitution-of-the-codebase\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"1-claudemd-the-constitution-of-the-codebase\",\"data-heading-text\":null},\"content\":[{\"text\":\"1. \",\"type\":\"text\"},{\"text\":\"CLAUDE.md\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\": The Constitution of the Codebase\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"6d3f73ec-0df9-43b1-b4de-c22946d45221\",\"textAlign\":null},\"content\":[{\"text\":\"The most important file in a Claude Code workflow is often the root-level \",\"type\":\"text\"},{\"text\":\"CLAUDE.md\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" file.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"18155cd1-d2d9-4184-8037-d92b45e20480\",\"textAlign\":null},\"content\":[{\"text\":\"I think of \",\"type\":\"text\"},{\"text\":\"CLAUDE.md\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" as the constitution of the project. It tells Claude how the codebase works, what rules matter, which commands to use, what mistakes to avoid, and where to look when it needs deeper information.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"28a48567-1a96-4a92-895c-337d91ed7c2f\",\"textAlign\":null},\"content\":[{\"text\":\"Without a good \",\"type\":\"text\"},{\"text\":\"CLAUDE.md\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\", Claude has to infer too much from the codebase. Sometimes it will succeed, but often it will waste time, make incorrect assumptions, or repeat mistakes that could have been prevented with a few clear instructions.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"what-claudemd-should-do\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"what-claudemd-should-do\",\"data-heading-text\":null},\"content\":[{\"text\":\"What \",\"type\":\"text\"},{\"text\":\"CLAUDE.md\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" Should Do\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"85da013b-8c22-420b-862b-7d513e18200d\",\"textAlign\":null},\"content\":[{\"text\":\"A strong \",\"type\":\"text\"},{\"text\":\"CLAUDE.md\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" should answer questions like:\",\"type\":\"text\"}]},{\"type\":\"bulletList\",\"content\":[{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"954e4810-7c9f-4c53-b785-390203b9bf40\",\"textAlign\":null},\"content\":[{\"text\":\"What is the project structure?\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"fcf64421-3629-4b43-b4cc-b1289f8fd0b5\",\"textAlign\":null},\"content\":[{\"text\":\"Which commands should be used for testing, linting, formatting, and building?\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"96fce615-77ca-432b-a991-22521e9f5e3a\",\"textAlign\":null},\"content\":[{\"text\":\"Which internal tools or wrappers should Claude prefer?\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"2f214503-d0e6-4b1c-bdfa-042712bf753a\",\"textAlign\":null},\"content\":[{\"text\":\"Which mistakes does Claude commonly make in this repository?\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"f22568d1-792b-4121-b468-b587b4b9419a\",\"textAlign\":null},\"content\":[{\"text\":\"Where should Claude look when it needs advanced documentation?\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"3fe228ec-a8cf-4295-ac9f-cb5e59816550\",\"textAlign\":null},\"content\":[{\"text\":\"What should Claude never do without verification?\",\"type\":\"text\"}]}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"f8ccd100-f5ab-4ed6-bfae-c448867b2e27\",\"textAlign\":null},\"content\":[{\"text\":\"However, the file should not become a giant manual. The purpose is not to explain everything. The purpose is to prevent predictable failure.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"start-with-guardrails-not-a-manual\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"start-with-guardrails-not-a-manual\",\"data-heading-text\":null},\"content\":[{\"text\":\"Start with Guardrails, Not a Manual\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"dcb60817-65eb-49ce-b46d-95b6d909fbb3\",\"textAlign\":null},\"content\":[{\"text\":\"A common mistake is trying to put the entire engineering handbook into \",\"type\":\"text\"},{\"text\":\"CLAUDE.md\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\". This makes the file too long and wastes context.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"858dbeef-4056-444b-aafe-c908d086f393\",\"textAlign\":null},\"content\":[{\"text\":\"A better approach is to focus on high-value guardrails.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d95f5e92-8ca1-45d3-9064-d390666836a2\",\"textAlign\":null},\"content\":[{\"text\":\"For example, instead of writing ten pages about how your test system works, write the one command Claude should normally use:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"8900c9a8-53eb-41ae-8bd0-b1a94b5ba519\",\"language\":\"md\"},\"content\":[{\"text\":\"## Testing\\n\\nUse this command before committing:\\n\\n```bash\\n./scripts/test-all.sh\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"21ca5218-6230-447a-93c4-f4a4c7c60808\",\"textAlign\":null},\"content\":[{\"text\":\"If the command fails with dependency or environment errors, read \",\"type\":\"text\"},{\"text\":\"docs/testing-troubleshooting.md\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\".\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"ccc47edf-2e29-4650-9fbd-383298312b44\",\"language\":\"plaintext\"},\"content\":[{\"text\":\"\\nThis gives Claude the normal path and a recovery path without overloading the context.\\n\\n### Do Not Only Say “Never”\\n\\nNegative instructions are useful, but they are dangerous when they do not include alternatives.\\n\\nBad instruction:\\n\\n```md\\nNever use the `--force` flag.\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"71abd9e9-6690-4cb1-9eb1-35c53b6d5d4a\",\"textAlign\":null},\"content\":[{\"text\":\"Better instruction:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"32c05a94-1e98-4ad7-a10a-a64929d4ad22\",\"language\":\"md\"},\"content\":[{\"text\":\"Avoid `--force` in normal workflows. Prefer `./scripts/safe-reset.sh`. Only consider `--force` after checking the troubleshooting guide and explaining why it is necessary.\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"dae87fc2-835b-48a7-a626-e379c4576480\",\"textAlign\":null},\"content\":[{\"text\":\"Claude needs direction, not just restrictions. A good rule explains the safer path.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"do-not-use-claudemd-to-hide-bad-tool-design\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"do-not-use-claudemd-to-hide-bad-tool-design\",\"data-heading-text\":null},\"content\":[{\"text\":\"Do Not Use \",\"type\":\"text\"},{\"text\":\"CLAUDE.md\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" to Hide Bad Tool Design\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"699d3d72-7054-46c9-9bd3-ebc2da5df307\",\"textAlign\":null},\"content\":[{\"text\":\"If a CLI tool needs a long explanation before Claude can use it, the problem may not be Claude. The tool may be poorly designed.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"821c6e73-6e78-4021-a9aa-dcb1a6af0b8f\",\"textAlign\":null},\"content\":[{\"text\":\"In that situation, the better solution is to create a wrapper script with a clean interface. Then document the wrapper in \",\"type\":\"text\"},{\"text\":\"CLAUDE.md\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\".\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"47337526-c272-47a6-97ea-bee0c2172017\",\"textAlign\":null},\"content\":[{\"text\":\"For example:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"a9cba35a-0553-463b-9d11-9844f86d808f\",\"language\":\"md\"},\"content\":[{\"text\":\"## Database Migration\\n\\nUse:\\n\\n```bash\\n./scripts/run-migration-check.sh\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"e2347a7a-a1f7-4f22-805f-5861011883f2\",\"textAlign\":null},\"content\":[{\"text\":\"Do not call the lower-level migration commands directly unless this wrapper fails.\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"45f52d55-b844-4a6f-a98f-3564649fc759\",\"language\":\"plaintext\"},\"content\":[{\"text\":\"\\nThis improves the workflow for both humans and AI agents.\\n\\n### Practical Example\\n\\nA clean `CLAUDE.md` might look like this:\\n\\n```md\\n# Project Guide for Claude\\n\\n## General Rules\\n- Prefer small, focused changes.\\n- Do not introduce new dependencies without explaining why.\\n- Before committing, run the required test command.\\n\\n## Testing\\n- Use `./scripts/test-all.sh` for full validation.\\n- Use `./scripts/test-unit.sh` for fast local checks.\\n- If tests fail due to environment issues, read `docs/test-troubleshooting.md`.\\n\\n## Python\\n- Use the existing package manager.\\n- Follow the formatting rules already used in the repo.\\n- Do not bypass type checks.\\n\\n## Internal CLI\\n- Use `./tools/project-cli` for standard operations.\\n- Avoid direct low-level commands unless the wrapper cannot handle the case.\\n\\n## Pull Requests\\n- Summarize what changed.\\n- Mention tests run.\\n- Mention any known risks.\\n\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"key-takeaway\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"key-takeaway\",\"data-heading-text\":null},\"content\":[{\"text\":\"Key Takeaway\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"ab5f2e8f-7d51-43f4-939c-a2ea3fd581aa\",\"textAlign\":null},\"content\":[{\"text\":\"CLAUDE.md\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" should be short, clear, and focused on the most important rules. It should act as a guide and safety barrier, not as a full documentation dump.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"2-context-management-clear-compact-and-external-memory\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"2-context-management-clear-compact-and-external-memory\",\"data-heading-text\":null},\"content\":[{\"text\":\"2. Context Management: Clear, Compact, and External Memory\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"e900c7e6-96ef-4995-af26-32a28c8f2fa7\",\"textAlign\":null},\"content\":[{\"text\":\"Context is one of the most important concepts in AI-assisted development.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"6f576085-479f-41eb-b63c-188e33ac1613\",\"textAlign\":null},\"content\":[{\"text\":\"Claude Code may support a large context window, but that does not mean every token is equally useful. A long conversation can become messy. The agent may carry outdated assumptions, irrelevant details, failed attempts, or partial plans that no longer matter.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"b4c78d39-ccf3-4104-9087-85f3269d74e8\",\"textAlign\":null},\"content\":[{\"text\":\"This is why context management is not optional. It is a core skill.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"use-context-to-understand-the-starting-point\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"use-context-to-understand-the-starting-point\",\"data-heading-text\":null},\"content\":[{\"text\":\"Use \",\"type\":\"text\"},{\"text\":\"/context\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" to Understand the Starting Point\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"2407c0a0-e4de-4b3e-9a1f-513430c650e7\",\"textAlign\":null},\"content\":[{\"text\":\"Before doing serious work in a large repository, I recommend checking how much context is already being consumed.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"fa9d189c-4224-4889-93e1-6d01e41bf678\",\"textAlign\":null},\"content\":[{\"text\":\"A large monorepo can create significant overhead before the task even begins. If the session starts with a large amount of background context, the remaining space can disappear quickly during implementation.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"481ded84-a17e-4d9f-a45f-f6a3de2f2c3b\",\"textAlign\":null},\"content\":[{\"text\":\"Think of context like workspace memory. If it becomes cluttered, the agent’s reasoning becomes less reliable.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"why-i-avoid-blindly-trusting-compact\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"why-i-avoid-blindly-trusting-compact\",\"data-heading-text\":null},\"content\":[{\"text\":\"Why I Avoid Blindly Trusting \",\"type\":\"text\"},{\"text\":\"/compact\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"8a22e61a-7cc5-4b03-86d8-76ec13fb1ceb\",\"textAlign\":null},\"content\":[{\"text\":\"The \",\"type\":\"text\"},{\"text\":\"/compact\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" feature can be useful, but I do not like relying on it blindly.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"0368bbf4-fc3f-426a-b18f-f76ae855e52a\",\"textAlign\":null},\"content\":[{\"text\":\"Automatic compression is opaque. You do not fully control what gets preserved, what gets removed, or how the summary represents the previous work.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"c8cccea6-382b-48de-8802-b2ca417de61c\",\"textAlign\":null},\"content\":[{\"text\":\"The danger is not obvious failure. The danger is subtle failure. Claude may continue with a compressed understanding that is slightly wrong.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"cb1efe5c-a4cf-45a7-bebb-292656647ade\",\"textAlign\":null},\"content\":[{\"text\":\"For small tasks, this may not matter. For complex changes, it can create real risk.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"my-preferred-workflow-clear-and-catch-up\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"my-preferred-workflow-clear-and-catch-up\",\"data-heading-text\":null},\"content\":[{\"text\":\"My Preferred Workflow: \",\"type\":\"text\"},{\"text\":\"/clear\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" and Catch Up\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"19f6bc52-7ac4-4210-8cb8-be99b49c3612\",\"textAlign\":null},\"content\":[{\"text\":\"For many tasks, I prefer to clear the session and let Claude rebuild context from the actual branch state.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"fe908c4e-cb42-41bd-ac6f-dc15e18ffa17\",\"textAlign\":null},\"content\":[{\"text\":\"A useful custom command is \",\"type\":\"text\"},{\"text\":\"/catchup\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\", which can tell Claude to inspect all current Git changes and understand what has already been done.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"55d6827f-f4de-48b4-a5cf-3aa5b4ab2fe7\",\"textAlign\":null},\"content\":[{\"text\":\"The workflow looks like this:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"2a22617e-6f42-4329-bae2-6aba771150d7\",\"language\":\"text\"},\"content\":[{\"text\":\"1. Work on the task.\\n2. If the session becomes messy, run /clear.\\n3. Run /catchup.\\n4. Let Claude inspect the branch and continue from the code, not from a bloated conversation.\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"b3a5db58-e8d0-402b-95c9-584845adfe05\",\"textAlign\":null},\"content\":[{\"text\":\"This is often cleaner than trying to preserve the entire conversation history.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"for-complex-work-create-external-memory\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"for-complex-work-create-external-memory\",\"data-heading-text\":null},\"content\":[{\"text\":\"For Complex Work, Create External Memory\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"1cda163a-52fe-4c55-80ec-51fc8e458476\",\"textAlign\":null},\"content\":[{\"text\":\"For large features or multi-step migrations, I prefer creating a Markdown progress file before clearing the session.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"e71a0ec5-0fae-4216-9d18-237a08748ac7\",\"textAlign\":null},\"content\":[{\"text\":\"For example:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"d5178cce-aa85-48b7-bf60-469735284b74\",\"language\":\"md\"},\"content\":[{\"text\":\"# Feature Progress Notes\\n\\n## Goal\\nImplement the new billing workflow.\\n\\n## Completed\\n- Added database schema changes.\\n- Implemented service layer.\\n- Added initial tests.\\n\\n## Remaining\\n- Connect API route.\\n- Add validation.\\n- Update documentation.\\n\\n## Important Decisions\\n- Use existing billing event model.\\n- Avoid introducing a new queue unless necessary.\\n\\n## Risks\\n- Migration must be backward-compatible.\\n- Existing tests may need fixture updates.\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"5ca3b93d-b029-42d1-823b-e117adafa932\",\"textAlign\":null},\"content\":[{\"text\":\"Then, after \",\"type\":\"text\"},{\"text\":\"/clear\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\", Claude can read the progress file and continue with a cleaner understanding.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"key-takeaway\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"key-takeaway\",\"data-heading-text\":null},\"content\":[{\"text\":\"Key Takeaway\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"1f4a06c2-20e6-492b-92eb-369871e48355\",\"textAlign\":null},\"content\":[{\"text\":\"Do not let long sessions become chaotic. Use \",\"type\":\"text\"},{\"text\":\"/clear\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" when needed. Use external Markdown notes for complex work. Treat context as a limited and valuable resource.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"3-custom-slash-commands-shortcuts-not-a-workflow-language\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"3-custom-slash-commands-shortcuts-not-a-workflow-language\",\"data-heading-text\":null},\"content\":[{\"text\":\"3. Custom Slash Commands: Shortcuts, Not a Workflow Language\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"e9e3cb0d-3ecd-45a1-afd5-0e7f62a3f774\",\"textAlign\":null},\"content\":[{\"text\":\"Custom slash commands are useful, but they should remain simple.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"a3fddc0a-c555-4b0d-af66-caa77b8248bc\",\"textAlign\":null},\"content\":[{\"text\":\"I use them as shortcuts for prompts I repeat often. I do not believe teams should build a large library of complicated slash commands that everyone must memorize.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"0d44569b-00ba-49a4-949a-1e7e890485d4\",\"textAlign\":null},\"content\":[{\"text\":\"The strength of Claude Code is natural language flexibility. If the workflow becomes dependent on hidden commands, the system becomes less intuitive.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"useful-slash-commands\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"useful-slash-commands\",\"data-heading-text\":null},\"content\":[{\"text\":\"Useful Slash Commands\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"dba36596-8b7f-4f79-abee-09cf87ab1a03\",\"textAlign\":null},\"content\":[{\"text\":\"Two practical examples are:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"d6642425-30d6-4ba2-9eeb-d5b9daecceff\",\"language\":\"text\"},\"content\":[{\"text\":\"/catchup\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"e2dbaacc-7ec7-4aa1-b418-0c60bf742d72\",\"textAlign\":null},\"content\":[{\"text\":\"This tells Claude to inspect the current Git branch, read the changes, and summarize the state.\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"7f5f7987-5c7c-44e9-a531-3849d3acdd24\",\"language\":\"text\"},\"content\":[{\"text\":\"/pr\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"9dc7cb27-39cf-48a2-95c3-8d0ec540d543\",\"textAlign\":null},\"content\":[{\"text\":\"This helps Claude prepare a pull request by cleaning up changes, checking tests, and writing a good PR summary.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"what-to-avoid\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"what-to-avoid\",\"data-heading-text\":null},\"content\":[{\"text\":\"What to Avoid\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"3c6dcabf-6e61-4875-8366-2a5f3749ffeb\",\"textAlign\":null},\"content\":[{\"text\":\"Avoid turning slash commands into a private programming language.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"1ba62312-ceb3-4ab2-988a-00f3bcd953cd\",\"textAlign\":null},\"content\":[{\"text\":\"If a developer needs to remember twenty commands before they can use the agent effectively, the workflow is too complex.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"key-takeaway\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"key-takeaway\",\"data-heading-text\":null},\"content\":[{\"text\":\"Key Takeaway\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"b64cbf6d-ee92-4d43-b32d-21115dee2d59\",\"textAlign\":null},\"content\":[{\"text\":\"Slash commands should save typing. They should not replace good tools, clear prompts, or simple repository conventions.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"4-custom-sub-agents-powerful-but-easy-to-misuse\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"4-custom-sub-agents-powerful-but-easy-to-misuse\",\"data-heading-text\":null},\"content\":[{\"text\":\"4. Custom Sub-Agents: Powerful but Easy to Misuse\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"4d73ba43-5315-439a-b873-4a505a349be8\",\"textAlign\":null},\"content\":[{\"text\":\"Custom sub-agents sound extremely useful in theory.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"35e68631-7279-4b62-9faa-5068de57e80d\",\"textAlign\":null},\"content\":[{\"text\":\"The idea is simple: instead of filling the main context with every detail, you delegate specific tasks to smaller agents. Those agents do the detailed work and return summarized results.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"cd152927-fa96-43a8-afd5-f29241bb5115\",\"textAlign\":null},\"content\":[{\"text\":\"This can save context and allow parallel reasoning.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"22718675-b511-4a40-b2a8-23f2cdb1854d\",\"textAlign\":null},\"content\":[{\"text\":\"However, specialized sub-agents can also create problems.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"the-main-risk-hidden-context\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"the-main-risk-hidden-context\",\"data-heading-text\":null},\"content\":[{\"text\":\"The Main Risk: Hidden Context\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"23a7f797-f991-4f5f-9532-75f310f2880b\",\"textAlign\":null},\"content\":[{\"text\":\"If you create a specialized sub-agent, such as a \",\"type\":\"text\"},{\"text\":\"PythonTests\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" agent, the main agent may lose direct visibility into testing logic. It has to ask the sub-agent for answers instead of reasoning globally.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"b7aa9bbc-7347-41e4-a538-7d7bd9b255ad\",\"textAlign\":null},\"content\":[{\"text\":\"That can make the workflow fragmented.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d9711bef-7044-43a2-b9d7-643497da21ec\",\"textAlign\":null},\"content\":[{\"text\":\"The main agent should understand the overall task. If too much context is hidden inside specialized agents, the main agent becomes more like a coordinator and less like a reasoning system.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"the-second-risk-forcing-human-workflow-patterns\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"the-second-risk-forcing-human-workflow-patterns\",\"data-heading-text\":null},\"content\":[{\"text\":\"The Second Risk: Forcing Human Workflow Patterns\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"691b725b-7977-4b77-98ef-4d6d7f5eb821\",\"textAlign\":null},\"content\":[{\"text\":\"Another issue is that custom sub-agents often reflect how humans think work should be divided. But one of the benefits of an AI agent is that it can decide how to explore and divide work dynamically.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"2993c67c-5487-4347-8001-c66662b3e99f\",\"textAlign\":null},\"content\":[{\"text\":\"If I design too many rigid roles, I may limit the agent’s flexibility.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"a-better-pattern-general-purpose-delegation\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"a-better-pattern-general-purpose-delegation\",\"data-heading-text\":null},\"content\":[{\"text\":\"A Better Pattern: General-Purpose Delegation\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"97773898-d260-43f9-83dd-25f34dc3a9ce\",\"textAlign\":null},\"content\":[{\"text\":\"A better pattern is to give the main agent strong context through \",\"type\":\"text\"},{\"text\":\"CLAUDE.md\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" and let it delegate work when needed.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"578c1225-2fe7-44bd-8a2c-3cccc59e7a51\",\"textAlign\":null},\"content\":[{\"text\":\"Instead of a rigid “leader-specialist” structure, I prefer a “master-clone” structure:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"a26758df-0313-4948-b5a5-201481f4c6e0\",\"language\":\"text\"},\"content\":[{\"text\":\"Main Agent\\n  ├── General task clone for exploration\\n  ├── General task clone for testing investigation\\n  └── General task clone for documentation review\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d6e19f19-6ede-4114-b3ec-900c55c258d3\",\"textAlign\":null},\"content\":[{\"text\":\"Each clone can work independently, but the main agent still owns the full reasoning process.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"key-takeaway\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"key-takeaway\",\"data-heading-text\":null},\"content\":[{\"text\":\"Key Takeaway\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d7d848a9-7ea2-4b85-a6ee-3fce5f7d93d4\",\"textAlign\":null},\"content\":[{\"text\":\"Custom sub-agents can help, but they can also hide important context and force rigid workflows. Use them carefully. In many cases, general-purpose delegation is more flexible.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"5-resume-continue-and-session-history\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"5-resume-continue-and-session-history\",\"data-heading-text\":null},\"content\":[{\"text\":\"5. Resume, Continue, and Session History\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"c1569982-cb43-4888-8b8d-dfe0219db339\",\"textAlign\":null},\"content\":[{\"text\":\"Claude Code’s resume and continue features are very useful for practical work.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"553cccda-af68-43d3-882f-f9d6476821c1\",\"textAlign\":null},\"content\":[{\"text\":\"A terminal can crash. A session can be interrupted. You may want to return to a previous debugging session. Resume and continue features make that possible.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"cb287fdb-dbe5-4396-8c2d-f50a62f34bb5\",\"textAlign\":null},\"content\":[{\"text\":\"Commands such as the following can restore useful context:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"ea127b38-3395-4de1-92c6-b1c22bf774fa\",\"language\":\"bash\"},\"content\":[{\"text\":\"claude --resume\\nclaude --continue\\n\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"learning-from-old-sessions\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"learning-from-old-sessions\",\"data-heading-text\":null},\"content\":[{\"text\":\"Learning from Old Sessions\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"6e9ac129-8215-4c9e-8c85-5f3f9ab2e7ef\",\"textAlign\":null},\"content\":[{\"text\":\"Session history is not only useful for recovery. It is also useful for improvement.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"30bf429b-eae1-490d-934e-460d49db1b81\",\"textAlign\":null},\"content\":[{\"text\":\"Claude Code stores project session history under a local directory such as:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"9c4a17f8-c016-4161-98e3-e68d40cd6e1f\",\"language\":\"bash\"},\"content\":[{\"text\":\"~/.claude/projects/\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"4dca92c2-44bb-4299-a6d5-26b8edbe1a15\",\"textAlign\":null},\"content\":[{\"text\":\"This history can reveal patterns:\",\"type\":\"text\"}]},{\"type\":\"bulletList\",\"content\":[{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d018bee3-815f-45bb-af37-78a4e0f34501\",\"textAlign\":null},\"content\":[{\"text\":\"Which commands often fail?\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"988b6fa1-668f-4d58-8348-e1e2ef3f4f52\",\"textAlign\":null},\"content\":[{\"text\":\"Which permission prompts appear repeatedly?\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"ecd0c33a-76e9-4bb8-a324-092e7b943111\",\"textAlign\":null},\"content\":[{\"text\":\"Which parts of the codebase confuse the agent?\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"2d5a9092-6f63-4d18-8a8e-1c48c587df80\",\"textAlign\":null},\"content\":[{\"text\":\"Which docs are missing?\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"cf61b94c-f074-4eb6-b1bc-49b788397c8e\",\"textAlign\":null},\"content\":[{\"text\":\"Which tools need better wrappers?\",\"type\":\"text\"}]}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d7d741ab-9299-47f5-8fb9-86d3f996214e\",\"textAlign\":null},\"content\":[{\"text\":\"A mature AI-assisted development workflow should learn from these patterns.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"key-takeaway\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"key-takeaway\",\"data-heading-text\":null},\"content\":[{\"text\":\"Key Takeaway\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"afc8855f-eaf8-4bbc-8dcc-7fcf48660459\",\"textAlign\":null},\"content\":[{\"text\":\"Use session history as feedback. If Claude keeps getting stuck in the same place, improve the documentation, tooling, or \",\"type\":\"text\"},{\"text\":\"CLAUDE.md\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" instead of fixing the same issue manually every time.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"6-hooks-deterministic-rules-for-serious-workflows\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"6-hooks-deterministic-rules-for-serious-workflows\",\"data-heading-text\":null},\"content\":[{\"text\":\"6. Hooks: Deterministic Rules for Serious Workflows\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d329951f-1894-4413-a0ba-a362633bd123\",\"textAlign\":null},\"content\":[{\"text\":\"Hooks are one of the most important features for professional Claude Code usage.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"4ddd882b-4900-43c2-b6c4-427b27652cca\",\"textAlign\":null},\"content\":[{\"text\":\"CLAUDE.md\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" gives guidance. Hooks enforce behavior.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"ab9e5e67-96d3-402a-93bd-ceeda5b514c1\",\"textAlign\":null},\"content\":[{\"text\":\"That difference matters.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"1885b8d9-2e7c-4eac-9549-df75f76c5401\",\"textAlign\":null},\"content\":[{\"text\":\"A written instruction can be forgotten or misapplied. A hook can block an unsafe action, require a test, or provide immediate feedback.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"best-use-case-block-at-commit-time\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"best-use-case-block-at-commit-time\",\"data-heading-text\":null},\"content\":[{\"text\":\"Best Use Case: Block at Commit Time\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"e35bdcfa-c373-4fa0-aeb3-8f65429ce63d\",\"textAlign\":null},\"content\":[{\"text\":\"One of the strongest patterns is to block commits unless tests pass.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"5b5b17fb-113c-4d75-8f55-310dc6928ccc\",\"textAlign\":null},\"content\":[{\"text\":\"For example, a hook can intercept \",\"type\":\"text\"},{\"text\":\"git commit\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" and check whether a verification file exists:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"6922a360-3b2e-4d0d-a9fe-8721fd92883c\",\"language\":\"bash\"},\"content\":[{\"text\":\"/tmp/agent-pre-commit-pass\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"abe65488-e9e4-4ec9-9cdb-345a56e10676\",\"textAlign\":null},\"content\":[{\"text\":\"The test script creates this file only after the required checks pass. If the file is missing, the hook blocks the commit.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d5eea88c-6c5b-4fd0-a0f9-3a5af9f0f936\",\"textAlign\":null},\"content\":[{\"text\":\"This forces Claude into a loop:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"13998ecf-e2e9-40e1-8a0f-f1f3c6cf73ca\",\"language\":\"text\"},\"content\":[{\"text\":\"write code → run tests → fix failures → test again → commit only after passing\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"c3a625c8-e8d2-464b-be5c-c3976637d29f\",\"textAlign\":null},\"content\":[{\"text\":\"That is exactly the kind of deterministic safety system AI coding workflows need.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"hint-hooks\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"hint-hooks\",\"data-heading-text\":null},\"content\":[{\"text\":\"Hint Hooks\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"8dfd24dc-4e2b-43e6-906c-c7c9f59fe988\",\"textAlign\":null},\"content\":[{\"text\":\"Not every hook needs to block the agent. Some hooks should simply provide warnings or hints.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"bd8b2e56-06a8-48cd-b078-56a417b53b22\",\"textAlign\":null},\"content\":[{\"text\":\"For example, if Claude uses a less preferred command, a hook can remind it to use the wrapper script next time.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"042c596f-ea96-4bd0-84f6-87616de54fed\",\"textAlign\":null},\"content\":[{\"text\":\"This helps guide behavior without interrupting the workflow.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"avoid-blocking-file-writes-too-early\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"avoid-blocking-file-writes-too-early\",\"data-heading-text\":null},\"content\":[{\"text\":\"Avoid Blocking File Writes Too Early\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"56bb2a11-dbc9-44c2-883f-020f40e4b4a6\",\"textAlign\":null},\"content\":[{\"text\":\"I do not recommend blocking every file write. Interrupting Claude in the middle of implementation can confuse the agent and break its flow.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"4ba1aa3c-c8a0-4477-8792-05b1d11c7d4b\",\"textAlign\":null},\"content\":[{\"text\":\"It is usually better to let Claude complete a change, then validate the final result before commit.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"key-takeaway\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"key-takeaway\",\"data-heading-text\":null},\"content\":[{\"text\":\"Key Takeaway\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"60ab20b4-97df-41ed-a8b8-95101c56e3c1\",\"textAlign\":null},\"content\":[{\"text\":\"Use hooks for deterministic enforcement at important checkpoints, especially before commits. Avoid interrupting normal writing too aggressively.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"7-planning-mode-align-before-building\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"7-planning-mode-align-before-building\",\"data-heading-text\":null},\"content\":[{\"text\":\"7. Planning Mode: Align Before Building\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"dd7c0a0e-d4cf-4225-a71e-5f4e1069df74\",\"textAlign\":null},\"content\":[{\"text\":\"Planning mode is essential for large changes.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"6b8ff6bb-7bbd-4a72-b678-a7fa917f1673\",\"textAlign\":null},\"content\":[{\"text\":\"When the task is small, you can ask Claude to make the change directly. But when the task affects multiple files, systems, or assumptions, planning should come first.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"why-planning-matters\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"why-planning-matters\",\"data-heading-text\":null},\"content\":[{\"text\":\"Why Planning Matters\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"971990e6-057c-499b-852e-6384add3f989\",\"textAlign\":null},\"content\":[{\"text\":\"Planning helps answer:\",\"type\":\"text\"}]},{\"type\":\"bulletList\",\"content\":[{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"91bb32c9-cd5e-41a7-b532-477ebd365a3f\",\"textAlign\":null},\"content\":[{\"text\":\"What exactly are we building?\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"98bac8f5-0641-4477-a82d-5213074a715b\",\"textAlign\":null},\"content\":[{\"text\":\"Which files or modules will change?\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"5b8ccdf5-2f91-4148-a5ef-0aae2caebec1\",\"textAlign\":null},\"content\":[{\"text\":\"What risks exist?\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"136778a7-8ed3-4062-b4b9-8549389e9b5a\",\"textAlign\":null},\"content\":[{\"text\":\"What tests should be run?\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"fcefb917-763d-425b-beb4-496e467b0bdd\",\"textAlign\":null},\"content\":[{\"text\":\"What should be done first?\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"5adaf0b6-83b4-4a4d-aa8c-83c9aa68ba42\",\"textAlign\":null},\"content\":[{\"text\":\"Where should the agent stop and ask for review?\",\"type\":\"text\"}]}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"caf4fb67-2550-4d7d-b566-a5dffaf3e784\",\"textAlign\":null},\"content\":[{\"text\":\"Without a plan, the agent may start implementing too early.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"a-good-planning-prompt\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"a-good-planning-prompt\",\"data-heading-text\":null},\"content\":[{\"text\":\"A Good Planning Prompt\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"60e9aec8-23f5-4840-b831-752d35a25934\",\"textAlign\":null},\"content\":[{\"text\":\"A useful planning prompt might be:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"86fe2235-c07f-4b39-b6a8-c9f51187822b\",\"language\":\"text\"},\"content\":[{\"text\":\"Before writing code, create a plan for this change.\\n\\nInclude:\\n1. Current system understanding\\n2. Proposed implementation steps\\n3. Files likely to change\\n4. Risks and assumptions\\n5. Tests to run\\n6. Checkpoints where you should stop for review\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"9063f72d-44d8-49df-9b9a-b12e4f1820db\",\"textAlign\":null},\"content\":[{\"text\":\"This forces Claude to reason before acting.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"planning-in-larger-teams\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"planning-in-larger-teams\",\"data-heading-text\":null},\"content\":[{\"text\":\"Planning in Larger Teams\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d56a4d4a-fddd-43e9-8fe1-dbe8db2dce13\",\"textAlign\":null},\"content\":[{\"text\":\"In a larger engineering environment, planning can be standardized. A custom planning tool built on the Claude Code SDK could produce plans that match internal technical design formats.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"839e2a89-c438-4026-ad0d-21fc0f6aa88d\",\"textAlign\":null},\"content\":[{\"text\":\"That allows engineers to move faster while still following architecture, security, and privacy expectations.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"key-takeaway\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"key-takeaway\",\"data-heading-text\":null},\"content\":[{\"text\":\"Key Takeaway\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"a4b323c4-995b-4819-82ac-66cda568b37d\",\"textAlign\":null},\"content\":[{\"text\":\"For complex changes, do not start with implementation. Start with a plan. Good planning reduces rework and makes the final pull request stronger.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"8-skills-the-right-abstraction-for-script-based-workflows\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"8-skills-the-right-abstraction-for-script-based-workflows\",\"data-heading-text\":null},\"content\":[{\"text\":\"8. Skills: The Right Abstraction for Script-Based Workflows\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"174a1ee6-c7d0-4809-a468-b564ebfcd4a1\",\"textAlign\":null},\"content\":[{\"text\":\"Skills are one of the most important ideas in modern AI-agent workflows.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"f4f58794-03ad-40ae-8d91-0aeb1d669d6a\",\"textAlign\":null},\"content\":[{\"text\":\"A Skill gives the agent structured instructions, references, and workflows for a specific domain or task. It helps the agent know how to use tools, scripts, documents, or procedures correctly.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"why-skills-matter\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"why-skills-matter\",\"data-heading-text\":null},\"content\":[{\"text\":\"Why Skills Matter\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"4bf62c79-b32c-4db1-bbdb-c0451eeeba3b\",\"textAlign\":null},\"content\":[{\"text\":\"Many AI workflows evolve through three stages.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"stage-1-one-big-prompt\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"stage-1-one-big-prompt\",\"data-heading-text\":null},\"content\":[{\"text\":\"Stage 1: One Big Prompt\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"99cedc35-0977-4612-88fd-94ff964e2cf6\",\"textAlign\":null},\"content\":[{\"text\":\"At first, developers try to put everything into one large prompt.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"ea68f56a-d168-4c50-b08d-db8cd5379171\",\"textAlign\":null},\"content\":[{\"text\":\"This works for simple tasks but breaks down quickly.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"stage-2-tool-calling\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"stage-2-tool-calling\",\"data-heading-text\":null},\"content\":[{\"text\":\"Stage 2: Tool Calling\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"3a7682c0-a1bf-42cc-a138-e9b6440c024d\",\"textAlign\":null},\"content\":[{\"text\":\"Next, developers create tools for the agent. This is better, but tools can become too narrow, too rigid, or too similar to raw APIs.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"stage-3-script-based-autonomy\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"stage-3-script-based-autonomy\",\"data-heading-text\":null},\"content\":[{\"text\":\"Stage 3: Script-Based Autonomy\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"1722ff24-c359-410e-a7cb-897ca6b99b77\",\"textAlign\":null},\"content\":[{\"text\":\"The stronger model is to give the agent access to scripts, command-line tools, documents, and the real environment. The agent can then write commands, inspect files, process data, and adapt dynamically.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"a8504f65-de9e-4925-832e-c6f1af4f8e23\",\"textAlign\":null},\"content\":[{\"text\":\"Skills formalize this third stage.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"df14a0ad-136c-4441-ba2c-6e86ac6af5a8\",\"textAlign\":null},\"content\":[{\"text\":\"A \",\"type\":\"text\"},{\"text\":\"SKILL.md\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" file can explain:\",\"type\":\"text\"}]},{\"type\":\"bulletList\",\"content\":[{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"0b0b0a30-4a54-4208-9cc3-dea34ac6fadd\",\"textAlign\":null},\"content\":[{\"text\":\"when to use the skill,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"f0fc2738-94dc-4f0a-b02b-3e134370d8ec\",\"textAlign\":null},\"content\":[{\"text\":\"what workflow to follow,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"fe0459a7-139e-4f15-9312-e8ff51127be4\",\"textAlign\":null},\"content\":[{\"text\":\"which scripts or commands are available,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"f587c957-d3b7-4491-afe7-e5aa649b6b87\",\"textAlign\":null},\"content\":[{\"text\":\"what mistakes to avoid,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"3ae2a33b-9196-45a3-88bb-52a87d016bac\",\"textAlign\":null},\"content\":[{\"text\":\"what output format to produce.\",\"type\":\"text\"}]}]}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"why-this-is-better-than-over-abstracted-tools\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"why-this-is-better-than-over-abstracted-tools\",\"data-heading-text\":null},\"content\":[{\"text\":\"Why This Is Better Than Over-Abstracted Tools\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"f6f36de7-f347-48df-bae4-e270d5be8cf6\",\"textAlign\":null},\"content\":[{\"text\":\"A Skill does not need to hide the world from the agent. Instead, it teaches the agent how to operate in the world safely and effectively.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"ee2adcf6-63bf-496b-b5a7-68bddc7c4693\",\"textAlign\":null},\"content\":[{\"text\":\"That is powerful because it preserves flexibility.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"key-takeaway\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"key-takeaway\",\"data-heading-text\":null},\"content\":[{\"text\":\"Key Takeaway\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"0716b794-523a-47d6-849f-1c8815f28f49\",\"textAlign\":null},\"content\":[{\"text\":\"Skills are useful because they combine instruction, workflow, and tool knowledge into a reusable package. They are especially strong when paired with simple command-line tools.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"9-mcp-use-it-as-a-secure-gateway-not-a-giant-api-mirror\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"9-mcp-use-it-as-a-secure-gateway-not-a-giant-api-mirror\",\"data-heading-text\":null},\"content\":[{\"text\":\"9. MCP: Use It as a Secure Gateway, Not a Giant API Mirror\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"fa1f685f-152a-4b8f-9e59-3189487913c2\",\"textAlign\":null},\"content\":[{\"text\":\"MCP, or Model Context Protocol, is useful. But I believe it is often used incorrectly.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"9e2bda01-24b4-455a-a26f-b5fc546cf684\",\"textAlign\":null},\"content\":[{\"text\":\"Many MCP integrations expose too many tiny tools. They mirror internal APIs directly, creating long tool lists that are hard for agents to use well.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"6c3442e9-5378-4351-8b21-c965eba5ba68\",\"textAlign\":null},\"content\":[{\"text\":\"For example:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"5c7915f9-0592-4d82-9eac-0c7d6db2f395\",\"language\":\"text\"},\"content\":[{\"text\":\"read_user()\\nread_project()\\nread_ticket()\\nupdate_ticket()\\nget_comment()\\ncreate_comment()\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d8448fcb-4381-4c29-bc67-8c1a08b1732c\",\"textAlign\":null},\"content\":[{\"text\":\"This may look organized, but it can create unnecessary complexity.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"a-better-mcp-model\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"a-better-mcp-model\",\"data-heading-text\":null},\"content\":[{\"text\":\"A Better MCP Model\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"121f394c-c793-4778-8e8c-12af9d26ebc4\",\"textAlign\":null},\"content\":[{\"text\":\"A better MCP should act as a secure gateway.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"fe7760d5-30d8-40cd-8a42-16fbb659444e\",\"textAlign\":null},\"content\":[{\"text\":\"Instead of exposing dozens of tiny tools, it should expose a few powerful, high-level capabilities:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"fd1df058-588a-460e-acdf-df7abb48ff2e\",\"language\":\"text\"},\"content\":[{\"text\":\"download_raw_data(filters...)\\ntake_sensitive_gated_action(args...)\\nexecute_code_in_environment_with_state(code...)\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"7861817a-5d17-4090-b98b-84e834892284\",\"textAlign\":null},\"content\":[{\"text\":\"The MCP should handle:\",\"type\":\"text\"}]},{\"type\":\"bulletList\",\"content\":[{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"df6da03e-ee06-4a77-b773-254edd1ee49e\",\"textAlign\":null},\"content\":[{\"text\":\"authentication,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"861e8edd-46bf-4ad3-a769-8b9f9f7d33de\",\"textAlign\":null},\"content\":[{\"text\":\"permissions,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"2cbd1a2a-a113-49a9-93b9-8fe9df5c3c21\",\"textAlign\":null},\"content\":[{\"text\":\"network access,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"21eb0d82-8049-4a30-aec9-95ea6acbf86b\",\"textAlign\":null},\"content\":[{\"text\":\"sensitive actions,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"30a37b5e-915c-4785-893e-863c8ae10641\",\"textAlign\":null},\"content\":[{\"text\":\"secure boundaries.\",\"type\":\"text\"}]}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"c6525461-d3a5-45bb-83d5-994f9fc4085c\",\"textAlign\":null},\"content\":[{\"text\":\"Then the agent can use scripts and reasoning to do the actual work.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"when-mcp-makes-sense\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"when-mcp-makes-sense\",\"data-heading-text\":null},\"content\":[{\"text\":\"When MCP Makes Sense\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"035ead1c-7e66-4fd2-b13f-419a6cf488e6\",\"textAlign\":null},\"content\":[{\"text\":\"MCP is especially useful for complex, stateful environments.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"dac84be1-c45f-44b6-988a-7a1123e756f3\",\"textAlign\":null},\"content\":[{\"text\":\"A browser automation tool such as Playwright is a good example. Browser state, pages, clicks, screenshots, and authentication flows are complex enough that a dedicated integration makes sense.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"2823b8c2-ebc0-4def-b10e-4711eedb86eb\",\"textAlign\":null},\"content\":[{\"text\":\"For simpler stateless systems, a CLI tool may be easier and more flexible.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"key-takeaway\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"key-takeaway\",\"data-heading-text\":null},\"content\":[{\"text\":\"Key Takeaway\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"4f73cd9c-b503-410f-b90c-3c4fea44ddaf\",\"textAlign\":null},\"content\":[{\"text\":\"Use MCP to provide secure access to important systems. Do not overload it with too many small API-like tools. Let it be a gateway, not the entire workflow.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"10-claude-code-sdk-building-custom-agents-and-workflows\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"10-claude-code-sdk-building-custom-agents-and-workflows\",\"data-heading-text\":null},\"content\":[{\"text\":\"10. Claude Code SDK: Building Custom Agents and Workflows\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"8c9aa205-f445-4af5-83b9-94e7eb4ee657\",\"textAlign\":null},\"content\":[{\"text\":\"Claude Code is not only an interactive terminal tool. The SDK allows developers to build custom workflows, batch processes, and internal tools around Claude Code.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"8ce07b4b-bdd1-46e0-ac55-1614085d5735\",\"textAlign\":null},\"content\":[{\"text\":\"This makes it useful beyond normal coding sessions.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"use-case-1-large-parallel-code-changes\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"use-case-1-large-parallel-code-changes\",\"data-heading-text\":null},\"content\":[{\"text\":\"Use Case 1: Large Parallel Code Changes\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"ce2c0575-2858-4d32-b60a-a56abc27ecd9\",\"textAlign\":null},\"content\":[{\"text\":\"For large refactors, it may be more efficient to run Claude Code in scripted parallel workflows.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"f3bb1586-2843-4330-9176-2d31ca1129cd\",\"textAlign\":null},\"content\":[{\"text\":\"For example:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"f834735d-c61f-42f6-8ae1-3cc1bd37f21d\",\"language\":\"bash\"},\"content\":[{\"text\":\"claude -p \\\"In /pathA, change all references from foo to bar.\\\"\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"45a3d8eb-2958-4f6e-95fa-71165b527359\",\"textAlign\":null},\"content\":[{\"text\":\"This pattern can be repeated across directories or services.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"8ecb201e-9963-483a-8143-9d967406dcad\",\"textAlign\":null},\"content\":[{\"text\":\"It may be more predictable than asking one interactive agent to coordinate a huge migration.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"use-case-2-internal-tools-for-non-technical-users\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"use-case-2-internal-tools-for-non-technical-users\",\"data-heading-text\":null},\"content\":[{\"text\":\"Use Case 2: Internal Tools for Non-Technical Users\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"7452859d-086c-4b7d-a0b8-86df749c19d6\",\"textAlign\":null},\"content\":[{\"text\":\"The SDK can power internal chat tools that hide complexity from users.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"3f9de935-f4f5-497a-9fda-c5cd5835578d\",\"textAlign\":null},\"content\":[{\"text\":\"For example:\",\"type\":\"text\"}]},{\"type\":\"bulletList\",\"content\":[{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"9f400998-3530-48d8-b5f9-b0960d075547\",\"textAlign\":null},\"content\":[{\"text\":\"a setup assistant that fixes installation errors,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"21cf52c1-5c45-4318-aa41-8f79a66ea60e\",\"textAlign\":null},\"content\":[{\"text\":\"a prototype generator for designers,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"937fd37f-ab02-4cdc-b495-64e00dd7129f\",\"textAlign\":null},\"content\":[{\"text\":\"a debugging assistant for internal support,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"a0961846-0451-409c-9355-e357b5baa2d4\",\"textAlign\":null},\"content\":[{\"text\":\"a migration assistant for engineering teams.\",\"type\":\"text\"}]}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"5cbde8c5-141b-49cb-9a84-4a1642b2ee53\",\"textAlign\":null},\"content\":[{\"text\":\"The user interacts with a simple interface, while Claude Code handles the technical workflow behind the scenes.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"use-case-3-rapid-agent-prototyping\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"use-case-3-rapid-agent-prototyping\",\"data-heading-text\":null},\"content\":[{\"text\":\"Use Case 3: Rapid Agent Prototyping\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"a3cdd538-7d02-4007-b52e-f78159ce8e4a\",\"textAlign\":null},\"content\":[{\"text\":\"The SDK is also useful for quickly testing agent ideas.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"0c47dc67-d13b-43fd-b13d-55f9d55eb0d9\",\"textAlign\":null},\"content\":[{\"text\":\"Before building a full platform, you can prototype the workflow with Claude Code and see whether the idea is useful.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"key-takeaway\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"key-takeaway\",\"data-heading-text\":null},\"content\":[{\"text\":\"Key Takeaway\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"4b068b86-b132-44ae-a6d9-f7a62e618160\",\"textAlign\":null},\"content\":[{\"text\":\"The Claude Code SDK turns Claude Code into a building block for custom agents, automation, and internal development systems.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"11-claude-code-github-actions-from-personal-tool-to-engineering-system\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"11-claude-code-github-actions-from-personal-tool-to-engineering-system\",\"data-heading-text\":null},\"content\":[{\"text\":\"11. Claude Code GitHub Actions: From Personal Tool to Engineering System\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"989f63b7-d70a-4659-9f62-e8b20fd200c2\",\"textAlign\":null},\"content\":[{\"text\":\"Running Claude Code inside GitHub Actions is one of the most powerful ways to operationalize it.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"b1617863-da96-482d-8925-4f46720e816b\",\"textAlign\":null},\"content\":[{\"text\":\"The idea is simple: the agent runs inside a controlled CI environment.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"be012963-eb8b-4feb-ad30-1757c27bd2ad\",\"textAlign\":null},\"content\":[{\"text\":\"That gives you:\",\"type\":\"text\"}]},{\"type\":\"bulletList\",\"content\":[{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"6b3816b1-20a2-4a3d-95dc-bb4701985c89\",\"textAlign\":null},\"content\":[{\"text\":\"reproducible execution,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"5a3500bb-0f19-489f-b98b-9d9c2b6a50f7\",\"textAlign\":null},\"content\":[{\"text\":\"controlled dependencies,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"b624744f-f807-4ab5-a108-bf1b193badf2\",\"textAlign\":null},\"content\":[{\"text\":\"audit logs,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"1463f47c-4a84-4d7e-9018-dca3f898dce6\",\"textAlign\":null},\"content\":[{\"text\":\"sandboxing,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"b38650c2-ee4f-4ae0-8238-dfa55b38f552\",\"textAlign\":null},\"content\":[{\"text\":\"access to repository checks,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"3c4732e5-8096-4988-a987-f8c2842260c1\",\"textAlign\":null},\"content\":[{\"text\":\"integration with pull requests,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"c31de778-ecef-4504-a3c2-46b0d32b70b3\",\"textAlign\":null},\"content\":[{\"text\":\"support for hooks and MCP.\",\"type\":\"text\"}]}]}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"why-github-actions-is-powerful\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"why-github-actions-is-powerful\",\"data-heading-text\":null},\"content\":[{\"text\":\"Why GitHub Actions Is Powerful\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"fb3a3934-29a6-40b0-81b7-3966b77d9716\",\"textAlign\":null},\"content\":[{\"text\":\"A local Claude Code session is useful for one developer. But GitHub Actions allows Claude Code to become part of the engineering system.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"958b8938-9e1f-41b7-b66b-6d2ec8c13b2d\",\"textAlign\":null},\"content\":[{\"text\":\"For example, an issue, Slack message, Jira ticket, or alert could trigger a workflow that asks Claude to investigate, implement a fix, run tests, and open a pull request.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"1f05c6fd-0c4b-4095-a69c-dab948dffaae\",\"textAlign\":null},\"content\":[{\"text\":\"This changes the role of Claude Code from assistant to automated engineering worker.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"logs-create-a-feedback-loop\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"logs-create-a-feedback-loop\",\"data-heading-text\":null},\"content\":[{\"text\":\"Logs Create a Feedback Loop\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"dec2aa67-d288-48b8-b601-7b69b143e43b\",\"textAlign\":null},\"content\":[{\"text\":\"GitHub Actions logs are extremely valuable.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"2ee20246-3902-499b-84c0-6faeb87b59b5\",\"textAlign\":null},\"content\":[{\"text\":\"They allow teams to review what the agent did, where it failed, which commands broke, and which parts of the workflow need better documentation.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"87c12709-6bb6-4ea0-bb60-965f5db483e3\",\"textAlign\":null},\"content\":[{\"text\":\"This creates a continuous improvement loop:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"49aa1f96-91aa-4b95-96ff-13508a091d9c\",\"language\":\"text\"},\"content\":[{\"text\":\"Agent gets stuck → logs reveal the issue → improve tools or CLAUDE.md → future agents perform better\\n\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"example-workflow-idea\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"example-workflow-idea\",\"data-heading-text\":null},\"content\":[{\"text\":\"Example Workflow Idea\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"1f62fbb6-b07b-413c-8ae8-87f480a2018d\",\"language\":\"bash\"},\"content\":[{\"text\":\"query-claude-gha-logs --since 5d | \\\\\\n  claude -p \\\"Review recent agent failures, identify common causes, suggest fixes, and open a PR.\\\"\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"b661365d-0ee9-4a19-a06e-6ad74fc1c297\",\"textAlign\":null},\"content\":[{\"text\":\"This is the kind of workflow that turns agent usage into organizational learning.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"key-takeaway\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"key-takeaway\",\"data-heading-text\":null},\"content\":[{\"text\":\"Key Takeaway\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"011340ae-be99-4008-ace4-bdd45f0ac976\",\"textAlign\":null},\"content\":[{\"text\":\"Claude Code GitHub Actions can transform Claude Code from a personal productivity tool into an auditable, repeatable, self-improving engineering workflow.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"12-settingsjson-the-control-layer\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"12-settingsjson-the-control-layer\",\"data-heading-text\":null},\"content\":[{\"text\":\"12. \",\"type\":\"text\"},{\"text\":\"settings.json\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\": The Control Layer\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"dc0813b8-a3c5-42ec-a320-4df58dc7867a\",\"textAlign\":null},\"content\":[{\"text\":\"The \",\"type\":\"text\"},{\"text\":\"settings.json\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" file is where Claude Code can be customized for real-world usage.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"7b955ece-c288-403f-8680-18828d784a00\",\"textAlign\":null},\"content\":[{\"text\":\"It can control proxies, timeouts, permissions, API keys, and other important behavior.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"proxy-settings\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"proxy-settings\",\"data-heading-text\":null},\"content\":[{\"text\":\"Proxy Settings\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"84889390-da00-4235-8c0a-65275a11295a\",\"textAlign\":null},\"content\":[{\"text\":\"Settings such as \",\"type\":\"text\"},{\"text\":\"HTTP_PROXY\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" and \",\"type\":\"text\"},{\"text\":\"HTTPS_PROXY\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" can help inspect traffic and debug network behavior.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"9bd49a67-d869-4cbe-9eda-1da45c493c24\",\"textAlign\":null},\"content\":[{\"text\":\"They are also useful for sandboxing background agents and controlling what network access is allowed.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"timeout-settings\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"timeout-settings\",\"data-heading-text\":null},\"content\":[{\"text\":\"Timeout Settings\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"62cf3347-e6e8-464c-975b-db19c4b5ff55\",\"textAlign\":null},\"content\":[{\"text\":\"Long-running commands may need longer timeouts.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"5cc10d54-dc72-487f-bcd4-40e63e8437ca\",\"textAlign\":null},\"content\":[{\"text\":\"Settings such as:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"ed66ae2e-384e-444a-a22a-1f767f66fa7e\",\"language\":\"text\"},\"content\":[{\"text\":\"MCP_TOOL_TIMEOUT\\nBASH_MAX_TIMEOUT_MS\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"8e7a549c-1708-418b-a0e1-1f299483f028\",\"textAlign\":null},\"content\":[{\"text\":\"can be adjusted when the default limits are too conservative.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"ad8b372c-c659-4a79-aba0-b1ba17c38df3\",\"textAlign\":null},\"content\":[{\"text\":\"This matters when Claude needs to run large builds, long test suites, migrations, or analysis scripts.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"api-key-management\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"api-key-management\",\"data-heading-text\":null},\"content\":[{\"text\":\"API Key Management\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"55e0c3b2-27bc-4bf2-bac9-58365f8103a0\",\"textAlign\":null},\"content\":[{\"text\":\"In enterprise environments, API keys should be managed carefully.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"5987283b-c01a-4d27-ae07-7cb801bd1b91\",\"textAlign\":null},\"content\":[{\"text\":\"A centralized \",\"type\":\"text\"},{\"text\":\"ANTHROPIC_API_KEY\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" setup or helper can make it easier to manage usage-based billing, permissions, and access control.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"55826fc6-79cc-4c34-b553-5f52bfef6acf\",\"textAlign\":null},\"content\":[{\"text\":\"This is especially important when usage varies widely between developers.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"permission-review\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"permission-review\",\"data-heading-text\":null},\"content\":[{\"text\":\"Permission Review\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"a6574b9d-86d6-4558-863e-d887a769b9a5\",\"textAlign\":null},\"content\":[{\"text\":\"Permissions should be reviewed regularly.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"fa674126-bb84-497f-a5ae-4e1f599cc455\",\"textAlign\":null},\"content\":[{\"text\":\"Claude may need broad access to be useful, but unnecessary permissions create risk. The right approach is to give enough access for productivity while still maintaining boundaries.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"key-takeaway\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"key-takeaway\",\"data-heading-text\":null},\"content\":[{\"text\":\"Key Takeaway\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"b4f3e836-6c67-465f-9ddf-85e2da093eba\",\"textAlign\":null},\"content\":[{\"text\":\"settings.json\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" is not just configuration. It is part of the safety, debugging, and governance layer for Claude Code.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"practical-framework-how-i-would-build-a-strong-claude-code-workflow\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"practical-framework-how-i-would-build-a-strong-claude-code-workflow\",\"data-heading-text\":null},\"content\":[{\"text\":\"Practical Framework: How I Would Build a Strong Claude Code Workflow\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"3b6d2e2b-d211-480f-b7f2-6c1926001f95\",\"textAlign\":null},\"content\":[{\"text\":\"If I were setting up Claude Code for a serious project, I would follow this process.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"step-1-create-a-concise-claudemd\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"step-1-create-a-concise-claudemd\",\"data-heading-text\":null},\"content\":[{\"text\":\"Step 1: Create a concise \",\"type\":\"text\"},{\"text\":\"CLAUDE.md\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"ebf6f7bd-d3dd-4439-b685-65a4929de8e5\",\"textAlign\":null},\"content\":[{\"text\":\"Start with essential rules only:\",\"type\":\"text\"}]},{\"type\":\"bulletList\",\"content\":[{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"0aef9459-f640-40a3-b38e-9a6debbe0c32\",\"textAlign\":null},\"content\":[{\"text\":\"project structure,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"56282fb6-2b18-4e60-8d7c-9b383301fe92\",\"textAlign\":null},\"content\":[{\"text\":\"test commands,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"9ab929b0-03cb-4523-8e98-621f4f2bb425\",\"textAlign\":null},\"content\":[{\"text\":\"build commands,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"e967427f-5731-49e7-a19a-462c764f2f78\",\"textAlign\":null},\"content\":[{\"text\":\"common mistakes,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"99235555-a8eb-40b3-829e-82891574c555\",\"textAlign\":null},\"content\":[{\"text\":\"preferred internal tools,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"2452d361-e5ef-4316-81c3-dfaef85cd0ea\",\"textAlign\":null},\"content\":[{\"text\":\"PR expectations.\",\"type\":\"text\"}]}]}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"step-2-add-simple-wrapper-scripts\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"step-2-add-simple-wrapper-scripts\",\"data-heading-text\":null},\"content\":[{\"text\":\"Step 2: Add simple wrapper scripts\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"6ea764a3-ff03-4a64-b59a-8760a2cfd430\",\"textAlign\":null},\"content\":[{\"text\":\"Instead of forcing Claude to understand complex commands, create simple scripts:\",\"type\":\"text\"}]},{\"type\":\"codeBlock\",\"attrs\":{\"data-uid\":\"91281e36-d43b-43fa-b0cd-e0df684af425\",\"language\":\"bash\"},\"content\":[{\"text\":\"./scripts/test-all.sh\\n./scripts/lint.sh\\n./scripts/prepare-pr.sh\\n./scripts/check-migrations.sh\\n\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"8cf36402-1d5c-44fa-8070-99b634cd5bc0\",\"textAlign\":null},\"content\":[{\"text\":\"Then document those scripts in \",\"type\":\"text\"},{\"text\":\"CLAUDE.md\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\".\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"step-3-use-planning-for-large-work\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"step-3-use-planning-for-large-work\",\"data-heading-text\":null},\"content\":[{\"text\":\"Step 3: Use planning for large work\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"8b0cf44c-b8d7-4b77-b9c0-8f3e5d072e2c\",\"textAlign\":null},\"content\":[{\"text\":\"Before implementation, require a plan with:\",\"type\":\"text\"}]},{\"type\":\"bulletList\",\"content\":[{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"26d51fa7-31bb-4eb2-8d9f-3496551bc8a1\",\"textAlign\":null},\"content\":[{\"text\":\"proposed approach,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"ff76e948-e3b9-4a20-a785-f11176475320\",\"textAlign\":null},\"content\":[{\"text\":\"affected files,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"0198582c-a1ff-4761-b0c5-14229a9cebd3\",\"textAlign\":null},\"content\":[{\"text\":\"risks,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"b878121d-62c7-4c2a-a551-037c70802773\",\"textAlign\":null},\"content\":[{\"text\":\"tests,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"2430b328-6fb0-40e2-a4eb-5b0e1040837b\",\"textAlign\":null},\"content\":[{\"text\":\"checkpoints.\",\"type\":\"text\"}]}]}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"step-4-manage-context-intentionally\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"step-4-manage-context-intentionally\",\"data-heading-text\":null},\"content\":[{\"text\":\"Step 4: Manage context intentionally\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"78288b9e-4b8f-4e89-87b8-c0120a59bf7b\",\"textAlign\":null},\"content\":[{\"text\":\"Use \",\"type\":\"text\"},{\"text\":\"/clear\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" when the session becomes messy. For complex tasks, write progress notes to Markdown before clearing.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"step-5-add-hooks-at-key-checkpoints\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"step-5-add-hooks-at-key-checkpoints\",\"data-heading-text\":null},\"content\":[{\"text\":\"Step 5: Add hooks at key checkpoints\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"7b5d7b95-a89e-4587-959e-26616bf563fd\",\"textAlign\":null},\"content\":[{\"text\":\"Start with commit-time hooks. Make sure tests pass before Claude can commit.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"step-6-use-skills-for-repeatable-workflows\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"step-6-use-skills-for-repeatable-workflows\",\"data-heading-text\":null},\"content\":[{\"text\":\"Step 6: Use Skills for repeatable workflows\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"5cef9769-03b4-4a7f-bbe2-d266460c11dd\",\"textAlign\":null},\"content\":[{\"text\":\"Create Skills for repeated domains such as:\",\"type\":\"text\"}]},{\"type\":\"bulletList\",\"content\":[{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"c942a9d1-accb-4c52-af17-e9892d80699c\",\"textAlign\":null},\"content\":[{\"text\":\"code review,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"6cb7f0ef-b17f-4088-a116-4b9cb4bc2e19\",\"textAlign\":null},\"content\":[{\"text\":\"database migration,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"0f1a6f86-aaf1-4a30-b3b5-add765402da3\",\"textAlign\":null},\"content\":[{\"text\":\"release preparation,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"f88bfc0f-3d2a-43a2-93dc-396cb3bca643\",\"textAlign\":null},\"content\":[{\"text\":\"incident analysis,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"6ae504ad-b2cd-417e-88ee-a1955673995f\",\"textAlign\":null},\"content\":[{\"text\":\"documentation cleanup.\",\"type\":\"text\"}]}]}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"step-7-use-github-actions-for-automation\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"step-7-use-github-actions-for-automation\",\"data-heading-text\":null},\"content\":[{\"text\":\"Step 7: Use GitHub Actions for automation\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"8136dbb0-2d15-49b2-99d1-90df18ecf8eb\",\"textAlign\":null},\"content\":[{\"text\":\"Move repeatable agent workflows into CI when they need auditability, sandboxing, and repeatability.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"step-8-review-logs-and-improve-the-system\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"step-8-review-logs-and-improve-the-system\",\"data-heading-text\":null},\"content\":[{\"text\":\"Step 8: Review logs and improve the system\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"b4fe07f5-26af-49c1-aec1-26c4d44f0cff\",\"textAlign\":null},\"content\":[{\"text\":\"Use failures as feedback. Improve documentation, scripts, permissions, and hooks based on real agent behavior.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"common-mistakes-to-avoid\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"common-mistakes-to-avoid\",\"data-heading-text\":null},\"content\":[{\"text\":\"Common Mistakes to Avoid\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"mistake-1-treating-claude-code-like-a-normal-chatbot\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"mistake-1-treating-claude-code-like-a-normal-chatbot\",\"data-heading-text\":null},\"content\":[{\"text\":\"Mistake 1: Treating Claude Code like a normal chatbot\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"c3e45c9f-a855-4b94-8bfe-cda983c348bf\",\"textAlign\":null},\"content\":[{\"text\":\"Claude Code is most useful when it is connected to files, tools, tests, and workflows. Do not limit it to conversation.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"mistake-2-overloading-claudemd\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"mistake-2-overloading-claudemd\",\"data-heading-text\":null},\"content\":[{\"text\":\"Mistake 2: Overloading \",\"type\":\"text\"},{\"text\":\"CLAUDE.md\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d263f8d0-4982-43cf-97b7-db8e7ace3346\",\"textAlign\":null},\"content\":[{\"text\":\"A huge \",\"type\":\"text\"},{\"text\":\"CLAUDE.md\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" can become noise. Keep it focused.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"mistake-3-trusting-long-sessions-too-much\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"mistake-3-trusting-long-sessions-too-much\",\"data-heading-text\":null},\"content\":[{\"text\":\"Mistake 3: Trusting long sessions too much\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"afca81e1-a51c-4672-894b-13ca8c271ac4\",\"textAlign\":null},\"content\":[{\"text\":\"Long sessions can accumulate confusion. Clear context when needed.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"mistake-4-creating-too-many-custom-commands\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"mistake-4-creating-too-many-custom-commands\",\"data-heading-text\":null},\"content\":[{\"text\":\"Mistake 4: Creating too many custom commands\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"388d79a2-868b-479c-a1ff-63e84fb5be68\",\"textAlign\":null},\"content\":[{\"text\":\"If your workflow requires memorizing many slash commands, it is probably too complicated.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"mistake-5-using-mcp-as-a-giant-api-mirror\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"mistake-5-using-mcp-as-a-giant-api-mirror\",\"data-heading-text\":null},\"content\":[{\"text\":\"Mistake 5: Using MCP as a giant API mirror\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"09508d3c-6876-4011-abce-e69a86a90251\",\"textAlign\":null},\"content\":[{\"text\":\"Expose high-level gateways, not dozens of tiny tools.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"mistake-6-skipping-planning-for-large-changes\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"mistake-6-skipping-planning-for-large-changes\",\"data-heading-text\":null},\"content\":[{\"text\":\"Mistake 6: Skipping planning for large changes\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"7ad37f22-88a8-43a4-9f95-024692c5a983\",\"textAlign\":null},\"content\":[{\"text\":\"Complex implementation without planning often leads to rework.\",\"type\":\"text\"}]},{\"type\":\"heading\",\"attrs\":{\"id\":\"mistake-7-not-learning-from-agent-failures\",\"level\":3,\"textAlign\":null,\"data-toc-id\":\"mistake-7-not-learning-from-agent-failures\",\"data-heading-text\":null},\"content\":[{\"text\":\"Mistake 7: Not learning from agent failures\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"5f35882e-1670-4d0f-b690-dc3372995af1\",\"textAlign\":null},\"content\":[{\"text\":\"Every repeated failure is a signal that your tools, docs, or workflows need improvement.\",\"type\":\"text\"}]},{\"type\":\"horizontalRule\"},{\"type\":\"heading\",\"attrs\":{\"id\":\"final-conclusion\",\"level\":2,\"textAlign\":null,\"data-toc-id\":\"final-conclusion\",\"data-heading-text\":null},\"content\":[{\"text\":\"Final Conclusion\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d0221fe6-488d-47d8-8388-61c22797a41d\",\"textAlign\":null},\"content\":[{\"text\":\"As the writer of this article, my main message is that Claude Code should not be viewed as just another AI chat interface. It should be viewed as a development system.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"c071fcb9-48c6-4590-bcc2-d3819a5e1698\",\"textAlign\":null},\"content\":[{\"text\":\"The real value comes from combining the pieces:\",\"type\":\"text\"}]},{\"type\":\"bulletList\",\"content\":[{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"20fbb03a-6856-4ef5-9444-647623c80e2a\",\"textAlign\":null},\"content\":[{\"text\":\"CLAUDE.md\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" for project guidance,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"cbde2c3c-e748-4a89-b4e5-a2fd49aca58c\",\"textAlign\":null},\"content\":[{\"text\":\"/clear\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" and external notes for context management,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"4352f35a-80f2-4d3e-8fd1-ac13b710e373\",\"textAlign\":null},\"content\":[{\"text\":\"slash commands for lightweight shortcuts,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"a11553e2-dd7b-4429-85da-5b9b37d7243e\",\"textAlign\":null},\"content\":[{\"text\":\"careful delegation instead of rigid sub-agent structures,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"25c207e4-5a1f-44f4-bcdf-95a8ffabe6b3\",\"textAlign\":null},\"content\":[{\"text\":\"resume and history for recovery and learning,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"409a6df4-0fdd-4bf1-ab8a-0ca47d77c408\",\"textAlign\":null},\"content\":[{\"text\":\"hooks for deterministic safety,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"fe0c2724-80a7-4042-b93d-cab83e8709bd\",\"textAlign\":null},\"content\":[{\"text\":\"planning mode for complex changes,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"615065b8-1cf5-42ac-837c-dd46fd791362\",\"textAlign\":null},\"content\":[{\"text\":\"Skills for repeatable workflows,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"72c25cfc-25d5-44b3-b09b-8cd5ef70709e\",\"textAlign\":null},\"content\":[{\"text\":\"MCP for secure access boundaries,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"2ec3a453-8322-41fb-aba1-49185737d902\",\"textAlign\":null},\"content\":[{\"text\":\"the SDK for custom agents,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"20b145d9-4c0b-4bc2-9d06-af771cc8bcde\",\"textAlign\":null},\"content\":[{\"text\":\"GitHub Actions for automation,\",\"type\":\"text\"}]}]},{\"type\":\"listItem\",\"content\":[{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"34aac11d-d24c-477d-a420-7fafe3dfc8ca\",\"textAlign\":null},\"content\":[{\"text\":\"settings.json\",\"type\":\"text\",\"marks\":[{\"type\":\"code\"}]},{\"text\":\" for control and governance.\",\"type\":\"text\"}]}]}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"d52f4c9a-626d-4909-a99c-0d3c59a07349\",\"textAlign\":null},\"content\":[{\"text\":\"The best AI-assisted development workflows are not built by asking the agent to “be smarter.” They are built by designing an environment where the agent can succeed.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"6f3e4de1-ffe7-4a44-bf65-b58f0abdde76\",\"textAlign\":null},\"content\":[{\"text\":\"That means better context, better tools, better tests, better permissions, better feedback loops, and better engineering habits.\",\"type\":\"text\"}]},{\"type\":\"paragraph\",\"attrs\":{\"data-uid\":\"5fc33ecb-9c31-4544-89ce-f5ae32afe314\",\"textAlign\":null},\"content\":[{\"text\":\"In the end, I do not judge Claude Code by how impressive it sounds while working. I judge it by the quality of the final pull request, the reliability of the workflow, and the value it creates for the developer or team using it.\",\"type\":\"text\"}]}]},\"publishedAt\":\"2026-05-28T17:19:04.738Z\",\"categories\":[],\"tags\":[\"claude code\",\"ai\",\"code\",\"agents\"],\"featured\":false,\"featuredAt\":null,\"featuredOrder\":null,\"starsCount\":0,\"commentsCount\":0,\"viewsCount\":2,\"blog\":{\"id\":\"dTWxmwomaL5ALeqYHBuyr\",\"name\":\"Mohamed Elkholy's Blog\",\"slug\":\"default\",\"ownerId\":\"ac2c2632-713e-4110-8fc5-48c0f2b8eefd\"},\"author\":{\"id\":\"ac2c2632-713e-4110-8fc5-48c0f2b8eefd\",\"name\":\"Mohamed Elkholy\",\"username\":\"melkholy\",\"handle\":\"melkholy\",\"image\":\"https://lh3.googleusercontent.com/a/ACg8ocKSb2jl0G7_8xxvi-_WiBIFTLsRl6l2niOZsaRjnqKOXKpvnias=s96-c\"}}],\"tags\":[{\"name\":\"ai\",\"slug\":\"ai\",\"color\":null,\"totalPosts\":2,\"blogCount\":1},{\"name\":\"code\",\"slug\":\"code\",\"color\":null,\"totalPosts\":2,\"blogCount\":1},{\"name\":\"claude\",\"slug\":\"claude\",\"color\":null,\"totalPosts\":1,\"blogCount\":1},{\"name\":\"claude code\",\"slug\":\"claude-code\",\"color\":null,\"totalPosts\":1,\"blogCount\":1},{\"name\":\"codex\",\"slug\":\"codex\",\"color\":null,\"totalPosts\":1,\"blogCount\":1},{\"name\":\"coding\",\"slug\":\"coding\",\"color\":null,\"totalPosts\":1,\"blogCount\":1},{\"name\":\"ui\",\"slug\":\"ui\",\"color\":null,\"totalPosts\":1,\"blogCount\":1},{\"name\":\"agents\",\"slug\":\"agents\",\"color\":null,\"totalPosts\":1,\"blogCount\":1},{\"name\":\"ui ux design\",\"slug\":\"ui-ux-design\",\"color\":null,\"totalPosts\":1,\"blogCount\":1},{\"name\":\"ai coding agent\",\"slug\":\"ai-coding-agent\",\"color\":null,\"totalPosts\":1,\"blogCount\":1}],\"users\":[{\"id\":\"ac2c2632-713e-4110-8fc5-48c0f2b8eefd\",\"name\":\"Mohamed Elkholy\",\"handle\":\"melkholy\",\"username\":\"melkholy\",\"image\":\"https://lh3.googleusercontent.com/a/ACg8ocKSb2jl0G7_8xxvi-_WiBIFTLsRl6l2niOZsaRjnqKOXKpvnias=s96-c\",\"bio\":null,\"plan\":\"pro\",\"followersCount\":0,\"postsCount\":2},{\"id\":\"bf2742f2-fbda-4d60-b77d-1d3f4aa6e7aa\",\"name\":\"Dr Glitch\",\"handle\":\"dr_glitch\",\"username\":\"dr_glitch\",\"image\":\"https://lh3.googleusercontent.com/a/ACg8ocKxE0ioalTUKCp1A15mDwp2puIP5FZYOGMUc8RFhj-gS3nxdpsx=s96-c\",\"bio\":null,\"plan\":\"free\",\"followersCount\":0,\"postsCount\":1}],\"userId\":\"$undefined\",\"className\":\"md:hidden border-b border-border/30\"}]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"44:[\"$\",\"div\",null,{\"className\":\"mx-auto w-full px-4 sm:px-6 lg:px-8 max-w-7xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 md:grid-cols-[1fr_280px] lg:grid-cols-[1fr_300px] gap-8 items-start\",\"children\":[[\"$\",\"main\",null,{\"className\":\"min-w-0\",\"aria-label\":\"Blog feed\",\"children\":[false,false,false,[\"$\",\"div\",null,{\"className\":\"py-2\",\"children\":[[\"$\",\"$L49\",null,{\"level\":\"section\",\"children\":[\"$\",\"div\",null,{\"className\":\"relative\",\"children\":[[\"$\",\"div\",null,{\"className\":\"pointer-events-none absolute -inset-4 rounded-3xl bg-[radial-gradient(circle_at_18%_40%,rgba(255,255,255,0.03),transparent_45%),radial-gradient(circle_at_80%_10%,rgba(34,197,94,0.03),transparent_40%)]\"}],[\"$\",\"div\",null,{\"className\":\"relative grid grid-cols-1 gap-4 md:gap-6 md:grid-cols-2 lg:grid-cols-3\",\"children\":[[\"$\",\"$L49\",\"5P9upbgK2Yt4P5d-bdaVk\",{\"level\":\"component\",\"isolate\":true,\"children\":[\"$\",\"$L4a\",null,{\"post\":{\"id\":\"5P9upbgK2Yt4P5d-bdaVk\",\"slug\":\"post-1780614487592\",\"title\":\"Pythinker Code: The Review-First AI Coding Agent for Serious Developers\",\"excerpt\":\"Most AI coding tools rush straight into generation. They read a prompt, produce code, and leave the developer to figure out whether the result is secure, mainta...\",\"publishedAt\":\"2026-06-04T23:13:36.996Z\",\"authorId\":\"bf2742f2-fbda-4d60-b77d-1d3f4aa6e7aa\",\"authorName\":\"Dr Glitch\",\"authorEmail\":\"\",\"authorHandle\":\"dr_glitch\",\"authorUsername\":\"dr_glitch\",\"authorImage\":\"https://lh3.googleusercontent.com/a/ACg8ocKxE0ioalTUKCp1A15mDwp2puIP5FZYOGMUc8RFhj-gS3nxdpsx=s96-c\",\"authorPlan\":\"free\",\"blogId\":\"VL58-LB9eqKIGr3bWaPuZ\",\"blogName\":\"Dr Glitch's Blog\",\"blogSlug\":\"default\",\"featuredImage\":\"/api/media/bf2742f2-fbda-4d60-b77d-1d3f4aa6e7aa/VL58-LB9eqKIGr3bWaPuZ/uploads/1780614480467-ars6pi-image.png\",\"featuredImageBlur\":null,\"stars\":0,\"comments\":0,\"views\":0,\"shares\":0,\"rankScore\":\"$undefined\",\"ageHours\":\"$undefined\",\"readingTimeMinutes\":6,\"postUrl\":\"/@dr_glitch/posts/post-1780614487592\",\"authorUrl\":\"/@dr_glitch\",\"blogUrl\":\"/@dr_glitch\"},\"userId\":\"$undefined\",\"isStarred\":false,\"isBookmarked\":false,\"index\":0}]}],[\"$\",\"$L49\",\"SIT8Ms43sia7ZilJX28Ck\",{\"level\":\"component\",\"isolate\":true,\"children\":[\"$\",\"$L4a\",null,{\"post\":{\"id\":\"SIT8Ms43sia7ZilJX28Ck\",\"slug\":\"post-1779992445260\",\"title\":\"Beyond “Make it Beautiful”: The Anti-Slop Framework for AI Premium Design\",\"excerpt\":\"AI coding tools can build interfaces incredibly fast. The problem is that they often build the same interface over and over again. You know the look. A centered...\",\"publishedAt\":\"2026-05-28T18:32:49.770Z\",\"authorId\":\"ac2c2632-713e-4110-8fc5-48c0f2b8eefd\",\"authorName\":\"Mohamed Elkholy\",\"authorEmail\":\"\",\"authorHandle\":\"melkholy\",\"authorUsername\":\"melkholy\",\"authorImage\":\"https://lh3.googleusercontent.com/a/ACg8ocKSb2jl0G7_8xxvi-_WiBIFTLsRl6l2niOZsaRjnqKOXKpvnias=s96-c\",\"authorPlan\":\"pro\",\"blogId\":\"dTWxmwomaL5ALeqYHBuyr\",\"blogName\":\"Mohamed Elkholy's Blog\",\"blogSlug\":\"default\",\"featuredImage\":\"/api/media/ac2c2632-713e-4110-8fc5-48c0f2b8eefd/dTWxmwomaL5ALeqYHBuyr/SIT8Ms43sia7ZilJX28Ck/1779992670738-c7tfww-ui_design.png\",\"featuredImageBlur\":\"data:image/webp;base64,UklGRnwAAABXRUJQVlA4IHAAAADwAgCdASoUAAsALvmczmclLy8vDwD4Sxq9a/AdgBaMoAD+7P3naoEAOi/3NmWq7/vzJroKhQrERrH2wXRNMy4owsSp1sj6YLO05rBeGhIkuG5XslsoRCnfXrjT5q3QbCDvqisns7ecP9fU7PJ5eEAA\",\"stars\":1,\"comments\":1,\"views\":3,\"shares\":0,\"rankScore\":\"$undefined\",\"ageHours\":\"$undefined\",\"readingTimeMinutes\":14,\"postUrl\":\"/@melkholy/posts/post-1779992445260\",\"authorUrl\":\"/@melkholy\",\"blogUrl\":\"/@melkholy\"},\"userId\":\"$undefined\",\"isStarred\":false,\"isBookmarked\":false,\"index\":1}]}],[\"$\",\"$L49\",\"JzMjQsxAQ1FNfVkAJBNa-\",{\"level\":\"component\",\"isolate\":true,\"children\":[\"$\",\"$L4a\",null,{\"post\":{\"id\":\"JzMjQsxAQ1FNfVkAJBNa-\",\"slug\":\"post-1779988560770\",\"title\":\"Claude Code: A Deep Practical Guide to Using Every Major Feature\",\"excerpt\":\"Introduction I use Claude Code not only as a coding assistant, but as a practical development partner for planning, editing, debugging, testing, documenting, an...\",\"publishedAt\":\"2026-05-28T17:19:04.738Z\",\"authorId\":\"ac2c2632-713e-4110-8fc5-48c0f2b8eefd\",\"authorName\":\"Mohamed Elkholy\",\"authorEmail\":\"\",\"authorHandle\":\"melkholy\",\"authorUsername\":\"melkholy\",\"authorImage\":\"https://lh3.googleusercontent.com/a/ACg8ocKSb2jl0G7_8xxvi-_WiBIFTLsRl6l2niOZsaRjnqKOXKpvnias=s96-c\",\"authorPlan\":\"pro\",\"blogId\":\"dTWxmwomaL5ALeqYHBuyr\",\"blogName\":\"Mohamed Elkholy's Blog\",\"blogSlug\":\"default\",\"featuredImage\":\"/api/media/ac2c2632-713e-4110-8fc5-48c0f2b8eefd/dTWxmwomaL5ALeqYHBuyr/JzMjQsxAQ1FNfVkAJBNa-/1779988717698-6kyxac-chatgpt-image-may-28_-2026_-01_18_10-pm.png\",\"featuredImageBlur\":\"data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAABwAgCdASoUAAsALvmczmclLy8vDwD4S0gAC52gAP7wFjzJAmXAtn916UYasKAA\",\"stars\":0,\"comments\":0,\"views\":2,\"shares\":0,\"rankScore\":\"$undefined\",\"ageHours\":\"$undefined\",\"readingTimeMinutes\":21,\"postUrl\":\"/@melkholy/posts/post-1779988560770\",\"authorUrl\":\"/@melkholy\",\"blogUrl\":\"/@melkholy\"},\"userId\":\"$undefined\",\"isStarred\":false,\"isBookmarked\":false,\"index\":2}]}]]}]]}]}],\"$L4b\"]}]]}],\"$L4c\"]}]}]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"45:[\"$\",\"div\",null,{\"className\":\"h-20 md:h-10\"}]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"4d:I[510532,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\",\"/_next/static/chunks/0meiyso28-u1g.js\",\"/_next/static/chunks/2vwjux28gsejc.js\",\"/_next/static/chunks/151nczr84id04.js\",\"/_next/static/chunks/1ela8d9patr9e.js\",\"/_next/static/chunks/44xaewm67819g.js\",\"/_next/static/chunks/0wywmoaepm1jl.js\",\"/_next/static/chunks/2ltdkm6w0insi.js\",\"/_next/static/chunks/1_3hgur5fhnyi.js\",\"/_next/static/chunks/0r4w0vc5mqztt.js\",\"/_next/static/chunks/0m4tlxszw0ig-.js\",\"/_next/static/chunks/0d8ukywq3jy7r.js\",\"/_next/static/chunks/10zshk6d1sa0y.js\"],\"FeedLoadMore\"]\n4e:I[213039,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\",\"/_next/static/chunks/0meiyso28-u1g.js\",\"/_next/static/chunks/2vwjux28gsejc.js\",\"/_next/static/chunks/151nczr84id04.js\",\"/_next/static/chunks/1ela8d9patr9e.js\",\"/_next/static/chunks/44xaewm67819g.js\",\"/_next/static/chunks/0wywmoaepm1jl.js\",\"/_next/static/chunks/2ltdkm6w0insi.js\",\"/_next/static/chunks/1_3hgur5fhnyi.js\",\"/_next/static/chunks/0r4w0vc5mqztt.js\",\"/_next/static/chunks/0m4tlxszw0ig-.js\",\"/_next/static/chunks/0d8ukywq3jy7r.js\",\"/_next/static/chunks/10zshk6d1sa0y.js\"],\"ScrollResetSidebar\"]\n4f:I[860548,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\",\"/_next/static/chunks/0meiyso28-u1g.js\",\"/_next/static/chunks/2vwjux28gsejc.js\",\"/_next/static/chunks/151nczr84id04.js\",\"/_next/static/chunks/1ela8d9patr9e.js\",\"/_next/static/chunks/44xaewm67819g.js\",\"/_next/static/chunks/0wywmoaepm1jl.js\",\"/_next/static/chunks/2ltdkm6w0insi.js\",\"/_next/static/chunks/1_3hgur5fhnyi.js\",\"/_next/static/chunks/0r4w0vc5mqztt.js\",\"/_next/static/chunks/0m4tlxszw0ig-.js\",\"/_next/static/chunks/0d8ukywq3jy7r.js\",\"/_next/static/chunks/10zshk6d1sa0y.js\"],\"UserAvatar\"]\n4b:[\"$\",\"div\",null,{\"className\":\"mt-8 flex justify-center\",\"children\":[\"$\",\"$L4d\",null,{\"currentPage\":1,\"hasNext\":false,\"filter\":\"new\"}]}]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"4c:[\"$\",\"$L4e\",null,{\"topOffset\":\"6rem\",\"scrollThreshold\":50,\"ariaLabel\":\"Sidebar with recommendations, topics, and suggested users\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-5\",\"role\":\"complementary\",\"aria-label\":\"Sidebar\",\"children\":[[[\"$\",\"section\",null,{\"className\":\"rounded-xl border border-border/50 bg-card/60 p-4 shadow-sm backdrop-blur-sm\",\"children\":[\"$\",\"section\",null,{\"className\":\"$undefined\",\"aria-labelledby\":\"recommendations-heading\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"h-1.5 w-1.5 rounded-full bg-primary shadow-[0_0_0_4px_rgba(255,255,255,0.04)]\"}],[\"$\",\"h4\",null,{\"className\":\"text-sm font-semibold text-foreground\",\"children\":\"Recommendations\"}]]}],\"$undefined\"]}],[\"$\",\"div\",null,{\"className\":\"mt-2 h-px\",\"style\":{\"background\":\"linear-gradient(90deg, var(--border) 0%, transparent 100%)\"}}]]}],[\"$\",\"div\",null,{\"className\":\"space-y-0\",\"children\":[[\"$\",\"div\",\"5P9upbgK2Yt4P5d-bdaVk\",{\"children\":[[\"$\",\"$L9\",null,{\"href\":\"/@dr_glitch/posts/post-1780614487592\",\"className\":\"group relative block cursor-pointer py-3 px-2 -mx-2 first:pt-2 last:pb-2 rounded-lg transition-all duration-200 ease-out hover:bg-[var(--surface-muted)]/60 hover:translate-x-0.5 active:scale-[0.99]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute left-0 top-1/2 -translate-y-1/2 w-0.5 h-0 bg-[var(--brand)] rounded-full transition-all duration-200 group-hover:h-8 opacity-0 group-hover:opacity-100\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 mb-1.5\",\"children\":[[\"$\",\"$L4f\",null,{\"image\":\"https://lh3.googleusercontent.com/a/ACg8ocKxE0ioalTUKCp1A15mDwp2puIP5FZYOGMUc8RFhj-gS3nxdpsx=s96-c\",\"name\":\"Dr Glitch\",\"className\":\"h-5 w-5 transition-transform duration-200 group-hover:scale-105\",\"useInitials\":true}],[\"$\",\"span\",null,{\"className\":\"text-xs text-[var(--text-muted)] truncate transition-colors duration-200 group-hover:text-[var(--text)]\",\"children\":\"Dr Glitch\"}]]}],[\"$\",\"h3\",null,{\"className\":\"text-sm font-medium text-[var(--text)] line-clamp-2 transition-colors duration-200 group-hover:text-[var(--brand)] leading-snug\",\"children\":\"Pythinker Code: The Review-First AI Coding Agent for Serious Developers\"}]]}],[\"$\",\"div\",null,{\"className\":\"mx-2 h-px\",\"style\":{\"background\":\"linear-gradient(90deg, transparent 0%, var(--border) 20%, var(--border) 80%, transparent 100%)\",\"opacity\":0.5}}]]}],[\"$\",\"div\",\"SIT8Ms43sia7ZilJX28Ck\",{\"children\":[[\"$\",\"$L9\",null,{\"href\":\"/@melkholy/posts/post-1779992445260\",\"className\":\"group relative block cursor-pointer py-3 px-2 -mx-2 first:pt-2 last:pb-2 rounded-lg transition-all duration-200 ease-out hover:bg-[var(--surface-muted)]/60 hover:translate-x-0.5 active:scale-[0.99]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute left-0 top-1/2 -translate-y-1/2 w-0.5 h-0 bg-[var(--brand)] rounded-full transition-all duration-200 group-hover:h-8 opacity-0 group-hover:opacity-100\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 mb-1.5\",\"children\":[[\"$\",\"$L4f\",null,{\"image\":\"https://lh3.googleusercontent.com/a/ACg8ocKSb2jl0G7_8xxvi-_WiBIFTLsRl6l2niOZsaRjnqKOXKpvnias=s96-c\",\"name\":\"Mohamed Elkholy\",\"className\":\"h-5 w-5 transition-transform duration-200 group-hover:scale-105\",\"useInitials\":true}],[\"$\",\"span\",null,{\"className\":\"text-xs text-[var(--text-muted)] truncate transition-colors duration-200 group-hover:text-[var(--text)]\",\"children\":\"Mohamed Elkholy\"}]]}],[\"$\",\"h3\",null,{\"className\":\"text-sm font-medium text-[var(--text)] line-clamp-2 transition-colors duration-200 group-hover:text-[var(--brand)] leading-snug\",\"children\":\"Beyond “Make it Beautiful”: The Anti-Slop Framework for AI Premium Design\"}]]}],[\"$\",\"div\",null,{\"className\":\"mx-2 h-px\",\"style\":{\"background\":\"linear-gradient(90deg, transparent 0%, var(--border) 20%, var(--border) 80%, transparent 100%)\",\"opacity\":0.5}}]]}],\"$L50\"]}]]}]}],\"$L51\"],\"$L52\",\"$L53\",\"$L54\",\"$L55\"]}]}]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"5b:I[797667,[\"/_next/static/chunks/2yaf1cpbq9igh.js\",\"/_next/static/chunks/0yibc-y1yvm15.js\",\"/_next/static/chunks/3ka19vjd75lu3.js\",\"/_next/static/chunks/3mxaz-vpv9256.js\",\"/_next/static/chunks/23d_l7iu_9h-0.js\",\"/_next/static/chunks/3c_zy1ewvdsiw.js\",\"/_next/static/chunks/0meiyso28-u1g.js\",\"/_next/static/chunks/2vwjux28gsejc.js\",\"/_next/static/chunks/151nczr84id04.js\",\"/_next/static/chunks/1ela8d9patr9e.js\",\"/_next/static/chunks/44xaewm67819g.js\",\"/_next/static/chunks/0wywmoaepm1jl.js\",\"/_next/static/chunks/2ltdkm6w0insi.js\",\"/_next/static/chunks/1_3hgur5fhnyi.js\",\"/_next/static/chunks/0r4w0vc5mqztt.js\",\"/_next/static/chunks/0m4tlxszw0ig-.js\",\"/_next/static/chunks/0d8ukywq3jy7r.js\",\"/_next/static/chunks/10zshk6d1sa0y.js\"],\"SuggestedUserCard\"]\n50:[\"$\",\"div\",\"JzMjQsxAQ1FNfVkAJBNa-\",{\"children\":[[\"$\",\"$L9\",null,{\"href\":\"/@melkholy/posts/post-1779988560770\",\"className\":\"group relative block cursor-pointer py-3 px-2 -mx-2 first:pt-2 last:pb-2 rounded-lg transition-all duration-200 ease-out hover:bg-[var(--surface-muted)]/60 hover:translate-x-0.5 active:scale-[0.99]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute left-0 top-1/2 -translate-y-1/2 w-0.5 h-0 bg-[var(--brand)] rounded-full transition-all duration-200 group-hover:h-8 opacity-0 group-hover:opacity-100\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 mb-1.5\",\"children\":[[\"$\",\"$L4f\",null,{\"image\":\"https://lh3.googleusercontent.com/a/ACg8ocKSb2jl0G7_8xxvi-_WiBIFTLsRl6l2niOZsaRjnqKOXKpvnias=s96-c\",\"name\":\"Mohamed Elkholy\",\"className\":\"h-5 w-5 transition-transform duration-200 group-hover:scale-105\",\"useInitials\":true}],[\"$\",\"span\",null,{\"className\":\"text-xs text-[var(--text-muted)] truncate transition-colors duration-200 group-hover:text-[var(--text)]\",\"children\":\"Mohamed Elkholy\"}]]}],[\"$\",\"h3\",null,{\"className\":\"text-sm font-medium text-[var(--text)] line-clamp-2 transition-colors duration-200 group-hover:text-[var(--brand)] leading-snug\",\"children\":\"Claude Code: A Deep Practical Guide to Using Every Major Feature\"}]]}],false]}]\n51:[\"$\",\"div\",null,{\"className\":\"mx-4 h-px\",\"style\":{\"background\":\"linear-gradient(90deg, transparent 0%, var(--border) 30%, var(--border) 70%, transparent 100%)\",\"opacity\":0.3}}]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"52:[[\"$\",\"section\",null,{\"className\":\"rounded-xl border border-border/50 bg-card/60 p-4 shadow-sm backdrop-blur-sm\",\"children\":[\"$\",\"section\",null,{\"className\":\"$undefined\",\"aria-labelledby\":\"topics-heading\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[false,[\"$\",\"h4\",null,{\"className\":\"text-sm font-semibold text-foreground\",\"children\":\"Recommended Topics\"}]]}],[\"$\",\"$L9\",null,{\"href\":\"/tags\",\"className\":\"group inline-flex items-center gap-1 text-xs text-muted-foreground transition-colors duration-200 hover:text-foreground cursor-pointer\",\"children\":[[\"$\",\"span\",null,{\"children\":\"See all\"}],[\"$\",\"svg\",null,{\"className\":\"w-3 h-3 transition-transform duration-200 group-hover:translate-x-0.5\",\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"stroke\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":2,\"d\":\"M9 5l7 7-7 7\"}]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-2 h-px\",\"style\":{\"background\":\"linear-gradient(90deg, var(--border) 0%, transparent 100%)\"}}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-2\",\"children\":[[\"$\",\"$L9\",\"ai\",{\"href\":\"/tags?tag=ai\",\"className\":\"inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium text-[var(--text-muted)] bg-[var(--surface-muted)]/50 border border-[var(--border)]/40 transition-all duration-200 ease-out hover:bg-[var(--brand)]/10 hover:border-[var(--brand)]/40 hover:text-[var(--brand)] hover:shadow-sm hover:shadow-[var(--brand)]/10 hover:-translate-y-0.5 active:scale-95 whitespace-nowrap cursor-pointer\",\"style\":\"$undefined\",\"children\":\"ai\"}],[\"$\",\"$L9\",\"code\",{\"href\":\"/tags?tag=code\",\"className\":\"inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium text-[var(--text-muted)] bg-[var(--surface-muted)]/50 border border-[var(--border)]/40 transition-all duration-200 ease-out hover:bg-[var(--brand)]/10 hover:border-[var(--brand)]/40 hover:text-[var(--brand)] hover:shadow-sm hover:shadow-[var(--brand)]/10 hover:-translate-y-0.5 active:scale-95 whitespace-nowrap cursor-pointer\",\"style\":\"$undefined\",\"children\":\"code\"}],[\"$\",\"$L9\",\"claude\",{\"href\":\"/tags?tag=claude\",\"className\":\"inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium text-[var(--text-muted)] bg-[var(--surface-muted)]/50 border border-[var(--border)]/40 transition-all duration-200 ease-out hover:bg-[var(--brand)]/10 hover:border-[var(--brand)]/40 hover:text-[var(--brand)] hover:shadow-sm hover:shadow-[var(--brand)]/10 hover:-translate-y-0.5 active:scale-95 whitespace-nowrap cursor-pointer\",\"style\":\"$undefined\",\"children\":\"claude\"}],[\"$\",\"$L9\",\"claude-code\",{\"href\":\"/tags?tag=claude%20code\",\"className\":\"inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium text-[var(--text-muted)] bg-[var(--surface-muted)]/50 border border-[var(--border)]/40 transition-all duration-200 ease-out hover:bg-[var(--brand)]/10 hover:border-[var(--brand)]/40 hover:text-[var(--brand)] hover:shadow-sm hover:shadow-[var(--brand)]/10 hover:-translate-y-0.5 active:scale-95 whitespace-nowrap cursor-pointer\",\"style\":\"$undefined\",\"children\":\"claude code\"}],[\"$\",\"$L9\",\"codex\",{\"href\":\"/tags?tag=codex\",\"className\":\"inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium text-[var(--text-muted)] bg-[var(--surface-muted)]/50 border border-[var(--border)]/40 transition-all duration-200 ease-out hover:bg-[var(--brand)]/10 hover:border-[var(--brand)]/40 hover:text-[var(--brand)] hover:shadow-sm hover:shadow-[var(--brand)]/10 hover:-translate-y-0.5 active:scale-95 whitespace-nowrap cursor-pointer\",\"style\":\"$undefined\",\"children\":\"codex\"}],[\"$\",\"$L9\",\"coding\",{\"href\":\"/tags?tag=coding\",\"className\":\"inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium text-[var(--text-muted)] bg-[var(--surface-muted)]/50 border border-[var(--border)]/40 transition-all duration-200 ease-out hover:bg-[var(--brand)]/10 hover:border-[var(--brand)]/40 hover:text-[var(--brand)] hover:shadow-sm hover:shadow-[var(--brand)]/10 hover:-translate-y-0.5 active:scale-95 whitespace-nowrap cursor-pointer\",\"style\":\"$undefined\",\"children\":\"coding\"}],\"$L56\",\"$L57\",\"$L58\",\"$L59\"]}]]}]}],\"$L5a\"]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"53:[\"$\",\"section\",null,{\"className\":\"rounded-xl border border-border/50 bg-card/60 p-4 shadow-sm backdrop-blur-sm\",\"children\":[\"$\",\"section\",null,{\"className\":\"$undefined\",\"aria-labelledby\":\"who-to-follow-heading\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[false,[\"$\",\"h4\",null,{\"className\":\"text-sm font-semibold text-foreground\",\"children\":\"Who to Follow\"}]]}],\"$undefined\"]}],[\"$\",\"div\",null,{\"className\":\"mt-2 h-px\",\"style\":{\"background\":\"linear-gradient(90deg, var(--border) 0%, transparent 100%)\"}}]]}],[\"$\",\"div\",null,{\"className\":\"space-y-0\",\"children\":[[\"$\",\"div\",\"ac2c2632-713e-4110-8fc5-48c0f2b8eefd\",{\"children\":[[\"$\",\"$L5b\",null,{\"user\":\"$43:props:users:0\",\"userId\":\"$undefined\",\"variant\":\"vertical\"}],[\"$\",\"div\",null,{\"className\":\"mx-1 h-px\",\"style\":{\"background\":\"linear-gradient(90deg, transparent 0%, var(--border) 20%, var(--border) 80%, transparent 100%)\",\"opacity\":0.4}}]]}],[\"$\",\"div\",\"bf2742f2-fbda-4d60-b77d-1d3f4aa6e7aa\",{\"children\":[[\"$\",\"$L5b\",null,{\"user\":\"$43:props:users:1\",\"userId\":\"$undefined\",\"variant\":\"vertical\"}],false]}]]}]]}]}]\n54:[\"$\",\"div\",null,{\"className\":\"h-px mt-4\",\"style\":{\"background\":\"linear-gradient(90deg, transparent 0%, var(--border) 50%, transparent 100%)\",\"opacity\":0.2}}]\n55:[\"$\",\"p\",null,{\"className\":\"text-[11px] text-muted-foreground/40 leading-relaxed pt-1\",\"children\":[\"Bookmark stories with\",\" \",[\"$\",\"svg\",null,{\"className\":\"inline-block w-3 h-3 -mt-0.5\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"viewBox\":\"0 0 24 24\",\"children\":[\"$\",\"path\",null,{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":2,\"d\":\"M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z\"}]}],\" \",\"to read later\"]}]\n"])</script><script nonce="YzUzOTU0NTQtZTM3My00MD">self.__next_f.push([1,"56:[\"$\",\"$L9\",\"ui\",{\"href\":\"/tags?tag=ui\",\"className\":\"inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium text-[var(--text-muted)] bg-[var(--surface-muted)]/50 border border-[var(--border)]/40 transition-all duration-200 ease-out hover:bg-[var(--brand)]/10 hover:border-[var(--brand)]/40 hover:text-[var(--brand)] hover:shadow-sm hover:shadow-[var(--brand)]/10 hover:-translate-y-0.5 active:scale-95 whitespace-nowrap cursor-pointer\",\"style\":\"$undefined\",\"children\":\"ui\"}]\n57:[\"$\",\"$L9\",\"agents\",{\"href\":\"/tags?tag=agents\",\"className\":\"inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium text-[var(--text-muted)] bg-[var(--surface-muted)]/50 border border-[var(--border)]/40 transition-all duration-200 ease-out hover:bg-[var(--brand)]/10 hover:border-[var(--brand)]/40 hover:text-[var(--brand)] hover:shadow-sm hover:shadow-[var(--brand)]/10 hover:-translate-y-0.5 active:scale-95 whitespace-nowrap cursor-pointer\",\"style\":\"$undefined\",\"children\":\"agents\"}]\n58:[\"$\",\"$L9\",\"ui-ux-design\",{\"href\":\"/tags?tag=ui%20ux%20design\",\"className\":\"inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium text-[var(--text-muted)] bg-[var(--surface-muted)]/50 border border-[var(--border)]/40 transition-all duration-200 ease-out hover:bg-[var(--brand)]/10 hover:border-[var(--brand)]/40 hover:text-[var(--brand)] hover:shadow-sm hover:shadow-[var(--brand)]/10 hover:-translate-y-0.5 active:scale-95 whitespace-nowrap cursor-pointer\",\"style\":\"$undefined\",\"children\":\"ui ux design\"}]\n59:[\"$\",\"$L9\",\"ai-coding-agent\",{\"href\":\"/tags?tag=ai%20coding%20agent\",\"className\":\"inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium text-[var(--text-muted)] bg-[var(--surface-muted)]/50 border border-[var(--border)]/40 transition-all duration-200 ease-out hover:bg-[var(--brand)]/10 hover:border-[var(--brand)]/40 hover:text-[var(--brand)] hover:shadow-sm hover:shadow-[var(--brand)]/10 hover:-translate-y-0.5 active:scale-95 whitespace-nowrap cursor-pointer\",\"style\":\"$undefined\",\"children\":\"ai coding agent\"}]\n5a:[\"$\",\"div\",null,{\"className\":\"mx-4 h-px\",\"style\":{\"background\":\"linear-gradient(90deg, transparent 0%, var(--border) 30%, var(--border) 70%, transparent 100%)\",\"opacity\":0.3}}]\n"])</script><link rel="preload" as="image" href="/api/media/bf2742f2-fbda-4d60-b77d-1d3f4aa6e7aa/VL58-LB9eqKIGr3bWaPuZ/uploads/small.webp"/><link rel="preload" as="image" href="/api/media/bf2742f2-fbda-4d60-b77d-1d3f4aa6e7aa/VL58-LB9eqKIGr3bWaPuZ/uploads/thumbnail.webp"/><link rel="preload" as="image" href="https://lh3.googleusercontent.com/a/ACg8ocKxE0ioalTUKCp1A15mDwp2puIP5FZYOGMUc8RFhj-gS3nxdpsx=s96-c"/><link rel="preload" as="image" href="/api/media/ac2c2632-713e-4110-8fc5-48c0f2b8eefd/dTWxmwomaL5ALeqYHBuyr/SIT8Ms43sia7ZilJX28Ck/small.webp"/><link rel="preload" as="image" href="/api/media/ac2c2632-713e-4110-8fc5-48c0f2b8eefd/dTWxmwomaL5ALeqYHBuyr/SIT8Ms43sia7ZilJX28Ck/thumbnail.webp"/><link rel="preload" as="image" href="https://lh3.googleusercontent.com/a/ACg8ocKSb2jl0G7_8xxvi-_WiBIFTLsRl6l2niOZsaRjnqKOXKpvnias=s96-c"/><div hidden id="S:1"><div class="relative min-h-screen"><script id="feed-structured-data" type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://pythoughts.com/blogs?filter=new","url":"https://pythoughts.com/blogs?filter=new","name":"Discover - Pythoughts","description":"Fresh thinking from our community. Explore trending and latest posts from developers and creators.","isPartOf":{"@type":"WebSite","@id":"https://pythoughts.com/#website","url":"https://pythoughts.com","name":"Pythoughts","description":"A publishing platform for developers and creators"}},{"@type":"ItemList","@id":"https://pythoughts.com/blogs?filter=new#feed","name":"Featured Blog Posts","description":"Latest and trending posts from Pythoughts","numberOfItems":3,"itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"BlogPosting","@id":"https://pythoughts.com/@dr_glitch/posts/post-1780614487592","headline":"Pythinker Code: The Review-First AI Coding Agent for Serious Developers","description":"Most AI coding tools rush straight into generation. They read a prompt, produce code, and leave the developer to figure out whether the result is secure, mainta...","url":"https://pythoughts.com/@dr_glitch/posts/post-1780614487592","datePublished":"2026-06-04T23:13:36.996Z","image":"/api/media/bf2742f2-fbda-4d60-b77d-1d3f4aa6e7aa/VL58-LB9eqKIGr3bWaPuZ/uploads/1780614480467-ars6pi-image.png","author":{"@type":"Person","name":"Dr Glitch","url":"https://pythoughts.com/@dr_glitch"},"publisher":{"@type":"Organization","name":"Pythoughts","url":"https://pythoughts.com"},"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":0},{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":0}],"timeRequired":"PT6M"}},{"@type":"ListItem","position":2,"item":{"@type":"BlogPosting","@id":"https://pythoughts.com/@melkholy/posts/post-1779992445260","headline":"Beyond “Make it Beautiful”: The Anti-Slop Framework for AI Premium Design","description":"AI coding tools can build interfaces incredibly fast. The problem is that they often build the same interface over and over again. You know the look. A centered...","url":"https://pythoughts.com/@melkholy/posts/post-1779992445260","datePublished":"2026-05-28T18:32:49.770Z","image":"/api/media/ac2c2632-713e-4110-8fc5-48c0f2b8eefd/dTWxmwomaL5ALeqYHBuyr/SIT8Ms43sia7ZilJX28Ck/1779992670738-c7tfww-ui_design.png","author":{"@type":"Person","name":"Mohamed Elkholy","url":"https://pythoughts.com/@melkholy"},"publisher":{"@type":"Organization","name":"Pythoughts","url":"https://pythoughts.com"},"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":1},{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":3}],"timeRequired":"PT14M"}},{"@type":"ListItem","position":3,"item":{"@type":"BlogPosting","@id":"https://pythoughts.com/@melkholy/posts/post-1779988560770","headline":"Claude Code: A Deep Practical Guide to Using Every Major Feature","description":"Introduction I use Claude Code not only as a coding assistant, but as a practical development partner for planning, editing, debugging, testing, documenting, an...","url":"https://pythoughts.com/@melkholy/posts/post-1779988560770","datePublished":"2026-05-28T17:19:04.738Z","image":"/api/media/ac2c2632-713e-4110-8fc5-48c0f2b8eefd/dTWxmwomaL5ALeqYHBuyr/JzMjQsxAQ1FNfVkAJBNa-/1779988717698-6kyxac-chatgpt-image-may-28_-2026_-01_18_10-pm.png","author":{"@type":"Person","name":"Mohamed Elkholy","url":"https://pythoughts.com/@melkholy"},"publisher":{"@type":"Organization","name":"Pythoughts","url":"https://pythoughts.com"},"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":0},{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":2}],"timeRequired":"PT21M"}}]}]}</script><header class="border-b border-border/40"><div class="mx-auto w-full px-4 sm:px-6 lg:px-8 max-w-7xl py-5 md:py-6"><div class="grid grid-cols-1 gap-4 md:grid-cols-[1fr_280px] md:items-end md:gap-8 lg:grid-cols-[1fr_300px]"><div class="space-y-1"><h1 class="text-3xl font-normal tracking-[-0.01em] text-[var(--text-heading)] md:text-5xl" style="font-family:var(--font-playfair), Georgia, serif">Discover</h1><p class="text-sm italic text-[var(--text-tertiary)]" style="font-family:var(--font-playfair), Georgia, serif">Fresh thinking from our community</p></div><!--$--><form role="search" aria-label="Search posts" class="w-full" action="/blogs" method="get"><label for="blog-feed-search" class="sr-only">Search posts</label><div class="flex items-center gap-2 border-b border-[var(--border)]/60 py-1.5 transition-colors duration-200 focus-within:border-[var(--text)]/70"><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-search h-4 w-4 shrink-0 text-[var(--text-tertiary)]" aria-hidden="true" focusable="false"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg><input id="blog-feed-search" type="search" enterKeyHint="search" autoComplete="off" spellCheck="false" maxLength="120" placeholder="Search posts" aria-describedby="blog-search-status" class="min-w-0 flex-1 appearance-none border-0 bg-transparent py-1 text-sm leading-none text-[var(--text)] placeholder:text-[var(--text-tertiary)] disabled:cursor-not-allowed disabled:opacity-50 [&amp;::-webkit-search-cancel-button]:hidden [&amp;::-webkit-search-decoration]:hidden [&amp;:focus]:!outline-none [&amp;:focus]:!ring-0 [&amp;:focus-visible]:!outline-none [&amp;:focus-visible]:!ring-0" style="outline:none;box-shadow:none" name="q" value=""/></div><span id="blog-search-status" class="sr-only" aria-live="polite"></span></form><!--/$--></div><div class="mt-6 grid grid-cols-1 gap-4 md:grid-cols-[1fr_280px] md:gap-8 lg:grid-cols-[1fr_300px]"><!--$--><nav class="flex items-center gap-4 sm:gap-6 overflow-x-auto border-b border-[var(--border)]/30 scrollbar-none" aria-label="Feed filters"><button type="button" class="relative flex shrink-0 items-center gap-1.5 sm:gap-2 py-3 text-sm transition-all duration-200 font-semibold text-[var(--text-heading)]" aria-current="page" aria-label="Filter by Latest"><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-clock h-4 w-4 transition-colors text-[var(--brand)]" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="10"></circle><path d="M12 6v6l4 2"></path></svg><span>Latest</span><span class="absolute -bottom-px left-0 right-0 h-0.5 rounded-full bg-gradient-to-r from-[var(--brand)] to-emerald-400" aria-hidden="true"></span></button><button type="button" class="relative flex shrink-0 items-center gap-1.5 sm:gap-2 py-3 text-sm transition-all duration-200 text-[var(--text-muted)] hover:text-[var(--text)]" aria-label="Filter by Featured"><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-sparkles h-4 w-4 transition-colors text-[var(--text-muted)]" aria-hidden="true" focusable="false"><path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z"></path><path d="M20 2v4"></path><path d="M22 4h-4"></path><circle cx="4" cy="20" r="2"></circle></svg><span>Featured</span></button></nav><!--/$--><div class="hidden md:block" aria-hidden="true"></div></div></div></header><div class="py-4 md:hidden border-b border-border/30" role="complementary" aria-label="Discover section"><div class="mx-auto w-full px-4 sm:px-6 lg:px-8 max-w-6xl"><div class="rounded-2xl border border-[var(--border)]/40 bg-[var(--surface)]/60 backdrop-blur-sm overflow-hidden"><div class="flex items-center justify-between px-4 py-3 border-b border-[var(--border)]/30"><div class="flex items-center gap-2"><div class="h-1.5 w-1.5 rounded-full bg-primary animate-pulse"></div><span class="text-sm font-semibold text-[var(--text-heading)]">Discover</span></div><span class="rounded-full bg-[var(--surface-muted)]/80 px-2 py-0.5 text-[10px] text-muted-foreground">15<!-- --> items</span></div><div class="divide-y divide-[var(--border)]/20"><div class="overflow-hidden"><button class="w-full flex items-center justify-between px-4 py-3 transition-colors duration-200 hover:bg-[var(--surface-muted)]/40 active:bg-[var(--surface-muted)]/60 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand)]/50 focus-visible:ring-inset" aria-expanded="false" aria-controls="section-recommendations"><div class="flex items-center gap-2 min-w-0 flex-1"><span class="text-muted-foreground"><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-sparkles h-3.5 w-3.5" aria-hidden="true" focusable="false"><path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z"></path><path d="M20 2v4"></path><path d="M22 4h-4"></path><circle cx="4" cy="20" r="2"></circle></svg></span><span class="text-sm font-medium text-[var(--text)]">Recommendations</span><span class="rounded-full bg-[var(--surface-muted)]/80 px-1.5 py-0.5 text-[9px] text-muted-foreground">3</span><div class="hidden xs:flex items-center min-w-0 flex-1 ml-2"><span class="text-xs text-muted-foreground truncate">Pythinker Code: The Review-First AI Coding Agent for Serious Developers</span></div></div><div class="flex items-center gap-2"><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-chevron-down h-4 w-4 text-muted-foreground transition-transform duration-200" aria-hidden="true" focusable="false"><path d="m6 9 6 6 6-6"></path></svg></div></button><div id="section-recommendations" class="grid transition-all duration-300 ease-out grid-rows-[0fr] opacity-0"><div class="overflow-hidden"><div class="px-4 pb-4"><div class="space-y-1"><a class="group flex items-start gap-3 rounded-lg p-2 -mx-2 transition-all duration-200 hover:bg-[var(--surface-muted)]/50 active:scale-[0.99] border-b border-[var(--border)]/20 rounded-b-none" href="/@dr_glitch/posts/post-1780614487592"><span class="relative inline-flex shrink-0 overflow-hidden rounded-full bg-[var(--surface-muted)] ring-2 ring-gray-300 dark:ring-white/20 h-8 w-8 flex-shrink-0"></span><div class="min-w-0 flex-1"><p class="text-xs text-muted-foreground mb-0.5">Dr Glitch</p><h4 class="text-sm font-medium text-[var(--text)] line-clamp-2 leading-snug group-hover:text-[var(--brand)] transition-colors">Pythinker Code: The Review-First AI Coding Agent for Serious Developers</h4></div></a><a class="group flex items-start gap-3 rounded-lg p-2 -mx-2 transition-all duration-200 hover:bg-[var(--surface-muted)]/50 active:scale-[0.99] border-b border-[var(--border)]/20 rounded-b-none" href="/@melkholy/posts/post-1779992445260"><span class="relative inline-flex shrink-0 overflow-hidden rounded-full bg-[var(--surface-muted)] ring-2 ring-gray-300 dark:ring-white/20 h-8 w-8 flex-shrink-0"></span><div class="min-w-0 flex-1"><p class="text-xs text-muted-foreground mb-0.5">Mohamed Elkholy</p><h4 class="text-sm font-medium text-[var(--text)] line-clamp-2 leading-snug group-hover:text-[var(--brand)] transition-colors">Beyond “Make it Beautiful”: The Anti-Slop Framework for AI Premium Design</h4></div></a><a class="group flex items-start gap-3 rounded-lg p-2 -mx-2 transition-all duration-200 hover:bg-[var(--surface-muted)]/50 active:scale-[0.99]" href="/@melkholy/posts/post-1779988560770"><span class="relative inline-flex shrink-0 overflow-hidden rounded-full bg-[var(--surface-muted)] ring-2 ring-gray-300 dark:ring-white/20 h-8 w-8 flex-shrink-0"></span><div class="min-w-0 flex-1"><p class="text-xs text-muted-foreground mb-0.5">Mohamed Elkholy</p><h4 class="text-sm font-medium text-[var(--text)] line-clamp-2 leading-snug group-hover:text-[var(--brand)] transition-colors">Claude Code: A Deep Practical Guide to Using Every Major Feature</h4></div></a></div></div></div></div></div><div class="overflow-hidden"><button class="w-full flex items-center justify-between px-4 py-3 transition-colors duration-200 hover:bg-[var(--surface-muted)]/40 active:bg-[var(--surface-muted)]/60 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand)]/50 focus-visible:ring-inset" aria-expanded="false" aria-controls="section-topics"><div class="flex items-center gap-2 min-w-0 flex-1"><span class="text-muted-foreground"><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-hash h-3.5 w-3.5" aria-hidden="true" focusable="false"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg></span><span class="text-sm font-medium text-[var(--text)]">Topics</span><span class="rounded-full bg-[var(--surface-muted)]/80 px-1.5 py-0.5 text-[9px] text-muted-foreground">10</span><div class="hidden xs:flex items-center min-w-0 flex-1 ml-2"><div class="flex gap-1.5 overflow-hidden"><span class="inline-flex items-center rounded-full bg-[var(--surface-muted)]/60 px-2 py-0.5 text-[10px] text-muted-foreground">ai</span><span class="inline-flex items-center rounded-full bg-[var(--surface-muted)]/60 px-2 py-0.5 text-[10px] text-muted-foreground">code</span><span class="inline-flex items-center rounded-full bg-[var(--surface-muted)]/60 px-2 py-0.5 text-[10px] text-muted-foreground">claude</span></div></div></div><div class="flex items-center gap-2"><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-chevron-down h-4 w-4 text-muted-foreground transition-transform duration-200" aria-hidden="true" focusable="false"><path d="m6 9 6 6 6-6"></path></svg></div></button><div id="section-topics" class="grid transition-all duration-300 ease-out grid-rows-[0fr] opacity-0"><div class="overflow-hidden"><div class="px-4 pb-4"><div class="flex flex-wrap gap-2"><a class="inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 border border-[var(--border)]/50 bg-[var(--surface-muted)]/40 text-xs font-medium text-[var(--text-secondary)] transition-all duration-200 hover:border-[var(--brand)]/50 hover:bg-[var(--brand)]/10 hover:text-[var(--brand)] active:scale-95" href="/tags?tag=ai"><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-hash h-3 w-3" aria-hidden="true" focusable="false"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg><span>ai</span><span class="text-[10px] text-muted-foreground/70">2</span></a><a class="inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 border border-[var(--border)]/50 bg-[var(--surface-muted)]/40 text-xs font-medium text-[var(--text-secondary)] transition-all duration-200 hover:border-[var(--brand)]/50 hover:bg-[var(--brand)]/10 hover:text-[var(--brand)] active:scale-95" href="/tags?tag=code"><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-hash h-3 w-3" aria-hidden="true" focusable="false"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg><span>code</span><span class="text-[10px] text-muted-foreground/70">2</span></a><a class="inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 border border-[var(--border)]/50 bg-[var(--surface-muted)]/40 text-xs font-medium text-[var(--text-secondary)] transition-all duration-200 hover:border-[var(--brand)]/50 hover:bg-[var(--brand)]/10 hover:text-[var(--brand)] active:scale-95" href="/tags?tag=claude"><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-hash h-3 w-3" aria-hidden="true" focusable="false"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg><span>claude</span><span class="text-[10px] text-muted-foreground/70">1</span></a><a class="inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 border border-[var(--border)]/50 bg-[var(--surface-muted)]/40 text-xs font-medium text-[var(--text-secondary)] transition-all duration-200 hover:border-[var(--brand)]/50 hover:bg-[var(--brand)]/10 hover:text-[var(--brand)] active:scale-95" href="/tags?tag=claude%20code"><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-hash h-3 w-3" aria-hidden="true" focusable="false"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg><span>claude code</span><span class="text-[10px] text-muted-foreground/70">1</span></a><a class="inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 border border-[var(--border)]/50 bg-[var(--surface-muted)]/40 text-xs font-medium text-[var(--text-secondary)] transition-all duration-200 hover:border-[var(--brand)]/50 hover:bg-[var(--brand)]/10 hover:text-[var(--brand)] active:scale-95" href="/tags?tag=codex"><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-hash h-3 w-3" aria-hidden="true" focusable="false"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg><span>codex</span><span class="text-[10px] text-muted-foreground/70">1</span></a><a class="inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 border border-[var(--border)]/50 bg-[var(--surface-muted)]/40 text-xs font-medium text-[var(--text-secondary)] transition-all duration-200 hover:border-[var(--brand)]/50 hover:bg-[var(--brand)]/10 hover:text-[var(--brand)] active:scale-95" href="/tags?tag=coding"><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-hash h-3 w-3" aria-hidden="true" focusable="false"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg><span>coding</span><span class="text-[10px] text-muted-foreground/70">1</span></a><a class="inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 border border-[var(--border)]/50 bg-[var(--surface-muted)]/40 text-xs font-medium text-[var(--text-secondary)] transition-all duration-200 hover:border-[var(--brand)]/50 hover:bg-[var(--brand)]/10 hover:text-[var(--brand)] active:scale-95" href="/tags?tag=ui"><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-hash h-3 w-3" aria-hidden="true" focusable="false"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg><span>ui</span><span class="text-[10px] text-muted-foreground/70">1</span></a><a class="inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 border border-[var(--border)]/50 bg-[var(--surface-muted)]/40 text-xs font-medium text-[var(--text-secondary)] transition-all duration-200 hover:border-[var(--brand)]/50 hover:bg-[var(--brand)]/10 hover:text-[var(--brand)] active:scale-95" href="/tags?tag=agents"><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-hash h-3 w-3" aria-hidden="true" focusable="false"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg><span>agents</span><span class="text-[10px] text-muted-foreground/70">1</span></a><a class="inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 border border-[var(--border)]/50 bg-[var(--surface-muted)]/40 text-xs font-medium text-[var(--text-secondary)] transition-all duration-200 hover:border-[var(--brand)]/50 hover:bg-[var(--brand)]/10 hover:text-[var(--brand)] active:scale-95" href="/tags?tag=ui%20ux%20design"><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-hash h-3 w-3" aria-hidden="true" focusable="false"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg><span>ui ux design</span><span class="text-[10px] text-muted-foreground/70">1</span></a><a class="inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 border border-[var(--border)]/50 bg-[var(--surface-muted)]/40 text-xs font-medium text-[var(--text-secondary)] transition-all duration-200 hover:border-[var(--brand)]/50 hover:bg-[var(--brand)]/10 hover:text-[var(--brand)] active:scale-95" href="/tags?tag=ai%20coding%20agent"><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-hash h-3 w-3" aria-hidden="true" focusable="false"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg><span>ai coding agent</span><span class="text-[10px] text-muted-foreground/70">1</span></a></div></div></div></div></div><div class="overflow-hidden"><button class="w-full flex items-center justify-between px-4 py-3 transition-colors duration-200 hover:bg-[var(--surface-muted)]/40 active:bg-[var(--surface-muted)]/60 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand)]/50 focus-visible:ring-inset" aria-expanded="false" aria-controls="section-users"><div class="flex items-center gap-2 min-w-0 flex-1"><span class="text-muted-foreground"><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-users h-3.5 w-3.5" aria-hidden="true" focusable="false"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><path d="M16 3.128a4 4 0 0 1 0 7.744"></path><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><circle cx="9" cy="7" r="4"></circle></svg></span><span class="text-sm font-medium text-[var(--text)]">Who to Follow</span><span class="rounded-full bg-[var(--surface-muted)]/80 px-1.5 py-0.5 text-[9px] text-muted-foreground">2</span><div class="hidden xs:flex items-center min-w-0 flex-1 ml-2"><div class="flex -space-x-2"><span class="relative inline-flex shrink-0 overflow-hidden rounded-full bg-[var(--surface-muted)] ring-2 ring-gray-300 dark:ring-white/20 h-5 w-5 border-2 border-[var(--surface)]"></span><span class="relative inline-flex shrink-0 overflow-hidden rounded-full bg-[var(--surface-muted)] ring-2 ring-gray-300 dark:ring-white/20 h-5 w-5 border-2 border-[var(--surface)]"></span></div></div></div><div class="flex items-center gap-2"><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-chevron-down h-4 w-4 text-muted-foreground transition-transform duration-200" aria-hidden="true" focusable="false"><path d="m6 9 6 6 6-6"></path></svg></div></button><div id="section-users" class="grid transition-all duration-300 ease-out grid-rows-[0fr] opacity-0"><div class="overflow-hidden"><div class="px-4 pb-4"><div class="space-y-1"><div class="flex items-center gap-3 py-2 border-b border-[var(--border)]/20"><a class="flex-shrink-0" href="/@melkholy"><span class="relative inline-flex shrink-0 overflow-hidden rounded-full bg-[var(--surface-muted)] ring-2 ring-gray-300 dark:ring-white/20 h-10 w-10"></span></a><div class="min-w-0 flex-1"><a class="group" href="/@melkholy"><p class="inline-flex items-center gap-1 text-sm font-medium text-[var(--text)] group-hover:text-[var(--brand)] transition-colors"><span class="truncate">Mohamed Elkholy</span><span class="inline-flex items-center justify-center rounded-full bg-amber-500 text-white shadow-[0_1px_2px_rgba(245,158,11,0.4)] h-3.5 w-3.5 " role="img" title="Pro Member" aria-label="Pro Member"><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-crown h-2 w-2 drop-shadow-sm" aria-hidden="true" focusable="false"><path d="M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z"></path><path d="M5 21h14"></path></svg></span></p></a><p class="text-xs text-muted-foreground truncate">@<!-- -->melkholy</p></div></div><div class="flex items-center gap-3 py-2"><a class="flex-shrink-0" href="/@dr_glitch"><span class="relative inline-flex shrink-0 overflow-hidden rounded-full bg-[var(--surface-muted)] ring-2 ring-gray-300 dark:ring-white/20 h-10 w-10"></span></a><div class="min-w-0 flex-1"><a class="group" href="/@dr_glitch"><p class="inline-flex items-center gap-1 text-sm font-medium text-[var(--text)] group-hover:text-[var(--brand)] transition-colors"><span class="truncate">Dr Glitch</span></p></a><p class="text-xs text-muted-foreground truncate">@<!-- -->dr_glitch</p></div></div></div></div></div></div></div></div></div></div></div><div class="mx-auto w-full px-4 sm:px-6 lg:px-8 max-w-7xl"><div class="grid grid-cols-1 md:grid-cols-[1fr_280px] lg:grid-cols-[1fr_300px] gap-8 items-start"><main class="min-w-0" aria-label="Blog feed"><div class="py-2"><div class="relative"><div class="pointer-events-none absolute -inset-4 rounded-3xl bg-[radial-gradient(circle_at_18%_40%,rgba(255,255,255,0.03),transparent_45%),radial-gradient(circle_at_80%_10%,rgba(34,197,94,0.03),transparent_40%)]"></div><div class="relative grid grid-cols-1 gap-4 md:gap-6 md:grid-cols-2 lg:grid-cols-3"><article class="group relative flex flex-col overflow-hidden cursor-pointer md:rounded-2xl border-0 md:border md:border-[var(--border)]/10 bg-white dark:bg-[var(--surface)] md:shadow-sm transition-colors duration-200 ease-out md:hover:border-[var(--border)]/25 focus-within:ring-2 focus-within:ring-[var(--brand)]/40 focus-within:ring-offset-2 focus-within:ring-offset-[var(--bg)] active:bg-[var(--surface-muted)] md:active:bg-transparent" aria-labelledby="post-title-5P9upbgK2Yt4P5d-bdaVk"><a class="absolute inset-0 z-0 cursor-pointer" aria-hidden="true" tabindex="-1" href="/@dr_glitch/posts/post-1780614487592"></a><a class="relative z-[1] hidden md:block w-full overflow-hidden aspect-[4/3] focus:outline-none cursor-pointer" tabindex="-1" href="/@dr_glitch/posts/post-1780614487592"><img alt="" loading="eager" decoding="async" data-nimg="fill" class="object-cover transition-transform duration-500 ease-out group-hover:scale-105" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" src="/api/media/bf2742f2-fbda-4d60-b77d-1d3f4aa6e7aa/VL58-LB9eqKIGr3bWaPuZ/uploads/small.webp"/><div class="absolute inset-0 bg-gradient-to-t from-black/40 via-black/10 to-transparent opacity-60 group-hover:opacity-40 transition-opacity duration-300" aria-hidden="true"></div><div class="absolute inset-0 shadow-[inset_0_0_60px_rgba(0,0,0,0.15)]" aria-hidden="true"></div></a><div class="relative z-10 flex flex-col px-5 py-6 md:px-7 md:py-7"><div class="absolute top-3 right-3 z-20"><button type="button" class="inline-flex min-h-[44px] min-w-[44px] items-center justify-center rounded-full transition-colors duration-150 ease-out active:opacity-70 text-[var(--text-muted)] hover:text-[var(--brand)] data-[state=open]:text-[var(--brand)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand)]/40 focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface)]" aria-label="More options" title="More options" id="radix-_R_8tj32npfkntdlb_" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ellipsis h-[18px] w-[18px]" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg></button></div><div class="flex gap-4"><div class="flex-1 min-w-0 pr-11"><h2 id="post-title-5P9upbgK2Yt4P5d-bdaVk" class="line-clamp-2 break-words text-[22px] leading-[1.2] tracking-[-0.005em] font-medium text-[var(--text-heading)] md:text-[26px] md:leading-[1.15]" style="font-family:var(--font-charter), Georgia, &quot;Times New Roman&quot;, serif"><a class="transition-colors duration-200 hover:text-[var(--brand)] focus:outline-none focus-visible:underline focus-visible:underline-offset-4" href="/@dr_glitch/posts/post-1780614487592">Pythinker Code: The Review-First AI Coding Agent for Serious Developers</a></h2></div><a class="relative shrink-0 md:hidden w-[88px] h-[88px] rounded-xl overflow-hidden shadow-sm ring-1 ring-[var(--border)]/10" tabindex="-1" aria-hidden="true" href="/@dr_glitch/posts/post-1780614487592"><img alt="" loading="eager" decoding="async" data-nimg="fill" class="object-cover transition-transform duration-500 ease-out group-hover:scale-105" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" src="/api/media/bf2742f2-fbda-4d60-b77d-1d3f4aa6e7aa/VL58-LB9eqKIGr3bWaPuZ/uploads/thumbnail.webp"/></a></div><div class="mt-5"><p class="mb-2.5 text-[12px] uppercase italic leading-none text-[var(--green-normal)]" style="font-family:var(--font-playfair), Georgia, serif;letter-spacing:0.14em">Executive Summary</p><p class="line-clamp-3 break-words text-[15px] font-normal leading-[1.55] text-[var(--text)] md:text-[16px]">Most AI coding tools rush straight into generation. They read a prompt, produce code, and leave the developer to figure out whether the result is secure, mainta...</p></div><hr class="my-5 border-t border-[var(--border)]" aria-hidden="true"/><div class="flex items-center gap-3"><a class="group/avatar shrink-0 rounded-full ring-2 ring-transparent transition-all duration-200 hover:ring-[var(--brand)]/40 hover:ring-offset-2 hover:ring-offset-[var(--surface)] focus:outline-none focus-visible:ring-[var(--brand)]" href="/@dr_glitch"><img src="https://lh3.googleusercontent.com/a/ACg8ocKxE0ioalTUKCp1A15mDwp2puIP5FZYOGMUc8RFhj-gS3nxdpsx=s96-c" alt="Dr Glitch" class="rounded-full bg-[var(--surface-muted)] object-cover dark:ring-white/20 size-10 ring-1 ring-[var(--border)]/15"/></a><div class="flex flex-col justify-center min-w-0 gap-0.5"><a class="flex items-center gap-1.5 transition-colors duration-200 hover:text-[var(--brand)] focus:outline-none focus-visible:underline" href="/@dr_glitch"><span class="text-[15px] font-semibold text-[var(--text)] truncate">Dr Glitch</span></a><div class="flex items-center gap-1.5 text-[13px] font-medium text-[var(--text-tertiary)]"><span class="shrink-0 text-[var(--text-secondary)]">6<!-- --> min read</span><span class="h-0.5 w-0.5 rounded-full bg-current opacity-60 shrink-0" aria-hidden="true"></span><time dateTime="2026-06-04T23:13:36.996Z" class="shrink-0">5d ago</time></div></div></div><hr class="mt-5 mb-2 border-t border-[var(--border)]" aria-hidden="true"/><nav class="flex w-full items-center justify-around" aria-label="Post actions"><button type="button" class="group/star inline-flex flex-col items-center justify-center gap-1.5 min-w-[44px] py-1 rounded-md transition-colors duration-150 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--engagement)]/40 focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface)] active:opacity-70 text-[var(--text-muted)] hover:text-[var(--engagement)]" aria-label="Star post" title="Star"><span class="relative inline-flex h-7 w-7 items-center justify-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star h-7 w-7" aria-hidden="true" focusable="false"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><span aria-hidden="true" class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-[40%] text-[9.5px] font-semibold leading-none tabular-nums text-current">0</span></span><span class="text-[10px] font-semibold uppercase tracking-[0.14em] leading-none text-[var(--text-muted)]">Star</span><span class="sr-only">0<!-- --> <!-- -->stars</span></button><button type="button" class="group/comment inline-flex flex-col items-center justify-center gap-1.5 min-w-[44px] py-1 rounded-md transition-colors duration-150 ease-out text-[var(--text-muted)] hover:text-[var(--brand)] active:opacity-70 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand)]/40 focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface)]" aria-label="View 0 comments" title="View comments"><span class="relative inline-flex h-7 w-7 items-center justify-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square h-7 w-7" aria-hidden="true" focusable="false"><path d="M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"></path></svg><span aria-hidden="true" class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-[55%] text-[9.5px] font-semibold leading-none tabular-nums text-current">0</span></span><span class="text-[10px] font-semibold uppercase tracking-[0.14em] leading-none text-[var(--text-muted)] group-hover/comment:text-[var(--brand)]">Comment</span><span class="sr-only">0<!-- --> <!-- -->comments</span></button><button type="button" class="group/bookmark inline-flex flex-col items-center justify-center gap-1.5 min-w-[44px] py-1 rounded-md transition-colors duration-150 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--engagement)]/40 focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface)] active:opacity-70 text-[var(--text-muted)] hover:text-[var(--engagement)]" aria-label="Bookmark post" title="Save for later"><span class="inline-flex h-7 w-7 items-center justify-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bookmark h-7 w-7" aria-hidden="true" focusable="false"><path d="M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z"></path></svg></span><span class="text-[10px] font-semibold uppercase tracking-[0.14em] leading-none text-[var(--text-muted)]">Save</span></button><button type="button" class="group/share inline-flex flex-col items-center justify-center gap-1.5 min-w-[44px] py-1 rounded-md transition-colors duration-150 ease-out text-[var(--text-muted)] hover:text-[var(--brand)] data-[state=open]:text-[var(--brand)] active:opacity-70 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand)]/40 focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface)]" aria-label="Share post" title="Share" id="radix-_R_14dj32npfkntdlb_" aria-haspopup="menu" aria-expanded="false" data-state="closed"><span class="relative inline-flex h-7 w-7 items-center justify-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-share2 lucide-share-2 h-7 w-7" aria-hidden="true" focusable="false"><circle cx="18" cy="5" r="3"></circle><circle cx="6" cy="12" r="3"></circle><circle cx="18" cy="19" r="3"></circle><line x1="8.59" x2="15.42" y1="13.51" y2="17.49"></line><line x1="15.41" x2="8.59" y1="6.51" y2="10.49"></line></svg></span><span class="text-[10px] font-semibold uppercase tracking-[0.14em] leading-none text-[var(--text-muted)] group-hover/share:text-[var(--brand)]">Share</span><span class="sr-only">0<!-- --> shares</span></button></nav></div></article><article class="group relative flex flex-col overflow-hidden cursor-pointer md:rounded-2xl border-0 md:border md:border-[var(--border)]/10 bg-white dark:bg-[var(--surface)] md:shadow-sm transition-colors duration-200 ease-out md:hover:border-[var(--border)]/25 focus-within:ring-2 focus-within:ring-[var(--brand)]/40 focus-within:ring-offset-2 focus-within:ring-offset-[var(--bg)] active:bg-[var(--surface-muted)] md:active:bg-transparent" aria-labelledby="post-title-SIT8Ms43sia7ZilJX28Ck"><a class="absolute inset-0 z-0 cursor-pointer" aria-hidden="true" tabindex="-1" href="/@melkholy/posts/post-1779992445260"></a><a class="relative z-[1] hidden md:block w-full overflow-hidden aspect-[4/3] focus:outline-none cursor-pointer" tabindex="-1" href="/@melkholy/posts/post-1779992445260"><img alt="" loading="eager" decoding="async" data-nimg="fill" class="object-cover transition-transform duration-500 ease-out group-hover:scale-105" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/webp;base64,UklGRnwAAABXRUJQVlA4IHAAAADwAgCdASoUAAsALvmczmclLy8vDwD4Sxq9a/AdgBaMoAD+7P3naoEAOi/3NmWq7/vzJroKhQrERrH2wXRNMy4owsSp1sj6YLO05rBeGhIkuG5XslsoRCnfXrjT5q3QbCDvqisns7ecP9fU7PJ5eEAA&#x27;/%3E%3C/svg%3E&quot;)" src="/api/media/ac2c2632-713e-4110-8fc5-48c0f2b8eefd/dTWxmwomaL5ALeqYHBuyr/SIT8Ms43sia7ZilJX28Ck/small.webp"/><div class="absolute inset-0 bg-gradient-to-t from-black/40 via-black/10 to-transparent opacity-60 group-hover:opacity-40 transition-opacity duration-300" aria-hidden="true"></div><div class="absolute inset-0 shadow-[inset_0_0_60px_rgba(0,0,0,0.15)]" aria-hidden="true"></div></a><div class="relative z-10 flex flex-col px-5 py-6 md:px-7 md:py-7"><div class="absolute top-3 right-3 z-20"><button type="button" class="inline-flex min-h-[44px] min-w-[44px] items-center justify-center rounded-full transition-colors duration-150 ease-out active:opacity-70 text-[var(--text-muted)] hover:text-[var(--brand)] data-[state=open]:text-[var(--brand)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand)]/40 focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface)]" aria-label="More options" title="More options" id="radix-_R_8uj32npfkntdlb_" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ellipsis h-[18px] w-[18px]" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg></button></div><div class="flex gap-4"><div class="flex-1 min-w-0 pr-11"><h2 id="post-title-SIT8Ms43sia7ZilJX28Ck" class="line-clamp-2 break-words text-[22px] leading-[1.2] tracking-[-0.005em] font-medium text-[var(--text-heading)] md:text-[26px] md:leading-[1.15]" style="font-family:var(--font-charter), Georgia, &quot;Times New Roman&quot;, serif"><a class="transition-colors duration-200 hover:text-[var(--brand)] focus:outline-none focus-visible:underline focus-visible:underline-offset-4" href="/@melkholy/posts/post-1779992445260">Beyond “Make it Beautiful”: The Anti-Slop Framework for AI Premium Design</a></h2></div><a class="relative shrink-0 md:hidden w-[88px] h-[88px] rounded-xl overflow-hidden shadow-sm ring-1 ring-[var(--border)]/10" tabindex="-1" aria-hidden="true" href="/@melkholy/posts/post-1779992445260"><img alt="" loading="eager" decoding="async" data-nimg="fill" class="object-cover transition-transform duration-500 ease-out group-hover:scale-105" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/webp;base64,UklGRnwAAABXRUJQVlA4IHAAAADwAgCdASoUAAsALvmczmclLy8vDwD4Sxq9a/AdgBaMoAD+7P3naoEAOi/3NmWq7/vzJroKhQrERrH2wXRNMy4owsSp1sj6YLO05rBeGhIkuG5XslsoRCnfXrjT5q3QbCDvqisns7ecP9fU7PJ5eEAA&#x27;/%3E%3C/svg%3E&quot;)" src="/api/media/ac2c2632-713e-4110-8fc5-48c0f2b8eefd/dTWxmwomaL5ALeqYHBuyr/SIT8Ms43sia7ZilJX28Ck/thumbnail.webp"/></a></div><div class="mt-5"><p class="mb-2.5 text-[12px] uppercase italic leading-none text-[var(--green-normal)]" style="font-family:var(--font-playfair), Georgia, serif;letter-spacing:0.14em">Executive Summary</p><p class="line-clamp-3 break-words text-[15px] font-normal leading-[1.55] text-[var(--text)] md:text-[16px]">AI coding tools can build interfaces incredibly fast. The problem is that they often build the same interface over and over again. You know the look. A centered...</p></div><hr class="my-5 border-t border-[var(--border)]" aria-hidden="true"/><div class="flex items-center gap-3"><a class="group/avatar shrink-0 rounded-full ring-2 ring-transparent transition-all duration-200 hover:ring-[var(--brand)]/40 hover:ring-offset-2 hover:ring-offset-[var(--surface)] focus:outline-none focus-visible:ring-[var(--brand)]" href="/@melkholy"><img src="https://lh3.googleusercontent.com/a/ACg8ocKSb2jl0G7_8xxvi-_WiBIFTLsRl6l2niOZsaRjnqKOXKpvnias=s96-c" alt="Mohamed Elkholy" class="rounded-full bg-[var(--surface-muted)] object-cover dark:ring-white/20 size-10 ring-1 ring-[var(--border)]/15"/></a><div class="flex flex-col justify-center min-w-0 gap-0.5"><a class="flex items-center gap-1.5 transition-colors duration-200 hover:text-[var(--brand)] focus:outline-none focus-visible:underline" href="/@melkholy"><span class="text-[15px] font-semibold text-[var(--text)] truncate">Mohamed Elkholy</span><span class="inline-flex items-center justify-center rounded-full bg-amber-500 text-white shadow-[0_1px_2px_rgba(245,158,11,0.4)] h-3.5 w-3.5 " role="img" title="Pro Member" aria-label="Pro Member"><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-crown h-2 w-2 drop-shadow-sm" aria-hidden="true" focusable="false"><path d="M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z"></path><path d="M5 21h14"></path></svg></span></a><div class="flex items-center gap-1.5 text-[13px] font-medium text-[var(--text-tertiary)]"><span class="shrink-0 text-[var(--text-secondary)]">14<!-- --> min read</span><span class="h-0.5 w-0.5 rounded-full bg-current opacity-60 shrink-0" aria-hidden="true"></span><time dateTime="2026-05-28T18:32:49.770Z" class="shrink-0">1w ago</time></div></div></div><hr class="mt-5 mb-2 border-t border-[var(--border)]" aria-hidden="true"/><nav class="flex w-full items-center justify-around" aria-label="Post actions"><button type="button" class="group/star inline-flex flex-col items-center justify-center gap-1.5 min-w-[44px] py-1 rounded-md transition-colors duration-150 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--engagement)]/40 focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface)] active:opacity-70 text-[var(--text-muted)] hover:text-[var(--engagement)]" aria-label="Star post" title="Star"><span class="relative inline-flex h-7 w-7 items-center justify-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star h-7 w-7" aria-hidden="true" focusable="false"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><span aria-hidden="true" class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-[40%] text-[9.5px] font-semibold leading-none tabular-nums text-current">1</span></span><span class="text-[10px] font-semibold uppercase tracking-[0.14em] leading-none text-[var(--text-muted)]">Star</span><span class="sr-only">1<!-- --> <!-- -->star</span></button><button type="button" class="group/comment inline-flex flex-col items-center justify-center gap-1.5 min-w-[44px] py-1 rounded-md transition-colors duration-150 ease-out text-[var(--text-muted)] hover:text-[var(--brand)] active:opacity-70 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand)]/40 focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface)]" aria-label="View 1 comment" title="View comments"><span class="relative inline-flex h-7 w-7 items-center justify-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square h-7 w-7" aria-hidden="true" focusable="false"><path d="M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"></path></svg><span aria-hidden="true" class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-[55%] text-[9.5px] font-semibold leading-none tabular-nums text-current">1</span></span><span class="text-[10px] font-semibold uppercase tracking-[0.14em] leading-none text-[var(--text-muted)] group-hover/comment:text-[var(--brand)]">Comment</span><span class="sr-only">1<!-- --> <!-- -->comment</span></button><button type="button" class="group/bookmark inline-flex flex-col items-center justify-center gap-1.5 min-w-[44px] py-1 rounded-md transition-colors duration-150 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--engagement)]/40 focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface)] active:opacity-70 text-[var(--text-muted)] hover:text-[var(--engagement)]" aria-label="Bookmark post" title="Save for later"><span class="inline-flex h-7 w-7 items-center justify-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bookmark h-7 w-7" aria-hidden="true" focusable="false"><path d="M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z"></path></svg></span><span class="text-[10px] font-semibold uppercase tracking-[0.14em] leading-none text-[var(--text-muted)]">Save</span></button><button type="button" class="group/share inline-flex flex-col items-center justify-center gap-1.5 min-w-[44px] py-1 rounded-md transition-colors duration-150 ease-out text-[var(--text-muted)] hover:text-[var(--brand)] data-[state=open]:text-[var(--brand)] active:opacity-70 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand)]/40 focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface)]" aria-label="Share post" title="Share" id="radix-_R_14ej32npfkntdlb_" aria-haspopup="menu" aria-expanded="false" data-state="closed"><span class="relative inline-flex h-7 w-7 items-center justify-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-share2 lucide-share-2 h-7 w-7" aria-hidden="true" focusable="false"><circle cx="18" cy="5" r="3"></circle><circle cx="6" cy="12" r="3"></circle><circle cx="18" cy="19" r="3"></circle><line x1="8.59" x2="15.42" y1="13.51" y2="17.49"></line><line x1="15.41" x2="8.59" y1="6.51" y2="10.49"></line></svg></span><span class="text-[10px] font-semibold uppercase tracking-[0.14em] leading-none text-[var(--text-muted)] group-hover/share:text-[var(--brand)]">Share</span><span class="sr-only">0<!-- --> shares</span></button></nav></div></article><article class="group relative flex flex-col overflow-hidden cursor-pointer md:rounded-2xl border-0 md:border md:border-[var(--border)]/10 bg-white dark:bg-[var(--surface)] md:shadow-sm transition-colors duration-200 ease-out md:hover:border-[var(--border)]/25 focus-within:ring-2 focus-within:ring-[var(--brand)]/40 focus-within:ring-offset-2 focus-within:ring-offset-[var(--bg)] active:bg-[var(--surface-muted)] md:active:bg-transparent" aria-labelledby="post-title-JzMjQsxAQ1FNfVkAJBNa-"><a class="absolute inset-0 z-0 cursor-pointer" aria-hidden="true" tabindex="-1" href="/@melkholy/posts/post-1779988560770"></a><a class="relative z-[1] hidden md:block w-full overflow-hidden aspect-[4/3] focus:outline-none cursor-pointer" tabindex="-1" href="/@melkholy/posts/post-1779988560770"><img alt="" loading="lazy" decoding="async" data-nimg="fill" class="object-cover transition-transform duration-500 ease-out group-hover:scale-105" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAABwAgCdASoUAAsALvmczmclLy8vDwD4S0gAC52gAP7wFjzJAmXAtn916UYasKAA&#x27;/%3E%3C/svg%3E&quot;)" src="/api/media/ac2c2632-713e-4110-8fc5-48c0f2b8eefd/dTWxmwomaL5ALeqYHBuyr/JzMjQsxAQ1FNfVkAJBNa-/small.webp"/><div class="absolute inset-0 bg-gradient-to-t from-black/40 via-black/10 to-transparent opacity-60 group-hover:opacity-40 transition-opacity duration-300" aria-hidden="true"></div><div class="absolute inset-0 shadow-[inset_0_0_60px_rgba(0,0,0,0.15)]" aria-hidden="true"></div></a><div class="relative z-10 flex flex-col px-5 py-6 md:px-7 md:py-7"><div class="absolute top-3 right-3 z-20"><button type="button" class="inline-flex min-h-[44px] min-w-[44px] items-center justify-center rounded-full transition-colors duration-150 ease-out active:opacity-70 text-[var(--text-muted)] hover:text-[var(--brand)] data-[state=open]:text-[var(--brand)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand)]/40 focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface)]" aria-label="More options" title="More options" id="radix-_R_8vj32npfkntdlb_" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ellipsis h-[18px] w-[18px]" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg></button></div><div class="flex gap-4"><div class="flex-1 min-w-0 pr-11"><h2 id="post-title-JzMjQsxAQ1FNfVkAJBNa-" class="line-clamp-2 break-words text-[22px] leading-[1.2] tracking-[-0.005em] font-medium text-[var(--text-heading)] md:text-[26px] md:leading-[1.15]" style="font-family:var(--font-charter), Georgia, &quot;Times New Roman&quot;, serif"><a class="transition-colors duration-200 hover:text-[var(--brand)] focus:outline-none focus-visible:underline focus-visible:underline-offset-4" href="/@melkholy/posts/post-1779988560770">Claude Code: A Deep Practical Guide to Using Every Major Feature</a></h2></div><a class="relative shrink-0 md:hidden w-[88px] h-[88px] rounded-xl overflow-hidden shadow-sm ring-1 ring-[var(--border)]/10" tabindex="-1" aria-hidden="true" href="/@melkholy/posts/post-1779988560770"><img alt="" loading="lazy" decoding="async" data-nimg="fill" class="object-cover transition-transform duration-500 ease-out group-hover:scale-105" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAABwAgCdASoUAAsALvmczmclLy8vDwD4S0gAC52gAP7wFjzJAmXAtn916UYasKAA&#x27;/%3E%3C/svg%3E&quot;)" src="/api/media/ac2c2632-713e-4110-8fc5-48c0f2b8eefd/dTWxmwomaL5ALeqYHBuyr/JzMjQsxAQ1FNfVkAJBNa-/thumbnail.webp"/></a></div><div class="mt-5"><p class="mb-2.5 text-[12px] uppercase italic leading-none text-[var(--green-normal)]" style="font-family:var(--font-playfair), Georgia, serif;letter-spacing:0.14em">Executive Summary</p><p class="line-clamp-3 break-words text-[15px] font-normal leading-[1.55] text-[var(--text)] md:text-[16px]">Introduction I use Claude Code not only as a coding assistant, but as a practical development partner for planning, editing, debugging, testing, documenting, an...</p></div><hr class="my-5 border-t border-[var(--border)]" aria-hidden="true"/><div class="flex items-center gap-3"><a class="group/avatar shrink-0 rounded-full ring-2 ring-transparent transition-all duration-200 hover:ring-[var(--brand)]/40 hover:ring-offset-2 hover:ring-offset-[var(--surface)] focus:outline-none focus-visible:ring-[var(--brand)]" href="/@melkholy"><img src="https://lh3.googleusercontent.com/a/ACg8ocKSb2jl0G7_8xxvi-_WiBIFTLsRl6l2niOZsaRjnqKOXKpvnias=s96-c" alt="Mohamed Elkholy" class="rounded-full bg-[var(--surface-muted)] object-cover dark:ring-white/20 size-10 ring-1 ring-[var(--border)]/15"/></a><div class="flex flex-col justify-center min-w-0 gap-0.5"><a class="flex items-center gap-1.5 transition-colors duration-200 hover:text-[var(--brand)] focus:outline-none focus-visible:underline" href="/@melkholy"><span class="text-[15px] font-semibold text-[var(--text)] truncate">Mohamed Elkholy</span><span class="inline-flex items-center justify-center rounded-full bg-amber-500 text-white shadow-[0_1px_2px_rgba(245,158,11,0.4)] h-3.5 w-3.5 " role="img" title="Pro Member" aria-label="Pro Member"><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-crown h-2 w-2 drop-shadow-sm" aria-hidden="true" focusable="false"><path d="M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z"></path><path d="M5 21h14"></path></svg></span></a><div class="flex items-center gap-1.5 text-[13px] font-medium text-[var(--text-tertiary)]"><span class="shrink-0 text-[var(--text-secondary)]">21<!-- --> min read</span><span class="h-0.5 w-0.5 rounded-full bg-current opacity-60 shrink-0" aria-hidden="true"></span><time dateTime="2026-05-28T17:19:04.738Z" class="shrink-0">1w ago</time></div></div></div><hr class="mt-5 mb-2 border-t border-[var(--border)]" aria-hidden="true"/><nav class="flex w-full items-center justify-around" aria-label="Post actions"><button type="button" class="group/star inline-flex flex-col items-center justify-center gap-1.5 min-w-[44px] py-1 rounded-md transition-colors duration-150 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--engagement)]/40 focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface)] active:opacity-70 text-[var(--text-muted)] hover:text-[var(--engagement)]" aria-label="Star post" title="Star"><span class="relative inline-flex h-7 w-7 items-center justify-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star h-7 w-7" aria-hidden="true" focusable="false"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><span aria-hidden="true" class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-[40%] text-[9.5px] font-semibold leading-none tabular-nums text-current">0</span></span><span class="text-[10px] font-semibold uppercase tracking-[0.14em] leading-none text-[var(--text-muted)]">Star</span><span class="sr-only">0<!-- --> <!-- -->stars</span></button><button type="button" class="group/comment inline-flex flex-col items-center justify-center gap-1.5 min-w-[44px] py-1 rounded-md transition-colors duration-150 ease-out text-[var(--text-muted)] hover:text-[var(--brand)] active:opacity-70 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand)]/40 focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface)]" aria-label="View 0 comments" title="View comments"><span class="relative inline-flex h-7 w-7 items-center justify-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square h-7 w-7" aria-hidden="true" focusable="false"><path d="M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"></path></svg><span aria-hidden="true" class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-[55%] text-[9.5px] font-semibold leading-none tabular-nums text-current">0</span></span><span class="text-[10px] font-semibold uppercase tracking-[0.14em] leading-none text-[var(--text-muted)] group-hover/comment:text-[var(--brand)]">Comment</span><span class="sr-only">0<!-- --> <!-- -->comments</span></button><button type="button" class="group/bookmark inline-flex flex-col items-center justify-center gap-1.5 min-w-[44px] py-1 rounded-md transition-colors duration-150 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--engagement)]/40 focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface)] active:opacity-70 text-[var(--text-muted)] hover:text-[var(--engagement)]" aria-label="Bookmark post" title="Save for later"><span class="inline-flex h-7 w-7 items-center justify-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bookmark h-7 w-7" aria-hidden="true" focusable="false"><path d="M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z"></path></svg></span><span class="text-[10px] font-semibold uppercase tracking-[0.14em] leading-none text-[var(--text-muted)]">Save</span></button><button type="button" class="group/share inline-flex flex-col items-center justify-center gap-1.5 min-w-[44px] py-1 rounded-md transition-colors duration-150 ease-out text-[var(--text-muted)] hover:text-[var(--brand)] data-[state=open]:text-[var(--brand)] active:opacity-70 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand)]/40 focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface)]" aria-label="Share post" title="Share" id="radix-_R_14fj32npfkntdlb_" aria-haspopup="menu" aria-expanded="false" data-state="closed"><span class="relative inline-flex h-7 w-7 items-center justify-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-share2 lucide-share-2 h-7 w-7" aria-hidden="true" focusable="false"><circle cx="18" cy="5" r="3"></circle><circle cx="6" cy="12" r="3"></circle><circle cx="18" cy="19" r="3"></circle><line x1="8.59" x2="15.42" y1="13.51" y2="17.49"></line><line x1="15.41" x2="8.59" y1="6.51" y2="10.49"></line></svg></span><span class="text-[10px] font-semibold uppercase tracking-[0.14em] leading-none text-[var(--text-muted)] group-hover/share:text-[var(--brand)]">Share</span><span class="sr-only">0<!-- --> shares</span></button></nav></div></article></div></div><template id="P:2"></template></div></main><template id="P:3"></template></div></div><div class="h-20 md:h-10"></div></div></div><script nonce="YzUzOTU0NTQtZTM3My00MD">$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS("S:1","P:1")</script><div hidden id="S:2"><div class="mt-8 flex justify-center"></div></div><script nonce="YzUzOTU0NTQtZTM3My00MD">$RS("S:2","P:2")</script><div hidden id="S:3"><aside role="region" aria-label="Sidebar with recommendations, topics, and suggested users" style="top:6rem;max-height:calc(100vh - 6rem);overflow-y:auto;-ms-overflow-style:none;scrollbar-width:none" class="jsx-704ffc5cf4a3b06a hidden md:block sticky self-start scroll-smooth scrollbar-none pl-4 lg:pl-6 border-l border-border/30"><div aria-hidden="true" class="jsx-704ffc5cf4a3b06a pointer-events-none sticky top-0 left-0 right-0 h-3 z-10 bg-gradient-to-b from-[var(--bg)] to-transparent transition-opacity duration-200 opacity-0"></div><div class="space-y-5" role="complementary" aria-label="Sidebar"><section class="rounded-xl border border-border/50 bg-card/60 p-4 shadow-sm backdrop-blur-sm"><section aria-labelledby="recommendations-heading"><div class="mb-4"><div class="flex items-center justify-between"><div class="flex items-center gap-2"><div class="h-1.5 w-1.5 rounded-full bg-primary shadow-[0_0_0_4px_rgba(255,255,255,0.04)]"></div><h4 class="text-sm font-semibold text-foreground">Recommendations</h4></div></div><div class="mt-2 h-px" style="background:linear-gradient(90deg, var(--border) 0%, transparent 100%)"></div></div><div class="space-y-0"><div><a class="group relative block cursor-pointer py-3 px-2 -mx-2 first:pt-2 last:pb-2 rounded-lg transition-all duration-200 ease-out hover:bg-[var(--surface-muted)]/60 hover:translate-x-0.5 active:scale-[0.99]" href="/@dr_glitch/posts/post-1780614487592"><div class="absolute left-0 top-1/2 -translate-y-1/2 w-0.5 h-0 bg-[var(--brand)] rounded-full transition-all duration-200 group-hover:h-8 opacity-0 group-hover:opacity-100"></div><div class="flex items-center gap-2 mb-1.5"><span class="relative inline-flex shrink-0 overflow-hidden rounded-full bg-[var(--surface-muted)] ring-2 ring-gray-300 dark:ring-white/20 h-5 w-5 transition-transform duration-200 group-hover:scale-105"></span><span class="text-xs text-[var(--text-muted)] truncate transition-colors duration-200 group-hover:text-[var(--text)]">Dr Glitch</span></div><h3 class="text-sm font-medium text-[var(--text)] line-clamp-2 transition-colors duration-200 group-hover:text-[var(--brand)] leading-snug">Pythinker Code: The Review-First AI Coding Agent for Serious Developers</h3></a><div class="mx-2 h-px" style="background:linear-gradient(90deg, transparent 0%, var(--border) 20%, var(--border) 80%, transparent 100%);opacity:0.5"></div></div><div><a class="group relative block cursor-pointer py-3 px-2 -mx-2 first:pt-2 last:pb-2 rounded-lg transition-all duration-200 ease-out hover:bg-[var(--surface-muted)]/60 hover:translate-x-0.5 active:scale-[0.99]" href="/@melkholy/posts/post-1779992445260"><div class="absolute left-0 top-1/2 -translate-y-1/2 w-0.5 h-0 bg-[var(--brand)] rounded-full transition-all duration-200 group-hover:h-8 opacity-0 group-hover:opacity-100"></div><div class="flex items-center gap-2 mb-1.5"><span class="relative inline-flex shrink-0 overflow-hidden rounded-full bg-[var(--surface-muted)] ring-2 ring-gray-300 dark:ring-white/20 h-5 w-5 transition-transform duration-200 group-hover:scale-105"></span><span class="text-xs text-[var(--text-muted)] truncate transition-colors duration-200 group-hover:text-[var(--text)]">Mohamed Elkholy</span></div><h3 class="text-sm font-medium text-[var(--text)] line-clamp-2 transition-colors duration-200 group-hover:text-[var(--brand)] leading-snug">Beyond “Make it Beautiful”: The Anti-Slop Framework for AI Premium Design</h3></a><div class="mx-2 h-px" style="background:linear-gradient(90deg, transparent 0%, var(--border) 20%, var(--border) 80%, transparent 100%);opacity:0.5"></div></div><div><a class="group relative block cursor-pointer py-3 px-2 -mx-2 first:pt-2 last:pb-2 rounded-lg transition-all duration-200 ease-out hover:bg-[var(--surface-muted)]/60 hover:translate-x-0.5 active:scale-[0.99]" href="/@melkholy/posts/post-1779988560770"><div class="absolute left-0 top-1/2 -translate-y-1/2 w-0.5 h-0 bg-[var(--brand)] rounded-full transition-all duration-200 group-hover:h-8 opacity-0 group-hover:opacity-100"></div><div class="flex items-center gap-2 mb-1.5"><span class="relative inline-flex shrink-0 overflow-hidden rounded-full bg-[var(--surface-muted)] ring-2 ring-gray-300 dark:ring-white/20 h-5 w-5 transition-transform duration-200 group-hover:scale-105"></span><span class="text-xs text-[var(--text-muted)] truncate transition-colors duration-200 group-hover:text-[var(--text)]">Mohamed Elkholy</span></div><h3 class="text-sm font-medium text-[var(--text)] line-clamp-2 transition-colors duration-200 group-hover:text-[var(--brand)] leading-snug">Claude Code: A Deep Practical Guide to Using Every Major Feature</h3></a></div></div></section></section><div class="mx-4 h-px" style="background:linear-gradient(90deg, transparent 0%, var(--border) 30%, var(--border) 70%, transparent 100%);opacity:0.3"></div><section class="rounded-xl border border-border/50 bg-card/60 p-4 shadow-sm backdrop-blur-sm"><section aria-labelledby="topics-heading"><div class="mb-4"><div class="flex items-center justify-between"><div class="flex items-center gap-2"><h4 class="text-sm font-semibold text-foreground">Recommended Topics</h4></div><a class="group inline-flex items-center gap-1 text-xs text-muted-foreground transition-colors duration-200 hover:text-foreground cursor-pointer" href="/tags"><span>See all</span><svg class="w-3 h-3 transition-transform duration-200 group-hover:translate-x-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path></svg></a></div><div class="mt-2 h-px" style="background:linear-gradient(90deg, var(--border) 0%, transparent 100%)"></div></div><div class="flex flex-wrap gap-2"><a class="inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium text-[var(--text-muted)] bg-[var(--surface-muted)]/50 border border-[var(--border)]/40 transition-all duration-200 ease-out hover:bg-[var(--brand)]/10 hover:border-[var(--brand)]/40 hover:text-[var(--brand)] hover:shadow-sm hover:shadow-[var(--brand)]/10 hover:-translate-y-0.5 active:scale-95 whitespace-nowrap cursor-pointer" href="/tags?tag=ai">ai</a><a class="inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium text-[var(--text-muted)] bg-[var(--surface-muted)]/50 border border-[var(--border)]/40 transition-all duration-200 ease-out hover:bg-[var(--brand)]/10 hover:border-[var(--brand)]/40 hover:text-[var(--brand)] hover:shadow-sm hover:shadow-[var(--brand)]/10 hover:-translate-y-0.5 active:scale-95 whitespace-nowrap cursor-pointer" href="/tags?tag=code">code</a><a class="inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium text-[var(--text-muted)] bg-[var(--surface-muted)]/50 border border-[var(--border)]/40 transition-all duration-200 ease-out hover:bg-[var(--brand)]/10 hover:border-[var(--brand)]/40 hover:text-[var(--brand)] hover:shadow-sm hover:shadow-[var(--brand)]/10 hover:-translate-y-0.5 active:scale-95 whitespace-nowrap cursor-pointer" href="/tags?tag=claude">claude</a><a class="inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium text-[var(--text-muted)] bg-[var(--surface-muted)]/50 border border-[var(--border)]/40 transition-all duration-200 ease-out hover:bg-[var(--brand)]/10 hover:border-[var(--brand)]/40 hover:text-[var(--brand)] hover:shadow-sm hover:shadow-[var(--brand)]/10 hover:-translate-y-0.5 active:scale-95 whitespace-nowrap cursor-pointer" href="/tags?tag=claude%20code">claude code</a><a class="inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium text-[var(--text-muted)] bg-[var(--surface-muted)]/50 border border-[var(--border)]/40 transition-all duration-200 ease-out hover:bg-[var(--brand)]/10 hover:border-[var(--brand)]/40 hover:text-[var(--brand)] hover:shadow-sm hover:shadow-[var(--brand)]/10 hover:-translate-y-0.5 active:scale-95 whitespace-nowrap cursor-pointer" href="/tags?tag=codex">codex</a><a class="inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium text-[var(--text-muted)] bg-[var(--surface-muted)]/50 border border-[var(--border)]/40 transition-all duration-200 ease-out hover:bg-[var(--brand)]/10 hover:border-[var(--brand)]/40 hover:text-[var(--brand)] hover:shadow-sm hover:shadow-[var(--brand)]/10 hover:-translate-y-0.5 active:scale-95 whitespace-nowrap cursor-pointer" href="/tags?tag=coding">coding</a><template id="P:4"></template><template id="P:5"></template><template id="P:6"></template><template id="P:7"></template></div></section></section><template id="P:8"></template><section class="rounded-xl border border-border/50 bg-card/60 p-4 shadow-sm backdrop-blur-sm"><section aria-labelledby="who-to-follow-heading"><div class="mb-4"><div class="flex items-center justify-between"><div class="flex items-center gap-2"><h4 class="text-sm font-semibold text-foreground">Who to Follow</h4></div></div><div class="mt-2 h-px" style="background:linear-gradient(90deg, var(--border) 0%, transparent 100%)"></div></div><div class="space-y-0"><div><div class="flex items-start gap-3 py-3 first:pt-0 last:pb-0"><a class="flex-shrink-0 cursor-pointer" href="/@melkholy"><span class="relative inline-flex shrink-0 overflow-hidden rounded-full bg-[var(--surface-muted)] ring-2 ring-gray-300 dark:ring-white/20 h-8 w-8"></span></a><div class="min-w-0 flex-1"><a class="group cursor-pointer" href="/@melkholy"><p class="inline-flex items-center gap-1 text-sm font-medium text-[var(--text)] truncate group-hover:text-[var(--brand)] transition-colors">Mohamed Elkholy<span class="inline-flex items-center justify-center rounded-full bg-amber-500 text-white shadow-[0_1px_2px_rgba(245,158,11,0.4)] h-3.5 w-3.5 " role="img" title="Pro Member" aria-label="Pro Member"><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-crown h-2 w-2 drop-shadow-sm" aria-hidden="true" focusable="false"><path d="M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z"></path><path d="M5 21h14"></path></svg></span></p></a></div></div><div class="mx-1 h-px" style="background:linear-gradient(90deg, transparent 0%, var(--border) 20%, var(--border) 80%, transparent 100%);opacity:0.4"></div></div><div><div class="flex items-start gap-3 py-3 first:pt-0 last:pb-0"><a class="flex-shrink-0 cursor-pointer" href="/@dr_glitch"><span class="relative inline-flex shrink-0 overflow-hidden rounded-full bg-[var(--surface-muted)] ring-2 ring-gray-300 dark:ring-white/20 h-8 w-8"></span></a><div class="min-w-0 flex-1"><a class="group cursor-pointer" href="/@dr_glitch"><p class="inline-flex items-center gap-1 text-sm font-medium text-[var(--text)] truncate group-hover:text-[var(--brand)] transition-colors">Dr Glitch</p></a></div></div></div></div></section></section><div class="h-px mt-4" style="background:linear-gradient(90deg, transparent 0%, var(--border) 50%, transparent 100%);opacity:0.2"></div><p class="text-[11px] text-muted-foreground/40 leading-relaxed pt-1">Bookmark stories with<!-- --> <svg class="inline-block w-3 h-3 -mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z"></path></svg> <!-- -->to read later</p></div><div aria-hidden="true" class="jsx-704ffc5cf4a3b06a pointer-events-none sticky bottom-0 left-0 right-0 h-3 z-10 bg-gradient-to-t from-[var(--bg)] to-transparent transition-opacity duration-200 opacity-0"></div></aside></div><script nonce="YzUzOTU0NTQtZTM3My00MD">$RS("S:3","P:3")</script><div hidden id="S:4"><a class="inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium text-[var(--text-muted)] bg-[var(--surface-muted)]/50 border border-[var(--border)]/40 transition-all duration-200 ease-out hover:bg-[var(--brand)]/10 hover:border-[var(--brand)]/40 hover:text-[var(--brand)] hover:shadow-sm hover:shadow-[var(--brand)]/10 hover:-translate-y-0.5 active:scale-95 whitespace-nowrap cursor-pointer" href="/tags?tag=ui">ui</a></div><script nonce="YzUzOTU0NTQtZTM3My00MD">$RS("S:4","P:4")</script><div hidden id="S:5"><a class="inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium text-[var(--text-muted)] bg-[var(--surface-muted)]/50 border border-[var(--border)]/40 transition-all duration-200 ease-out hover:bg-[var(--brand)]/10 hover:border-[var(--brand)]/40 hover:text-[var(--brand)] hover:shadow-sm hover:shadow-[var(--brand)]/10 hover:-translate-y-0.5 active:scale-95 whitespace-nowrap cursor-pointer" href="/tags?tag=agents">agents</a></div><script nonce="YzUzOTU0NTQtZTM3My00MD">$RS("S:5","P:5")</script><div hidden id="S:6"><a class="inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium text-[var(--text-muted)] bg-[var(--surface-muted)]/50 border border-[var(--border)]/40 transition-all duration-200 ease-out hover:bg-[var(--brand)]/10 hover:border-[var(--brand)]/40 hover:text-[var(--brand)] hover:shadow-sm hover:shadow-[var(--brand)]/10 hover:-translate-y-0.5 active:scale-95 whitespace-nowrap cursor-pointer" href="/tags?tag=ui%20ux%20design">ui ux design</a></div><script nonce="YzUzOTU0NTQtZTM3My00MD">$RS("S:6","P:6")</script><div hidden id="S:7"><a class="inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium text-[var(--text-muted)] bg-[var(--surface-muted)]/50 border border-[var(--border)]/40 transition-all duration-200 ease-out hover:bg-[var(--brand)]/10 hover:border-[var(--brand)]/40 hover:text-[var(--brand)] hover:shadow-sm hover:shadow-[var(--brand)]/10 hover:-translate-y-0.5 active:scale-95 whitespace-nowrap cursor-pointer" href="/tags?tag=ai%20coding%20agent">ai coding agent</a></div><script nonce="YzUzOTU0NTQtZTM3My00MD">$RS("S:7","P:7")</script><div hidden id="S:8"><div class="mx-4 h-px" style="background:linear-gradient(90deg, transparent 0%, var(--border) 30%, var(--border) 70%, transparent 100%);opacity:0.3"></div></div><script nonce="YzUzOTU0NTQtZTM3My00MD">$RS("S:8","P:8")</script><script nonce="YzUzOTU0NTQtZTM3My00MD">$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><script nonce="YzUzOTU0NTQtZTM3My00MD">(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.nonce='YzUzOTU0NTQtZTM3My00MD';d.innerHTML="window.__CF$cv$params={r:'a0959b5d7fe397af',t:'MTc4MTA2NTQ3MQ=='};var a=document.createElement('script');a.nonce='YzUzOTU0NTQtZTM3My00MD';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body></html>