1<!DOCTYPE html> 2<html lang="en" dir="ltr" class="no-js"> 3<head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 7 8 9 10 11 12 13 14 15 16 17<title>Our Articles | Viget</title> 18 19<meta name="description" content="Vigetâs insight and expertise on marketing, strategy, design, interaction, code, and technology."> 20 21 22<meta itemprop="name" content="Our Articles | Viget"> 23<meta itemprop="description" content="Vigetâs insight and expertise on marketing, strategy, design, interaction, code, and technology."> 24 25<meta itemprop="image" content="https://www.viget.com/images/viget-social-share-1200.png"> 26 27<meta name="twitter:card" content="summary_large_image"> 28<meta name="twitter:site" content="@viget"> 29<meta name="twitter:title" content="Our Articles | Viget"> 30<meta name="twitter:description" content="Vigetâs insight and expertise on marketing, strategy, design, interaction, code, and technology."> 31<meta name="twitter:creator" content="@viget"> 32<meta name="twitter:image" content="https://www.viget.com/images/viget-social-share-1200.png"> 33<meta property="og:title" content="Our Articles | Viget"> 34<meta property="og:type" content="website"> 35<meta property="og:url" content="https://www.viget.com/articles"> 36 37<meta property="og:image" content="https://www.viget.com/images/viget-social-share-1200.png"> 38<meta property="og:image:height" content="1200"> 39<meta property="og:image:width" content="1200"> 40<meta property="og:description" content="Vigetâs insight and expertise on marketing, strategy, design, interaction, code, and technology."> 41<meta property="og:site_name" content="https://www.viget.com"> 42 43 44 45 46 <meta property="fb:pages" content="44843471127"> 47 48 <link rel="canonical" href="https://www.viget.com/articles"> 49 <link rel="icon" href="/favicon.ico" type="image/x-icon"> 50 <link rel="preconnect" href="//svc.assets.viget.com/"> 51 <link rel="dns-prefetch" href="//svc.assets.viget.com/"> 52 53 <link rel="preload" as="font" href="/assets/assets/fonts/5dc06a5625a254ead74c.woff2" type="font/woff2" crossorigin="anonymous"> 54 <link rel="preload" as="font" href="/assets/assets/fonts/13bcc55837b0c98dba68.woff2" type="font/woff2" crossorigin="anonymous"> 55 56 <link rel="preload" as="font" href="/assets/assets/fonts/a0665b42f7217fc89168.woff2" type="font/woff2" crossorigin="anonymous" fetchpriority="low"> 57 58 <link rel="preload" as="font" href="/assets/assets/fonts/f5c0b4e82046024b8bcd.woff2" type="font/woff2" crossorigin="anonymous" fetchpriority="low"> 59 60 <link href="/assets/css/app.292a79520bc38f1c059a.css" rel="stylesheet"> 61 62
62<script>var d=document,e=d.documentElement;e.className=e.className.replace(/\bno-js\b/i,'js');</script>
62 63 <link rel="alternate" type="application/xml" title="Viget Articles" href="https://feeds.feedburner.com/Viget"> 64 65 66 67 <meta name="ahrefs-site-verification" content="13eed18d43a1fb5ba7f2a04c6797445232c156eaf9a4ec07fe0fdbd291361c5e"> 68 69<!-- Google Tag Manager -->
70<script>
vendor: 327 bytes, lines 70-74
70(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 71new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 72j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 73'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 74})(window,document,'script','dataLayer','
74GTM-5V7V
vendor: 3 bytes, line 74
74');
74</script>
74 75<!-- End Google Tag Manager --> 76 77
77<script src="/assets/js/runtime.b2f70d15bc2418f83b8d.js" defer></script>
77 78 79
79<script src="/assets/js/vendors.449f90cb54b3ce5bbf0e.js" defer></script>
79 80 81
81<script src="/assets/js/app.4b340cf1c04f62ab6af0.js" defer></script>
81 82 83
83<script> 84 var gtmOriginalLocation = document.location.protocol + '//' + 85 document.location.hostname + 86 document.location.pathname + 87 document.location.search 88 89 window.dataLayer = window.dataLayer || []; 90 window.dataLayer.push({ 91 originalLocation: gtmOriginalLocation, 92 }); 93 </script>
93 94</head> 95 96<body> 97 <!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 97-98
97 98<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
98GTM-5V7V
vendor: 83 bytes, lines 98-99
98" 99height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
100<!-- End Google Tag Manager (noscript) --> 101 102 103
103<script type="application/ld+json"> 104 { 105 "@context": "http://schema.org", 106 "@type": "Organization", 107 "name" : "Viget", 108 "url": "http://www.viget.com", 109 "address": { 110 "@type": "PostalAddress", 111 "addressCountry": "USA", 112 "addressRegion": "VA", 113 "addressLocality": "Falls Church", 114 "postalCode": "22046", 115 "streetAddress": "4th Floor, 105 W Broad St" 116 }, 117 "email": "info(at)viget.com", 118 "logo": "https://www.viget.com/images/viget.png", 119 "sameAs" : [ 120 "https://x.com/viget", 121 "https://www.facebook.com/vigetlabs/", 122 "https://www.instagram.com/viget/", 123 "https://www.linkedin.com/company/39826", 124 "https://plus.google.com/+Viget/" 125 ], 126 "contactPoint" : [{ 127 "@type" : "ContactPoint", 128 "telephone" : "+1-703-891-0670", 129 "contactType" : "sales" 130 }] 131 } 132</script>
132 133 134 135 <a href="#content" class="sr-only bg-blue-300 text-white z-50 focus:sr-undo focus:!absolute focus:!py-10 focus:!px-16 "> 136 Skip to Main Content 137 </a> 138 139 140 <header id="header" role="banner" class="absolute top-0 left-0 z-30 w-full py-8 pl-20 pr-12 md:py-16 lg:py-24 md:pl-40 lg:px-32 md:pr-24"> 141 <div class="flex items-center justify-between mx-auto"> 142 <a href="/" class="viget-logo reversed" data-track-gtm="Top Navigation|Homepage"> 143 <span class="sr-only">Viget</span> 144 <svg class="text-blue-600 reversed:text-white rect-logo-text-sm md:rect-logo-text-md lg:rect-logo-text-lg" viewBox="0 0 83 40" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M23.267 8.125c0-.439.409-.847.849-.847h1.633c.44 0 .849.408.849.847v17.883c0 .439-.409.847-.849.847h-1.633c-.44 0-.849-.408-.849-.847V8.125zM59.717 7.247c4.933 0 8.735 3.64 8.735 8.565 0 .313-.032.941-.094 1.255a.831.831 0 0 1-.849.784H53.778c.188 3.137 2.89 5.835 6.63 5.835 1.98 0 3.488-.627 4.682-1.537.408-.314.66-.314.974-.031.345.313.722.69 1.068 1.004.409.345.534.658.094 1.16-.942 1.067-3.456 2.604-6.693 2.604-5.687 0-10.055-4.455-10.055-9.82 0-5.301 3.771-9.819 9.459-9.819h-.22zm5.498 8.031c-.125-2.729-2.828-5.145-5.687-5.145-3.142 0-5.467 2.479-5.656 5.145h11.343zM82.78 24.596l-1.35-1.35c-.095-.093-.44-.219-.787.064 0 0-.69.627-1.853.627-.817 0-1.477-.282-1.949-.784-.47-.502-.785-1.224-.785-2.102 0-.063 0-.094-.031-.126V9.976h4.964a.844.844 0 0 0 .849-.847V8.125c0-.502-.346-.847-.849-.847h-4.965v-5.02c0-.439-.345-.846-.816-.846l-1.446.156c-.44.063-.848.408-.848.848v4.83h-2.357c-.503 0-.848.346-.848.848v1.004c0 .44.377.847.848.847h2.357v11.231h.031a5.943 5.943 0 0 0 .88 2.95c.283.439.911 1.317 1.885 2.007 0 0 .032.032.063.032.472.282 1.477.721 3.048.721 1.634 0 3.017-.596 4.022-1.569a.579.579 0 0 0 .157-.376c-.063-.094-.126-.25-.22-.345zM19.182 7.278h-1.98c-.408 0-.66.22-.785.502L10.258 22.37 4.194 7.749c-.126-.25-.408-.502-.785-.502H1.366c-.691 0-.943.44-.691 1.035l.314.753 7.384 16.973c.157.408.472.847.943.847h1.822c.44 0 .786-.47.943-.847l7.447-16.941.314-.753c.283-.596 0-1.036-.66-1.036zM42.183 26.918h-6.567c-1.697 0-2.514-1.192-2.514-2.322 0-1.82 2.011-2.73 2.011-2.73s2.137 1.318 4.65 1.318c4.84 0 8.108-3.796 8.108-7.937 0-3.106-1.886-4.894-1.886-4.894l2.483-.69c.314-.031.502-.47.502-.784v-.785a.858.858 0 0 0-.88-.878h-8.672c-4.745 0-7.73 3.796-7.73 8.031 0 2.698 1.477 4.55 1.477 4.55s-3.048 1.787-3.048 5.238c0 2.824 2.137 4.016 3.33 4.33v.125c-.47.283-2.639 1.506-2.639 4.236 0 3.011 2.64 6.274 8.767 6.274 5.53 0 9.458-3.608 9.458-7.372 0-3.922-3.016-5.71-6.85-5.71zm-2.42-16.722c2.734 0 4.965 2.228 4.965 4.957 0 2.73-2.23 4.957-4.964 4.957-2.734 0-4.965-2.227-4.965-4.957s2.231-4.957 4.965-4.957zm-.22 26.887c-3.11 0-5.467-1.6-5.467-3.797 0-2.698 3.048-3.513 3.048-3.513h5.06c3.204 0 3.456 2.384 3.456 2.949.031 2.698-3.08 4.36-6.096 4.36zM23.016 1.945C23.016.847 23.864 0 24.933 0c1.1 0 1.948.847 1.948 1.945a1.93 1.93 0 0 1-1.948 1.914 1.923 1.923 0 0 1-1.917-1.914z"/></svg> 145 </a> 146 147 148<nav 149 id="nav" 150 role="navigation" 151 :style="{ 'padding-right': open ? scrollWidth : '0' }" 152 x-data="{ 153 open: false, 154 155 get scrollWidth() { 156 return window.innerWidth - document.documentElement.clientWidth + 'px' 157 }, 158 159 openNav() { 160 const scrollWidth = this.scrollWidth 161 162 this.open = true 163 $focus.focus($refs.closer) 164 165 // brief timeout to make sure the nav panel is open 166 window.setTimeout(function() { 167 if (window.innerHeight === $refs.dialog.scrollHeight) { 168 $refs.closer.style.paddingRight = scrollWidth 169 } 170 }, 10) 171 }, 172 173 closeNav() { 174 this.open = false 175 176 // brief timeout to make sure the nav panel is closed 177 window.setTimeout(function() { 178 $refs.closer.style.paddingRight = '0' 179 $focus.focus($refs.opener) 180 }, 10) 181 } 182 }" 183> 184 <ul class="flex items-center space-x-16 md:space-x-24 reversed"> 185 186 <li class="md-d:hidden"> 187 <a 188 class="group relative util-button-tab-md reversed:text-white" href="https://www.viget.com/work/" aria-label="Work" data-track-gtm="Top Navigation|Work" 189 > 190 Work
191 <span class="absolute block h-[2px] w-16 bottom-0 left-1/2 transform -translate-x-1/2 -mb-8 bg-gray-600 reversed:bg-white transition-all opacity-0 scale-0 group-hover:scale-100 group-hover:opacity-75"></span> 192 </a> 193 </li> 194 195 <li class="md-d:hidden"> 196 <a 197 class="group relative util-button-tab-md reversed:text-white" href="https://www.viget.com/services/" aria-label="Services" data-track-gtm="Top Navigation|Services" 198 > 199 Services 200 <span class="absolute block h-[2px] w-16 bottom-0 left-1/2 transform -translate-x-1/2 -mb-8 bg-gray-600 reversed:bg-white transition-all opacity-0 scale-0 group-hover:scale-100 group-hover:opacity-75"></span> 201 </a> 202 </li> 203 204 <li class="md-d:hidden"> 205 <a 206 class="group relative util-button-tab-md reversed:text-white" href="https://www.viget.com/articles/" aria-label="Articles" data-track-gtm="Top Navigation|Articles" 207 > 208 Articles 209 <span class="absolute block h-[2px] w-16 bottom-0 left-1/2 transform -translate-x-1/2 -mb-8 bg-gray-600 reversed:bg-white transition-all opacity-0 scale-0 group-hover:scale-100 group-hover:opacity-75"></span> 210 </a> 211 </li> 212 213 <li class="md-d:hidden"> 214 <a 215 class="group relative util-button-tab-md reversed:text-white" href="https://www.viget.com/careers/" aria-label="Careers" data-track-gtm="Top Navigation|Careers" 216 > 217 Careers 218 <span class="absolute block h-[2px] w-16 bottom-0 left-1/2 transform -translate-x-1/2 -mb-8 bg-gray-600 reversed:bg-white transition-all opacity-0 scale-0 group-hover:scale-100 group-hover:opacity-75"></span> 219 </a> 220 </li> 221 222 <li class="text-indigogoBlue"> 223 224 225 226 227 <a class="inline-block bg-blue-300 text-white border-blue-300 reversed:bg-white reversed:border-white reversed:text-current hover:bg-blue-400 hover:border-blue-400 reversed-hover:bg-transparent reversed-hover:text-white reversed-hover:border-white focus:bg-blue-500 focus:border-blue-500 disabled:bg-gray-300 disabled:text-gray-500 disabled:border-gray-300 group rounded border transition-colors duration-300 util-button-tab-sm py-10 px-16 min-w-96" href="https://www.viget.com/contact/" data-track-gtm="Top Navigation|Contact"> <span class="flex items-center justify-center"> 228 229 230 Contact 231 232 233 </span> 234 </a> 235 236 237 </li> 238 <li> 239 <button 240 x-ref="opener" 241 @click="openNav()" 242 aria-controls="navigation" 243 data-track-gtm="Top Navigation|Hamburger Open" 244 class="flex items-center reversed:text-white util-button-tab-md" 245 > 246 <span class="sr-only">Open Menu</span> <svg class="rect-icon-sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 247<path fill-rule="evenodd" clip-rule="evenodd" d="M3.25 6C3.25 5.58579 3.58579 5.25 4 5.25H20C20.4142 5.25 20.75 5.58579 20.75 6C20.75 6.41421 20.4142 6.75 20 6.75H4C3.58579 6.75 3.25 6.41421 3.25 6ZM3.25 12C3.25 11.5858 3.58579 11.25 4 11.25H20C20.4142 11.25 20.75 11.5858 20.75 12C20.75 12.4142 20.4142 12.75 20 12.75H4C3.58579 12.75 3.25 12.4142 3.25 12ZM3.25 18C3.25 17.5858 3.58579 17.25 4 17.25H20C20.4142 17.25 20.75 17.5858 20.75 18C20.75 18.4142 20.4142 18.75 20 18.75H4C3.58579 18.75 3.25 18.4142 3.25 18Z" /> 248</svg> 249 250 </button> 251 </li> 252 </ul> 253 254 <div 255 id="navigation" 256 :aria-hidden="open ? 'false' : 'true'" 257 x-cloak 258 x-show="open" 259 x-transition:enter="transition duration-500" 260 x-transition:enter-start="opacity-0" 261 x-transition:enter-end="opacity-100" 262 x-transition:leave="transition duration-500" 263 x-transition:leave-start="opacity-100" 264 x-transition:leave-end="opacity-0" 265 @keydown.escape.window="closeNav()" 266 > 267 <div 268 x-ref="dialog" 269 role="dialog" 270 aria-modal="true" 271 aria-labelledby="navigation-title" 272 class="fixed inset-0 z-50 bg-white" 273 :class="open ? 'overflow-auto' : 'overflow-hidden'" 274 x-trap.noautofocus.noscroll.inert="open" 275 > 276 <header class="py-12 pl-20 pr-12 md:py-20 md:pr-24 md:pl-40 lg:px-32 lg:py-24"> 277 <div class="flex items-center justify-between mx-auto"> 278 <h2 id="navigation-title" class="sr-only"> 279 Navigation 280 </h2> 281 282 <a href="/" class="relative top-px viget-logo md:-top-px lg:top-0" data-track-gtm="Hamburger Navigation|Homepage">
283 <span class="sr-only">Viget</span> 284 <svg class="text-blue-600 reversed:text-white rect-logo-text-sm md:rect-logo-text-md lg:rect-logo-text-lg" viewBox="0 0 83 40" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M23.267 8.125c0-.439.409-.847.849-.847h1.633c.44 0 .849.408.849.847v17.883c0 .439-.409.847-.849.847h-1.633c-.44 0-.849-.408-.849-.847V8.125zM59.717 7.247c4.933 0 8.735 3.64 8.735 8.565 0 .313-.032.941-.094 1.255a.831.831 0 0 1-.849.784H53.778c.188 3.137 2.89 5.835 6.63 5.835 1.98 0 3.488-.627 4.682-1.537.408-.314.66-.314.974-.031.345.313.722.69 1.068 1.004.409.345.534.658.094 1.16-.942 1.067-3.456 2.604-6.693 2.604-5.687 0-10.055-4.455-10.055-9.82 0-5.301 3.771-9.819 9.459-9.819h-.22zm5.498 8.031c-.125-2.729-2.828-5.145-5.687-5.145-3.142 0-5.467 2.479-5.656 5.145h11.343zM82.78 24.596l-1.35-1.35c-.095-.093-.44-.219-.787.064 0 0-.69.627-1.853.627-.817 0-1.477-.282-1.949-.784-.47-.502-.785-1.224-.785-2.102 0-.063 0-.094-.031-.126V9.976h4.964a.844.844 0 0 0 .849-.847V8.125c0-.502-.346-.847-.849-.847h-4.965v-5.02c0-.439-.345-.846-.816-.846l-1.446.156c-.44.063-.848.408-.848.848v4.83h-2.357c-.503 0-.848.346-.848.848v1.004c0 .44.377.847.848.847h2.357v11.231h.031a5.943 5.943 0 0 0 .88 2.95c.283.439.911 1.317 1.885 2.007 0 0 .032.032.063.032.472.282 1.477.721 3.048.721 1.634 0 3.017-.596 4.022-1.569a.579.579 0 0 0 .157-.376c-.063-.094-.126-.25-.22-.345zM19.182 7.278h-1.98c-.408 0-.66.22-.785.502L10.258 22.37 4.194 7.749c-.126-.25-.408-.502-.785-.502H1.366c-.691 0-.943.44-.691 1.035l.314.753 7.384 16.973c.157.408.472.847.943.847h1.822c.44 0 .786-.47.943-.847l7.447-16.941.314-.753c.283-.596 0-1.036-.66-1.036zM42.183 26.918h-6.567c-1.697 0-2.514-1.192-2.514-2.322 0-1.82 2.011-2.73 2.011-2.73s2.137 1.318 4.65 1.318c4.84 0 8.108-3.796 8.108-7.937 0-3.106-1.886-4.894-1.886-4.894l2.483-.69c.314-.031.502-.47.502-.784v-.785a.858.858 0 0 0-.88-.878h-8.672c-4.745 0-7.73 3.796-7.73 8.031 0 2.698 1.477 4.55 1.477 4.55s-3.048 1.787-3.048 5.238c0 2.824 2.137 4.016 3.33 4.33v.125c-.47.283-2.639 1.506-2.639 4.236 0 3.011 2.64 6.274 8.767 6.274 5.53 0 9.458-3.608 9.458-7.372 0-3.922-3.016-5.71-6.85-5.71zm-2.42-16.722c2.734 0 4.965 2.228 4.965 4.957 0 2.73-2.23 4.957-4.964 4.957-2.734 0-4.965-2.227-4.965-4.957s2.231-4.957 4.965-4.957zm-.22 26.887c-3.11 0-5.467-1.6-5.467-3.797 0-2.698 3.048-3.513 3.048-3.513h5.06c3.204 0 3.456 2.384 3.456 2.949.031 2.698-3.08 4.36-6.096 4.36zM23.016 1.945C23.016.847 23.864 0 24.933 0c1.1 0 1.948.847 1.948 1.945a1.93 1.93 0 0 1-1.948 1.914 1.923 1.923 0 0 1-1.917-1.914z"/></svg> 285 </a> 286 287 <button 288 x-ref="closer" 289 @click="closeNav()" 290 aria-label="Close modal" 291 class="flex items-center util-button-tab-md" 292 > 293 Close <svg class="rect-icon-sm ml-8 pointer-events-none" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 294<path fill-rule="evenodd" clip-rule="evenodd" d="M5.4697 5.46955C5.76259 5.17665 6.23746 5.17665 6.53036 5.46955L12 10.9392L17.4696 5.46955C17.7625 5.17665 18.2374 5.17665 18.5303 5.46955C18.8232 5.76244 18.8232 6.23731 18.5303 6.53021L13.0607 11.9999L18.5303 17.4695C18.8232 17.7624 18.8232 18.2373 18.5303 18.5302C18.2374 18.8231 17.7626 18.8231 17.4697 18.5302L12 13.0605L6.53033 18.5302C6.23744 18.8231 5.76256 18.8231 5.46967 18.5302C5.17678 18.2373 5.17678 17.7624 5.46967 17.4695L10.9393 11.9999L5.4697 6.53021C5.1768 6.23731 5.1768 5.76244 5.4697 5.46955Z" /> 295</svg> 296 297 </button> 298 </div> 299 </header> 300 301 <div class="px-24 py-40 modal-content md:px-40 md:py-64"> 302 <div class="mx-auto max-w-[1113px] md:flex md:justify-between"> 303 <div class="max-w-[449px]"> 304 <ul class="space-y-16 md:space-y-24 lg:space-y-32"> 305 <li class="text-gray-400 util-meta-label">Practice</li> 306 307 308 <li> 309 <a 310 class="hd-lg-light md:hd-xl-light lg:hd-xxl-light hover:border-b-3 border-gray-600" href="https://www.viget.com/work/" aria-label="Work" data-track-gtm="Hamburger Navigation|Work" 311 > 312 Work 313 </a> 314 </li> 315 316 <li> 317 <a 318 class="hd-lg-light md:hd-xl-light lg:hd-xxl-light hover:border-b-3 border-gray-600" href="https://www.viget.com/services/" aria-label="Services" data-track-gtm="Hamburger Navigation|Services" 319 > 320 Services 321 </a> 322 </li> 323 324 <li> 325 <a 326 class="hd-lg-light md:hd-xl-light lg:hd-xxl-light hover:border-b-3 border-gray-600" href="https://www.viget.com/articles/" aria-label="Articles" data-track-gtm="Hamburger Navigation|Articles" 327 > 328 Articles 329 </a> 330 </li> 331 </ul> 332 333 <div class="mt-32 md:mt-40 lg:mt-64"> 334 <p class="body-md">Weâre a full-service digital agency thatâs been helping clients make lasting change since 1999.</p> 335 336 337 338 339 340 341 <a class="inline-block mt-8 md:mt-16 lg:mt-24 bg-blue-300 text-white border-blue-300 reversed:bg-white reversed:border-white reversed:text-blue-400 hover:bg-blue-400 hover:border-blue-400 reversed-hover:bg-transparent reversed-hover:text-white reversed-hover:border-white focus:bg-blue-500 focus:border-blue-500 disabled:bg-gray-300 disabled:text-gray-500 disabled:border-gray-300 group rounded border transition-colors duration-300 lg:util-button-tab-lg lg:py-16 lg:px-24 lg:min-w-160 util-button-tab-md py-12 px-20 min-w-120" href="https://www.viget.com/contact/" data-track-gtm="Top Navigation|Contact Us"> <span class="flex items-center justify-center"> 342 343 344 Contact Us 345 346 347 <svg class="transition-transform duration-300 rect-icon-xs flex-shrink-0 ml-8 group-hover:translate-x-4" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 348<path fill-rule="evenodd" clip-rule="evenodd" d="M13.7848 19.3091C13.4758 19.585 13.0017 19.5583 12.7258 19.2494C12.4498 18.9405 12.4766 18.4663 12.7855 18.1904L18.7866 12.8301L4.75195 12.8301C4.33774 12.8301 4.00195 12.4943 4.00195 12.0801C4.00195 11.6659 4.33774 11.3301 4.75195 11.3301L18.7855 11.3301L12.7855 5.97082C12.4766 5.69488 12.4498 5.22076 12.7258 4.91184C13.0017 4.60292 13.4758 4.57618 13.7848 4.85212L21.2358 11.5076C21.3738 11.6244 21.469 11.7903 21.4945 11.9782C21.4992 12.0119 21.5015 12.0461 21.5015 12.0806C21.5015 12.2942 21.4105 12.4977 21.2511 12.64L13.7848 19.3091Z" /> 349</svg> 350 351 </span> 352 </a> 353 354 355 </div> 356 </div> 357 358 <div class="max-w-[447px] md:pl-64"> 359 <div class="md-d:mt-64 md-d:border-b md-d:pb-64"> 360 <h3 class="text-gray-400 util-meta-label">People</h3> 361 <ul class="mt-16 space-y-16 hd-xs lg:hd-sm"> 362 <li><a class="hover:underline" href="https://www.viget.com/about/" data-track-gtm="Hamburger Navigation|Company ">Company</a></li> 363 <li><a class="hover:underline" href="https://www.viget.com/careers/" data-track-gtm="Hamburger Navigation|Careers">Careers</a></li> 364 <li><a class="hover:underline" href="https://www.viget.com/code-of-ethics/" data-track-gtm="Hamburger Navigation|Code of Ethics">Code of Ethics</a></li> 365 <li><a class="hover:underline" href="https://www.viget.com/diversity-equity-and-inclusion/" data-track-gtm="Hamburger Navigation|Diversity & Inclusion">Diversity & Inclusion</a></li> 366 </ul> 367 <h3 class="mt-24 text-gray-400 util-meta-label md:mt-32 lg:mt-40">More</h3> 368 <ul class="mt-16 space-y-16 hd-xs lg:hd-sm"> 369 <li><a class="hover:underline" href="https://www.viget.com/ai/" data-track-gtm="Hamburger Navigation|Viget + AI">Viget + AI</a></li> 370 <li><a class="hover:underline" href="https://pointlesscorp.com/" data-track-gtm="Hamburger Navigation|Pointless Corp.">Pointless Corp.</a></li> 371 <li><a class="hover:underline" href="https://explorations.viget.com/" data-track-gtm="Hamburger Navigation|Explorations">Explorations</a></li> 372 <li><a class="hover:underline" href="https://code.viget.com/" data-track-gtm="Hamburger Navigation|Code at Viget">Code at Viget</a></li> 373 </ul> 374 </div> 375 376 <div class="pt-64 md:pt-40 lg:pt-64"> 377 <h3 class="text-gray-400 util-meta-label">Featured</h3> 378 379 380 381 382 383 384 <a 385 class="mt-16 inline-block group" href="https://mailchi.mp/108be3ca7f86/the-point-of-pointless-corp-18255535" data-track-gtm="Hamburger Navigation|Newsletter|The Point of Pointless Corp. In the Age of AI" 386 > 387 <div 388 class="flex reversed:text-white items-start space-x-16"> 389 <div class="flex-shrink-0"> 390 <img class="w-full object-cover rect-icon-xl rounded-full" src="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6Im5ld3NsZXR0ZXIvTWFzay1ncm91cF8yMDI0LTA1LTA4LTIwNTY0Ml9uc2ZnLnBuZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6ODAsImhlaWdodCI6ODAsImZpdCI6ImNvdmVyIn0sIndpdGhNZXRhZGF0YSI6dHJ1ZSwidG9Gb3JtYXQiOiJ3ZWJwIiwid2VicCI6eyJxdWFsaXR5Ijo4MH19fQ==?signature=c235cd96ca998745fe1f10feab54ba2e22f469284c686edae7abfecf7d0c4416" srcset="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6Im5ld3NsZXR0ZXIvTWFzay1ncm91cF8yMDI0LTA1LTA4LTIwNTY0Ml9uc2ZnLnBuZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6ODAsImhlaWdodCI6ODAsImZpdCI6ImNvdmVyIn0sIndpdGhNZXRhZGF0YSI6dHJ1ZSwidG9Gb3JtYXQiOiJ3ZWJwIiwid2VicCI6eyJxdWFsaXR5Ijo4MH19fQ==?signature=c235cd96ca998745fe1f10feab54ba2e22f469284c686edae7abfecf7d0c4416 80w, https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6Im5ld3NsZXR0ZXIvTWFzay1ncm91cF8yMDI0LTA1LTA4LTIwNTY0Ml9uc2ZnLnBuZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6MjAwLCJoZWlnaHQiOjIwMCwiZml0IjoiY292ZXIifSwid2l0aE1ldGFkYXRhIjp0cnVlLCJ0b
3900Zvcm1hdCI6IndlYnAiLCJ3ZWJwIjp7InF1YWxpdHkiOjgwfX19?signature=78cc6a1fdbc785fb4284c7939578bd9ea3c6d3451727ecf2e91dd80de3604a49 200w" width="80" height="80" alt="Read the Article: The Point of Pointless Corp. In the Age of AI" sizes="80px" style="object-position: 50% 50%;" loading="lazy" decoding="auto"> 391 </div> 392 <div class=""> 393 <p class="util-meta-label">Newsletter</p> 394 <h3 class="hd-xxs mt-12 group-hover:underline group-focus:underline group-hover:decoration-2 group-focus:decorations-2 lg:hd-sm">The Point of Pointless Corp. In the Age of AI</h3> </div> 395 </div> 396 397 </a> 398 399 400 401 402 <a 403 class="mt-32 inline-block group" href="https://www.viget.com/articles/using-ai-to-migrate-from-lit-to-react/" data-track-gtm="Hamburger Navigation|Article|Using AI to Migrate from Lit to React" 404 > 405 <div 406 class="flex reversed:text-white items-start space-x-16"> 407 <div class="flex-shrink-0"> 408 <img class="w-full object-cover rect-icon-xl rounded-full" src="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6IlNjcmVlbnNob3QtMjAyNS0wOC0wMS1hdC0xMS4xNC40Mi1BTS5wbmciLCJlZGl0cyI6eyJyZXNpemUiOnsid2lkdGgiOjgwLCJoZWlnaHQiOjgwLCJmaXQiOiJjb3ZlciJ9LCJ3aXRoTWV0YWRhdGEiOnRydWUsInRvRm9ybWF0Ijoid2VicCIsIndlYnAiOnsicXVhbGl0eSI6ODB9fX0=?signature=178b70e760bdfb142d46d62337326590d111b1fe8ac76c8ae80b4eff4dd4f097" srcset="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6IlNjcmVlbnNob3QtMjAyNS0wOC0wMS1hdC0xMS4xNC40Mi1BTS5wbmciLCJlZGl0cyI6eyJyZXNpemUiOnsid2lkdGgiOjgwLCJoZWlnaHQiOjgwLCJmaXQiOiJjb3ZlciJ9LCJ3aXRoTWV0YWRhdGEiOnRydWUsInRvRm9ybWF0Ijoid2VicCIsIndlYnAiOnsicXVhbGl0eSI6ODB9fX0=?signature=178b70e760bdfb142d46d62337326590d111b1fe8ac76c8ae80b4eff4dd4f097 80w, https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6IlNjcmVlbnNob3QtMjAyNS0wOC0wMS1hdC0xMS4xNC40Mi1BTS5wbmciLCJlZGl0cyI6eyJyZXNpemUiOnsid2lkdGgiOjIwMCwiaGVpZ2h0IjoyMDAsImZpdCI6ImNvdmVyIn0sIndpdGhNZXRhZGF0YSI6dHJ1ZSwidG9Gb3JtYXQiOiJ3ZWJwIiwid2VicCI6eyJxdWFsaXR5Ijo4MH19fQ==?signature=2e3d860ac46672d9279dc2a27c2b2d1ca262dbe46df90cda3dfd2df767f546ad 200w" width="80" height="80" alt="Read the Article: Using AI to Migrate from Lit to React" sizes="80px" style="object-position: 50% 50%;" loading="lazy" decoding="auto"> 409 </div> 410 <div class=""> 411 <p class="util-meta-label">Article</p> 412 <h3 class="hd-xxs mt-12 group-hover:underline group-focus:underline group-hover:decoration-2 group-focus:decorations-2 lg:hd-sm">Using AI to Migrate from Lit to React</h3> </div> 413 </div> 414 415 </a> 416 417 </div> 418 </div> 419 </div> 420 </div> 421 </div> 422 </div> 423</nav> 424 425 </div> 426 </header> 427 428 429 <main 430 id="content" 431 class="bg-[theme('colors.bgtheme')]" 432 role="main" 433 tabindex="-1" 434 > 435 <div class=""> 436 <h1 class="sr-only">Articles</h1> 437 438 439 440 <h2 class="sr-only">Featured Articles</h2> 441 442 <div class="bg-indigogoBlue text-white pt-header px-24 md:px-40"> 443 <div class="mx-auto py-40 max-w-928 md:pt-64 md:pb-80 lg:pt-[144px] lg:pb-128"> 444 <ul 445 class="-mx-8 flex-wrap stagger-fade-up stagger-interval-200 md:flex lg:-mx-16" 446 x-data="animate" 447 x-intersect.once="reveal()" 448 > 449 450 <li 451 class="duration-500 ease-out w-full mb-40 md:mb-80 lg:mb-128" 452 > 453 <div class="mx-8 items-start justify-center md:flex lg:mx-16"> 454 455 <div 456 class="relative mx-32 md-d:hidden duration-500 animate-scale-up stagger-delay-500 lg:mx-112" 457 style="--scaleFromSize: 0.5" 458 x-data="animate" 459 x-intersect.once="reveal()" 460 > 461 <svg class="absolute inset-1/2 -translate-x-1/2 -translate-y-1/2 w-[650px] h-[650px] rounded-full opacity-10 pointer-events-none no-js-override" width="100%" height="100%" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 462 <defs> 463 <pattern id="waves" patternUnits='userSpaceOnUse' width="30" height="34"> 464 <path d="M29.96 0c-3.9.01-5.87 1.59-7.77 3.1C20.33 4.6 18.58 6 15 6c-3.57 0-5.33-1.4-7.19-2.9C5.91 1.6 3.94.02.04 0H0v1h.04c3.55.01 5.3 1.41 7.15 2.9C9.1 5.41 11.08 7 15 7c3.93 0 5.9-1.58 7.81-3.1C24.66 2.4 26.41 1 29.96 1H30V0h-.04z"/> 465 <path d="M21.36 0h-1.91C18.27.6 16.9 1 15 1c-1.9 0-3.28-.4-4.44-1H8.64c1.55 1.1 3.4 2 6.36 2 2.96 0 4.81-.9 6.36-2zM22.19 7.91c-1.86 1.49-3.61 2.9-7.19 2.9-3.57 0-5.33-1.41-7.19-2.9-1.9-1.52-3.87-3.1-7.77-3.1H0v1h.04c3.55 0 5.3 1.4 7.15 2.88C9.1 10.22 11.08 11.8 15 11.8c3.93 0 5.9-1.58 7.81-3.1 1.85-1.49 3.6-2.89 7.15-2.9H30v-1h-.04c-3.9.01-5.87 1.59-7.77 3.11z"/> 466 <path d="M22.19 12.71c-1.86 1.49-3.61 2.9-7.19 2.9-3.57 0-5.33-1.41-7.19-2.9-1.9-1.52-3.87-3.1-7.77-3.1H0v1h.04c3.55 0 5.3 1.4 7.15 2.88C9.1 15.02 11.08 16.6 15 16.6c3.93 0 5.9-1.58 7.81-3.1 1.85-1.49 3.6-2.88 7.15-2.9H30v-1h-.04c-3.9.02-5.87 1.6-7.77 3.11z"/> 467 <path d="M22.19 17.52C20.33 19 18.58 20.4 15 20.4c-3.57 0-5.33-1.4-7.19-2.9-1.9-1.52-3.87-3.09-7.77-3.1H0v1h.04c3.55.01 5.3 1.4 7.15 2.89 1.91 1.53 3.89 3.1 7.81 3.1 3.93 0 5.9-1.57 7.81-3.1 1.85-1.48 3.6-2.88 7.15-2.89H30v-1h-.04c-3.9.01-5.87 1.58-7.77 3.1z"/> 468 <path d="M22.19 22.32C20.33 23.8 18.58 25.2 15 25.2c-3.57 0-5.33-1.4-7.19-2.9-1.9-1.52-3.87-3.09-7.77-3.1H0v1h.04c3.55.01 5.3 1.4 7.15 2.89 1.91 1.53 3.89 3.1 7.81 3.1 3.93 0 5.9-1.57 7.81-3.1 1.85-1.48 3.6-2.88 7.15-2.89H30v-1h-.04c-3.9.01-5.87 1.58-7.77 3.1z"/> 469 <path d="M22.19 27.12c-1.86 1.48-3.61 2.9-7.19 2.9-3.57 0-5.33-1.41-7.19-2.9-1.9-1.52-3.87-3.1-7.77-3.1H0v1h.04c3.55 0 5.3 1.4 7.15 2.88 1.91 1.53 3.89 3.11 7.81 3.11 3.93 0 5.9-1.58 7.81-3.1 1.85-1.49 3.6-2.89 7.15-2.9H30v-1h-.04c-3.9.01-5.87 1.59-7.77 3.11zM22.19 32.1c-.87.7-1.73 1.38-2.75 1.9h1.93c.5-.36.97-.73 1.44-1.1 1.85-1.49 3.6-2.89 7.15-2.9H30v-1h-.04c-3.9.01-5.87 1.59-7.77 3.1zM.04 29H0v1h.04c3.55.01 5.3 1.41 7.15 2.9.47.37.94.74 1.45 1.1h1.92a16.23 16.23 0 01-2.75-1.9C5.91 30.6 3.94 29.02.04 29z"/> 470 </pattern> 471 </defs> 472 473 <rect width="100%" height="100%" fill="url(#waves)"/> 474</svg> 475 476 <div class="block relative before:absolute before:-inset-32 before:bg-indigogoBlue before:rounded-full"> 477 <img class="w-[284px] rounded-full relative" src="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6IlNjcmVlbnNob3QtMjAyNS0wOC0wMS1hdC0xMS4xNC40Mi1BTS5wbmciLCJlZGl0cyI6eyJyZXNpemUiOnsid2lkdGgiOjI2MCwiaGVpZ2h0IjoyNjAsImZpdCI6ImNvdmVyIn0sIndpdGhNZXRhZGF0YSI6dHJ1ZSwidG9Gb3JtYXQiOiJ3ZWJwIiwid2VicCI6eyJxdWFsaXR5Ijo4MH19fQ==?signature=c1c04e59d8e4ba4fe542c60db1a803f8026a93905f75b9c5b5b2cfb9c8ff8460" srcset="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6IlNjcmVlbnNob3QtMjAyNS0wOC0wMS1hdC0xMS4xNC40Mi1BTS5wbmciLCJlZGl0cyI6eyJyZXNpemUiOnsid2lkdGgiOjI2MCwiaGVpZ2h0IjoyNjAsImZpdCI6ImNvdmVyIn0sIndpdGhNZXRhZGF0YSI6dHJ1ZSwidG9Gb3JtYXQiOiJ3ZWJwIiwid2VicCI6eyJxdWFsaXR5Ijo4MH19fQ==?signature=c1c04e59d8e4ba4fe542c60db1a803f8026a93905f75b9c5b5b2cfb9c8ff8460 260w, https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6IlNjcmVlbnNob3QtMjAyNS0wOC0wMS1hdC0xMS4xNC40Mi1BTS5wbmciLCJlZGl0cyI6eyJyZXNpemUiOnsid2lkdGgiOjQ2MCwiaGVpZ2h0Ijo0NjAsImZpdCI6ImNvdmVyIn0sIndpdGhNZXRhZGF0YSI6dHJ1ZSwidG9Gb3JtYXQiOiJ3ZWJwIiwid2VicCI6eyJxdWFsaXR5Ijo4MH19fQ==?signature=01a31ff9b632ce1e5ed4b2d3be2cf3bcad05412968a95d6dde9a41dc63963866 460w, https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6IlNjcmVlbnNob3QtMjAyNS0wOC0wMS1hdC0xMS4xNC40Mi1BTS5wbmciLCJlZGl0cyI6eyJyZXNpemUiOnsid2lkdGgiOjUyMCwiaG
477VpZ2h0Ijo1MjAsImZpdCI6ImNvdmVyIn0sIndpdGhNZXRhZGF0YSI6dHJ1ZSwidG9Gb3JtYXQiOiJ3ZWJwIiwid2VicCI6eyJxdWFsaXR5Ijo4MH19fQ==?signature=69e52d362a04cb2513e3a40ef2cf42e9e12e0081b89a31226d9f6dc692b71713 520w" width="260" height="260" alt="" sizes="284px" loading="eager" style="object-position: 50% 50%;" decoding="auto"> 478 </div> 479 </div> 480 481 <div class="md:max-w-[357px] lg:max-w-[443px]"> 482 483 <a 484 class="block util-meta-label hover:underline focus:underline mb-16 lg:mb-24" 485 href="/articles/?category=code#results" 486 > 487 #Code</a> 488 489 <h3 class="hover:underline focus:underline hover:decoration-3 focus:decoration-3 hd-md-light md:hd-lg-light lg:hd-xl-light mb-16 lg:mb-24"> 490 <a href="https://www.viget.com/articles/using-ai-to-migrate-from-lit-to-react/">Using AI to Migrate from Lit to React</a> 491 </h3> 492 493 494 <div class="mb-16 italic body-xs lg:mb-24"> 495 <a class="hover:underline" href="/about/team/nschmidt/"> Nathan Schmidt</a><span>, Senior UI Developer</span> 496 </div> 497 498 <div class="border-b-2 border-white/40 w-[36px]"></div> 499 </div> 500 </div> 501 </li> 502 503 <li 504 class="duration-500 ease-out md-d:mb-32 md:w-1/3" 505 > 506 <div class="mx-8 items-start justify-center md:flex lg:mx-16"> 507 508 509 <div class="md:max-w-[357px] lg:max-w-[443px]"> 510 511 <a 512 class="block util-meta-label hover:underline focus:underline mb-8 lg:mb-16" 513 href="/articles/?category=news-culture#results" 514 > 515 #News & Culture</a> 516 517 <h3 class="hover:underline focus:underline hover:decoration-2 focus:decoration-2 hd-xs lg:hd-sm mb-12 lg:mb-20"> 518 <a href="https://www.viget.com/articles/hearth/">Meet Hearth! The Hybrid Company In-Office Planning Solution</a> 519 </h3> 520 521 522 <div class="mb-16 italic body-xs lg:mb-24"> 523 <span class=""> Sam Brothers</span><span>, Former JavaScript Development Intern</span> 524 </div> 525 526 <div class="border-b-2 border-white/40 w-[36px]"></div> 527 </div> 528 </div> 529 </li> 530 531 <li 532 class="duration-500 ease-out md-d:mb-32 md:w-1/3" 533 > 534 <div class="mx-8 items-start justify-center md:flex lg:mx-16"> 535 536 537 <div class="md:max-w-[357px] lg:max-w-[443px]"> 538 539 <a 540 class="block util-meta-label hover:underline focus:underline mb-8 lg:mb-16" 541 href="/articles/?category=code#results" 542 > 543 #Code</a> 544 545 <h3 class="hover:underline focus:underline hover:decoration-2 focus:decoration-2 hd-xs lg:hd-sm mb-12 lg:mb-20"> 546 <a href="https://www.viget.com/articles/jujutsu-vcs-101/">Jujutsu VCS 101</a> 547 </h3> 548 549 550 <div class="mb-16 italic body-xs lg:mb-24"> 551 <span class=""> Ryan Dioneda</span><span>, Former Application Developer Intern</span> 552 </div> 553 554 <div class="border-b-2 border-white/40 w-[36px]"></div> 555 </div> 556 </div> 557 </li> 558 559 <li 560 class="duration-500 ease-out md-d:mb-32 md:w-1/3" 561 > 562 <div class="mx-8 items-start justify-center md:flex lg:mx-16"> 563 564 565 <div class="md:max-w-[357px] lg:max-w-[443px]"> 566 567 <a 568 class="block util-meta-label hover:underline focus:underline mb-8 lg:mb-16" 569 href="/articles/?category=code#results" 570 > 571 #Code</a> 572 573 <h3 class="hover:underline focus:underline hover:decoration-2 focus:decoration-2 hd-xs lg:hd-sm mb-12 lg:mb-20"> 574 <a href="https://www.viget.com/articles/coding-exquisite-corpse/">Coding Exquisite Corpse</a> 575 </h3> 576 577 578 <div class="mb-16 italic body-xs lg:mb-24"> 579 <a class="hover:underline" href="/about/team/ndixon/"> Natalie Dixon</a><span>, Junior Application Developer</span> 580 </div> 581 582 <div class="border-b-2 border-white/40 w-[36px]"></div> 583 </div> 584 </div> 585 </li> 586 </ul> 587 588 </div> 589 </div> 590 591 592 593 <div id="component-umtknn" class="sprig-component" data-hx-target="this" data-hx-include="this" data-hx-trigger="refresh" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-vals="{"sprig:siteId":"816e4edc6dec6a6773f9e9c7a60e3859e23ba920cf3adf6ebbcfd2ee5daf78161","sprig:id":"720c62254f894df447b6d608f88370c6c79b161ca48a25c43a51d7e8b8572480component-umtknn","sprig:component":"cfabc96621b47f0e995bcfe5b911b147c65334edd09fcc66024f0086d0f1528b","sprig:template":"ce5aa2fa235bbd023621d7bb1ec8935918087b226d6d2a6b794f47df3172ff3d_sprig\/article-list"}"> 594 595 596 597 598<div class="md:flex"> 599 <h2 class="sr-only">Filter by Category</h2> 600 601 <ul class="bg-gray-200 py-40 space-y-16 md:min-w-[216px] lg:min-w-[360px] lg:flex-shrink-0 lg:pt-64"> 602 <li> 603 <a class="block w-full pt-8 pb-4 pl-64 text-left uppercase leading-tight tracking-widest text-blue-300 text-14 hover:underline md:px-40 lg:px-64 font-bold border-r-2 border-blue-300" href="https://www.viget.com/articles/" sprig s-trigger="click" s-push-url="/articles/" s-val:categoryid s-val:category s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/" data-hx-vals="{"categoryid":"","category":""}" data-hx-indicator="#results" data-sprig-parsed> 604 Latest 605 </a> 606 </li> 607 608 609 <li> 610 <a class="block w-full pt-8 pb-4 pl-64 text-left uppercase leading-tight tracking-widest text-blue-300 text-14 hover:underline md:px-40 lg:px-64" href="/articles/?category=design-content" aria-label="Design and Content" data-track-gtm="Article Filter|Design & Content" data-sprig-parsed sprig s-trigger="click" s-push-url="/articles/?category=design-content" s-val:categoryid="16" s-val:category="design-content" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=design-content" data-hx-vals="{"categoryid":"16","category":"design-content"}" data-hx-indicator="#results"> 611 #Design & Content</a> 612 </li> 613 <li> 614 <a class="block w-full pt-8 pb-4 pl-64 text-left uppercase leading-tight tracking-widest text-blue-300 text-14 hover:underline md:px-40 lg:px-64" href="/articles/?category=code" aria-label="Code" data-track-gtm="Article Filter|Code" data-sprig-parsed sprig s-trigger="click" s-push-url="/articles/?category=code" s-val:categoryid="17" s-val:category="code" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=code" data-hx-vals="{"categoryid":"17","category":"code"}" data-hx-indicator="#results"> 615 #Code</a> 616 </li> 617 <li> 618 <a class="block w-full pt-8 pb-4 pl-64 text-left uppercase leading-tight tracking-widest text-blue-300 text-14 hover:underline md:px-40 lg:px-64" href="/articles/?category=strategy" aria-label="Strategy" data-track-gtm="Article Filter|Strategy" data-sprig-parsed sprig s-trigger="click" s-push-url="/articles/?category=strategy" s-val:categoryid="19" s-val:category="strategy" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=strategy" data-hx-vals="{"categoryid":"19","category":"strategy"}" data-hx-indicator="#results"> 619 #Strategy</a> 620 </li> 621 <li> 622 <a class="block w-full pt-8 pb-4 pl-64 text-left uppercase leading-tight tracking-widest text-blue-300 text-14 hover:underline md:px-40 lg:px-64" href="/articles/?category=process" aria-label="Process" data-track-gtm="Article Filter|Process" data-sprig-parsed sprig s-trigger="click" s-push-url="/articles/?category=process" s-val:categoryid="20" s-val:category="process" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=process" data-hx-vals="{"categoryid":"20","category":"process"}" data-hx-indicator="#results"> 623 #Process</a> 624 </li> 625 <li> 626 <a class="block w-full pt-8 pb-4 pl-64 text-left uppercase leading-tight tracking-widest text-blue-300 text-14 hover:underline md:px-40 lg:px-64" href="/articles/?category=news-culture" aria-label="News and Culture" data-track-gtm="Article Filter|News & Culture" data-sprig-parsed sprig s-trigger="click" s-push-url="/articles/?category=news-culture" s-val:categoryid="21" s-val:category="news-culture" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=news-culture" data-hx-vals="{"categoryid":"21","category":"news-culture"}" data-hx-indicator="#results"> 627 #News & Culture</a> 628 </li> 629 </ul> 630 631 <div 632 class="htmx-request:pointer-events-none mb-64 w-full htmx-request:opacity-20 transition-opacity duration-300 md:mb-80 lg:mb-128"
633 aria-live="polite" 634 id="results" 635 > 636 637 638 <h2 class="util-breadcrumb-md lg:util-breadcrumb-lg text-black mx-24 md:mx-40 xl:mx-128 pb-24 pt-40 lg:pt-64 border-b transition-opacity duration-500"> 639 <span class="sr-only">Articles tagged </span> 640 <span>Latest</span> 641 </h2> 642 643 <ul 644 class="transition-opacity duration-500" 645 id="results-list" 646 > 647 648 649 650 651 652<li class="hover:bg-indigogoBlue hover:text-white transition-colors group px-24 py-32 md:p-40 xl:px-128 duration-100"> <div class="flex justify-between md:items-center max-w-screen-xl mx-auto"> 653 <div class="mr-16 md:mr-24"> 654 <a 655 href="https://www.viget.com/articles/using-ai-to-migrate-from-lit-to-react/" 656 class="inline-block hd-sm md:hd-md mb-8 lg:mb-16 hover:underline" 657 > 658 Using AI to Migrate from Lit to React 659 </a> 660 661 <div class="lg:flex flex-wrap body-xs"> 662 <div class="lg-d:mb-8 lg:mr-4"> 663 <span class="sr-only"> 664 Article Categories: 665 </span> 666 <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=code" sprig s-trigger="click" s-push-url="/articles/?category=code" s-val:categoryid="17" s-val:category="code" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=code" data-hx-vals="{"categoryid":"17","category":"code"}" data-hx-indicator="#results" data-sprig-parsed> 667 #Code</a><span>, </span> <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=front-end-engineering" sprig s-trigger="click" s-push-url="/articles/?category=front-end-engineering" s-val:categoryid="4180" s-val:category="front-end-engineering" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=front-end-engineering" data-hx-vals="{"categoryid":"4180","category":"front-end-engineering"}" data-hx-indicator="#results" data-sprig-parsed> 668 #Front-end Engineering</a><span>, </span> <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=ai" sprig s-trigger="click" s-push-url="/articles/?category=ai" s-val:categoryid="606603" s-val:category="ai" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=ai" data-hx-vals="{"categoryid":"606603","category":"ai"}" data-hx-indicator="#results" data-sprig-parsed> 669 #AI</a> </div> 670 671 <div> 672 <span>by</span> 673 674 675 <a class="italic hover:underline" href="/about/team/nschmidt/"> Nathan Schmidt</a> 676 <span>on</span> 677 <time datetime="2026-08-18"> 678 August 18, 2026 679 </time> 680 </div> 681 </div> 682 </div> 683 684 <div class="flex-shrink-0"> 685 <img class="w-80 md:w-[100px] rounded-full" src="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6IlNjcmVlbnNob3QtMjAyNS0wOC0wMS1hdC0xMS4xNC40Mi1BTS5wbmciLCJlZGl0cyI6eyJyZXNpemUiOnsid2lkdGgiOjgwLCJoZWlnaHQiOjgwLCJmaXQiOiJjb3ZlciJ9LCJ3aXRoTWV0YWRhdGEiOnRydWUsInRvRm9ybWF0Ijoid2VicCIsIndlYnAiOnsicXVhbGl0eSI6ODB9fX0=?signature=178b70e760bdfb142d46d62337326590d111b1fe8ac76c8ae80b4eff4dd4f097" srcset="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6IlNjcmVlbnNob3QtMjAyNS0wOC0wMS1hdC0xMS4xNC40Mi1BTS5wbmciLCJlZGl0cyI6eyJyZXNpemUiOnsid2lkdGgiOjgwLCJoZWlnaHQiOjgwLCJmaXQiOiJjb3ZlciJ9LCJ3aXRoTWV0YWRhdGEiOnRydWUsInRvRm9ybWF0Ijoid2VicCIsIndlYnAiOnsicXVhbGl0eSI6ODB9fX0=?signature=178b70e760bdfb142d46d62337326590d111b1fe8ac76c8ae80b4eff4dd4f097 80w, https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6IlNjcmVlbnNob3QtMjAyNS0wOC0wMS1hdC0xMS4xNC40Mi1BTS5wbmciLCJlZGl0cyI6eyJyZXNpemUiOnsid2lkdGgiOjIwMCwiaGVpZ2h0IjoyMDAsImZpdCI6ImNvdmVyIn0sIndpdGhNZXRhZGF0YSI6dHJ1ZSwidG9Gb3JtYXQiOiJ3ZWJwIiwid2VicCI6eyJxdWFsaXR5Ijo4MH19fQ==?signature=2e3d860ac46672d9279dc2a27c2b2d1ca262dbe46df90cda3dfd2df767f546ad 200w" width="80" height="80" alt="" sizes="(min-width: 48em) 100px, 80px" style="object-position: 50% 50%;" loading="lazy" decoding="auto"> 686 </div> 687 </div> 688</li> 689 690 691 692 693 694<li class="hover:bg-orangeYouGladRed hover:text-white transition-colors group px-24 py-32 md:p-40 xl:px-128 duration-100"> <div class="flex justify-between md:items-center max-w-screen-xl mx-auto"> 695 <div class="mr-16 md:mr-24"> 696 <a 697 href="https://www.viget.com/articles/hearth/" 698 class="inline-block hd-sm md:hd-md mb-8 lg:mb-16 hover:underline" 699 > 700 Meet Hearth! The Hybrid Company In-Office Planning Solution 701 </a> 702 703 <div class="lg:flex flex-wrap body-xs"> 704 <div class="lg-d:mb-8 lg:mr-4">
705 <span class="sr-only"> 706 Article Categories: 707 </span> 708 <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=news-culture" sprig s-trigger="click" s-push-url="/articles/?category=news-culture" s-val:categoryid="21" s-val:category="news-culture" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=news-culture" data-hx-vals="{"categoryid":"21","category":"news-culture"}" data-hx-indicator="#results" data-sprig-parsed> 709 #News & Culture</a><span>, </span> <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=internships-apprenticeships" sprig s-trigger="click" s-push-url="/articles/?category=internships-apprenticeships" s-val:categoryid="197801" s-val:category="internships-apprenticeships" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=internships-apprenticeships" data-hx-vals="{"categoryid":"197801","category":"internships-apprenticeships"}" data-hx-indicator="#results" data-sprig-parsed> 710 #Internships and Apprenticeships</a> </div> 711 712 <div> 713 <span>by</span> 714 715 716 <span class="italic"> Sam Brothers</span> 717 <span>on</span> 718 <time datetime="2026-08-06"> 719 August 6, 2026 720 </time> 721 </div> 722 </div> 723 </div> 724 725 <div class="flex-shrink-0"> 726 <img class="w-80 md:w-[100px] rounded-full" src="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6InNsYWNrLWljb24ucG5nIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjo4MCwiaGVpZ2h0Ijo4MCwiZml0IjoiY292ZXIifSwid2l0aE1ldGFkYXRhIjp0cnVlLCJ0b0Zvcm1hdCI6IndlYnAiLCJ3ZWJwIjp7InF1YWxpdHkiOjgwfX19?signature=e68409b400d5bbd19cbb2a8b7e273098acfbbeb677e6d2d971eb2b6122f75336" srcset="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6InNsYWNrLWljb24ucG5nIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjo4MCwiaGVpZ2h0Ijo4MCwiZml0IjoiY292ZXIifSwid2l0aE1ldGFkYXRhIjp0cnVlLCJ0b0Zvcm1hdCI6IndlYnAiLCJ3ZWJwIjp7InF1YWxpdHkiOjgwfX19?signature=e68409b400d5bbd19cbb2a8b7e273098acfbbeb677e6d2d971eb2b6122f75336 80w, https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6InNsYWNrLWljb24ucG5nIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjoyMDAsImhlaWdodCI6MjAwLCJmaXQiOiJjb3ZlciJ9LCJ3aXRoTWV0YWRhdGEiOnRydWUsInRvRm9ybWF0Ijoid2VicCIsIndlYnAiOnsicXVhbGl0eSI6ODB9fX0=?signature=7996bbebbbd31aa716c1df32c9308080ce61f733b09973dd70d1a83eb4ed4f65 200w" width="80" height="80" alt="" sizes="(min-width: 48em) 100px, 80px" style="object-position: 50% 50%;" loading="lazy" decoding="auto"> 727 </div> 728 </div> 729</li> 730 731 732 733 734 735<li class="hover:bg-zeldaHeartRed hover:text-white transition-colors group px-24 py-32 md:p-40 xl:px-128 duration-100"> <div class="flex justify-between md:items-center max-w-screen-xl mx-auto"> 736 <div class="mr-16 md:mr-24"> 737 <a 738 href="https://www.viget.com/articles/jujutsu-vcs-101/" 739 class="inline-block hd-sm md:hd-md mb-8 lg:mb-16 hover:underline" 740 > 741 Jujutsu VCS 101 742 </a> 743 744 <div class="lg:flex flex-wrap body-xs"> 745 <div class="lg-d:mb-8 lg:mr-4"> 746 <span class="sr-only"> 747 Article Categories: 748 </span> 749 <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=code" sprig s-trigger="click" s-push-url="/articles/?category=code" s-val:categoryid="17" s-val:category="code" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=code" data-hx-vals="{"categoryid":"17","category":"code"}" data-hx-indicator="#results" data-sprig-parsed> 750 #Code</a><span>, </span> <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=tooling" sprig s-trigger="click" s-push-url="/articles/?category=tooling" s-val:categoryid="520319" s-val:category="tooling" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=tooling" data-hx-vals="{"categoryid":"520319","category":"tooling"}" data-hx-indicator="#results" data-sprig-parsed> 751 #Tooling</a> </div> 752 753 <div>
754 <span>by</span> 755 756 757 <span class="italic"> Ryan Dioneda</span> 758 <span>on</span> 759 <time datetime="2026-08-05"> 760 August 5, 2026 761 </time> 762 </div> 763 </div> 764 </div> 765 766 <div class="flex-shrink-0"> 767 <img class="w-80 md:w-[100px] rounded-full" src="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6ImFydGljbGUtaWNvbi1kZXYtZW52aXJvbm1lbnQucG5nIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjo4MCwiaGVpZ2h0Ijo4MCwiZml0IjoiY292ZXIifSwid2l0aE1ldGFkYXRhIjp0cnVlLCJ0b0Zvcm1hdCI6IndlYnAiLCJ3ZWJwIjp7InF1YWxpdHkiOjgwfX19?signature=a0d733f1a6f2fdd9b41f7f1fbba58565dcdf842a7e12e62117e52783140c5821" srcset="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6ImFydGljbGUtaWNvbi1kZXYtZW52aXJvbm1lbnQucG5nIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjo4MCwiaGVpZ2h0Ijo4MCwiZml0IjoiY292ZXIifSwid2l0aE1ldGFkYXRhIjp0cnVlLCJ0b0Zvcm1hdCI6IndlYnAiLCJ3ZWJwIjp7InF1YWxpdHkiOjgwfX19?signature=a0d733f1a6f2fdd9b41f7f1fbba58565dcdf842a7e12e62117e52783140c5821 80w, https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6ImFydGljbGUtaWNvbi1kZXYtZW52aXJvbm1lbnQucG5nIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjoyMDAsImhlaWdodCI6MjAwLCJmaXQiOiJjb3ZlciJ9LCJ3aXRoTWV0YWRhdGEiOnRydWUsInRvRm9ybWF0Ijoid2VicCIsIndlYnAiOnsicXVhbGl0eSI6ODB9fX0=?signature=4a080712028aebaf4e4f4dde78fce8d52bfcd920fabfd6ae771b632733a0f429 200w" width="80" height="80" alt="" sizes="(min-width: 48em) 100px, 80px" style="object-position: 50% 50%;" loading="lazy" decoding="auto"> 768 </div> 769 </div> 770</li> 771 772 773 774 775 776<li class="hover:bg-isidoreOfSevilleBlue hover:text-white transition-colors group px-24 py-32 md:p-40 xl:px-128 duration-100"> <div class="flex justify-between md:items-center max-w-screen-xl mx-auto"> 777 <div class="mr-16 md:mr-24"> 778 <a 779 href="https://www.viget.com/articles/coding-exquisite-corpse/" 780 class="inline-block hd-sm md:hd-md mb-8 lg:mb-16 hover:underline" 781 > 782 Coding Exquisite Corpse 783 </a> 784 785 <div class="lg:flex flex-wrap body-xs"> 786 <div class="lg-d:mb-8 lg:mr-4"> 787 <span class="sr-only"> 788 Article Categories: 789 </span> 790 <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=code" sprig s-trigger="click" s-push-url="/articles/?category=code" s-val:categoryid="17" s-val:category="code" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=code" data-hx-vals="{"categoryid":"17","category":"code"}" data-hx-indicator="#results" data-sprig-parsed> 791 #Code</a><span>, </span> <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=news-culture" sprig s-trigger="click" s-push-url="/articles/?category=news-culture" s-val:categoryid="21" s-val:category="news-culture" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=news-culture" data-hx-vals="{"categoryid":"21","category":"news-culture"}" data-hx-indicator="#results" data-sprig-parsed> 792 #News & Culture</a> </div> 793 794 <div> 795 <span>by</span> 796 797 798 <a class="italic hover:underline" href="/about/team/ndixon/"> Natalie Dixon</a> 799 <span>on</span> 800 <time datetime="2026-08-03"> 801 August 3, 2026 802 </time> 803 </div> 804 </div> 805 </div> 806 807 <div class="flex-shrink-0"> 808 <img class="w-80 md:w-[100px] rounded-full" src="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6IkNvbGxhYm9yYXRpb24tU2
8081hbGwtMTU0LnBuZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6ODAsImhlaWdodCI6ODAsImZpdCI6ImNvdmVyIn0sIndpdGhNZXRhZGF0YSI6dHJ1ZSwidG9Gb3JtYXQiOiJ3ZWJwIiwid2VicCI6eyJxdWFsaXR5Ijo4MH19fQ==?signature=c33031504c50751baef7de9e5574c5650dba8e281fab5b61122c3fa8c8fade8b" srcset="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6IkNvbGxhYm9yYXRpb24tU21hbGwtMTU0LnBuZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6ODAsImhlaWdodCI6ODAsImZpdCI6ImNvdmVyIn0sIndpdGhNZXRhZGF0YSI6dHJ1ZSwidG9Gb3JtYXQiOiJ3ZWJwIiwid2VicCI6eyJxdWFsaXR5Ijo4MH19fQ==?signature=c33031504c50751baef7de9e5574c5650dba8e281fab5b61122c3fa8c8fade8b 80w, https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6IkNvbGxhYm9yYXRpb24tU21hbGwtMTU0LnBuZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6MjAwLCJoZWlnaHQiOjIwMCwiZml0IjoiY292ZXIifSwid2l0aE1ldGFkYXRhIjp0cnVlLCJ0b0Zvcm1hdCI6IndlYnAiLCJ3ZWJwIjp7InF1YWxpdHkiOjgwfX19?signature=56057dcec0b2dcdb45e80425668ae9b38478a0ad4c45f49095844b75f8e3a306 200w" width="80" height="80" alt="" sizes="(min-width: 48em) 100px, 80px" style="object-position: 50% 50%;" loading="lazy" decoding="auto"> 809 </div> 810 </div> 811</li> 812 813 814 815 816 817<li class="hover:bg-indigogoBlue hover:text-white transition-colors group px-24 py-32 md:p-40 xl:px-128 duration-100"> <div class="flex justify-between md:items-center max-w-screen-xl mx-auto"> 818 <div class="mr-16 md:mr-24"> 819 <a 820 href="https://www.viget.com/articles/giving-claude-code-a-persistent-memory/" 821 class="inline-block hd-sm md:hd-md mb-8 lg:mb-16 hover:underline" 822 > 823 Giving Claude Code A Persistent Memory 824 </a> 825 826 <div class="lg:flex flex-wrap body-xs"> 827 <div class="lg-d:mb-8 lg:mr-4"> 828 <span class="sr-only"> 829 Article Categories: 830 </span> 831 <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=code" sprig s-trigger="click" s-push-url="/articles/?category=code" s-val:categoryid="17" s-val:category="code" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=code" data-hx-vals="{"categoryid":"17","category":"code"}" data-hx-indicator="#results" data-sprig-parsed> 832 #Code</a><span>, </span> <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=tooling" sprig s-trigger="click" s-push-url="/articles/?category=tooling" s-val:categoryid="520319" s-val:category="tooling" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=tooling" data-hx-vals="{"categoryid":"520319","category":"tooling"}" data-hx-indicator="#results" data-sprig-parsed> 833 #Tooling</a> </div> 834 835 <div> 836 <span>by</span> 837 838 839 <a class="italic hover:underline" href="/about/team/mmyers/"> Max Myers</a> 840 <span>on</span> 841 <time datetime="2026-07-15"> 842 July 15, 2026 843 </time> 844 </div> 845 </div> 846 </div> 847 848 <div class="flex-shrink-0"> 849 <img class="w-80 md:w-[100px] rounded-full" src="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6ImNsYXVkZS1wZXJzaXN0ZW50LW1lbW9yeS5wbmciLCJlZGl0cyI6eyJyZXNpemUiOnsid2lkdGgiOjgwLCJoZWlnaHQiOjgwLCJmaXQiOiJjb3ZlciJ9LCJ3aXRoTWV0YWRhdGEiOnRydWUsInRvRm9ybWF0Ijoid2VicCIsIndlYnAiOnsicXVhbGl0eSI6ODB9fX0=?signature=c9390cdcf3cfd1a35e5213f95333e01c3e4b0eb987a5825d0659a020ec6c2292" srcset="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6ImNsYXVkZS1wZXJzaXN0ZW50LW1lbW9yeS5wbmciLCJlZGl0cyI6eyJyZXNpemUiOnsid2lkdGgiOjgwLCJoZWlnaHQiOjgwLCJmaXQiOiJjb3ZlciJ9LCJ3aXRoTWV0YWRhdGEiOnRydWUsInRvRm9ybWF0Ijoid2VicCIsIndlYnAiOnsicXVhbGl0eSI6ODB9fX0=?signature=c9390cdcf3cfd1a35e5213f95333e01c3e4b0eb987a5825d0659a020ec6c2292 80w, https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6ImNsYXVkZS1wZXJzaXN0ZW50LW1lbW9yeS5wbmciLCJlZGl0cyI6eyJyZXNpemUiOnsid2lkdGgiOjIwMCwiaGVpZ2h0IjoyMDAsImZpdCI6ImNvdmVyIn0sIndpdGhNZXRhZGF0YSI6dHJ1ZSwidG9Gb3JtYXQiOiJ3ZWJwIiwid2VicCI6eyJxdWFsaXR5Ijo4MH19fQ==?signature=ec5b278ef31258e9f161e8d88e0d671774fbdfae6572f5ef49105712965f69b9 200w" width="80" height="80" alt="" sizes="(min-width: 48em) 100px, 80px" style="object-position: 50% 50%;" loading="lazy" decoding="auto"> 850 </div> 851 </div> 852</li> 853 854 855 856 857 858<li class="hover:bg-voodooYoudooPurple hover:text-white transition-colors group px-24 py-32 md:p-40 xl:px-128 duration-100"> <div class="flex justify-between md:items-center max-w-screen-xl mx-auto"> 859 <div class="mr-16 md:mr-24"> 860 <a 861 href="https://www.viget.com/articles/practicing-what-we-preach-utilizing-ux-research-to-build-a-better-viget-com/" 862 class="inline-block hd-sm md:hd-md mb-8 lg:mb-16 hover:underline" 863 >
864 Practicing What We Preach: Utilizing UX Research to Build a Better Viget.com 865 </a> 866 867 <div class="lg:flex flex-wrap body-xs"> 868 <div class="lg-d:mb-8 lg:mr-4"> 869 <span class="sr-only"> 870 Article Categories: 871 </span> 872 <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=process" sprig s-trigger="click" s-push-url="/articles/?category=process" s-val:categoryid="20" s-val:category="process" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=process" data-hx-vals="{"categoryid":"20","category":"process"}" data-hx-indicator="#results" data-sprig-parsed> 873 #Process</a><span>, </span> <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=user-experience" sprig s-trigger="click" s-push-url="/articles/?category=user-experience" s-val:categoryid="4185" s-val:category="user-experience" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=user-experience" data-hx-vals="{"categoryid":"4185","category":"user-experience"}" data-hx-indicator="#results" data-sprig-parsed> 874 #User Experience</a><span>, </span> <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=research" sprig s-trigger="click" s-push-url="/articles/?category=research" s-val:categoryid="4191" s-val:category="research" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=research" data-hx-vals="{"categoryid":"4191","category":"research"}" data-hx-indicator="#results" data-sprig-parsed> 875 #Research</a> </div> 876 877 <div> 878 <span>by</span> 879 880 881 <a class="italic hover:underline" href="/about/team/lchabot/"> Liza Chabot</a> 882 <span>on</span> 883 <time datetime="2026-07-07"> 884 July 7, 2026 885 </time> 886 </div> 887 </div> 888 </div> 889 890 <div class="flex-shrink-0"> 891 <img class="w-80 md:w-[100px] rounded-full" src="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6IlJlc2VhcmNoXzIwMjYtMDctMDItMTMyNDUyX2JjcXUucG5nIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjo4MCwiaGVpZ2h0Ijo4MCwiZml0IjoiY292ZXIifSwid2l0aE1ldGFkYXRhIjp0cnVlLCJ0b0Zvcm1hdCI6IndlYnAiLCJ3ZWJwIjp7InF1YWxpdHkiOjgwfX19?signature=e541ab381f8f119f52cfbb05e91d187fe6dc369d46d932b81049cd76d284cda2" srcset="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6IlJlc2VhcmNoXzIwMjYtMDctMDItMTMyNDUyX2JjcXUucG5nIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjo4MCwiaGVpZ2h0Ijo4MCwiZml0IjoiY292ZXIifSwid2l0aE1ldGFkYXRhIjp0cnVlLCJ0b0Zvcm1hdCI6IndlYnAiLCJ3ZWJwIjp7InF1YWxpdHkiOjgwfX19?signature=e541ab381f8f119f52cfbb05e91d187fe6dc369d46d932b81049cd76d284cda2 80w, https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6IlJlc2VhcmNoXzIwMjYtMDctMDItMTMyNDUyX2JjcXUucG5nIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjoyMDAsImhlaWdodCI6MjAwLCJmaXQiOiJjb3ZlciJ9LCJ3aXRoTWV0YWRhdGEiOnRydWUsInRvRm9ybWF0Ijoid2VicCIsIndlYnAiOnsicXVhbGl0eSI6ODB9fX0=?signature=1cf9e6dffdedd55f1f456b6b7c04b8207b68ce72c99809b3d73f9aa9943b719d 200w" width="80" height="80" alt="" sizes="(min-width: 48em) 100px, 80px" style="object-position: 50% 50%;" loading="lazy" decoding="auto"> 892 </div> 893 </div> 894</li> 895 896 897 898 899 900<li class="hover:bg-meadowGreen hover:text-white transition-colors group px-24 py-32 md:p-40 xl:px-128 duration-100"> <div class="flex justify-between md:items-center max-w-screen-xl mx-auto"> 901 <div class="mr-16 md:mr-24"> 902 <a 903 href="https://www.viget.com/articles/embeddable-widgets-with-vite-react-tailwind-4-web-components/" 904 class="inline-block hd-sm md:hd-md mb-8 lg:mb-16 hover:underline" 905 > 906 Embeddable Widgets with Vite, React, Tailwind 4 & Web Components 907 </a> 908 909 <div class="lg:flex flex-wrap body-xs"> 910 <div class="lg-d:mb-8 lg:mr-4">
911 <span class="sr-only"> 912 Article Categories: 913 </span> 914 <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=code" sprig s-trigger="click" s-push-url="/articles/?category=code" s-val:categoryid="17" s-val:category="code" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=code" data-hx-vals="{"categoryid":"17","category":"code"}" data-hx-indicator="#results" data-sprig-parsed> 915 #Code</a><span>, </span> <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=front-end-engineering" sprig s-trigger="click" s-push-url="/articles/?category=front-end-engineering" s-val:categoryid="4180" s-val:category="front-end-engineering" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=front-end-engineering" data-hx-vals="{"categoryid":"4180","category":"front-end-engineering"}" data-hx-indicator="#results" data-sprig-parsed> 916 #Front-end Engineering</a><span>, </span> <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=user-experience" sprig s-trigger="click" s-push-url="/articles/?category=user-experience" s-val:categoryid="4185" s-val:category="user-experience" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=user-experience" data-hx-vals="{"categoryid":"4185","category":"user-experience"}" data-hx-indicator="#results" data-sprig-parsed> 917 #User Experience</a><span>, </span> <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=accessibility" sprig s-trigger="click" s-push-url="/articles/?category=accessibility" s-val:categoryid="4187" s-val:category="accessibility" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=accessibility" data-hx-vals="{"categoryid":"4187","category":"accessibility"}" data-hx-indicator="#results" data-sprig-parsed> 918 #Accessibility</a><span>, </span> <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=ui-design" sprig s-trigger="click" s-push-url="/articles/?category=ui-design" s-val:categoryid="327712" s-val:category="ui-design" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=ui-design" data-hx-vals="{"categoryid":"327712","category":"ui-design"}" data-hx-indicator="#results" data-sprig-parsed> 919 #UI Design</a><span>, </span> <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=product" sprig s-trigger="click" s-push-url="/articles/?category=product" s-val:categoryid="519718" s-val:category="product" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=product" data-hx-vals="{"categoryid":"519718","category":"product"}" data-hx-indicator="#results" data-sprig-parsed> 920 #Product</a><span>, </span> <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=tooling" sprig s-trigger="click" s-push-url="/articles/?category=tooling" s-val:categoryid="520319" s-val:category="tooling" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=tooling" data-hx-vals="{"categoryid":"520319","category":"tooling"}" data-hx-indicator="#results" data-sprig-parsed> 921 #Tooling</a> </div> 922 923 <div>
924 <span>by</span> 925 926 927 <a class="italic hover:underline" href="/about/team/shawk/"> Solomon Hawk</a> 928 <span>on</span> 929 <time datetime="2026-06-23"> 930 June 23, 2026 931 </time> 932 </div> 933 </div> 934 </div> 935 936 <div class="flex-shrink-0"> 937 <img class="w-80 md:w-[100px] rounded-full" src="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6ImJsb2cvdGFpbHdpbmQtbG92ZS1oYXRlLnBuZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6ODAsImhlaWdodCI6ODAsImZpdCI6ImNvdmVyIn0sIndpdGhNZXRhZGF0YSI6dHJ1ZSwidG9Gb3JtYXQiOiJ3ZWJwIiwid2VicCI6eyJxdWFsaXR5Ijo4MH19fQ==?signature=6d370641ddc4243ffecbc02405d96f2f958ae03b8609874a8e1013c576786ea3" srcset="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6ImJsb2cvdGFpbHdpbmQtbG92ZS1oYXRlLnBuZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6ODAsImhlaWdodCI6ODAsImZpdCI6ImNvdmVyIn0sIndpdGhNZXRhZGF0YSI6dHJ1ZSwidG9Gb3JtYXQiOiJ3ZWJwIiwid2VicCI6eyJxdWFsaXR5Ijo4MH19fQ==?signature=6d370641ddc4243ffecbc02405d96f2f958ae03b8609874a8e1013c576786ea3 80w, https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6ImJsb2cvdGFpbHdpbmQtbG92ZS1oYXRlLnBuZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6MjAwLCJoZWlnaHQiOjIwMCwiZml0IjoiY292ZXIifSwid2l0aE1ldGFkYXRhIjp0cnVlLCJ0b0Zvcm1hdCI6IndlYnAiLCJ3ZWJwIjp7InF1YWxpdHkiOjgwfX19?signature=11cbb9548588edd8f98fed25bf16d7c3c3bc5c37ddca73087b3640973ddcaa8a 200w" width="80" height="80" alt="" sizes="(min-width: 48em) 100px, 80px" style="object-position: 50% 50%;" loading="lazy" decoding="auto"> 938 </div> 939 </div> 940</li> 941 942 943 944 945 946<li class="hover:bg-sortOfBlueGreenBlue hover:text-white transition-colors group px-24 py-32 md:p-40 xl:px-128 duration-100"> <div class="flex justify-between md:items-center max-w-screen-xl mx-auto"> 947 <div class="mr-16 md:mr-24"> 948 <a 949 href="https://www.viget.com/articles/viget26-enduring-traditions/" 950 class="inline-block hd-sm md:hd-md mb-8 lg:mb-16 hover:underline" 951 > 952 Viget26: Enduring Traditions 953 </a> 954 955 <div class="lg:flex flex-wrap body-xs"> 956 <div class="lg-d:mb-8 lg:mr-4"> 957 <span class="sr-only"> 958 Article Category: 959 </span> 960 <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=news-culture" sprig s-trigger="click" s-push-url="/articles/?category=news-culture" s-val:categoryid="21" s-val:category="news-culture" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=news-culture" data-hx-vals="{"categoryid":"21","category":"news-culture"}" data-hx-indicator="#results" data-sprig-parsed> 961 #News & Culture</a> </div> 962 963 <div> 964 <span>by</span> 965 966 967 <a class="italic hover:underline" href="/about/team/bwilliams/"> Brian Williams</a> 968 <span>on</span> 969 <time datetime="2026-06-16"> 970 June 16, 2026 971 </time> 972 </div> 973 </div> 974 </div> 975 976 <div class="flex-shrink-0"> 977 <img class="w-80 md:w-[100px] rounded-full" src="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6IlZpZ2V0LUxvZ28tU29jaWFsLnBuZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6ODAsImhlaWdodCI6ODAsImZpdCI6ImNvdmVyIn0sIndpdGhNZXRhZGF0YSI6dHJ1ZSwidG9Gb3JtYXQiOiJ3ZWJwIiwid2VicCI6eyJxdWFsaXR5Ijo4MH19fQ==?signature=b97093e1850c4c48a972cb7499b700da89fe4f3dcb7556fe34cc9d95bd928403" srcset="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6IlZpZ2V0LUxvZ28tU29jaWFsLnBuZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6ODAsImhlaWdodCI6ODAsImZpdCI6ImNvdmVyIn0sIndpdGhNZXRhZGF0YSI6dHJ1ZSwidG9Gb3JtYXQiOiJ3ZWJwIiwid2VicCI6eyJxdWFsaXR5Ijo4MH19fQ==?signature=b97093e1850c4c48a972cb7499b700da89fe4f3dcb7556fe34cc9d95bd928403 80w, https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6IlZpZ2V0LUxvZ28tU29jaWFsLnBuZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6MjAwLCJoZWlnaHQiOjIwMCwiZml0IjoiY292ZXIifSwid2l0aE1ldGFkYXRhIjp0cnVlLCJ0b
9770Zvcm1hdCI6IndlYnAiLCJ3ZWJwIjp7InF1YWxpdHkiOjgwfX19?signature=1ce04e29b2eee9d7de2876b88de16d9fbeaee2cb127e162e49fe23d9228ff175 200w" width="80" height="80" alt="" sizes="(min-width: 48em) 100px, 80px" style="object-position: 50% 50%;" loading="lazy" decoding="auto"> 978 </div> 979 </div> 980</li> 981 982 983 984 985 986<li class="hover:bg-indigogoBlue hover:text-white transition-colors group px-24 py-32 md:p-40 xl:px-128 duration-100"> <div class="flex justify-between md:items-center max-w-screen-xl mx-auto"> 987 <div class="mr-16 md:mr-24"> 988 <a 989 href="https://www.viget.com/articles/protecting-your-rag-agent/" 990 class="inline-block hd-sm md:hd-md mb-8 lg:mb-16 hover:underline" 991 > 992 Protecting Your RAG Agent 993 </a> 994 995 <div class="lg:flex flex-wrap body-xs"> 996 <div class="lg-d:mb-8 lg:mr-4"> 997 <span class="sr-only"> 998 Article Categories: 999 </span> 1000 <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=code" sprig s-trigger="click" s-push-url="/articles/?category=code" s-val:categoryid="17" s-val:category="code" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=code" data-hx-vals="{"categoryid":"17","category":"code"}" data-hx-indicator="#results" data-sprig-parsed> 1001 #Code</a><span>, </span> <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=back-end-engineering" sprig s-trigger="click" s-push-url="/articles/?category=back-end-engineering" s-val:categoryid="4181" s-val:category="back-end-engineering" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=back-end-engineering" data-hx-vals="{"categoryid":"4181","category":"back-end-engineering"}" data-hx-indicator="#results" data-sprig-parsed> 1002 #Back-end Engineering</a><span>, </span> <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=security" sprig s-trigger="click" s-push-url="/articles/?category=security" s-val:categoryid="10227" s-val:category="security" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=security" data-hx-vals="{"categoryid":"10227","category":"security"}" data-hx-indicator="#results" data-sprig-parsed> 1003 #Security</a><span>, </span> <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=tooling" sprig s-trigger="click" s-push-url="/articles/?category=tooling" s-val:categoryid="520319" s-val:category="tooling" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=tooling" data-hx-vals="{"categoryid":"520319","category":"tooling"}" data-hx-indicator="#results" data-sprig-parsed> 1004 #Tooling</a> </div> 1005 1006 <div> 1007 <span>by</span> 1008 1009 1010 <a class="italic hover:underline" href="/about/team/nover/"> Noah Over</a> 1011 <span>on</span> 1012 <time datetime="2026-06-08"> 1013 June 8, 2026 1014 </time> 1015 </div> 1016 </div> 1017 </div> 1018 1019 <div class="flex-shrink-0"> 1020 <img class="w-80 md:w-[100px] rounded-full" src="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6InN0b3BzaWduLnBuZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6ODAsImhlaWdodCI6ODAsImZpdCI6ImNvdmVyIn0sIndpdGhNZXRhZGF0YSI6dHJ1ZSwidG9Gb3JtYXQiOiJ3ZWJwIiwid2VicCI6eyJxdWFsaXR5Ijo4MH19fQ==?signature=dd6eb1924361dc5b7a45cedf455d350ff06da54be1920208764bdac5aac1dbeb" srcset="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6InN0b3BzaWduLnBuZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6ODAsImhlaWdodCI6ODAsImZpdCI6ImNvdmVyIn0sIndpdGhNZXRhZGF0YSI6dHJ1ZSwidG9Gb3JtYXQiOiJ3ZWJwIiwid2VicCI6eyJxdWFsaXR5Ijo4MH19fQ==?signature=dd6eb1924361dc5b7a45cedf455d350ff06da54be1920208764bdac5aac1dbeb 80w, https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6InN0b3BzaWduLnBuZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6MjAwLCJoZWlnaHQiOjIwMCwiZml0IjoiY292ZXIifSwid2l0aE1ldGFkYXRhIjp0cnVlLCJ0b
10200Zvcm1hdCI6IndlYnAiLCJ3ZWJwIjp7InF1YWxpdHkiOjgwfX19?signature=13fb5dbd145da5af8758d621bd917ca87cc4dc43db0862fce62c3d12fa31b162 200w" width="80" height="80" alt="" sizes="(min-width: 48em) 100px, 80px" style="object-position: 50% 50%;" loading="lazy" decoding="auto"> 1021 </div> 1022 </div> 1023</li> 1024 1025 1026 1027 1028 1029<li class="hover:bg-brickInTheWallRed hover:text-white transition-colors group px-24 py-32 md:p-40 xl:px-128 duration-100"> <div class="flex justify-between md:items-center max-w-screen-xl mx-auto"> 1030 <div class="mr-16 md:mr-24"> 1031 <a 1032 href="https://www.viget.com/articles/craft-6-and-laravel-what-you-need-to-know/" 1033 class="inline-block hd-sm md:hd-md mb-8 lg:mb-16 hover:underline" 1034 > 1035 Craft 6 and Laravel: What You Need To Know 1036 </a> 1037 1038 <div class="lg:flex flex-wrap body-xs"> 1039 <div class="lg-d:mb-8 lg:mr-4"> 1040 <span class="sr-only"> 1041 Article Categories: 1042 </span> 1043 <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=code" sprig s-trigger="click" s-push-url="/articles/?category=code" s-val:categoryid="17" s-val:category="code" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=code" data-hx-vals="{"categoryid":"17","category":"code"}" data-hx-indicator="#results" data-sprig-parsed> 1044 #Code</a><span>, </span> <a class="util-meta-label text-blue-300 group-hover:text-white transition-colors hover:underline" href="/articles/?category=back-end-engineering" sprig s-trigger="click" s-push-url="/articles/?category=back-end-engineering" s-val:categoryid="4181" s-val:category="back-end-engineering" s-indicator="#results" data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-push-url="/articles/?category=back-end-engineering" data-hx-vals="{"categoryid":"4181","category":"back-end-engineering"}" data-hx-indicator="#results" data-sprig-parsed> 1045 #Back-end Engineering</a> </div> 1046 1047 <div> 1048 <span>by</span> 1049 1050 1051 <a class="italic hover:underline" href="/about/team/mmyers/"> Max Myers</a> 1052 <span>on</span> 1053 <time datetime="2026-04-29"> 1054 April 29, 2026 1055 </time> 1056 </div> 1057 </div> 1058 </div> 1059 1060 <div class="flex-shrink-0"> 1061 <img class="w-80 md:w-[100px] rounded-full" src="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6ImNyYWZ0Ni1sYXJhdmVsLnBuZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6ODAsImhlaWdodCI6ODAsImZpdCI6ImNvdmVyIn0sIndpdGhNZXRhZGF0YSI6dHJ1ZSwidG9Gb3JtYXQiOiJ3ZWJwIiwid2VicCI6eyJxdWFsaXR5Ijo4MH19fQ==?signature=3f53c2262b476f09128238772f0c458e0aa1f9b786794813076833898b911fcc" srcset="https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6ImNyYWZ0Ni1sYXJhdmVsLnBuZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6ODAsImhlaWdodCI6ODAsImZpdCI6ImNvdmVyIn0sIndpdGhNZXRhZGF0YSI6dHJ1ZSwidG9Gb3JtYXQiOiJ3ZWJwIiwid2VicCI6eyJxdWFsaXR5Ijo4MH19fQ==?signature=3f53c2262b476f09128238772f0c458e0aa1f9b786794813076833898b911fcc 80w, https://svc.assets.viget.com/eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYWxsLWFzc2V0cyIsImtleSI6ImNyYWZ0Ni1sYXJhdmVsLnBuZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6MjAwLCJoZWlnaHQiOjIwMCwiZml0IjoiY292ZXIifSwid2l0aE1ldGFkYXRhIjp0cnVlLCJ0b0Zvcm1hdCI6IndlYnAiLCJ3ZWJwIjp7InF1YWxpdHkiOjgwfX19?signature=85f8da4afbaea570d275447a97c0c2279d183f408aba93e2dc1739c5436c2e39 200w" width="80" height="80" alt="" sizes="(min-width: 48em) 100px, 80px" style="object-position: 50% 50%;" loading="lazy" decoding="auto"> 1062 </div> 1063 </div> 1064</li> 1065 </ul> 1066 1067 1068 <div class="mt-32 text-center md:mt-40 lg:mt-64"> 1069 1070 1071 1072 1073 1074 <a class="inline-block bg-white text-blue-300 border-blue-300 reversed:bg-transparent reversed:text-white reversed:border-white hover:bg-blue-400 hover:text-white hover:border-blue-400 reversed-hover:bg-white reversed-hover:text-blue-300 focus:bg-blue-500 focus:text-white focus:border-blue-500 disabled:bg-white disabled:text-gray-400 disabled:border-gray-400 group rounded border transition-colors duration-300 lg:util-button-tab-lg lg:py-16 lg:px-24 lg:min-w-160 util-button-tab-md py-12 px-20 min-w-120" href="/articles/?category=&numposts=20" sprig s-trigger="click" s-val:numposts="20" s-replace="#results" x-data="{ disabled: false }" :disabled="disabled" data-track-gtm="Articles|More Articles" data-sprig-parsed data-hx-get="https://www.viget.com/index.php?p=actions/sprig-core/components/render" data-hx-trigger="click" data-hx-vals="{"numposts":"20"}" data-hx-select="#results" data-hx-target="#results" data-hx-swap="outerHTML"> <span class="flex items-center justify-center"> 1075 1076 1077 More Articles 1078 1079 1080 </span> 1081 </a> 1082 1083 1084 </div> 1085 </div> 1086</div> 1087</div> 1088 </div> 1089 </main> 1090 1091 1092 1093 1094 <div class="footer-cta reversed bg-blue-400 text-center py-40 px-24 md:py-64 md:px-128 lg:py-80"> 1095 1096 <h3 class="hd-md-light md:hd-xl-light lg:hd-jb-light text-white">The Viget Newsletter</h3> 1097 1098 <div class="rich-text text-white mt-24 md:mt-32 lg:mt-40 mx-auto max-w-[326px] md:max-w-[510px] lg:max-w-[544px]"> 1099 <p>Nobody likes popups, so we waited until now to recommend our newsletter, featuring thoughts, opinions, and tools for building a better digital world. <a href="/newsletter">Read the current issue.</a></p><p><a href="http://eepurl.com/gtHqsj" target="_blank" class="inline-block bg-white text-blue-400 border-white hover:bg-transparent hover:text-white focus:bg-transparent focus:text-white !no-underline rounded border transition-colors lg:util-button-tab-lg lg:py-16 lg:px-24 lg:min-w-160 util-button-tab-md py-12 px-20 min-w-120"><span class="flex items-center justify-center">Subscribe Here<span class="sr-only"> (opens in new window)</span><svg class="rect-icon-xs flex-shrink-0 ml-8" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.7848 19.3091C13.4758 19.585 13.0017 19.5583 12.7258 19.2494C12.4498 18.9405 12.4766 18.4663 12.7855 18.1904L18.7866 12.8301L4.75195 12.8301C4.33774 12.8301 4.00195 12.4943 4.00195 12.0801C4.00195 11.6659 4.33774 11.3301 4.75195 11.3301L18.7855 11.3301L12.7855 5.97082C12.4766 5.69488 12.4498 5.22076 12.7258 4.91184C13.0017 4.60292 13.4758 4.57618 13.7848 4.85212L21.2358 11.5076C21.3738 11.6244 21.469 11.7903 21.4945 11.9782C21.4992 12.0119 21.5015 12.0461 21.5015 12.0806C21.5015 12.2942 21.4105 12.4977 21.2511 12.64L13.7848 19.3091Z"></path></svg></span></a></p> 1100 </div> 1101 1102 1103 </div> 1104 1105 1106 1107 1108 <footer id="footer" class="px-24 py-64 bg-gray-100 md:px-40 jb:px-80 md:py-80 lg:py-128"> 1109 <h2 class="sr-only">Site Footer</h2> 1110 1111 <section class="justify-between mb-40 md:mb-64 lg:80 lg:flex"> 1112 <div class="mb-32 text-center lg:text-left lg:w-1/3 md:mb-64 lg:mb-0"> 1113 <p class="mb-4 hd-sm-light md:hd-md-light md:mb-8">Have an unsolvable problem or audacious idea?</p> 1114 <p class="mb-16 hd-sm md:hd-md lg:mb-24">Letâs get to work</p> 1115 1116 1117 1118 1119 1120 <a class="inline-block bg-blue-300 text-white border-blue-300 reversed:bg-white reversed:border-white reversed:text-blue-400 hover:bg-blue-400 hover:border-blue-400 reversed-hover:bg-transparent reversed-hover:text-white reversed-hover:border-white focus:bg-blue-500 focus:border-blue-500 disabled:bg-gray-300 disabled:text-gray-500 disabled:border-gray-300 group rounded border transition-colors duration-300 util-button-tab-md py-12 px-20 min-w-120" href="https://www.viget.com/contact/" data-track-gtm="Footer Navigation|Contact Us"> <span class="flex items-center justify-center"> 1121 1122 1123 Contact Us 1124 1125 1126 <svg class="transition-transform duration-300 rect-icon-xs flex-shrink-0 ml-8 group-hover:translate-x-4" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 1127<path fill-rule="evenodd" clip-rule="evenodd" d="M13.7848 19.3091C13.4758 19.585 13.0017 19.5583 12.7258 19.2494C12.4498 18.9405 12.4766 18.4663 12.7855 18.1904L18.7866 12.8301L4.75195 12.8301C4.33774 12.8301 4.00195 12.4943 4.00195 12.0801C4.00195 11.6659 4.33774 11.3301 4.75195 11.3301L18.7855 11.3301L12.7855 5.97082C12.4766 5.69488 12.4498 5.22076 12.7258 4.91184C13.0017 4.60292 13.4758 4.57618 13.7848 4.85212L21.2358 11.5076C21.3738 11.6244 21.469 11.7903 21.4945 11.9782C21.4992 12.0119 21.5015 12.0461 21.5015 12.0806C21.5015 12.2942 21.4105 12.4977 21.2511 12.64L13.7848 19.3091Z" /> 1128</svg> 1129 1130 </span> 1131 </a> 1132 1133 1134 <a 1135 class="block mt-16 text-blue-300 body-xs hover:underline" 1136 href="mailto:[email protected]?subject=Hello%2C%20Viget%21" 1137 > 1138 [email protected] 1139 </a> 1140 <a 1141 class="block mt-12 text-blue-300 body-xs hover:underline" 1142 href="tel:7038910670" 1143 > 1144 703.891.0670 1145 </a> 1146 </div> 1147 <div class="lg:w-1/2"> 1148 <div class="text-black md:flex md:justify-between md:space-x-16 text-opacity-90 body-md md:body-sm lg-d:text-center"> 1149 <ul class="space-y-16 md:space-y-8 lg:space-y-16 md:w-1/3"> 1150 <li class="text-gray-500 util-meta-label">Practice</li> 1151 <li><a class="transition-colors hover:text-blue-300 hover:underline" href="https://www.viget.com/work/" data-track-gtm="Footer Navigation|Work">Work</a></li> 1152 <li><a class="transition-colors hover:text-blue-300 hover:underline" href="https://www.viget.com/services/" data-track-gtm="Footer Navigation|Services">Services</a></li> 1153 <li><a class="transition-colors hover:text-blue-300 hover:underline" href="https://www.viget.com/articles/" data-track-gtm="Footer Navigation|Articles">Articles</a></li> 1154 </ul>
1155 <span class="block w-32 h-px mx-auto my-24 bg-gray-300 md:hidden"></span> 1156 <ul class="space-y-16 md:space-y-8 lg:space-y-16 md:w-1/3"> 1157 <li class="text-gray-500 util-meta-label">People</li> 1158 <li><a class="transition-colors hover:text-blue-300 hover:underline" href="https://www.viget.com/about/" data-track-gtm="Footer Navigation|Company">Company</a></li> 1159 <li><a class="transition-colors hover:text-blue-300 hover:underline" href="https://www.viget.com/careers/" data-track-gtm="Footer Navigation|Careers">Careers</a></li> 1160 <li><a class="transition-colors hover:text-blue-300 hover:underline" href="https://www.viget.com/code-of-ethics/" data-track-gtm="Footer Navigation|Code of Ethics">Code of Ethics</a></li> 1161 <li><a class="transition-colors hover:text-blue-300 hover:underline" href="https://www.viget.com/diversity-equity-and-inclusion/" data-track-gtm="Footer Navigation|Diversity & Inclusion">Diversity & Inclusion</a></li> 1162 </ul> 1163 <span class="block w-32 h-px mx-auto my-24 bg-gray-300 md:hidden"></span> 1164 <ul class="space-y-16 md:space-y-8 lg:space-y-16 md:w-1/3"> 1165 <li class="text-gray-500 util-meta-label">More</li> 1166 <li><a class="transition-colors hover:text-blue-300 hover:underline" href="https://pointlesscorp.com/" data-track-gtm="Footer Navigation|Pointless Corp">Pointless Corp.</a></li> 1167 <li><a class="transition-colors hover:text-blue-300 hover:underline" href="https://explorations.viget.com/" data-track-gtm="Footer Navigation|Explorations">Explorations</a></li> 1168 <li><a class="transition-colors hover:text-blue-300 hover:underline" href="https://code.viget.com/" data-track-gtm="Footer Navigation|Code at Viget">Code at Viget</a></li> 1169 </ul> 1170 </div> 1171 <div class="max-w-[543px] lg:max-w-none mx-auto lg-d:text-center mt-32 md:mt-64"> 1172 <h3 class="font-bold text-gray-600 body-sm">Sign Up For Our Newsletter</h3> 1173 <p class="mt-8 text-gray-600 body-sm">A curated periodical featuring thoughts, opinions, and tools for building a better digital world.</p> 1174 1175 1176 1177 <a class="inline-block mt-16 text-blue-300 hover:text-blue-400 hover:underline disabled:no-underline disabled:text-gray-400 util-button-tab-md" href="https://www.viget.com/newsletter/" data-track-gtm="Footer Navigation|Newsletter"> <span class="flex items-center justify-center"> 1178 1179 1180 Check it out 1181 1182 1183 <svg class="rect-icon-xs flex-shrink-0 ml-8" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 1184<path fill-rule="evenodd" clip-rule="evenodd" d="M13.7848 19.3091C13.4758 19.585 13.0017 19.5583 12.7258 19.2494C12.4498 18.9405 12.4766 18.4663 12.7855 18.1904L18.7866 12.8301L4.75195 12.8301C4.33774 12.8301 4.00195 12.4943 4.00195 12.0801C4.00195 11.6659 4.33774 11.3301 4.75195 11.3301L18.7855 11.3301L12.7855 5.97082C12.4766 5.69488 12.4498 5.22076 12.7258 4.91184C13.0017 4.60292 13.4758 4.57618 13.7848 4.85212L21.2358 11.5076C21.3738 11.6244 21.469 11.7903 21.4945 11.9782C21.4992 12.0119 21.5015 12.0461 21.5015 12.0806C21.5015 12.2942 21.4105 12.4977 21.2511 12.64L13.7848 19.3091Z" /> 1185</svg> 1186 1187 </span> 1188 </a> 1189 1190 </div> 1191 </div> 1192 </section> 1193 1194 1195 <section class="pt-40 border-t md:flex md:justify-between md:items-start md:pt-32 lg:pt-40"> 1196 <div class="flex flex-col"> 1197 <div class="flex flex-col items-center md:items-start md:flex-row"> 1198 <h3 class="sr-only">Social Links</h3> 1199 <a href="/" class="viget-logo -small group"> 1200 <span class="sr-only">Viget</span> 1201 <svg class="text-gray-400 transition-colors group-hover:text-blue-600 rect-logo-text-sm" viewBox="0 0 83 40" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M23.267 8.125c0-.439.409-.847.849-.847h1.633c.44 0 .849.408.849.847v17.883c0 .439-.409.847-.849.847h-1.633c-.44 0-.849-.408-.849-.847V8.125zM59.717 7.247c4.933 0 8.735 3.64 8.735 8.565 0 .313-.032.941-.094 1.255a.831.831 0 0 1-.849.784H53.778c.188 3.137 2.89 5.835 6.63 5.835 1.98 0 3.488-.627 4.682-1.537.408-.314.66-.314.974-.031.345.313.722.69 1.068 1.004.409.345.534.658.094 1.16-.942 1.067-3.456 2.604-6.693 2.604-5.687 0-10.055-4.455-10.055-9.82 0-5.301 3.771-9.819 9.459-9.819h-.22zm5.498 8.031c-.125-2.729-2.828-5.145-5.687-5.145-3.142 0-5.467 2.479-5.656 5.145h11.343zM82.78 24.596l-1.35-1.35c-.095-.093-.44-.219-.787.064 0 0-.69.627-1.853.627-.817 0-1.477-.282-1.949-.784-.47-.502-.785-1.224-.785-2.102 0-.063 0-.094-.031-.126V9.976h4.964a.844.844 0 0 0 .849-.847V8.125c0-.502-.346-.847-.849-.847h-4.965v-5.02c0-.439-.345-.846-.816-.846l-1.446.156c-.44.063-.848.408-.848.848v4.83h-2.357c-.503 0-.848.346-.848.848v1.004c0 .44.377.847.848.847h2.357v11.231h.031a5.943 5.943 0 0 0 .88 2.95c.283.439.911 1.317 1.885 2.007 0 0 .032.032.063.032.472.282 1.477.721 3.048.721 1.634 0 3.017-.596 4.022-1.569a.579.579 0 0 0 .157-.376c-.
1201063-.094-.126-.25-.22-.345zM19.182 7.278h-1.98c-.408 0-.66.22-.785.502L10.258 22.37 4.194 7.749c-.126-.25-.408-.502-.785-.502H1.366c-.691 0-.943.44-.691 1.035l.314.753 7.384 16.973c.157.408.472.847.943.847h1.822c.44 0 .786-.47.943-.847l7.447-16.941.314-.753c.283-.596 0-1.036-.66-1.036zM42.183 26.918h-6.567c-1.697 0-2.514-1.192-2.514-2.322 0-1.82 2.011-2.73 2.011-2.73s2.137 1.318 4.65 1.318c4.84 0 8.108-3.796 8.108-7.937 0-3.106-1.886-4.894-1.886-4.894l2.483-.69c.314-.031.502-.47.502-.784v-.785a.858.858 0 0 0-.88-.878h-8.672c-4.745 0-7.73 3.796-7.73 8.031 0 2.698 1.477 4.55 1.477 4.55s-3.048 1.787-3.048 5.238c0 2.824 2.137 4.016 3.33 4.33v.125c-.47.283-2.639 1.506-2.639 4.236 0 3.011 2.64 6.274 8.767 6.274 5.53 0 9.458-3.608 9.458-7.372 0-3.922-3.016-5.71-6.85-5.71zm-2.42-16.722c2.734 0 4.965 2.228 4.965 4.957 0 2.73-2.23 4.957-4.964 4.957-2.734 0-4.965-2.227-4.965-4.957s2.231-4.957 4.965-4.957zm-.22 26.887c-3.11 0-5.467-1.6-5.467-3.797 0-2.698 3.048-3.513 3.048-3.513h5.06c3.204 0 3.456 2.384 3.456 2.949.031 2.698-3.08 4.36-6.096 4.36zM23.016 1.945C23.016.847 23.864 0 24.933 0c1.1 0 1.948.847 1.948 1.945a1.93 1.93 0 0 1-1.948 1.914 1.923 1.923 0 0 1-1.917-1.914z"/></svg> 1202 </a> 1203 1204 1205 <div class="text-gray-400 md-d:mt-16 md:ml-16"> 1206 <ul class="flex space-x-16"> 1207 <li> 1208 <a href="http://x.com/viget" class="block transition-colors hover:text-x" aria-label="X"> 1209 <svg class="rect-icon-sm" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 1210 <path d="M 17.712 14.591 L 24.413 6.802 L 22.825 6.802 L 17.007 13.565 L 12.36 6.802 L 7 6.802 L 14.027 17.029 L 7 25.198 L 8.588 25.198 L 14.732 18.055 L 19.64 25.198 L 25 25.198 L 17.712 14.591 Z M 15.537 17.119 L 14.825 16.101 L 9.16 7.997 L 11.599 7.997 L 16.171 14.537 L 16.883 15.556 L 22.826 24.056 L 20.387 24.056 L 15.537 17.12 L 15.537 17.119 Z" /> 1211</svg> 1212 1213 </a> 1214 </li> 1215 <li> 1216 <a href="https://github.com/vigetlabs" class="block transition-colors hover:text-github" aria-label="Github"> 1217 <svg class="rect-icon-sm" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 1218<path fill-rule="evenodd" clip-rule="evenodd" d="M16.645 5.13428C10.5209 5.13428 5.55566 10.0996 5.55566 16.225C5.55566 21.1249 8.73309 25.2814 13.1401 26.7485C13.695 26.85 13.8972 26.5075 13.8972 26.2134C13.8972 25.9506 13.8876 25.2528 13.8822 24.3275C10.7974 24.9974 10.1465 22.8406 10.1465 22.8406C9.642 21.5599 8.91487 21.2188 8.91487 21.2188C7.90793 20.5305 8.99112 20.5441 8.99112 20.5441C10.1043 20.6231 10.6898 21.6873 10.6898 21.6873C11.679 23.3818 13.2858 22.8923 13.9176 22.6091C14.0184 21.8922 14.3043 21.4034 14.6216 21.1263C12.159 20.8464 9.56983 19.8946 9.56983 15.6449C9.56983 14.4344 10.0022 13.4445 10.7116 12.669C10.5972 12.3885 10.2166 11.2611 10.8198 9.73395C10.8198 9.73395 11.7512 9.43575 13.8699 10.8709C14.7543 10.6252 15.7034 10.5019 16.6464 10.4978C17.5879 10.5019 18.537 10.6252 19.4228 10.8709C21.5402 9.43575 22.4695 9.73395 22.4695 9.73395C23.0747 11.2611 22.6942 12.3885 22.5798 12.669C23.2906 13.4445 23.7202 14.4344 23.7202 15.6449C23.7202 19.9055 21.1269 20.843 18.6562 21.1174C19.0545 21.4599 19.4092 22.1366 19.4092 23.1715C19.4092 24.6536 19.3955 25.8498 19.3955 26.2134C19.3955 26.5102 19.595 26.8554 20.1581 26.7472C24.5617 25.2773 27.7364 21.1235 27.7364 16.225C27.7364 10.0996 22.7704 5.13428 16.645 5.13428Z" /> 1219</svg> 1220 1221 </a> 1222 </li> 1223 <li> 1224 <a href="https://dribbble.com/viget" class="block transition-colors hover:text-dribbble" aria-label="Dribbble"> 1225 <svg class="rect-icon-sm" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 1226<path fill-rule="evenodd" clip-rule="evenodd" d="M15.7776 5.33301C9.64362 5.33301 4.6665 10.3101 4.6665 16.4441C4.6665 22.5781 9.64362 27.5552 15.7776 27.5552C21.8996 27.5552 26.8887 22.5781 26.8887 16.4441C26.8887 10.3101 21.8996 5.33301 15.7776 5.33301ZM23.1167 10.4547C24.4424 12.0696 25.2377 14.1303 25.2618 16.3598C24.9485 16.2995 21.8152 15.6608 18.6578 16.0585C18.5855 15.9018 18.5253 15.7331 18.453 15.5644C18.2601 15.1065 18.0432 14.6365 17.8263 14.1906C21.3211 12.7685 22.9119 10.7199 23.1167 10.4547ZM15.7776 6.97196C18.1878 6.97196 20.3932 7.87579 22.0683 9.35808C21.8996 9.5991 20.4655 11.5152 17.0912 12.7806C15.5366 9.92447 13.8133 7.58656 13.5482 7.22503C14.2592 7.05631 15.0063 6.97196 15.7776 6.97196ZM11.7405 7.86374C11.9936 8.20116 13.6807 10.5511 15.2594 13.347C10.8246 14.528 6.90802 14.5039 6.48622 14.5039C7.10082 11.5634 9.08926 9.11705 11.74
122605 7.86374ZM6.28135 16.4562C6.28135 16.3598 6.28135 16.2634 6.28135 16.1669C6.69109 16.179 11.2946 16.2393 16.0307 14.8172C16.3079 15.3475 16.5609 15.8898 16.802 16.4321C16.6814 16.4682 16.5489 16.5044 16.4284 16.5405C11.5356 18.1192 8.93259 22.4335 8.71568 22.7951C7.20928 21.1199 6.28135 18.8905 6.28135 16.4562ZM15.7776 25.9404C13.5843 25.9404 11.5597 25.1932 9.95693 23.9399C10.1257 23.5904 12.0538 19.8787 17.4045 18.0108C17.4286 17.9987 17.4407 17.9987 17.4648 17.9867C18.8024 21.4453 19.3447 24.3496 19.4893 25.1812C18.3445 25.6753 17.0912 25.9404 15.7776 25.9404ZM21.0681 24.3135C20.9716 23.735 20.4655 20.9633 19.2242 17.5528C22.2009 17.0828 24.8039 17.8541 25.1293 17.9626C24.7195 20.6017 23.2011 22.8794 21.0681 24.3135Z" /> 1227</svg> 1228 1229 </a> 1230 </li> 1231 <li> 1232 <a href="https://www.instagram.com/viget/" class="block transition-colors hover:text-instagram" aria-label="Instagram"> 1233 <svg class="rect-icon-sm" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 1234<path d="M15.7776 7.33505C18.7444 7.33505 19.0958 7.34634 20.2674 7.3998C21.3507 7.44924 21.9391 7.63025 22.3306 7.78237C22.8492 7.98393 23.2194 8.22475 23.6082 8.61354C23.997 9.00233 24.2378 9.37251 24.4393 9.8911C24.5915 10.2827 24.7725 10.871 24.8219 11.9543C24.8754 13.1259 24.8867 13.4773 24.8867 16.4441C24.8867 19.411 24.8754 19.7623 24.8219 20.934C24.7725 22.0173 24.5915 22.6056 24.4393 22.9972C24.2378 23.5158 23.997 23.886 23.6082 24.2747C23.2194 24.6635 22.8492 24.9044 22.3306 25.1059C21.9391 25.258 21.3507 25.439 20.2674 25.4885C19.096 25.5419 18.7446 25.5532 15.7776 25.5532C12.8106 25.5532 12.4592 25.5419 11.2878 25.4885C10.2045 25.439 9.61613 25.258 9.2246 25.1059C8.70596 24.9044 8.33578 24.6635 7.94699 24.2747C7.5582 23.886 7.31738 23.5158 7.11587 22.9972C6.9637 22.6056 6.78269 22.0173 6.73325 20.934C6.67979 19.7623 6.6685 19.411 6.6685 16.4441C6.6685 13.4773 6.67979 13.1259 6.73325 11.9543C6.78269 10.871 6.9637 10.2827 7.11587 9.8911C7.31738 9.37251 7.5582 9.00233 7.94699 8.61354C8.33578 8.22475 8.70596 7.98393 9.2246 7.78237C9.61613 7.63025 10.2045 7.44924 11.2877 7.3998C12.4594 7.34634 12.8108 7.33505 15.7776 7.33505ZM15.7776 5.33301C12.76 5.33301 12.3816 5.3458 11.1965 5.39987C10.0138 5.45386 9.20616 5.64166 8.49937 5.91635C7.76872 6.2003 7.14908 6.58023 6.53138 7.19793C5.91368 7.81563 5.53375 8.43527 5.2498 9.16592C4.97511 9.87271 4.78731 10.6804 4.73332 11.8631C4.67925 13.0481 4.6665 13.4265 4.6665 16.4441C4.6665 19.4618 4.67925 19.8401 4.73332 21.0252C4.78731 22.2079 4.97511 23.0156 5.2498 23.7224C5.53375 24.453 5.91368 25.0727 6.53138 25.6904C7.14908 26.3081 7.76872 26.688 8.49937 26.9719C9.20616 27.2466 10.0138 27.4344 11.1965 27.4884C12.3816 27.5425 12.76 27.5552 15.7776 27.5552C18.7952 27.5552 19.1736 27.5425 20.3587 27.4884C21.5414 27.4344 22.349 27.2466 23.0558 26.9719C23.7865 26.688 24.4061 26.3081 25.0238 25.6904C25.6415 25.0727 26.0214 24.453 26.3054 23.7224C26.5801 23.0156 26.7679 22.2079 26.8219 21.0252C26.8759 19.8401 26.8887 19.4618 26.8887 16.4441C26.8887 13.4265 26.8759 13.0481 26.8219 11.8631C26.7679 10.6804 26.5801 9.87271 26.3054 9.16592C26.0214 8.43527 25.6415 7.81563 25.0238 7.19793C24.4061 6.58023 23.7865 6.2003 23.0558 5.91635C22.349 5.64166 21.5414 5.45386 20.3587 5.39987C19.1736 5.3458 18.7952 5.33301 15.7776 5.33301ZM15.7776 10.7384C12.6264 10.7384 10.0719 13.293 10.0719 16.4441C10.0719 19.5953 12.6264 22.1499 15.7776 22.1499C18.9288 22.1499 21.4833 19.5953 21.4833 16.4441C21.4833 13.293 18.9288 10.7384 15.7776 10.7384ZM15.7776 20.1479C13.7321 20.1479 12.0739 18.4896 12.0739 16.4441C12.0739 14.3987 13.7321 12.7404 15.7776 12.7404C17.8231 12.7404 19.4813 14.3987 19.4813 16.4441C19.4813 18.4896 17.8231 20.1479 15.7776 20.1479ZM23.0421 10.513C23.0421 11.2494 22.4451 11.8464 21.7087 11.8464C20.9724 11.8464 20.3754 11.2494 20.3754 10.513C20.3754 9.77661 20.9724 9.17968 21.7087 9.17968C22.4451 9.17968 23.0421 9.77661 23.0421 10.513Z" /> 1235</svg> 1236 1237 </a> 1238 </li> 1239 <li> 1240 <a href="https://www.linkedin.com/company/viget-labs" class="block transition-colors hover:text-linkedin" aria-label="LinkedIn"> 1241 <svg class="rect-icon-sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 1242<path d="M16.9583 4H7.04167C5.08596 4 3.5 5.58596 3.5 7.54167V17.4583C3.5 19.414 5.08596 21 7.04167 21H16.9583C18.9148 21 20.5 19.414 20.5 17.4583V7.54167C20.5 5.58596 18.9148 4 16.9583 4ZM9.16667 17.4583H7.04167V9.66667H9.16667V17.4583ZM8.10417 8.7685C7.41992 8.7685 6.86458 8.20892 6.86458 7.519C6.86458 6.82908 7.41992 6.2695 8.10417 6.2695C8.78842 6.2695 9.34375 6.82908 9.34375 7.519C9.34375 8.20892 8.78912 8.7685 8.10417 8.7685ZM17.6667 17.4583H15.5417V13.4888C15.5417 11.
12421032 12.7083 11.2838 12.7083 13.4888V17.4583H10.5833V9.66667H12.7083V10.9169C13.6972 9.08512 17.6667 8.94983 17.6667 12.6707V17.4583Z" /> 1243</svg> 1244 1245 </a> 1246 </li> 1247 <li> 1248 <a href="https://vimeo.com/viget/collections" class="block transition-colors hover:text-vimeo" aria-label="Vimeo"> 1249 <svg class="rect-icon-sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 1250<path fill-rule="evenodd" clip-rule="evenodd" d="M12.25 4C7.69365 4 4 7.69365 4 12.25C4 16.8063 7.69365 20.5 12.25 20.5C16.8063 20.5 20.5 16.8063 20.5 12.25C20.5 7.69365 16.8063 4 12.25 4ZM14.901 14.6135C16.203 12.9386 16.876 11.6193 16.9201 10.6557C16.9789 9.36622 16.4991 8.70659 15.4819 8.67679C14.1099 8.63261 13.1803 9.40652 12.6937 10.9999C12.945 10.8921 13.1895 10.8376 13.4265 10.8376C13.9299 10.8376 14.1521 11.1207 14.0928 11.6854C14.0629 12.0277 13.8408 12.5257 13.4265 13.1801C13.0114 13.8349 12.6999 14.1621 12.493 14.1621C12.2262 14.1621 11.9817 13.6581 11.7594 12.649C11.6847 12.353 11.5515 11.5966 11.3591 10.3803C11.1811 9.2532 10.7069 8.72668 9.93674 8.80077C9.61069 8.83057 9.12116 9.12682 8.46952 9.68965C7.9954 10.1195 7.51352 10.5487 7.0249 10.9779L7.49046 11.5777C7.93421 11.2674 8.19336 11.1115 8.26745 11.1115C8.60743 11.1115 8.92503 11.6446 9.2214 12.7095C9.3845 13.3073 9.54748 13.9051 9.71046 14.5029C9.81373 14.8817 9.917 15.2605 10.0203 15.6394C10.4193 16.7048 10.9076 17.2372 11.4849 17.2372C12.4161 17.2372 13.555 16.3624 14.901 14.6135Z" fill="inherit"/> 1251</svg> 1252 1253 </a> 1254 </li> 1255 </ul> 1256 </div> 1257 1258 1259 </div> 1260 1261 <div 1262 class="mt-24 flex items-center justify-center md:mt-16 md:justify-start" 1263 x-data="sayViget" 1264> 1265 <button 1266 @focus="loadClip()" 1267 @mouseenter="loadClip()" 1268 @click="playClip()" 1269 x-ref="button" 1270 class="flex items-center gap-8" 1271 > 1272 <span class="-ml-8 grid h-40 w-40 place-items-center"> 1273 <span class="col-span-full row-span-full grid h-32 w-32 place-items-center rounded-full border border-gray-300 bg-white text-blue-500 hover:bg-gray-200 focus-visible:bg-gray-200"> 1274 <span 1275 class="col-span-full row-span-full w-full transition-opacity" 1276 x-cloak 1277 x-ref="playing" 1278 :class="isLoading ? 'opacity-0' : ''" 1279 > 1280 <svg viewBox="0 0 101 100" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule: evenodd; clip-rule: evenodd; stroke-linejoin: round; stroke-miterlimit: 2;" aria-hidden="true"><path d="M61.935 50.094c.278.2.278.612 0 .812L47.292 61.431c-.331.238-.792.001-.792-.406v-21.05c0-.407.461-.644.792-.406l14.643 10.525Z" style="fill-rule:nonzero; fill: currentColor;"/></svg> 1281 1282 </span> 1283 <span 1284 class="col-span-full row-span-full w-3/5 transition-opacity" 1285 x-cloak 1286 x-ref="loading" 1287 :class="isLoading ? 'animate-spin' : 'opacity-0'" 1288 > 1289 <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 1290<path d="M4.94112 11.4272C5.20582 7.46251 8.55877 4.37883 12.5294 4.37883C14.9999 4.37883 17.2941 5.5242 18.7058 7.55061H13.4999V9.22461H20.7352V7.99114H20.8235L20.7352 7.81493V2H19.0588V5.5242C17.3823 3.7621 14.9999 2.70484 12.4411 2.70484C7.67641 2.79294 3.61759 6.58146 3.26465 11.4272V11.6915H4.94112V11.4272Z" /> 1291<path d="M19.2353 12.3967V12.5729C18.9706 16.5376 15.6176 19.6213 11.6471 19.6213C9.17647 19.6213 6.88235 18.4759 5.47059 16.4495H10.2353V14.7755H3V22.0001H4.67647V17.9473C6.44118 19.9737 8.91176 21.2072 11.7353 21.2072C16.5882 21.2072 20.6471 17.4187 21 12.5729V12.3086H19.2353V12.3967Z" /> 1292</svg> 1293 1294 </span> 1295 </span> 1296 <svg 1297 class="pointer-events-none col-span-full row-span-full -rotate-90 transition-opacity" 1298 :class="animationReady ? '' : 'opacity-0'" 1299 x-cloak 1300 x-ref="svg" 1301 role="presentation" 1302 viewbox="0 0 33.83098862 33.83098862" 1303 width="40" 1304 height="40" 1305 xmlns="http://www.w3.org/2000/svg" 1306 > 1307 <circle 1308 class="origin-center" 1309 :class="animationReady ? 'animate-fill-stroke' : ''" 1310 x-ref="circle" 1311 @animationend="resetAnimation()" 1312 stroke="#135C92" 1313 stroke-width="2" 1314 stroke-dasharray="99,100" 1315 stroke-linecap="round" 1316 fill="none" 1317 cx="16.91549431" 1318 cy="16.91549431" 1319 r="15.91549431" 1320 /> 1321 </svg> 1322 </span> 1323 <span class="leading-relaxed text-12">Viget rhymes with 'dig it'.</span> 1324 <span class="sr-only">Click here to hear how we say it.</span> 1325 </button> 1326 1327 <audio 1328 preload="none" 1329 src="https://www.viget.com/audio/viget-1s.mp3" 1330 x-ref="audio" 1331 @canplaythrough="readyToPlay()" 1332 ></audio> 1333</div> 1334 1335 </div> 1336 1337 <div class="text-center md-d:mt-24 md:text-right"> 1338 <h3 class="sr-only">Office Locations</h3> 1339 1340 <ul class="flex flex-wrap justify-center"> 1341 <li class="leading-relaxed underline text-12"> 1342 <a 1343 class="inline-block leading-none transition-colors hover:text-blue-300 px-8 border-r" 1344 href="https://www.viget.com/dc-metro-hq/" 1345 data-track-gtm="Footer Navigation|Washington, DC Metro" 1346 >Washington, DC Metro</a> 1347 </li> 1348 <li class="leading-relaxed underline text-12"> 1349 <a 1350 class="inline-block leading-none transition-colors hover:text-blue-300 px-8 border-r" 1351 href="https://www.viget.com/durham/" 1352 data-track-gtm="Footer Navigation|Durham, NC" 1353 >Durham, NC</a> 1354 </li> 1355 <li class="leading-relaxed underline text-12"> 1356 <a 1357 class="inline-block leading-none transition-colors hover:text-blue-300 px-8 border-r" 1358 href="https://www.viget.com/boulder/" 1359 data-track-gtm="Footer Navigation|Boulder, CO" 1360 >Boulder, CO</a> 1361 </li> 1362 <li class="leading-relaxed underline text-12"> 1363 <a 1364 class="inline-block leading-none transition-colors hover:text-blue-300 px-8" 1365 href="https://www.viget.com/chattanooga/" 1366 data-track-gtm="Footer Navigation|Chattanooga, TN" 1367 >Chattanooga, TN</a> 1368 </li> 1369 </ul> 1370 1371 <p class="mt-24 leading-relaxed text-12 md:mt-16">
1372 <span class="px-8 leading-none border-r">© 1999 – 2026 Viget Labs, LLC.</span> 1373 <a 1374 class="px-8 leading-none underline transition-colors border-r hover:text-blue-300" 1375 href="https://www.viget.com/terms-conditions/" 1376 data-track-gtm="Footer Navigation|Terms" 1377 >Terms</a> 1378 <a 1379 class="px-8 leading-none underline transition-colors border-r hover:text-blue-300" 1380 href="https://www.viget.com/privacy-policy/" 1381 data-track-gtm="Footer Navigation|Privacy" 1382 >Privacy</a> 1383 <a 1384 class="px-8 leading-none underline transition-colors hover:text-blue-300" 1385 href="https://www.cigna.com/legal/compliance/machine-readable-files" 1386 target="_blank" 1387 data-track-gtm="Footer Navigation|Privacy" 1388 >MRF</a> 1389 </p> 1390 </div> 1391 </section> 1392 </footer> 1393 1394 1395 1396 1397
1398<script src="https://www.viget.com/cpresources/65d6cac0/htmx.min.js?v=1787070353"></script>
1398</body> 1399</html> 1400<!-- Cached by Blitz on 2026-08-20T09:05:09-04:00 -->
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.