PageSourceSearch

https://brianriant.vercel.app/blog

html brianriant.vercel.app collected 2026-10-03 06:18:46 UTC 26,557 bytes, 15 lines download raw bytes

1<!DOCTYPE html><html lang="en" class="scroll-smooth"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5, user-scalable=yes"/><link rel="stylesheet" href="/_next/static/chunks/0hzts_6xhu_oj.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/3qm714za83nz8.js"/>
1<script src="/_next/static/chunks/0f87bwk0gazn2.js" async=""></script>
1<script src="/_next/static/chunks/2fj3pogg1l47x.js" async=""></script>
1<script src="/_next/static/chunks/3hkyltp-kqbzx.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-22shfu2msgfdg.js" async=""></script>
1<script src="/_next/static/chunks/27k-8pem0igqd.js" async=""></script>
1<script src="/_next/static/chunks/3a5bdhwy0e1k2.js" async=""></script>
1<script src="/_next/static/chunks/2xi3470hlq1bd.js" async=""></script>
1<script src="/_next/static/chunks/3iwj9bx_951ue.js" async=""></script>
1<meta name="next-size-adjust" content=""/><title>Blog | Brian Riant</title><meta name="description" content="Explore insightful articles, tutorials, and thoughts on web development, React, TypeScript, Next.js, and modern software engineering practices by Brian Riant."/><meta name="author" content="Brian Riant"/><meta name="keywords" content="blog,web development blog,React tutorials,TypeScript articles,Next.js guides,JavaScript best practices,software engineering,programming tutorials,web design,frontend development,backend development,full-stack development,coding tips,tech articles"/><meta name="robots" content="index, follow"/><link rel="canonical" href="https://brianriant.vercel.app/blog"/><meta name="google-site-verification" content="google-site-verification=your-google-verification-code"/><meta name="yandex-verification" content="your-yandex-verification-code"/><meta name="bing" content="your-bing-verification-code"/><meta property="og:title" content="Blog | Brian Riant"/><meta property="og:description" content="Explore insightful articles, tutorials, and thoughts on web development, React, TypeScript, Next.js, and modern software engineering practices."/><meta property="og:url" content="https://brianriant.vercel.app/blog"/><meta property="og:site_name" content="Brian Riant Portfolio"/><meta property="og:image" content="https://brianriant.vercel.app/_next/static/media/profile-og.1ap01dl3gsw2e.png"/><meta property="og:image:width" content="2400"/><meta property="og:image:height" content="1260"/><meta property="og:image:alt" content="Brian Riant Profile Image"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:creator" content="@brianriant"/><meta name="twitter:title" content="Blog | Brian Riant"/><meta name="twitter:description" content="Explore insightful articles, tutorials, and thoughts on web development, React, TypeScript, Next.js, and modern software engineering practices."/><meta name="twitter:image" content="https://brianriant.vercel.app/_next/static/media/profile-og.1ap01dl3gsw2e.png"/><meta name="twitter:image:alt" content="Brian Riant Profile Image"/><meta name="twitter:image:width" content="2400"/><meta name="twitter:image:height" content="1260"/><link rel="icon" href="/favicon.ico?favicon.0nck31xhwhd_9.ico" sizes="48x48" type="image/x-icon"/>
1<script defer="" src="https://cloud.umami.is/script.js" data-website-id="467662c8-caee-4bca-8a44-d0026a97c931"></script>
1<script>
2              (function() {
3                function getCookie(name) {
4                  const value = document.cookie.match('(^|;)\s*' + name + '\s*=\s*([^;]+)');
5                  return value ? value.pop() : null;
6                }
7                const theme = getCookie('theme') || 'light';
8                if (theme === 'dark') {
9                  document.documentElement.classList.add('dark');
10                  document.body.classList.add('dark');
11                }
12              })();
13            </script>
13<script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script>
13</head><body class="inter_e2473468-module__7NREva__className antialiased leading-8 overflow-x-hidden dark:bg-darkTheme dark:text-white"><div hidden=""><!--$--><!--/$--></div><nav class="fixed w-full px-4 md:px-5 lg:px-8 py-4 flex justify-between items-center z-50 font-bold text-xs lg:text-sm bg-transparent shadow-black/20 dark:bg-darkHover/20 dark:shadow-white/10
14        "><a href="/#top"><img alt="Logo" loading="lazy" width="336" height="81" decoding="async" data-nimg="1" class="w-28 cursor-pointer lg:w-32 xl:w-36 2xl:w-40" style="color:transparent" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.3hpke6hafwz7_.png&amp;w=384&amp;q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.3hpke6hafwz7_.png&amp;w=750&amp;q=75 2x" src="/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.3hpke6hafwz7_.png&amp;w=750&amp;q=75"/></a><ul class="hidden md:flex items-center gap-6 lg:gap-8
15          rounded-full px-12 py-3  shadow-lg bg-opacity-50 dark:border dark:border-white/50 "><li><a href="/#" class="font-inter hover:underline text-green-500 hover:decoration-dotted dark:hover:decoration-white decoration-green-400 hover:decoration-2 ">Home</a></li><li><a href="/#about" class="font-inter hover:underline text-green-500 hover:decoration-dotted dark:hover:decoration-white decoration-green-400 hover:decoration-2 ">About</a></li><li><a href="/#services" class="font-inter hover:underline text-green-500 hover:decoration-dotted dark:hover:decoration-white decoration-green-400 hover:decoration-2 ">Services</a></li><li><a href="/#projects" class="font-inter hover:underline text-green-500 hover:decoration-dotted dark:hover:decoration-white decoration-green-400 hover:decoration-2 ">Work</a></li><li><a href="/blog" class="font-inter hover:underline text-green-500 hover:decoration-dotted dark:hover:decoration-white decoration-green-400 hover:decoration-2 ">Blog</a></li><li><a href="/#contact" class="font-inter hover:underline text-green-500 hover:decoration-dotted dark:hover:decoration-white decoration-green-400 hover:decoration-2 ">Contact</a></li></ul><div class="flex items-center gap-4"><button aria-label="Toggle Dark Mode" class="w-6 h-6" disabled=""><div class="w-6 h-6"></div></button><a class="hidden lg:flex items-center gap-3 px-10 py-2.5 border-2 border-gray-500 rounded-full ml-4 font-inter dark:border-white/50 hover:underline text-green-500 shadow-green-400 shadow-sm" href="/#contact">Contact<img alt="Contact Icon" loading="lazy" width="39" height="39" decoding="async" data-nimg="1" class="w-3" style="color:transparent" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Farrow-icon.2k80b7ygp2ju8.png&amp;w=48&amp;q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Farrow-icon.2k80b7ygp2ju8.png&amp;w=96&amp;q=75 2x" src="/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Farrow-icon.2k80b7ygp2ju8.png&amp;w=96&amp;q=75"/></a><button class="block md:hidden ml-3" aria-label="Open Menu"><img alt="Menu Icon" loading="lazy" width="72" height="58" decoding="async" data-nimg="1" class="w-6" style="color:transparent" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fmenu-black.03__dawdjump9.png&amp;w=96&amp;q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fmenu-black.03__dawdjump9.png&amp;w=256&amp;q=75 2x" src="/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fmenu-black.03__dawdjump9.png&amp;w=256&amp;q=75"/></button></div><ul class="fixed md:hidden flex flex-col gap-4 px-10 py-20 -right-64 top-0 bottom-0 w-64 h-screen bg-green-50 transition-transform duration-500 z-50 dark:bg-darkHover dark:text-white"><button class="absolute right-6 top-6" aria-label="Close Menu"><img alt="Close Icon" loading="lazy" width="29" height="29" decoding="async" data-nimg="1" class="w-5" style="color:transparent" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fclose-black.3vg1c3t5xg39t.png&amp;w=32&amp;q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fclose-black.3vg1c3t5xg39t.png&amp;w=64&amp;q=75 2x" src="/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fclose-black.3vg1c3t5xg39t.png&amp;w=64&amp;q=75"/></button><li><a href="/#" class="font-inter hover:underline text-green-500 hover:decoration-dotted dark:hover:decoration-white decoration-green-400 hover:decoration-2">Home</a></li><li><a href="/#about" class="font-inter hover:underline text-green-500 hover:decoration-dotted dark:hover:decoration-white decoration-green-400 hover:decoration-2">About</a></li><li><a href="/#services" class="font-inter hover:underline text-green-500 hover:decoration-dotted dark:hover:decoration-white decoration-green-400 hover:decoration-2">Services</a></li><li><a href="/#projects" class="font-inter hover:underline text-green-500 hover:decoration-dotted dark:hover:decoration-white decoration-green-400 hover:decoration-2">Work</a></li><li><a href="/blog" class="font-inter hover:underline text-green-500 hover:decoration-dotted dark:hover:decoration-white decoration-green-400 hover:decoration-2">Blog</a></li><li><a href="/#contact" class="font-inter hover:underline text-green-500 hover:decoration-dotted dark:hover:decoration-white decoration-green-400 hover:decoration-2">Contact</a></li></ul></nav><div class="min-h-screen transition-colors duration-300 bg-gray-50"><main class="max-w-4xl w-11/12 mx-auto items-start text-left pt-28 pb-20" style="opacity:0;transform:translateY(20px)"><div class="mb-16" style="opacity:0;transform:translateY(20px)"><h1 class="mb-3 text-sm font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400" style="opacity:0;transform:translateY(20px)">Blog</h1><h2 class="text-4xl md:text-5xl lg:text-6xl font-bold text-gray-900 dark:text-white mb-4" style="opacity:0;transform:translateY(20px)">Explore All</h2><p class="text-base md:text-lg text-gray-600 dark:text-gray-400 max-w-2xl font-normal" style="opacity:0;transform:translateY(20px)">Welcome to my blog where I share insights, tutorials, and thoughts on web development, design, and technology.</p><div class="relative mt-8 " style="opacity:0;transform:translateY(20px)"><div class="flex items-center rounded-xl px-5 py-3.5 border transition-all duration-200 shadow-md shadow-green-400 border-gray-400 dark:border-gray-700 cursor-pointer hover:bg-lightHover hover:shadow-black dark:hover:bg-darkHover dark:hover:shadow-white bg-gray-50 border-gray-200 focus-within:border-green-500"><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 w-5 h-5 mr-3 text-gray-500" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg><input type="text" placeholder="Search articles..." class="flex-1 bg-transparent outline-none font-normal text-base  text-gray-900 placeholder-gray-400" value=""/></div></div></div><div class="space-y-8" style="opacity:0;transform:translateY(20px)"><div class="col-span-full text-center py-20" style="opacity:0;transform:translateY(20px)"><p class="text-lg text-gray-600">No articles available yet.</p></div></div></main></div><!--$--><!--/$--><footer class="mt-20 mb-10 max-w-3xl w-11/12 lg:max-w-6xl mx-auto font-bold items-start text-left"><div class="font-xs lg:font-sm"><img alt="logo" loading="lazy" width="336" height="81" decoding="async" data-nimg="1" class="w-36 -ml-4 mb-2" style="color:transparent" sizes="100vw" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.3hpke6hafwz7_.png&amp;w=640&amp;q=75 640w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.3hpke6hafwz7_.png&amp;w=750&amp;q=75 750w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.3hpke6hafwz7_.png&amp;w=828&amp;q=75 828w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.3hpke6hafwz7_.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.3hpke6hafwz7_.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.3hpke6hafwz7_.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.3hpke6hafwz7_.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.3hpke6hafwz7_.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.3hpke6hafwz7_.png&amp;w=3840&amp;q=75"/></div><div class="flex flex-col lg:flex-row items-center justify-between border-t border-gray-400 mt-12 py-6 leading-relaxed"><p class="text-center lg:text-left mb-4 lg:mb-0">© <!-- -->2026<!-- --> Brian Riant. All rights reserved.</p><ul class="flex flex-wrap gap-6 lg:gap-10 items-center justify-start mt-4 lg:justify-end leading-relaxed"><li><a target="_blank" rel="noopener noreferrer" href="https://www.youtube.com/@BrianRiant" aria-label="Brian Riant&#x27;s YouTube" class="hover:underline text-green-500 transition-all duration-300">YouTube</a></li><li><a target="_blank" rel="noopener noreferrer" href="https://www.linkedin.com/in/brianriant" aria-label="Brian Riant&#x27;s LinkedIn" class="hover:underline text-green-500 transition-all duration-300">LinkedIn</a></li><li><a target="_blank" rel="noopener noreferrer" href="https://github.com/brianriant" aria-label="Brian Riant&#x27;s GitHub" class="hover:underline text-green-500 transition-all duration-300">GitHub</a></li><li><a target="_blank" rel="noopener noreferrer" href="https://linktr.ee/brianriant" aria-label="Brian Riant&#x27;s Linktree" class="hover:underline text-green-500 transition-all duration-300">Linktree</a></li></ul></div></footer><!--$--><!--/$-->
15<script src="/_next/static/chunks/3qm714za83nz8.js" id="_R_" async=""></script>
15<script>(self.__next_f=self.__next_f||[]).push([0])</script>
15<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[90725,[\"/_next/static/chunks/27k-8pem0igqd.js\",\"/_next/static/chunks/3a5bdhwy0e1k2.js\"],\"DarkModeProvider\"]\n4:I[18075,[\"/_next/static/chunks/27k-8pem0igqd.js\",\"/_next/static/chunks/3a5bdhwy0e1k2.js\"],\"default\"]\n5:I[17651,[\"/_next/static/chunks/27k-8pem0igqd.js\",\"/_next/static/chunks/3a5bdhwy0e1k2.js\"],\"default\"]\n7:I[99430,[\"/_next/static/chunks/27k-8pem0igqd.js\",\"/_next/static/chunks/3a5bdhwy0e1k2.js\"],\"SpeedInsights\"]\n8:I[43503,[\"/_next/static/chunks/27k-8pem0igqd.js\",\"/_next/static/chunks/3a5bdhwy0e1k2.js\"],\"ClientPageRoot\"]\n9:I[27925,[\"/_next/static/chunks/27k-8pem0igqd.js\",\"/_next/static/chunks/3a5bdhwy0e1k2.js\",\"/_next/static/chunks/2xi3470hlq1bd.js\",\"/_next/static/chunks/3iwj9bx_951ue.js\"],\"default\"]\na:I[75699,[\"/_next/static/chunks/27k-8pem0igqd.js\",\"/_next/static/chunks/3a5bdhwy0e1k2.js\"],\"OutletBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[75699,[\"/_next/static/chunks/27k-8pem0igqd.js\",\"/_next/static/chunks/3a5bdhwy0e1k2.js\"],\"ViewportBoundary\"]\nf:I[75699,[\"/_next/static/chunks/27k-8pem0igqd.js\",\"/_next/static/chunks/3a5bdhwy0e1k2.js\"],\"MetadataBoundary\"]\n11:I[77421,[\"/_next/static/chunks/27k-8pem0igqd.js\",\"/_next/static/chunks/3a5bdhwy0e1k2.js\"],\"default\",1]\n12:I[47137,[\"/_next/static/chunks/27k-8pem0igqd.js\",\"/_next/static/chunks/3a5bdhwy0e1k2.js\"],\"default\"]\n13:I[30383,[\"/_next/static/chunks/27k-8pem0igqd.js\",\"/_next/static/chunks/3a5bdhwy0e1k2.js\"],\"Image\"]\n14:I[65174,[\"/_next/static/chunks/27k-8pem0igqd.js\",\"/_next/static/chunks/3a5bdhwy0e1k2.js\"],\"IconMark\"]\n:HL[\"/_next/static/chunks/0hzts_6xhu_oj.css\",\"style\"]\n:HL[\"/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script>
15<script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"blog\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"blog\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0hzts_6xhu_oj.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/27k-8pem0igqd.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/3a5bdhwy0e1k2.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"scroll-smooth\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"script\",null,{\"defer\":true,\"src\":\"https://cloud.umami.is/script.js\",\"data-website-id\":\"467662c8-caee-4bca-8a44-d0026a97c931\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n              (function() {\\n                function getCookie(name) {\\n                  const value = document.cookie.match('(^|;)\\\\s*' + name + '\\\\s*=\\\\s*([^;]+)');\\n                  return value ? value.pop() : null;\\n                }\\n                const theme = getCookie('theme') || 'light';\\n                if (theme === 'dark') {\\n                  document.documentElement.classList.add('dark');\\n                  document.body.classList.add('dark');\\n                }\\n              })();\\n            \"}}]]}],[\"$\",\"body\",null,{\"className\":\"inter_e2473468-module__7NREva__className antialiased leading-8 overflow-x-hidden dark:bg-darkTheme dark:text-white\",\"children\":[[\"$\",\"$L2\",null,{\"children\":[\"$L3\",[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],\"$L6\"]}],[\"$\",\"$L7\",null,{}]]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L8\",null,{\"Component\":\"$9\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":null}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/2xi3470hlq1bd.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/3iwj9bx_951ue.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$La\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@c\"}]}]]}],{}
15,null,false,null]},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L10\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0hzts_6xhu_oj.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":false,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"WqiCgEZWEWZvizMxLceVR\"}\n"])</script>
15<script>self.__next_f.push([1,"3:[\"$\",\"$L12\",null,{\"initialTheme\":\"light\",\"isDarkMode\":false}]\n"])</script>
15<script>self.__next_f.push([1,"6:[\"$\",\"footer\",null,{\"className\":\"mt-20 mb-10 max-w-3xl w-11/12 lg:max-w-6xl mx-auto font-bold items-start text-left\",\"children\":[[\"$\",\"div\",null,{\"className\":\"font-xs lg:font-sm\",\"children\":[\"$\",\"$L13\",null,{\"src\":{\"src\":\"/_next/static/media/logo.3hpke6hafwz7_.png\",\"width\":336,\"height\":81,\"blurWidth\":8,\"blurHeight\":2,\"blurDataURL\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAACCAYAAABllJ3tAAAATUlEQVR42gFCAL3/AAICAiwGBgaQBQUFcAMDAzwDAwM6AwMDPAQEBFQBAQEUAAICAjcICAixBwcHoQgICKkICAiqBwcHlAcHB6AEJQdGziwHq7G++s4AAAAASUVORK5CYII=\"},\"alt\":\"logo\",\"className\":\"w-36 -ml-4 mb-2\",\"quality\":75,\"sizes\":\"100vw\"}]}],[\"$\",\"div\",null,{\"className\":\"flex flex-col lg:flex-row items-center justify-between border-t border-gray-400 mt-12 py-6 leading-relaxed\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-center lg:text-left mb-4 lg:mb-0\",\"children\":[\"© \",2026,\" Brian Riant. All rights reserved.\"]}],[\"$\",\"ul\",null,{\"className\":\"flex flex-wrap gap-6 lg:gap-10 items-center justify-start mt-4 lg:justify-end leading-relaxed\",\"children\":[[\"$\",\"li\",\"0\",{\"children\":[\"$\",\"a\",null,{\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"href\":\"https://www.youtube.com/@BrianRiant\",\"aria-label\":\"Brian Riant's YouTube\",\"className\":\"hover:underline text-green-500 transition-all duration-300\",\"children\":\"YouTube\"}]}],[\"$\",\"li\",\"1\",{\"children\":[\"$\",\"a\",null,{\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"href\":\"https://www.linkedin.com/in/brianriant\",\"aria-label\":\"Brian Riant's LinkedIn\",\"className\":\"hover:underline text-green-500 transition-all duration-300\",\"children\":\"LinkedIn\"}]}],[\"$\",\"li\",\"2\",{\"children\":[\"$\",\"a\",null,{\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"href\":\"https://github.com/brianriant\",\"aria-label\":\"Brian Riant's GitHub\",\"className\":\"hover:underline text-green-500 transition-all duration-300\",\"children\":\"GitHub\"}]}],[\"$\",\"li\",\"3\",{\"children\":[\"$\",\"a\",null,{\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"href\":\"https://linktr.ee/brianriant\",\"aria-label\":\"Brian Riant's Linktree\",\"className\":\"hover:underline text-green-500 transition-all duration-300\",\"children\":\"Linktree\"}]}]]}]]}]]}]\n"])</script>
15<script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=5, user-scalable=yes\"}]]\nc:null\n"])</script>
15<script>self.__next_f.push([1,"10:[[\"$\",\"title\",\"0\",{\"children\":\"Blog | Brian Riant\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Explore insightful articles, tutorials, and thoughts on web development, React, TypeScript, Next.js, and modern software engineering practices by Brian Riant.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"author\",\"content\":\"Brian Riant\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"blog,web development blog,React tutorials,TypeScript articles,Next.js guides,JavaScript best practices,software engineering,programming tutorials,web design,frontend development,backend development,full-stack development,coding tips,tech articles\"}],[\"$\",\"meta\",\"4\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"link\",\"5\",{\"rel\":\"canonical\",\"href\":\"https://brianriant.vercel.app/blog\"}],[\"$\",\"meta\",\"6\",{\"name\":\"google-site-verification\",\"content\":\"google-site-verification=your-google-verification-code\"}],[\"$\",\"meta\",\"7\",{\"name\":\"yandex-verification\",\"content\":\"your-yandex-verification-code\"}],[\"$\",\"meta\",\"8\",{\"name\":\"bing\",\"content\":\"your-bing-verification-code\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:title\",\"content\":\"Blog | Brian Riant\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:description\",\"content\":\"Explore insightful articles, tutorials, and thoughts on web development, React, TypeScript, Next.js, and modern software engineering practices.\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:url\",\"content\":\"https://brianriant.vercel.app/blog\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:site_name\",\"content\":\"Brian Riant Portfolio\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image\",\"content\":\"https://brianriant.vercel.app/_next/static/media/profile-og.1ap01dl3gsw2e.png\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:width\",\"content\":\"2400\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:image:height\",\"content\":\"1260\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:image:alt\",\"content\":\"Brian Riant Profile Image\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:creator\",\"content\":\"@brianriant\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:title\",\"content\":\"Blog | Brian Riant\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:description\",\"content\":\"Explore insightful articles, tutorials, and thoughts on web development, React, TypeScript, Next.js, and modern software engineering practices.\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:image\",\"content\":\"https://brianriant.vercel.app/_next/static/media/profile-og.1ap01dl3gsw2e.png\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:image:alt\",\"content\":\"Brian Riant Profile Image\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:image:width\",\"content\":\"2400\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:image:height\",\"content\":\"1260\"}],[\"$\",\"link\",\"26\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0nck31xhwhd_9.ico\",\"sizes\":\"48x48\",\"type\":\"image/x-icon\"}],[\"$\",\"$L14\",\"27\",{}]]\n"])</script>
15</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.