<!DOCTYPE html><html lang="en" class="light set-color-team-current-unknown"><head><meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover"/><link rel="preload" as="image" href="https://res.cloudinary.com/kentcdodds-com/image/upload/c_pad,w_80,h_80,q_auto,f_auto/kentcdodds.com/illustrations/kody/kody_profile_gray" crossorigin=""/><link rel="preload" as="image" imageSrcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/w_256,q_auto,f_auto/kentcdodds.com/illustrations/skis_z5lkc3 256w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_550,q_auto,f_auto/kentcdodds.com/illustrations/skis_z5lkc3 550w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_700,q_auto,f_auto/kentcdodds.com/illustrations/skis_z5lkc3 700w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_900,q_auto,f_auto/kentcdodds.com/illustrations/skis_z5lkc3 900w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_1300,q_auto,f_auto/kentcdodds.com/illustrations/skis_z5lkc3 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_1800,q_auto,f_auto/kentcdodds.com/illustrations/skis_z5lkc3 1800w" imageSizes="(max-width: 1023px) 80vw, (min-width: 1024px) and (max-width: 1279px) 50vw, (min-width: 1280px) 900px" crossorigin=""/><link rel="preload" as="image" imageSrcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/w_300,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1474718723952-48d2a016108f 300w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_600,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1474718723952-48d2a016108f 600w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_900,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1474718723952-48d2a016108f 900w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_1700,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1474718723952-48d2a016108f 1700w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_2500,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1474718723952-48d2a016108f 2500w" imageSizes="(max-width: 1023px) 80vw, (min-width:1024px) and (max-width:1620px) 25vw, 410px" crossorigin=""/><link rel="preload" as="image" imageSrcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/w_350,q_auto,f_auto/kentcdodds.com/illustrations/rowing 350w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_512,q_auto,f_auto/kentcdodds.com/illustrations/rowing 512w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_1024,q_auto,f_auto/kentcdodds.com/illustrations/rowing 1024w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_1536,q_auto,f_auto/kentcdodds.com/illustrations/rowing 1536w" imageSizes="80vw, (min-width: 1024px) 30vw, (min-width:1620px) 530px" crossorigin=""/><title>The Kent C. Dodds Blog</title><meta name="description" content="Join 757.75k people who have read Kent&#x27;s 211 articles on JavaScript, TypeScript, React, Testing, Career, and more."/><meta name="keywords" content="JavaScript, TypeScript, React, Testing, Career, Software Development, Kent C. Dodds Blog"/><meta name="image" content="https://res.cloudinary.com/kentcdodds-com/image/upload/$th_1256,$tw_2400,$gw_$tw_div_24,$gh_$th_div_12/co_rgb:a9adc1,c_fit,g_north_west,w_$gw_mul_14,h_$gh,x_$gw_mul_1.5,y_$gh_mul_1.3,l_text:kentcdodds.com:Matter-Regular.woff2_50:Check%2520out%2520this%2520Blog/co_white,c_fit,g_north_west,w_$gw_mul_13.5,h_$gh_mul_7,x_$gw_mul_1.5,y_$gh_mul_2.3,l_text:kentcdodds.com:Matter-Regular.woff2_110:Priceless%2520insights%252C%2520ideas%252C%2520and%2520experiences%2520for%2520your%2520dev%2520work/c_fit,g_north_west,r_max,w_$gw_mul_4,h_$gh_mul_3,x_$gw,y_$gh_mul_8,l_kent:profile-transparent/co_rgb:a9adc1,c_fit,g_north_west,w_$gw_mul_5.5,h_$gh_mul_4,x_$gw_mul_4.5,y_$gh_mul_9,l_text:kentcdodds.com:Matter-Regular.woff2_70:Kent%20C.%20Dodds/co_rgb:a9adc1,c_fit,g_north_west,w_$gw_mul_9,x_$gw_mul_4.5,y_$gh_mul_9.8,l_text:kentcdodds.com:Matter-Regular.woff2_40:kentcdodds.com%252Fblog/c_fill,ar_3:4,r_12,g_east,h_$gh_mul_10,x_$gw,l_kentcdodds.com:illustrations:skis_z5lkc3/c_fill,w_$tw,h_$th/kentcdodds.com/social-background.png"/><meta name="og:url" content="https://kentcdodds.com/blog"/><meta name="og:title" content="The Kent C. Dodds Blog"/><meta name="og:description" content="Join 757.75k people who have read Kent&#x27;s 211 articles on JavaScript, TypeScript, React, Testing, Career, and more."/><meta name="og:image" content="https://res.cloudinary.com/kentcdodds-com/image/upload/$th_1256,$tw_2400,$gw_$tw_div_24,$gh_$th_div_12/co_rgb:a9adc1,c_fit,g_north_west,w_$gw_mul_14,h_$gh,x_$gw_mul_1.5,y_$gh_mul_1.3,l_text:kentcdodds.com:Matter-Regular.woff2_50:Check%2520out%2520this%2520Blog/co_white,c_fit,g_north_west,w_$gw_mul_13.5,h_$gh_mul_7,x_$gw_mul_1.5,y_$gh_mul_2.3,l_text:kentcdodds.com:Matter-Regular.woff2_110:Priceless%2520insights%252C%2520ideas%252C%2520and%2520experiences%2520for%2520your%2520dev%2520work/c_fit,g_north_west,r_max,w_$gw_mul_4,h_$gh_mul_3,x_$gw,y_$gh_mul_8,l_kent:profile-transparent/co_rgb:a9adc1,c_fit,g_north_west,w_$gw_mul_5.5,h_$gh_mul_4,x_$gw_mul_4.5,y_$gh_mul_9,l_text:kentcdodds.com:Matter-Regular.woff2_70:Kent%20C.%20Dodds/co_rgb:a9adc1,c_fit,g_north_west,w_$gw_mul_9,x_$gw_mul_4.5,y_$gh_mul_9.8,l_text:kentcdodds.com:Matter-Regular.woff2_40:kentcdodds.com%252Fblog/c_fill,ar_3:4,r_12,g_east,h_$gh_mul_10,x_$gw,l_kentcdodds.com:illustrations:skis_z5lkc3/c_fill,w_$tw,h_$th/kentcdodds.com/social-background.png"/><meta name="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:creator" content="@kentcdodds"/><meta name="twitter:site" content="@kentcdodds"/><meta name="twitter:title" content="The Kent C. Dodds Blog"/><meta name="twitter:description" content="Join 757.75k people who have read Kent&#x27;s 211 articles on JavaScript, TypeScript, React, Testing, Career, and more."/><meta name="twitter:image" content="https://res.cloudinary.com/kentcdodds-com/image/upload/$th_1256,$tw_2400,$gw_$tw_div_24,$gh_$th_div_12/co_rgb:a9adc1,c_fit,g_north_west,w_$gw_mul_14,h_$gh,x_$gw_mul_1.5,y_$gh_mul_1.3,l_text:kentcdodds.com:Matter-Regular.woff2_50:Check%2520out%2520this%2520Blog/co_white,c_fit,g_north_west,w_$gw_mul_13.5,h_$gh_mul_7,x_$gw_mul_1.5,y_$gh_mul_2.3,l_text:kentcdodds.com:Matter-Regular.woff2_110:Priceless%2520insights%252C%2520ideas%252C%2520and%2520experiences%2520for%2520your%2520dev%2520work/c_fit,g_north_west,r_max,w_$gw_mul_4,h_$gh_mul_3,x_$gw,y_$gh_mul_8,l_kent:profile-transparent/co_rgb:a9adc1,c_fit,g_north_west,w_$gw_mul_5.5,h_$gh_mul_4,x_$gw_mul_4.5,y_$gh_mul_9,l_text:kentcdodds.com:Matter-Regular.woff2_70:Kent%20C.%20Dodds/co_rgb:a9adc1,c_fit,g_north_west,w_$gw_mul_9,x_$gw_mul_4.5,y_$gh_mul_9.8,l_text:kentcdodds.com:Matter-Regular.woff2_40:kentcdodds.com%252Fblog/c_fill,ar_3:4,r_12,g_east,h_$gh_mul_10,x_$gw,l_kentcdodds.com:illustrations:skis_z5lkc3/c_fill,w_$tw,h_$th/kentcdodds.com/social-background.png"/><meta name="twitter:image:alt" content="The Kent C. Dodds Blog"/><link rel="canonical" href="https://kentcdodds.com/blog"/><link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon.png"/><link rel="icon" type="image/png" sizes="32x32" href="/favicons/favicon-32x32.png"/><link rel="icon" type="image/png" sizes="16x16" href="/favicons/favicon-16x16.png"/><link rel="manifest" href="/site.webmanifest"/><link rel="icon" href="/favicon.ico"/><link rel="alternate" type="application/rss+xml" title="Kent C. Dodds Blog" href="/blog/rss.xml"/><link rel="modulepreload" href="/assets/entry.client-BpVaQRLZ.js"/><link rel="modulepreload" href="/assets/homework-completion-mA0KQdk9.js"/><link rel="modulepreload" href="/assets/index-DlKQIqa_.js"/><link rel="modulepreload" href="/assets/index-GIiJVtwk.js"/><link rel="modulepreload" href="/assets/chunk-LFPYN7LY-Dhz4wK-H.js"/><link rel="modulepreload" href="/assets/root-C-hh3G9p.js"/><link rel="modulepreload" href="/assets/root-BcmdRNHN.js"/><link rel="modulepreload" href="/assets/clsx-an37Qlra.js"/><link rel="modulepreload" href="/assets/promotification-38QICm2t.js"/><link rel="modulepreload" href="/assets/debug-build-BkVyDy-S.js"/><link rel="modulepreload" href="/assets/index-CSLKQwvV.js"/><link rel="modulepreload" href="/assets/images-BVY726jz.js"/><link rel="modulepreload" href="/assets/misc-react-7gXQx9PU.js"/><link rel="modulepreload" href="/assets/exports-ChwI61oS.js"/><link rel="modulepreload" href="/assets/icons-CXm68sMX.js"/><link rel="modulepreload" href="/assets/typography-B3dSfy4m.js"/><link rel="modulepreload" href="/assets/arrow-button-SLp9ACCU.js"/><link rel="modulepreload" href="/assets/button-CQdvMSt0.js"/><link rel="modulepreload" href="/assets/grid-BCnqOhf2.js"/><link rel="modulepreload" href="/assets/cloudinary-video-Caq_1dPm.js"/><link rel="modulepreload" href="/assets/theme-lw6zFWr0.js"/><link rel="modulepreload" href="/assets/schemas-C9WWvlLx.js"/><link rel="modulepreload" href="/assets/form-elements-CwyibmN3.js"/><link rel="modulepreload" href="/assets/seo-cTWgUn8J.js"/><link rel="modulepreload" href="/assets/spacer-DrP4EPgO.js"/><link rel="modulepreload" href="/assets/header-section-BXbncSOA.js"/><link rel="modulepreload" href="/assets/hero-section-DEQxT86d.js"/><link rel="modulepreload" href="/assets/external-links-DJmzBAdF.js"/><link rel="modulepreload" href="/assets/index-DejkO13w.js"/><link rel="modulepreload" href="/assets/blog-ClCqgAip.js"/><link rel="modulepreload" href="/assets/featured-section-BxErEz3h.js"/><link rel="modulepreload" href="/assets/tag-0FxbzX23.js"/><link rel="modulepreload" href="/assets/team-stats-CONiT4sK.js"/><script nonce="1cd53d475d910a07e6469e66c4a00309">window.ENV = {"MODE":"production","DISCORD_CLIENT_ID":"738096608440483870","SENTRY_DSN":"https://c1ad8b66a0654947b019a7c70aca2169@o913766.ingest.sentry.io/5878963"};</script><script nonce="1cd53d475d910a07e6469e66c4a00309">
// This block of code allows us to check if the client hints have changed and
// force a reload of the page with updated hints if they have so you don't get
// a flash of incorrect content.
function checkClientHints() {
	if (!navigator.cookieEnabled) return;

	// set a short-lived cookie to make sure we can set cookies
	document.cookie = "canSetCookies=1; Max-Age=60; SameSite=Lax; path=/";
	const canSetCookies = document.cookie.includes("canSetCookies=1");
	document.cookie = "canSetCookies=; Max-Age=-1; path=/";
	if (!canSetCookies) return;

	const cookies = document.cookie.split(';').map(c => c.trim()).reduce((acc, cur) => {
		const [key, value] = cur.split('=');
		acc[key] = value;
		return acc;
	}, {});

	let cookieChanged = false;
	const hints = [
	{ name: "CH-prefers-color-scheme", actual: String(window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'), value: cookies["CH-prefers-color-scheme"] != null ? cookies["CH-prefers-color-scheme"] : encodeURIComponent("light") },
{ name: "CH-time-zone", actual: String(Intl.DateTimeFormat().resolvedOptions().timeZone), value: cookies["CH-time-zone"] != null ? cookies["CH-time-zone"] : encodeURIComponent("UTC") }
	];
	
	// Add safety check to prevent infinite refresh scenarios
	let reloadAttempts = parseInt(sessionStorage.getItem('clientHintReloadAttempts') || '0');
	if (reloadAttempts > 3) {
		console.warn('Too many client hint reload attempts, skipping reload to prevent infinite loop');
		return;
	}
	
	for (const hint of hints) {
		document.cookie = encodeURIComponent(hint.name) + '=' + encodeURIComponent(hint.actual) + '; Max-Age=31536000; SameSite=Lax; path=/';
		
		try {
			const decodedValue = decodeURIComponent(hint.value);
			if (decodedValue !== hint.actual) {
				cookieChanged = true;
			}
		} catch (error) {
			// Handle malformed URI gracefully
			console.warn('Failed to decode cookie value during client hint check:', error);
			// If we can't decode the value, assume it's different to be safe
			cookieChanged = true;
		}
	}
	
	if (cookieChanged) {
		// Increment reload attempts counter
		sessionStorage.setItem('clientHintReloadAttempts', String(reloadAttempts + 1));
		
		// Hide the page content immediately to prevent visual flicker
		const style = document.createElement('style');
		style.textContent = 'html { visibility: hidden !important; }';
		document.head.appendChild(style);

		// Trigger the reload
		window.location.reload();
	} else {
		// Reset reload attempts counter if no reload was needed
		sessionStorage.removeItem('clientHintReloadAttempts');
	}
}

checkClientHints();
</script><link rel="stylesheet" href="/assets/root-COBl6PrW.css"/><link rel="stylesheet" href="/assets/vendors-6xrzUfLb.css"/><link rel="stylesheet" href="/assets/tailwind-CvAr5bQu.css"/><link rel="stylesheet" href="/assets/prose-Co_yTA1P.css"/><link rel="stylesheet" href="/assets/app-BN3acEuW.css"/><noscript><link rel="stylesheet" href="/assets/no-script-MBRsV9LZ.css"/></noscript></head><body class="bg-white transition duration-500 dark:bg-gray-900"><div class="text-inverse px-5vw pointer-events-none fixed right-0 left-0 z-50 top-8" style="opacity:0;transform:translateY(-50px)"><div class="mx-auto flex w-full max-w-[96rem] justify-center"><div class="bg-inverse text-inverse pointer-events-auto relative max-w-xl rounded-lg p-8 pr-14 shadow-md"><button aria-label="dismiss message" class="text-secondary hover:text-inverse focus:text-inverse absolute top-8 right-4 rotate-45 transform"><svg width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 5.75V18.25"></path><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M18.25 12L5.75 12"></path></svg></button><div><div class="space-y-4"><p class="font-semibold">Season 7 of Chats with Kent is out: Become a Product Engineer.</p><div class="flex flex-wrap items-center justify-end gap-3"><a class="group relative inline-flex text-lg font-medium opacity-100 transition focus:outline-none disabled:opacity-50" href="/chats/07" data-discover="true"><div class="focus-ring absolute inset-0 transform rounded-full opacity-100 transition disabled:opacity-50 border-secondary bg-primary border-2 group-hover:border-transparent group-focus:border-transparent"></div><div class="relative flex h-full w-full items-center justify-center whitespace-nowrap text-primary space-x-3 px-8 py-4">Listen to season 7</div></a></div></div></div></div></div></div><div class="px-5vw relative overflow-visible py-9 lg:py-12"><nav class="navbar-container text-primary relative mx-auto flex max-w-384 items-center gap-4 overflow-visible"><div class="flex min-w-0 shrink-0 items-center gap-4"><a class="text-primary underlined block shrink-0 text-2xl font-medium whitespace-nowrap transition focus:outline-none" href="/" data-discover="true"><h1>Kent C. Dodds</h1></a><div class="shrink-0 max-lg:hidden"><div class="relative flex min-w-0 flex-1 items-center"><a aria-label="Search" class="focus-ring border-secondary hover:border-primary focus:border-primary text-primary inline-flex h-14 w-14 shrink-0 items-center justify-center rounded-full border-2 p-1 transition" href="/search" data-discover="true"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M3.75068 11.3405C1.65161 9.23359 1.65161 5.80439 3.75068 3.69748C4.76756 2.67681 6.11976 2.11292 7.55689 2.11292C8.99619 2.11292 10.3484 2.67681 11.3653 3.69748C13.4622 5.80439 13.4622 9.23359 11.3653 11.3405C9.2662 13.4452 5.84975 13.4452 3.75068 11.3405ZM18 16.4548L13.595 12.0333C15.7986 9.06529 15.5874 4.8471 12.9047 2.15226C10.0479 -0.715235 5.06587 -0.719606 2.21121 2.15226C-0.737072 5.10937 -0.737072 9.9286 2.21121 12.8857C3.68536 14.3654 5.62112 15.1041 7.55906 15.1041C9.14861 15.1041 10.7229 14.5752 12.0555 13.5785L16.4605 18L18 16.4548Z" fill="currentColor"></path></svg></a></div></div></div><div class="relative flex min-h-14 min-w-0 flex-1 items-center justify-center"><div class="navbar-links flex-none justify-center overflow-visible max-lg:hidden lg:flex"><ul class="flex"><li class="px-5 py-2" data-nav-item="blog"><a class="underlined hover:text-team-current focus:text-team-current block text-lg font-medium whitespace-nowrap focus:outline-none active text-team-current" href="/blog" data-discover="true">Blog</a></li><li class="px-5 py-2" data-nav-item="talks"><a class="underlined hover:text-team-current focus:text-team-current block text-lg font-medium whitespace-nowrap focus:outline-none text-secondary" href="/talks" data-discover="true">Talks</a></li><li class="px-5 py-2" data-nav-item="courses"><a class="underlined hover:text-team-current focus:text-team-current block text-lg font-medium whitespace-nowrap focus:outline-none text-secondary" href="/courses" data-discover="true">Courses</a></li><li class="px-5 py-2" data-nav-item="better"><a class="underlined hover:text-team-current focus:text-team-current block text-lg font-medium whitespace-nowrap focus:outline-none text-secondary" href="/better" data-discover="true">Better</a></li><li class="px-5 py-2" data-nav-item="discord"><a class="underlined hover:text-team-current focus:text-team-current block text-lg font-medium whitespace-nowrap focus:outline-none text-secondary" href="/discord" data-discover="true">Discord</a></li><li class="px-5 py-2" data-nav-item="calls"><a class="underlined hover:text-team-current focus:text-team-current block text-lg font-medium whitespace-nowrap focus:outline-none text-secondary" href="/calls/05" data-discover="true">Calls</a></li><li class="px-5 py-2" data-nav-item="about"><a class="underlined hover:text-team-current focus:text-team-current block text-lg font-medium whitespace-nowrap focus:outline-none text-secondary" href="/about" data-discover="true">About</a></li></ul></div></div><div class="flex min-w-0 shrink-0 items-center justify-end"><div class="block lg:hidden"><div><button class="focus:border-primary hover:border-primary border-secondary text-primary inline-flex h-14 w-14 items-center justify-center rounded-full border-2 p-1 transition focus:outline-none" popoverTarget="mobile-menu"><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="6" y="9" width="20" height="2" rx="1" fill="currentColor"></rect><rect x="6" y="15" width="20" height="2" rx="1" fill="currentColor"></rect><rect x="6" y="21" width="20" height="2" rx="1" fill="currentColor"></rect></svg></button><div id="mobile-menu" popover="" class="fixed top-[128px] right-0 bottom-0 left-0 m-0 h-[calc(100svh-128px)] w-full"><div class="bg-primary flex h-full flex-col overflow-y-scroll border-t border-gray-200 pb-12 dark:border-gray-600"><div class="px-5vw border-b border-gray-200 py-4 dark:border-gray-600"><div class="relative flex min-w-0 flex-1 items-center"><form class="relative flex min-w-0 flex-1 flex-col" action="/search" method="get"><div class="bg-primary pointer-events-auto flex min-h-14 w-full overflow-hidden rounded-full shadow-[inset_0_0_0_2px_var(--border-secondary)] transition-shadow focus-within:shadow-[inset_0_0_0_2px_var(--color-team-current)] hover:shadow-[inset_0_0_0_2px_var(--color-team-current)]"><label id="downshift-_R_6eilH1_-label" for="downshift-_R_6eilH1_-input" class="sr-only">Search</label><a aria-label="Search" aria-disabled="true" tabindex="-1" class="focus-ring text-primary z-10 inline-flex h-14 w-14 shrink-0 items-center justify-center border-2 border-transparent p-1 focus:outline-none pointer-events-none" href="/search" data-discover="true"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M3.75068 11.3405C1.65161 9.23359 1.65161 5.80439 3.75068 3.69748C4.76756 2.67681 6.11976 2.11292 7.55689 2.11292C8.99619 2.11292 10.3484 2.67681 11.3653 3.69748C13.4622 5.80439 13.4622 9.23359 11.3653 11.3405C9.2662 13.4452 5.84975 13.4452 3.75068 11.3405ZM18 16.4548L13.595 12.0333C15.7986 9.06529 15.5874 4.8471 12.9047 2.15226C10.0479 -0.715235 5.06587 -0.719606 2.21121 2.15226C-0.737072 5.10937 -0.737072 9.9286 2.21121 12.8857C3.68536 14.3654 5.62112 15.1041 7.55906 15.1041C9.14861 15.1041 10.7229 14.5752 12.0555 13.5785L16.4605 18L18 16.4548Z" fill="currentColor"></path></svg></a><div class="relative flex min-w-0 flex-1"><input aria-activedescendant="" aria-autocomplete="list" aria-controls="downshift-_R_6eilH1_-menu" aria-expanded="false" aria-labelledby="downshift-_R_6eilH1_-label" autoComplete="off" id="downshift-_R_6eilH1_-input" role="combobox" type="text" data-nav-search-input="true" placeholder="Semantic search..." class="text-primary bg-transparent h-14 w-full py-0 pr-14 pl-3 text-lg font-medium focus:outline-none placeholder:text-secondary" name="q" value=""/><div class="pointer-events-auto absolute top-1/2 right-4 z-10 flex h-8 w-8 -translate-y-1/2 items-center justify-center"></div></div></div><div class="pointer-events-auto absolute top-full right-0 left-0 z-50 mt-2"><ul id="downshift-_R_6eilH1_-menu" role="listbox" aria-label="Search suggestions" class="rounded-2xl overflow-hidden border-0"></ul></div></form></div></div><a class="hover:bg-secondary focus:bg-secondary text-primary px-5vw hover:text-team-current border-b border-gray-200 py-9 dark:border-gray-600" href="/" data-discover="true">Home</a><a class="hover:bg-secondary focus:bg-secondary text-primary px-5vw hover:text-team-current border-b border-gray-200 py-9 dark:border-gray-600" href="/blog" data-discover="true">Blog</a><a class="hover:bg-secondary focus:bg-secondary text-primary px-5vw hover:text-team-current border-b border-gray-200 py-9 dark:border-gray-600" href="/talks" data-discover="true">Talks</a><a class="hover:bg-secondary focus:bg-secondary text-primary px-5vw hover:text-team-current border-b border-gray-200 py-9 dark:border-gray-600" href="/courses" data-discover="true">Courses</a><a class="hover:bg-secondary focus:bg-secondary text-primary px-5vw hover:text-team-current border-b border-gray-200 py-9 dark:border-gray-600" href="/better" data-discover="true">Better</a><a class="hover:bg-secondary focus:bg-secondary text-primary px-5vw hover:text-team-current border-b border-gray-200 py-9 dark:border-gray-600" href="/discord" data-discover="true">Discord</a><a class="hover:bg-secondary focus:bg-secondary text-primary px-5vw hover:text-team-current border-b border-gray-200 py-9 dark:border-gray-600" href="/calls/05" data-discover="true">Calls</a><a class="hover:bg-secondary focus:bg-secondary text-primary px-5vw hover:text-team-current border-b border-gray-200 py-9 dark:border-gray-600" href="/about" data-discover="true">About</a><div class="py-9 text-center"><form data-discover="true" action="/action/set-theme" method="post"><input type="hidden" name="theme" value="dark"/><button type="submit" class="focus-ring border-secondary hover:border-primary focus:border-primary inline-flex h-14 cursor-pointer items-center justify-center overflow-hidden rounded-full border-2 p-1 transition px-8"><div class="relative h-8 w-8"><span class="absolute inset-0 transform transition-transform duration-700 motion-reduce:duration-[0s] rotate-90" style="transform-origin:50% 100px"><svg class="w-full" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.228 7.9439C10.5176 8.82869 7.75757 12.1054 7.75757 15.9987C7.75757 20.5716 11.5618 24.2919 16.2367 24.2919C19.2323 24.2919 21.9337 22.7699 23.4514 20.3585C23.2779 20.3676 23.1033 20.3722 22.9287 20.3722C17.7826 20.3722 13.5951 16.2772 13.5951 11.2435C13.5951 10.1032 13.8108 8.98914 14.228 7.9439M16.2367 26.4993C10.3171 26.4993 5.50037 21.7899 5.50037 15.9987C5.50037 10.2109 10.3171 5.49927 16.2367 5.49927C16.6598 5.49927 17.0501 5.72963 17.2435 6.09753C17.438 6.46428 17.4087 6.90668 17.1638 7.24363C16.3059 8.42297 15.8535 9.80631 15.8535 11.2435C15.8535 15.06 19.0272 18.1637 22.9287 18.1637C23.6483 18.1637 24.3573 18.0582 25.0359 17.8531C25.4378 17.7293 25.8785 17.8359 26.1738 18.1304C26.4715 18.425 26.5758 18.8559 26.4446 19.2467C25.0019 23.5847 20.9 26.4993 16.2367 26.4993" fill="currentColor"></path></svg></span><span class="absolute inset-0 transform transition-transform duration-700 motion-reduce:duration-[0s] rotate-0" style="transform-origin:50% 100px"><svg class="w-full" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M16.0003 21.4194C13.0123 21.4194 10.5813 18.9874 10.5813 15.9994C10.5813 13.0114 13.0123 10.5804 16.0003 10.5804C18.9883 10.5804 21.4193 13.0114 21.4193 15.9994C21.4193 18.9874 18.9883 21.4194 16.0003 21.4194M16.0003 8.64136C11.9423 8.64136 8.64233 11.9414 8.64233 15.9994C8.64233 20.0574 11.9423 23.3574 16.0003 23.3574C20.0573 23.3574 23.3583 20.0574 23.3583 15.9994C23.3583 11.9414 20.0573 8.64136 16.0003 8.64136" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M16.0004 7.08447C16.5364 7.08447 16.9704 6.64946 16.9704 6.11446V3.34546C16.9704 2.81046 16.5364 2.37646 16.0004 2.37646C15.4644 2.37646 15.0304 2.81046 15.0304 3.34546V6.11446C15.0304 6.64946 15.4644 7.08447 16.0004 7.08447" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M6.11559 15.0298H3.34559C2.81059 15.0298 2.37659 15.4648 2.37659 15.9998C2.37659 16.5348 2.81059 16.9688 3.34559 16.9688H6.11559C6.65159 16.9688 7.08459 16.5348 7.08459 15.9998C7.08459 15.4648 6.65159 15.0298 6.11559 15.0298" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M16.0004 24.9146C15.4644 24.9146 15.0304 25.3496 15.0304 25.8846V28.6536C15.0304 29.1886 15.4644 29.6236 16.0004 29.6236C16.5364 29.6236 16.9704 29.1886 16.9704 28.6536V25.8846C16.9704 25.3496 16.5364 24.9146 16.0004 24.9146" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M28.6542 15.0298H25.8842C25.3492 15.0298 24.9152 15.4648 24.9152 15.9998C24.9152 16.5348 25.3492 16.9688 25.8842 16.9688H28.6542C29.1902 16.9688 29.6242 16.5348 29.6242 15.9998C29.6242 15.4648 29.1902 15.0298 28.6542 15.0298" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M22.9896 9.97995C23.2376 9.97995 23.4856 9.88495 23.6756 9.69595L24.7036 8.66795C25.0816 8.28995 25.0816 7.67495 24.7036 7.29595C24.3246 6.91795 23.7106 6.91795 23.3316 7.29595L22.3036 8.32495C21.9256 8.70295 21.9256 9.31695 22.3036 9.69595C22.4926 9.88495 22.7416 9.97995 22.9896 9.97995" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M8.32507 9.69593C8.51407 9.88493 8.76207 9.97993 9.01107 9.97993C9.25907 9.97993 9.50707 9.88493 9.69607 9.69593C10.0751 9.31693 10.0751 8.70293 9.69607 8.32493L8.66807 7.29693C8.28907 6.91893 7.67507 6.91893 7.29707 7.29693C6.91807 7.67493 6.91807 8.28993 7.29707 8.66793L8.32507 9.69593Z" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M8.32507 22.3043L7.29707 23.3313C6.91807 23.7093 6.91807 24.3243 7.29707 24.7023C7.48607 24.8923 7.73407 24.9873 7.98207 24.9873C8.23007 24.9873 8.47807 24.8923 8.66807 24.7023L9.69607 23.6753C10.0751 23.2973 10.0751 22.6833 9.69607 22.3043C9.31807 21.9253 8.70307 21.9253 8.32507 22.3043" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M23.6752 22.3043C23.2962 21.9253 22.6822 21.9253 22.3032 22.3043C21.9252 22.6833 21.9252 23.2973 22.3042 23.6753L23.3322 24.7023C23.5212 24.8923 23.7692 24.9873 24.0182 24.9873C24.2662 24.9873 24.5142 24.8923 24.7032 24.7023C25.0822 24.3243 25.0822 23.7093 24.7032 23.3313L23.6752 22.3043Z" fill="currentColor"></path></svg></span><span class="absolute inset-0 transform transition-transform duration-700 motion-reduce:duration-[0s] translate-y-10" style="transform-origin:50% 100px"><svg width="32" height="32" fill="none" viewBox="0 0 24 24"><path d="M5.75 5.75a1 1 0 011-1h10.5a1 1 0 011 1v8.5H5.75v-8.5zM18.25 14.5l.746 3.544a1 1 0 01-.979 1.206H5.982a1 1 0 01-.978-1.206L5.75 14.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></div><span class="ml-4">Switch to dark mode</span></button></form></div></div></div></div></div><div class="ml-4 flex items-center gap-4 lg:ml-0"><div class="noscript-hidden hidden lg:block"><form data-discover="true" action="/action/set-theme" method="post"><input type="hidden" name="theme" value="dark"/><button type="submit" class="focus-ring border-secondary hover:border-primary focus:border-primary inline-flex h-14 cursor-pointer items-center justify-center overflow-hidden rounded-full border-2 p-1 transition w-14"><div class="relative h-8 w-8"><span class="absolute inset-0 transform transition-transform duration-700 motion-reduce:duration-[0s] rotate-90" style="transform-origin:50% 100px"><svg class="w-full" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.228 7.9439C10.5176 8.82869 7.75757 12.1054 7.75757 15.9987C7.75757 20.5716 11.5618 24.2919 16.2367 24.2919C19.2323 24.2919 21.9337 22.7699 23.4514 20.3585C23.2779 20.3676 23.1033 20.3722 22.9287 20.3722C17.7826 20.3722 13.5951 16.2772 13.5951 11.2435C13.5951 10.1032 13.8108 8.98914 14.228 7.9439M16.2367 26.4993C10.3171 26.4993 5.50037 21.7899 5.50037 15.9987C5.50037 10.2109 10.3171 5.49927 16.2367 5.49927C16.6598 5.49927 17.0501 5.72963 17.2435 6.09753C17.438 6.46428 17.4087 6.90668 17.1638 7.24363C16.3059 8.42297 15.8535 9.80631 15.8535 11.2435C15.8535 15.06 19.0272 18.1637 22.9287 18.1637C23.6483 18.1637 24.3573 18.0582 25.0359 17.8531C25.4378 17.7293 25.8785 17.8359 26.1738 18.1304C26.4715 18.425 26.5758 18.8559 26.4446 19.2467C25.0019 23.5847 20.9 26.4993 16.2367 26.4993" fill="currentColor"></path></svg></span><span class="absolute inset-0 transform transition-transform duration-700 motion-reduce:duration-[0s] rotate-0" style="transform-origin:50% 100px"><svg class="w-full" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M16.0003 21.4194C13.0123 21.4194 10.5813 18.9874 10.5813 15.9994C10.5813 13.0114 13.0123 10.5804 16.0003 10.5804C18.9883 10.5804 21.4193 13.0114 21.4193 15.9994C21.4193 18.9874 18.9883 21.4194 16.0003 21.4194M16.0003 8.64136C11.9423 8.64136 8.64233 11.9414 8.64233 15.9994C8.64233 20.0574 11.9423 23.3574 16.0003 23.3574C20.0573 23.3574 23.3583 20.0574 23.3583 15.9994C23.3583 11.9414 20.0573 8.64136 16.0003 8.64136" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M16.0004 7.08447C16.5364 7.08447 16.9704 6.64946 16.9704 6.11446V3.34546C16.9704 2.81046 16.5364 2.37646 16.0004 2.37646C15.4644 2.37646 15.0304 2.81046 15.0304 3.34546V6.11446C15.0304 6.64946 15.4644 7.08447 16.0004 7.08447" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M6.11559 15.0298H3.34559C2.81059 15.0298 2.37659 15.4648 2.37659 15.9998C2.37659 16.5348 2.81059 16.9688 3.34559 16.9688H6.11559C6.65159 16.9688 7.08459 16.5348 7.08459 15.9998C7.08459 15.4648 6.65159 15.0298 6.11559 15.0298" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M16.0004 24.9146C15.4644 24.9146 15.0304 25.3496 15.0304 25.8846V28.6536C15.0304 29.1886 15.4644 29.6236 16.0004 29.6236C16.5364 29.6236 16.9704 29.1886 16.9704 28.6536V25.8846C16.9704 25.3496 16.5364 24.9146 16.0004 24.9146" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M28.6542 15.0298H25.8842C25.3492 15.0298 24.9152 15.4648 24.9152 15.9998C24.9152 16.5348 25.3492 16.9688 25.8842 16.9688H28.6542C29.1902 16.9688 29.6242 16.5348 29.6242 15.9998C29.6242 15.4648 29.1902 15.0298 28.6542 15.0298" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M22.9896 9.97995C23.2376 9.97995 23.4856 9.88495 23.6756 9.69595L24.7036 8.66795C25.0816 8.28995 25.0816 7.67495 24.7036 7.29595C24.3246 6.91795 23.7106 6.91795 23.3316 7.29595L22.3036 8.32495C21.9256 8.70295 21.9256 9.31695 22.3036 9.69595C22.4926 9.88495 22.7416 9.97995 22.9896 9.97995" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M8.32507 9.69593C8.51407 9.88493 8.76207 9.97993 9.01107 9.97993C9.25907 9.97993 9.50707 9.88493 9.69607 9.69593C10.0751 9.31693 10.0751 8.70293 9.69607 8.32493L8.66807 7.29693C8.28907 6.91893 7.67507 6.91893 7.29707 7.29693C6.91807 7.67493 6.91807 8.28993 7.29707 8.66793L8.32507 9.69593Z" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M8.32507 22.3043L7.29707 23.3313C6.91807 23.7093 6.91807 24.3243 7.29707 24.7023C7.48607 24.8923 7.73407 24.9873 7.98207 24.9873C8.23007 24.9873 8.47807 24.8923 8.66807 24.7023L9.69607 23.6753C10.0751 23.2973 10.0751 22.6833 9.69607 22.3043C9.31807 21.9253 8.70307 21.9253 8.32507 22.3043" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M23.6752 22.3043C23.2962 21.9253 22.6822 21.9253 22.3032 22.3043C21.9252 22.6833 21.9252 23.2973 22.3042 23.6753L23.3322 24.7023C23.5212 24.8923 23.7692 24.9873 24.0182 24.9873C24.2662 24.9873 24.5142 24.8923 24.7032 24.7023C25.0822 24.3243 25.0822 23.7093 24.7032 23.3313L23.6752 22.3043Z" fill="currentColor"></path></svg></span><span class="absolute inset-0 transform transition-transform duration-700 motion-reduce:duration-[0s] translate-y-10" style="transform-origin:50% 100px"><svg width="32" height="32" fill="none" viewBox="0 0 24 24"><path d="M5.75 5.75a1 1 0 011-1h10.5a1 1 0 011 1v8.5H5.75v-8.5zM18.25 14.5l.746 3.544a1 1 0 01-.979 1.206H5.982a1 1 0 01-.978-1.206L5.75 14.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></div><span class="ml-4 sr-only">Switch to dark mode</span></button></form></div></div><a aria-label="Login" class="ml-4 inline-flex h-14 w-14 items-center justify-center rounded-full focus:outline-none" href="/login" data-discover="true"><div class="absolute"><svg height="56" width="56" viewBox="0 0 56 56"><path d="M29.465,0.038373A28,28,0,0,1,52.948,40.712L51.166,39.804A26,26,0,0,0,29.361,2.0356Z" class="text-team-yellow" fill="currentColor"></path><path d="M51.483,43.250A28,28,0,0,1,4.5172,43.250L6.1946,42.161A26,26,0,0,0,49.805,42.161Z" class="text-team-blue" fill="currentColor"></path><path d="M3.0518,40.712A28,28,0,0,1,26.535,0.038373L26.639,2.0356A26,26,0,0,0,4.8338,39.804Z" class="text-team-red" fill="currentColor"></path></svg></div><img class="inline h-10 w-10 rounded-full select-none" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_pad,w_80,h_80,q_auto,f_auto/kentcdodds.com/illustrations/kody/kody_profile_gray" alt="Kody Profile in Gray" crossorigin="anonymous"/></a></div></nav></div><div class="set-color-team-current-yellow"><header class="relative mx-10vw"><div class="relative grid grid-cols-4 gap-x-4 md:grid-cols-8 lg:grid-cols-12 lg:gap-x-6 mx-auto max-w-7xl lg: mb-24 h-auto pt-24 lg:min-h-[40rem] lg:pb-12 lg:mb-0"><div class="col-span-full mb-12 lg:mb-0 px-10 lg:col-span-5 lg:col-start-7"><img style="aspect-ratio:0.71" class="motion-safe:animate-hero-image-reveal h-auto w-full object-contain max-h-[50vh]" alt="Illustration of skis" src="https://res.cloudinary.com/kentcdodds-com/image/upload/w_918,q_auto,f_auto/kentcdodds.com/illustrations/skis_z5lkc3" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/w_256,q_auto,f_auto/kentcdodds.com/illustrations/skis_z5lkc3 256w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_550,q_auto,f_auto/kentcdodds.com/illustrations/skis_z5lkc3 550w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_700,q_auto,f_auto/kentcdodds.com/illustrations/skis_z5lkc3 700w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_900,q_auto,f_auto/kentcdodds.com/illustrations/skis_z5lkc3 900w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_1300,q_auto,f_auto/kentcdodds.com/illustrations/skis_z5lkc3 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_1800,q_auto,f_auto/kentcdodds.com/illustrations/skis_z5lkc3 1800w" sizes="(max-width: 1023px) 80vw, (min-width: 1024px) and (max-width: 1279px) 50vw, (min-width: 1280px) 900px" crossorigin="anonymous"/></div><div class="col-span-full pt-6 lg:col-start-1 lg:row-start-1 lg:flex lg:h-full lg:flex-col lg:col-span-5"><div class="flex flex-auto flex-col"><h2 class="leading-tight text-3xl md:text-4xl text-black dark:text-white motion-safe:animate-hero-text-reveal" style="--hero-text-reveal-opacity-step-0:1;--hero-text-reveal-x-step-0:0;--hero-text-reveal-y-step-0:0px;--hero-text-reveal-opacity-step-1:1;--hero-text-reveal-x-step-1:0;--hero-text-reveal-y-step-1:0px;--hero-text-reveal-opacity-step-2:1;--hero-text-reveal-x-step-2:0;--hero-text-reveal-y-step-2:0px;--hero-text-reveal-opacity-step-3:1;--hero-text-reveal-x-step-3:0;--hero-text-reveal-y-step-3:0px">Learn development with great articles.</h2><p class="leading-tight text-3xl md:text-4xl text-gray-600 dark:text-slate-500 motion-safe:animate-hero-text-reveal mt-3" style="--hero-text-reveal-opacity-step-0:0;--hero-text-reveal-x-step-0:0;--hero-text-reveal-y-step-0:25px;--hero-text-reveal-opacity-step-1:1;--hero-text-reveal-x-step-1:0;--hero-text-reveal-y-step-1:0px;--hero-text-reveal-opacity-step-2:1;--hero-text-reveal-x-step-2:0;--hero-text-reveal-y-step-2:0px;--hero-text-reveal-opacity-step-3:1;--hero-text-reveal-x-step-3:0;--hero-text-reveal-y-step-3:0px"><span>Find the latest of my writing here.</span><a class="text-secondary underlined hover:text-team-current focus:text-team-current ml-2 inline-block" href="/blog/rss.xml" data-discover="true"><svg width="24" height="24" fill="none" viewBox="0 0 24 24"><title>Get my blog as RSS</title><path fill-rule="evenodd" clip-rule="evenodd" d="M7.33465 15.52C6.23018 15.52 5.33459 16.4153 5.33459 17.5199C5.33459 18.6244 6.23018 19.5201 7.33465 19.5201C8.43912 19.5201 9.33471 18.6244 9.33471 17.5199C9.33471 16.4153 8.43912 15.52 7.33465 15.52Z" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M5.33472 10.52V13.0919C8.87972 13.0919 11.7639 15.9753 11.7639 19.5202H14.3347C14.3347 14.5577 10.2973 10.52 5.33472 10.52Z" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M5.33472 5.52002V8.18702C11.5846 8.18702 16.6688 13.2701 16.6688 19.52H19.3347C19.3347 11.8001 13.0546 5.52002 5.33472 5.52002Z" fill="currentColor"></path></svg></a></p><div class="motion-safe:animate-hero-text-reveal mt-14 flex flex-col space-y-4" style="--hero-text-reveal-opacity-step-0:0;--hero-text-reveal-x-step-0:0;--hero-text-reveal-y-step-0:25px;--hero-text-reveal-opacity-step-1:0;--hero-text-reveal-x-step-1:0;--hero-text-reveal-y-step-1:25px;--hero-text-reveal-opacity-step-2:1;--hero-text-reveal-x-step-2:0;--hero-text-reveal-y-step-2:0px;--hero-text-reveal-opacity-step-3:1;--hero-text-reveal-x-step-3:0;--hero-text-reveal-y-step-3:0px"><div class="w-full"><form action="/blog" method="GET"><div class="relative"><button title="Search" type="button" class="absolute top-0 left-6 flex h-full items-center justify-center border-none bg-transparent p-0 text-slate-500 cursor-default"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M3.75068 11.3405C1.65161 9.23359 1.65161 5.80439 3.75068 3.69748C4.76756 2.67681 6.11976 2.11292 7.55689 2.11292C8.99619 2.11292 10.3484 2.67681 11.3653 3.69748C13.4622 5.80439 13.4622 9.23359 11.3653 11.3405C9.2662 13.4452 5.84975 13.4452 3.75068 11.3405ZM18 16.4548L13.595 12.0333C15.7986 9.06529 15.5874 4.8471 12.9047 2.15226C10.0479 -0.715235 5.06587 -0.719606 2.21121 2.15226C-0.737072 5.10937 -0.737072 9.9286 2.21121 12.8857C3.68536 14.3654 5.62112 15.1041 7.55906 15.1041C9.14861 15.1041 10.7229 14.5752 12.0555 13.5785L16.4605 18L18 16.4548Z" fill="currentColor"></path></svg></button><input type="search" placeholder="Search posts" class="text-primary bg-primary border-secondary focus:bg-secondary hover:border-team-current focus:border-team-current w-full appearance-none rounded-full border py-6 pr-6 pl-14 text-lg font-medium focus:outline-none md:pr-24" name="q" value=""/><div class="absolute top-0 right-6 hidden h-full w-14 items-center justify-between text-lg font-medium text-slate-500 md:flex"><input title="Showing all posts" aria-label="Showing all posts" type="checkbox" aria-checked="mixed" data-reach-mixed-checkbox=""/><div class="flex-1"></div>211</div></div><div class="mt-2 pr-6 pl-14 text-sm text-slate-500"><a class="underlined hover:text-team-current focus:text-team-current inline-block" href="/search" data-discover="true">Try the full site search</a></div></form></div></div></div></div></div></header><div class="relative mx-10vw"><div class="relative grid grid-cols-4 gap-x-4 md:grid-cols-8 lg:grid-cols-12 lg:gap-x-6 mx-auto max-w-7xl mb-14"><div class="relative col-span-full h-20"><div class="absolute"><div class="group relative inline-flex h-8 flex-col justify-end set-color-team-current-unknown justify-end"><div class="absolute flex h-8 items-center gap-2 text-sm opacity-0 transition group-hover:opacity-100 focus-within:opacity-100 left-0 -top-9"><span title="Total reads" class="text-primary">956.59k<!-- --> </span><a class="text-secondary underlined hover:text-team-current focus:text-team-current" href="/teams#read-rankings" data-discover="true">what&#x27;s this?</a></div><div class="text-center mb-2"><a class="underlined" href="/login" data-discover="true">Login</a></div><ul class="border-team-current relative flex h-0 overflow-visible px-4 border-t"><li class="h-0 overflow-visible"><button tabindex="0" title="Rank of the yellow team" class="relative flex origin-right items-center justify-center focus:outline-none" style="width:22px"><div class="relative flex justify-center rounded-b-md bg-team-yellow" style="height:36px;width:16px;transform:none"><span class="text-primary absolute text-lg font-medium bottom-0" style="opacity:0;font-size:0px;transform:none">2.214</span></div></button></li><li class="h-0 overflow-visible"><button tabindex="0" title="Rank of the red team" class="relative flex origin-right items-center justify-center focus:outline-none" style="width:22px"><div class="relative flex justify-center rounded-b-md bg-team-red" style="height:15.84px;width:16px;transform:none"><span class="text-primary absolute text-lg font-medium bottom-0" style="opacity:0;font-size:0px;transform:none">1.105</span></div></button></li><li class="h-0 overflow-visible"><button tabindex="0" title="Rank of the blue team" class="relative flex origin-right items-center justify-center focus:outline-none" style="width:22px"><div class="relative flex justify-center rounded-b-md bg-team-blue" style="height:12px;width:16px;transform:none"><span class="text-primary absolute text-lg font-medium bottom-0" style="opacity:0;font-size:0px;transform:none">0.895</span></div></button></li></ul></div></div></div><div class="col-span-full h-10 lg:h-12"></div><p class="max-w-full text-lg text-secondary col-span-full">The <strong class="text-team-current set-color-team-current-yellow">yellow</strong> team is in the lead. <a class="underlined" href="/login" data-discover="true">Login or sign up</a> to choose your team!</p><div class="col-span-full h-20 lg:h-24"></div><div class="text-lg font-medium text-black dark:text-white col-span-full mb-6">Search blog by topics</div><div class="col-span-full -mr-4 -mb-4 flex flex-wrap lg:col-span-10"><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="ai"/><span>ai</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="cloudflare"/><span>cloudflare</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="dev"/><span>dev</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="personal"/><span>personal</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="review"/><span>review</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="career"/><span>career</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="react"/><span>react</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="node"/><span>node</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="databases"/><span>databases</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="remix"/><span>remix</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="typescript"/><span>typescript</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="user experience"/><span>user experience</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="css"/><span>css</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="testing"/><span>testing</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="javascript"/><span>javascript</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="productivity"/><span>productivity</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="open source"/><span>open source</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="programming"/><span>programming</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="teaching"/><span>teaching</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="state"/><span>state</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="performance"/><span>performance</span></label><label class="relative mr-4 mb-4 block h-auto w-auto cursor-pointer rounded-full px-6 py-3 transition text-primary bg-secondary focus-ring opacity-100"><input type="checkbox" class="sr-only" value="learning"/><span>learning</span></label></div></div></div><div><div class="relative mx-10vw"><div class="relative grid grid-cols-4 gap-x-4 md:grid-cols-8 lg:grid-cols-12 lg:gap-x-6 mx-auto max-w-7xl mb-6"><div class="col-span-full flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between"><div class="text-lg font-medium text-black dark:text-white m-0">Articles</div><label class="flex items-center gap-3 text-sm font-medium text-slate-500"><span>Sort by</span><span class="relative"><select class="peer text-primary bg-primary border-secondary focus:bg-secondary hover:border-team-current focus:border-team-current appearance-none rounded-full border py-2 pr-11 pl-5 focus:outline-none"><option value="auto" selected="">Newest</option><option value="popular">Most popular</option><option value="oldest">Oldest</option></select><svg width="24" height="24" fill="none" viewBox="0 0 24 24" class="peer-hover:text-team-current peer-focus:text-team-current pointer-events-none absolute top-1/2 right-3 -translate-y-1/2 text-slate-500" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M15.25 10.75L12 14.25L8.75 10.75"></path></svg></span></label></div></div></div><div class="mb-10"><div class="w-full px-8 lg:px-0 set-color-team-current-yellow"><div class="rounded-lg bg-gray-100 lg:bg-transparent dark:bg-gray-800 lg:dark:bg-transparent"><div class="-mx-8 lg:mx-0"><div class="relative mx-10vw"><div class="relative grid grid-cols-4 gap-x-4 md:grid-cols-8 lg:grid-cols-12 lg:gap-x-6 mx-auto max-w-7xl group rounded-lg px-4 pt-14 pb-6 sm:px-0 md:pb-12 lg:bg-gray-100 lg:dark:bg-gray-800"><div class="col-span-full lg:col-span-5 lg:col-start-2 lg:flex lg:flex-col lg:justify-between"><div><h2 class="text-lg font-medium text-black dark:text-white">Featured article</h2><h3 class="leading-tight text-3xl md:text-4xl text-black dark:text-white mt-12">useEffect vs useLayoutEffect</h3><div class="mt-6 text-xl font-medium text-slate-500">3 min read</div></div><div class="mt-12 flex items-center justify-between"><a class="text-primary inline-flex cursor-pointer items-center text-left font-medium transition focus:outline-none" href="/blog/useeffect-vs-uselayouteffect" data-discover="true"><span class="mr-8 text-xl font-medium">Read full article<div class="focus-ring absolute inset-0 right-0 left-0 z-10 rounded-lg md:-right-12 md:-left-12 lg:right-0 lg:left-0"></div></span><div class="relative inline-flex h-14 w-14 flex-none items-center justify-center p-1"><div class="absolute text-gray-200 dark:text-gray-600"><svg width="60" height="60"><circle stroke="currentColor" stroke-width="2" fill="transparent" r="28" cx="30" cy="30"></circle><circle class="text-primary" stroke="currentColor" stroke-width="2" fill="transparent" r="28" cx="30" cy="30" style="stroke-dasharray:175.92918860102841 175.92918860102841;transform:rotate(-90deg);transform-origin:50% 50%;transform-box:fill-box"></circle></svg></div><span><svg class="transform -rotate-90" width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.101 5.5V23.1094L9.40108 17.4095L8.14807 18.6619L15.9862 26.5L23.852 18.6342L22.5996 17.3817L16.8725 23.1094V5.5H15.101Z" fill="currentColor"></path></svg></span></div></a></div></div><div class="relative col-span-full mt-12 lg:col-span-4 lg:col-start-8"><div class="relative aspect-[4/3] lg:aspect-[4/5]"><img src="data:image/webp;base64,UklGRiYBAABXRUJQVlA4IBoBAADwDACdASpkAEgAPqE+mUi/pqIhMztpI/AUCWcAz9TUo/NGmOjLQeeGoceI0bMr+hYlbtE7ki7qvzMrY8kINfcxV/2MJfX7AZfwhCIsQZZ4qWIjkGFqHLaTW4Yxrq4hEuuZKWGcu1lCdXtHENcJ52CAAP7Wn7rdDv/dY/S6+/2u54df/Ml7Dz8ap/jItacd12b0MTK3+cqnAhU5r+oEnMiy4PF7alUHF2o/E8++SwcoiAQ10fmjXH0W4vAWxFWx1GfBzdb7gHYrgedfa+TqiAFBp0wVpe9io47g4movXusyV3OQAc7Zhs+nN39lHQk9+YRz18MMIJQ17ifGKdHHvT5zKMi3Bkq7FKGGcwp4mPTqNWySSdjBPoAAAAA=" class="absolute h-full w-full rounded-lg object-cover object-center" alt="by Mohamed Nohassi"/><div class="absolute h-full w-full rounded-lg object-cover object-center backdrop-blur-xl"></div><img class="absolute h-full w-full rounded-lg object-cover object-center transition-opacity opacity-0" alt="by Mohamed Nohassi" src="https://res.cloudinary.com/kentcdodds-com/image/upload/w_1200,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1474718723952-48d2a016108f" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/w_300,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1474718723952-48d2a016108f 300w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_600,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1474718723952-48d2a016108f 600w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_900,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1474718723952-48d2a016108f 900w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_1700,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1474718723952-48d2a016108f 1700w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_2500,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1474718723952-48d2a016108f 2500w" sizes="(max-width: 1023px) 80vw, (min-width:1024px) and (max-width:1620px) 25vw, 410px" crossorigin="anonymous" id="_R_396ql_" nonce="1cd53d475d910a07e6469e66c4a00309" onload="this.classList.remove(&#x27;opacity-0&#x27;)"/><noscript class="absolute z-10 h-full w-full"><img class="rounded-lg object-cover object-center" alt="by Mohamed Nohassi" src="https://res.cloudinary.com/kentcdodds-com/image/upload/w_1200,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1474718723952-48d2a016108f" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/w_300,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1474718723952-48d2a016108f 300w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_600,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1474718723952-48d2a016108f 600w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_900,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1474718723952-48d2a016108f 900w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_1700,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1474718723952-48d2a016108f 1700w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_2500,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1474718723952-48d2a016108f 2500w" sizes="(max-width: 1023px) 80vw, (min-width:1024px) and (max-width:1620px) 25vw, 410px" crossorigin="anonymous"/></noscript></div><div class="bg-team-current absolute top-6 left-6 z-20 h-4 w-4 rounded-full p-1"></div><button class="ring-team-current rounded-lg bg-white p-3 text-lg font-medium whitespace-nowrap text-black shadow transition group-hover:opacity-100 peer-hover:opacity-100 peer-focus:opacity-100 hover:opacity-100 hover:shadow-md hover:ring-4 focus:opacity-100 focus:ring-4 focus:outline-none lg:px-8 lg:py-4 lg:opacity-0 absolute top-6 left-6 z-20"><span class="sr-only lg:not-sr-only lg:inline">Click to copy url</span><span class="inline lg:sr-only"><svg width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M6.5 15.25V15.25C5.5335 15.25 4.75 14.4665 4.75 13.5V6.75C4.75 5.64543 5.64543 4.75 6.75 4.75H13.5C14.4665 4.75 15.25 5.5335 15.25 6.5V6.5"></path><rect width="10.5" height="10.5" x="8.75" y="8.75" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" rx="2"></rect></svg></span></button></div></div></div></div></div></div></div><div class="relative mx-10vw"><div class="relative grid grid-cols-4 gap-x-4 md:grid-cols-8 lg:grid-cols-12 lg:gap-x-6 mx-auto max-w-7xl mb-64"><div class="col-span-4 mb-10"><div class="relative w-full"><a class="group peer relative block w-full focus:outline-none" href="/blog/implementing-hybrid-semantic-lexical-search" data-discover="true"><div class="relative aspect-[3/4] rounded-lg"><img src="data:image/webp;base64,UklGRuwAAABXRUJQVlA4IOAAAADQBwCdASpkAEMAPrlUoUw4MbGiqTZsKwAXCWkBPKrKhCKhQuJl/ma9ZzrO9o+9tmuut7c2TgsIjzFvGnBCV2fhksE9byhpQAD+7zeekGqVWdrRuZ65qKqWf+hCeedsSa8jLbYQpaizbL0eKNzODLT8H4fcO2QLIHn+jqv8q6Nc39XJUWnlr3t000lbc5/jlvdI2afPGg4pZ9L8YV01JLUOJa69kYONtHx/45G6Q+M4OO+fV/h5iry2MtwZBxmFmqyu1ka/EsRPAJ4vOC+OzwbE6cfHpHrwCI5RKRCvPRcAAA==" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition" alt="A mountain range with a lake surrounded by snow"/><div class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition backdrop-blur-xl"></div><img title="Implementing Hybrid Semantic + Lexical Search" style="aspect-ratio:3/4" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition transition-opacity opacity-0" alt="A mountain range with a lake surrounded by snow" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1678953573071-2bde835c807b" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1678953573071-2bde835c807b 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1678953573071-2bde835c807b 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1678953573071-2bde835c807b 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1678953573071-2bde835c807b 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1678953573071-2bde835c807b 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1678953573071-2bde835c807b 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy" id="_R_18pmql_" nonce="1cd53d475d910a07e6469e66c4a00309" onload="this.classList.remove(&#x27;opacity-0&#x27;)"/><noscript class="absolute z-10 h-full w-full"><img title="Implementing Hybrid Semantic + Lexical Search" style="aspect-ratio:3/4" class="focus-ring w-full rounded-lg object-cover object-center transition" alt="A mountain range with a lake surrounded by snow" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1678953573071-2bde835c807b" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1678953573071-2bde835c807b 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1678953573071-2bde835c807b 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1678953573071-2bde835c807b 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1678953573071-2bde835c807b 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1678953573071-2bde835c807b 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1678953573071-2bde835c807b 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy"/></noscript></div><div class="text-secondary mt-8 text-xl font-medium">March 16th, 2026 — 16 min read</div><div class="text-2xl font-medium md:text-3xl text-black dark:text-white mt-4">Implementing Hybrid Semantic + Lexical Search</div></a><button class="ring-team-current rounded-lg bg-white p-3 text-lg font-medium whitespace-nowrap text-black shadow transition group-hover:opacity-100 peer-hover:opacity-100 peer-focus:opacity-100 hover:opacity-100 hover:shadow-md hover:ring-4 focus:opacity-100 focus:ring-4 focus:outline-none lg:px-8 lg:py-4 lg:opacity-0 absolute top-6 left-6 z-10"><span class="sr-only lg:not-sr-only lg:inline">Click to copy url</span><span class="inline lg:sr-only"><svg width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M6.5 15.25V15.25C5.5335 15.25 4.75 14.4665 4.75 13.5V6.75C4.75 5.64543 5.64543 4.75 6.75 4.75H13.5C14.4665 4.75 15.25 5.5335 15.25 6.5V6.5"></path><rect width="10.5" height="10.5" x="8.75" y="8.75" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" rx="2"></rect></svg></span></button></div></div><div class="col-span-4 mb-10"><div class="relative w-full set-color-team-current-red"><a class="group peer relative block w-full focus:outline-none" href="/blog/simplifying-containers-with-cloudflare-sandboxes" data-discover="true"><div class="relative aspect-[3/4] rounded-lg"><img src="data:image/webp;base64,UklGRgoBAABXRUJQVlA4IP4AAADQCQCdASpkAEIAPrVCmkouKquhsVrs+cAWiWcGcA08wnM37fpbVXcsVnEDzbwB2/XlT43Ml8dxjsq+/tJC0C31uqN3YSK8EjcOhpRJrei/gzCz4kA9MYAA/vE1HtIc9anbyxc2TEZZboMVN9X4+JHEwsaPJjJmgf7bXhJMK5RliE0YI6SadgKZ158dDwHONRN22wLiNRY9T6z7q+Ng0OxlXarwa1DgaP43R+vGL/xxvpHol1Qwnd+EYeCk+qzPQ4Ux2V2uPudkfM7WF8LFk8MCZmrANovxjfBy1SiQtQR7wGcD14Xz2BMLgCnyJgfeZrdV/sM+8mD8gz4YCQAAAA==" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition" alt="A pile of sand sitting on top of a sidewalk"/><div class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition backdrop-blur-xl"></div><img title="Simplifying Containers with Cloudflare Sandboxes" style="aspect-ratio:3/4" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition transition-opacity opacity-0" alt="A pile of sand sitting on top of a sidewalk" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1648219247849-84242c30aad7" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1648219247849-84242c30aad7 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1648219247849-84242c30aad7 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1648219247849-84242c30aad7 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1648219247849-84242c30aad7 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1648219247849-84242c30aad7 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1648219247849-84242c30aad7 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy" id="_R_199mql_" nonce="1cd53d475d910a07e6469e66c4a00309" onload="this.classList.remove(&#x27;opacity-0&#x27;)"/><noscript class="absolute z-10 h-full w-full"><img title="Simplifying Containers with Cloudflare Sandboxes" style="aspect-ratio:3/4" class="focus-ring w-full rounded-lg object-cover object-center transition" alt="A pile of sand sitting on top of a sidewalk" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1648219247849-84242c30aad7" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1648219247849-84242c30aad7 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1648219247849-84242c30aad7 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1648219247849-84242c30aad7 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1648219247849-84242c30aad7 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1648219247849-84242c30aad7 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1648219247849-84242c30aad7 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy"/></noscript></div><div class="text-secondary mt-8 text-xl font-medium">March 11th, 2026 — 12 min read</div><div class="text-2xl font-medium md:text-3xl text-black dark:text-white mt-4">Simplifying Containers with Cloudflare Sandboxes</div></a><div class="bg-team-current absolute top-6 right-6 z-10 h-4 w-4 rounded-full p-1 lg:left-6"></div><button class="ring-team-current rounded-lg bg-white p-3 text-lg font-medium whitespace-nowrap text-black shadow transition group-hover:opacity-100 peer-hover:opacity-100 peer-focus:opacity-100 hover:opacity-100 hover:shadow-md hover:ring-4 focus:opacity-100 focus:ring-4 focus:outline-none lg:px-8 lg:py-4 lg:opacity-0 absolute top-6 left-6 z-10"><span class="sr-only lg:not-sr-only lg:inline">Click to copy url</span><span class="inline lg:sr-only"><svg width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M6.5 15.25V15.25C5.5335 15.25 4.75 14.4665 4.75 13.5V6.75C4.75 5.64543 5.64543 4.75 6.75 4.75H13.5C14.4665 4.75 15.25 5.5335 15.25 6.5V6.5"></path><rect width="10.5" height="10.5" x="8.75" y="8.75" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" rx="2"></rect></svg></span></button></div></div><div class="col-span-4 mb-10"><div class="relative w-full"><a class="group peer relative block w-full focus:outline-none" href="/blog/migrating-to-workspaces-and-nx" data-discover="true"><div class="relative aspect-[3/4] rounded-lg"><img src="data:image/webp;base64,UklGRjQDAABXRUJQVlA4WAoAAAAgAAAAYwAASgAASUNDUBgCAAAAAAIYYXBwbAQAAABtbnRyUkdCIFhZWiAH5gABAAEAAAAAAABhY3NwQVBQTAAAAABBUFBMAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGzs/aOOOIVHw220vU962hgvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApkZXNjAAAA/AAAADBjcHJ0AAABLAAAAFB3dHB0AAABfAAAABRyWFlaAAABkAAAABRnWFlaAAABpAAAABRiWFlaAAABuAAAABRyVFJDAAABzAAAACBjaGFkAAAB7AAAACxiVFJDAAABzAAAACBnVFJDAAABzAAAACBtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABQAAAAcAEQAaQBzAHAAbABhAHkAIABQADNtbHVjAAAAAAAAAAEAAAAMZW5VUwAAADQAAAAcAEMAbwBwAHkAcgBpAGcAaAB0ACAAQQBwAHAAbABlACAASQBuAGMALgAsACAAMgAwADIAMlhZWiAAAAAAAAD21QABAAAAANMsWFlaIAAAAAAAAIPfAAA9v////7tYWVogAAAAAAAASr8AALE3AAAKuVhZWiAAAAAAAAAoOAAAEQsAAMi5cGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltzZjMyAAAAAAABDEIAAAXe///zJgAAB5MAAP2Q///7ov///aMAAAPcAADAblZQOCD2AAAA8AoAnQEqZABLAD6dQp1LqDyzJSSZm7uQE4lpAM1QqXAzOviBTCYKhaHHrqo2EDp/oebHUcxNm7tP+bYUL6WYiP0eseJ2d8sglOCE7JY638vIFMRnMUN4A7rR0pIWtIikAP78Z3X4pMTTBVbDb9wtGSlRCGfdoHhNtySzPK8NXdx1rNkJ1jSpOOhEQugZtJh4M7YKCRG6DMTSg/Z86H0aoiB1dt8PhuU/Rxxdy67wdQG+oiX+S32/2PZBWO1hPG+PZzHAKjDXqZCbnZ1tTs8BrSiBXJ+ZfERYpPTcHYM7zPrxEXvxkJIHSv2sHYXmCfYgNfvslJAA" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition" alt="A rack filled with lots of different colored skateboards"/><div class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition backdrop-blur-xl"></div><img title="Migrating to Workspaces and Nx" style="aspect-ratio:3/4" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition transition-opacity opacity-0" alt="A rack filled with lots of different colored skateboards" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1688318375271-b25e13f196ca" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1688318375271-b25e13f196ca 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1688318375271-b25e13f196ca 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1688318375271-b25e13f196ca 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1688318375271-b25e13f196ca 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1688318375271-b25e13f196ca 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1688318375271-b25e13f196ca 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy" id="_R_19pmql_" nonce="1cd53d475d910a07e6469e66c4a00309" onload="this.classList.remove(&#x27;opacity-0&#x27;)"/><noscript class="absolute z-10 h-full w-full"><img title="Migrating to Workspaces and Nx" style="aspect-ratio:3/4" class="focus-ring w-full rounded-lg object-cover object-center transition" alt="A rack filled with lots of different colored skateboards" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1688318375271-b25e13f196ca" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1688318375271-b25e13f196ca 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1688318375271-b25e13f196ca 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1688318375271-b25e13f196ca 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1688318375271-b25e13f196ca 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1688318375271-b25e13f196ca 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1688318375271-b25e13f196ca 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy"/></noscript></div><div class="text-secondary mt-8 text-xl font-medium">March 10th, 2026 — 8 min read</div><div class="text-2xl font-medium md:text-3xl text-black dark:text-white mt-4">Migrating to Workspaces and Nx</div></a><button class="ring-team-current rounded-lg bg-white p-3 text-lg font-medium whitespace-nowrap text-black shadow transition group-hover:opacity-100 peer-hover:opacity-100 peer-focus:opacity-100 hover:opacity-100 hover:shadow-md hover:ring-4 focus:opacity-100 focus:ring-4 focus:outline-none lg:px-8 lg:py-4 lg:opacity-0 absolute top-6 left-6 z-10"><span class="sr-only lg:not-sr-only lg:inline">Click to copy url</span><span class="inline lg:sr-only"><svg width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M6.5 15.25V15.25C5.5335 15.25 4.75 14.4665 4.75 13.5V6.75C4.75 5.64543 5.64543 4.75 6.75 4.75H13.5C14.4665 4.75 15.25 5.5335 15.25 6.5V6.5"></path><rect width="10.5" height="10.5" x="8.75" y="8.75" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" rx="2"></rect></svg></span></button></div></div><div class="col-span-4 mb-10"><div class="relative w-full"><a class="group peer relative block w-full focus:outline-none" href="/blog/offloading-ffmpeg-with-cloudflare" data-discover="true"><div class="relative aspect-[3/4] rounded-lg"><img src="data:image/webp;base64,UklGRjgBAABXRUJQVlA4ICwBAABwDQCdASpkAEMAPrlSnko8taamrbiMA5AXCWctgYnq+OUBvg5pj4PLynJkpW6B/ZhCUwirBZGcDDMNd6p699pB2aaOBKjCVl60SmVsZpfEcrVEgmLMdWkg/RnBSZzI3qc3i0y1xfYyqKl1JipqM8qCxIjJAAD+8tnvepB5ejIUZ3PJME01vnaObubGEHeYM95EwVIbxwL91GzmBh5Iskwm79u1eFrHs5tzkPYmDwqWPoKShBOKk63FBFn586COEfHCW1HQbcmAhsy3PTarkJtU/yC+dI8Kmjb9WO+Y0kVgz7wBFrp+ujzrgWWCU3QJ4HLq4wB8Yo1h6SM2souhixfPYjpy0a6mtL+MWbGKGwoxNritwzEBy4xJt4aDy2lR3Wrv5YZj480Ljt7gAAA=" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition" alt="Giraffes eating leaves from a tree"/><div class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition backdrop-blur-xl"></div><img title="Offloading FFmpeg with Cloudflare" style="aspect-ratio:3/4" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition transition-opacity opacity-0" alt="Giraffes eating leaves from a tree" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1670460891931-a2780ccb223f" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1670460891931-a2780ccb223f 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1670460891931-a2780ccb223f 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1670460891931-a2780ccb223f 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1670460891931-a2780ccb223f 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1670460891931-a2780ccb223f 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1670460891931-a2780ccb223f 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy" id="_R_1a9mql_" nonce="1cd53d475d910a07e6469e66c4a00309" onload="this.classList.remove(&#x27;opacity-0&#x27;)"/><noscript class="absolute z-10 h-full w-full"><img title="Offloading FFmpeg with Cloudflare" style="aspect-ratio:3/4" class="focus-ring w-full rounded-lg object-cover object-center transition" alt="Giraffes eating leaves from a tree" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1670460891931-a2780ccb223f" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1670460891931-a2780ccb223f 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1670460891931-a2780ccb223f 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1670460891931-a2780ccb223f 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1670460891931-a2780ccb223f 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1670460891931-a2780ccb223f 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1670460891931-a2780ccb223f 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy"/></noscript></div><div class="text-secondary mt-8 text-xl font-medium">March 9th, 2026 — 12 min read</div><div class="text-2xl font-medium md:text-3xl text-black dark:text-white mt-4">Offloading FFmpeg with Cloudflare</div></a><button class="ring-team-current rounded-lg bg-white p-3 text-lg font-medium whitespace-nowrap text-black shadow transition group-hover:opacity-100 peer-hover:opacity-100 peer-focus:opacity-100 hover:opacity-100 hover:shadow-md hover:ring-4 focus:opacity-100 focus:ring-4 focus:outline-none lg:px-8 lg:py-4 lg:opacity-0 absolute top-6 left-6 z-10"><span class="sr-only lg:not-sr-only lg:inline">Click to copy url</span><span class="inline lg:sr-only"><svg width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M6.5 15.25V15.25C5.5335 15.25 4.75 14.4665 4.75 13.5V6.75C4.75 5.64543 5.64543 4.75 6.75 4.75H13.5C14.4665 4.75 15.25 5.5335 15.25 6.5V6.5"></path><rect width="10.5" height="10.5" x="8.75" y="8.75" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" rx="2"></rect></svg></span></button></div></div><div class="col-span-4 mb-10"><div class="relative w-full set-color-team-current-yellow"><a class="group peer relative block w-full focus:outline-none" href="/blog/building-semantic-search-on-my-content" data-discover="true"><div class="relative aspect-[3/4] rounded-lg"><img src="data:image/webp;base64,UklGRvQAAABXRUJQVlA4IOgAAACQCwCdASpkAEMAPqVEmkk+OSWmK/xMu8AUiWkG+OUO1IYX4L5+afsp/VIi5kzD4VnT4w6Xh+qKvnNuMVK3a5i9A7WN2zRYdinQ1PI5ER2ef7Gr12kZfKKxXZnI0jTbDpnifBr3wAD+6saaUWnHcdIYo9ToeBHmkcgqQSO+jtNMfq4/tcAlvbAoxrq8wOg8Hry0uMOlU3dLDsgstc2Fu9+RGjIWXADZKp+nx7bZe10nIhCftHfGugCtnmf7hPEm9MjTNAfb932dqMa5VaEzZ/9k/vlMMNZuD1z7Lx5zA9jkFMJ4KedAEAAA" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition" alt="Brown and silver telescope near body of water during daytime"/><div class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition backdrop-blur-xl"></div><img title="Building Semantic Search on my Content" style="aspect-ratio:3/4" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition transition-opacity opacity-0" alt="Brown and silver telescope near body of water during daytime" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1619884889432-b242fdee532a" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1619884889432-b242fdee532a 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1619884889432-b242fdee532a 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1619884889432-b242fdee532a 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1619884889432-b242fdee532a 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1619884889432-b242fdee532a 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1619884889432-b242fdee532a 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy" id="_R_1apmql_" nonce="1cd53d475d910a07e6469e66c4a00309" onload="this.classList.remove(&#x27;opacity-0&#x27;)"/><noscript class="absolute z-10 h-full w-full"><img title="Building Semantic Search on my Content" style="aspect-ratio:3/4" class="focus-ring w-full rounded-lg object-cover object-center transition" alt="Brown and silver telescope near body of water during daytime" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1619884889432-b242fdee532a" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1619884889432-b242fdee532a 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1619884889432-b242fdee532a 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1619884889432-b242fdee532a 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1619884889432-b242fdee532a 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1619884889432-b242fdee532a 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1619884889432-b242fdee532a 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy"/></noscript></div><div class="text-secondary mt-8 text-xl font-medium">February 24th, 2026 — 7 min read</div><div class="text-2xl font-medium md:text-3xl text-black dark:text-white mt-4">Building Semantic Search on my Content</div></a><div class="bg-team-current absolute top-6 right-6 z-10 h-4 w-4 rounded-full p-1 lg:left-6"></div><button class="ring-team-current rounded-lg bg-white p-3 text-lg font-medium whitespace-nowrap text-black shadow transition group-hover:opacity-100 peer-hover:opacity-100 peer-focus:opacity-100 hover:opacity-100 hover:shadow-md hover:ring-4 focus:opacity-100 focus:ring-4 focus:outline-none lg:px-8 lg:py-4 lg:opacity-0 absolute top-6 left-6 z-10"><span class="sr-only lg:not-sr-only lg:inline">Click to copy url</span><span class="inline lg:sr-only"><svg width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M6.5 15.25V15.25C5.5335 15.25 4.75 14.4665 4.75 13.5V6.75C4.75 5.64543 5.64543 4.75 6.75 4.75H13.5C14.4665 4.75 15.25 5.5335 15.25 6.5V6.5"></path><rect width="10.5" height="10.5" x="8.75" y="8.75" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" rx="2"></rect></svg></span></button></div></div><div class="col-span-4 mb-10"><div class="relative w-full"><a class="group peer relative block w-full focus:outline-none" href="/blog/helping-you-ask-me-questions-with-ai" data-discover="true"><div class="relative aspect-[3/4] rounded-lg"><img src="data:image/webp;base64,UklGRtgAAABXRUJQVlA4IMwAAACQCQCdASpkAEMAPrFIm0o3Mykhr5eMAuAWCWkGcAADf5o4YPhcUrDY4sZNFvX4HE/F1/b6znR/mCUgiY+IpTjjFg7eZ3GeBSr5H3yx1MN6+p5cDThAAP7wyg+Zsr7wzEq6m1/usi5lCQ35jth6VfZHLJ9Qv5ZfhTY3Uv7ZkiWxHhmWfWaEVVEiJmLmjou4ULFrk7LPsgPorK0E5Q1aT14C6Byi3oFvpoqjCWJypKJCm/dplJEoO7NfPAl9kg5aGWRYkZmfajQWjfVsYAA=" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition" alt="Man&#x27;s face grayscale photo"/><div class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition backdrop-blur-xl"></div><img title="Helping YOU ask ME questions with AI" style="aspect-ratio:3/4" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition transition-opacity opacity-0" alt="Man&#x27;s face grayscale photo" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1435348773030-a1d74f568bc2" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1435348773030-a1d74f568bc2 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1435348773030-a1d74f568bc2 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1435348773030-a1d74f568bc2 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1435348773030-a1d74f568bc2 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1435348773030-a1d74f568bc2 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1435348773030-a1d74f568bc2 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy" id="_R_1b9mql_" nonce="1cd53d475d910a07e6469e66c4a00309" onload="this.classList.remove(&#x27;opacity-0&#x27;)"/><noscript class="absolute z-10 h-full w-full"><img title="Helping YOU ask ME questions with AI" style="aspect-ratio:3/4" class="focus-ring w-full rounded-lg object-cover object-center transition" alt="Man&#x27;s face grayscale photo" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1435348773030-a1d74f568bc2" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1435348773030-a1d74f568bc2 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1435348773030-a1d74f568bc2 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1435348773030-a1d74f568bc2 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1435348773030-a1d74f568bc2 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1435348773030-a1d74f568bc2 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1435348773030-a1d74f568bc2 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy"/></noscript></div><div class="text-secondary mt-8 text-xl font-medium">February 24th, 2026 — 6 min read</div><div class="text-2xl font-medium md:text-3xl text-black dark:text-white mt-4">Helping YOU ask ME questions with AI</div></a><button class="ring-team-current rounded-lg bg-white p-3 text-lg font-medium whitespace-nowrap text-black shadow transition group-hover:opacity-100 peer-hover:opacity-100 peer-focus:opacity-100 hover:opacity-100 hover:shadow-md hover:ring-4 focus:opacity-100 focus:ring-4 focus:outline-none lg:px-8 lg:py-4 lg:opacity-0 absolute top-6 left-6 z-10"><span class="sr-only lg:not-sr-only lg:inline">Click to copy url</span><span class="inline lg:sr-only"><svg width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M6.5 15.25V15.25C5.5335 15.25 4.75 14.4665 4.75 13.5V6.75C4.75 5.64543 5.64543 4.75 6.75 4.75H13.5C14.4665 4.75 15.25 5.5335 15.25 6.5V6.5"></path><rect width="10.5" height="10.5" x="8.75" y="8.75" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" rx="2"></rect></svg></span></button></div></div><div class="col-span-4 mb-10"><div class="relative w-full set-color-team-current-yellow"><a class="group peer relative block w-full focus:outline-none" href="/blog/how-i-used-cursor-to-migrate-frameworks" data-discover="true"><div class="relative aspect-[3/4] rounded-lg"><img src="data:image/webp;base64,UklGRmABAABXRUJQVlA4IFQBAAAwDQCdASpkAEMAPpU+l0g7pqUhMHjss3ASiWVt6vAFh3gotoBshde21vFlaE/pmo1p5q8s6kknab/gckkJc2D5Vnm0515Zl962GiCXyiND4/c3+6gE3ZnFrHxWcDfhIitFcdn7iTD8tjdP6Wc7DEnPxIAA/vENJYzwysnJfZYcaW/SvwGy/whEr/1bPJJpGYUiWPtaVMZlwdnKHGnva/c7j9KNPq8S03n3MfYq8nfpuSC0mlt0ogT0wnq23etBHkeD4McLzuKN8AdYoLG6Ibvajbp+yOP5wmnSn37+0bDycPMmTttQhc8ofMrhWoXaJN7/wJlt6820jufyzIHgTDlBgSACoCuQ+RzTlZCoalk0yAkck07M4ouBhjI1qh9nCXYq9n0DMEGlBZH8Ip6xWTIVFPqIqzPWbdG4goMd3BBRH+Q+akHbncboABxKukzrTJFKpAAA" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition" alt="Assorted-color item lot"/><div class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition backdrop-blur-xl"></div><img title="How I used Cursor to Migrate Frameworks" style="aspect-ratio:3/4" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition transition-opacity opacity-0" alt="Assorted-color item lot" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1551983045-07983cc66cab" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1551983045-07983cc66cab 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1551983045-07983cc66cab 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1551983045-07983cc66cab 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1551983045-07983cc66cab 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1551983045-07983cc66cab 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1551983045-07983cc66cab 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy" id="_R_1bpmql_" nonce="1cd53d475d910a07e6469e66c4a00309" onload="this.classList.remove(&#x27;opacity-0&#x27;)"/><noscript class="absolute z-10 h-full w-full"><img title="How I used Cursor to Migrate Frameworks" style="aspect-ratio:3/4" class="focus-ring w-full rounded-lg object-cover object-center transition" alt="Assorted-color item lot" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1551983045-07983cc66cab" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1551983045-07983cc66cab 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1551983045-07983cc66cab 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1551983045-07983cc66cab 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1551983045-07983cc66cab 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1551983045-07983cc66cab 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1551983045-07983cc66cab 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy"/></noscript></div><div class="text-secondary mt-8 text-xl font-medium">February 20th, 2026 — 12 min read</div><div class="text-2xl font-medium md:text-3xl text-black dark:text-white mt-4">How I used Cursor to Migrate Frameworks</div></a><div class="bg-team-current absolute top-6 right-6 z-10 h-4 w-4 rounded-full p-1 lg:left-6"></div><button class="ring-team-current rounded-lg bg-white p-3 text-lg font-medium whitespace-nowrap text-black shadow transition group-hover:opacity-100 peer-hover:opacity-100 peer-focus:opacity-100 hover:opacity-100 hover:shadow-md hover:ring-4 focus:opacity-100 focus:ring-4 focus:outline-none lg:px-8 lg:py-4 lg:opacity-0 absolute top-6 left-6 z-10"><span class="sr-only lg:not-sr-only lg:inline">Click to copy url</span><span class="inline lg:sr-only"><svg width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M6.5 15.25V15.25C5.5335 15.25 4.75 14.4665 4.75 13.5V6.75C4.75 5.64543 5.64543 4.75 6.75 4.75H13.5C14.4665 4.75 15.25 5.5335 15.25 6.5V6.5"></path><rect width="10.5" height="10.5" x="8.75" y="8.75" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" rx="2"></rect></svg></span></button></div></div><div class="col-span-4 mb-10"><div class="relative w-full"><a class="group peer relative block w-full focus:outline-none" href="/blog/the-dows-start-on-the-covenant-path" data-discover="true"><div class="relative aspect-[3/4] rounded-lg"><img src="data:image/webp;base64,UklGRhQDAABXRUJQVlA4WAoAAAAgAAAAYwAASgAASUNDUBgCAAAAAAIYYXBwbAQAAABtbnRyUkdCIFhZWiAH5gABAAEAAAAAAABhY3NwQVBQTAAAAABBUFBMAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGzs/aOOOIVHw220vU962hgvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApkZXNjAAAA/AAAADBjcHJ0AAABLAAAAFB3dHB0AAABfAAAABRyWFlaAAABkAAAABRnWFlaAAABpAAAABRiWFlaAAABuAAAABRyVFJDAAABzAAAACBjaGFkAAAB7AAAACxiVFJDAAABzAAAACBnVFJDAAABzAAAACBtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABQAAAAcAEQAaQBzAHAAbABhAHkAIABQADNtbHVjAAAAAAAAAAEAAAAMZW5VUwAAADQAAAAcAEMAbwBwAHkAcgBpAGcAaAB0ACAAQQBwAHAAbABlACAASQBuAGMALgAsACAAMgAwADIAMlhZWiAAAAAAAAD21QABAAAAANMsWFlaIAAAAAAAAIPfAAA9v////7tYWVogAAAAAAAASr8AALE3AAAKuVhZWiAAAAAAAAAoOAAAEQsAAMi5cGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltzZjMyAAAAAAABDEIAAAXe///zJgAAB5MAAP2Q///7ov///aMAAAPcAADAblZQOCDWAAAAEAgAnQEqZABLAD65SJtKP7cpJLFYbHvwFwlpBvgcY647Tctd5yMQZPCLnIGbJQEElIP3iKFYovnoh12nCS73VA/suNvjMv+pAAD8bgiaR2XjCaSdE7HvtCcbrK/m0aEb2Tle9M318bg9HgHZ3GhVCtXiUYoTFYekoDIePJ8FK592gzKXWXO3J714sx9Kj+rziYqSJDtTBcHVTIUGhd2DxeaWGDzKfmLjfYAB/X5nUr7D1ZG5kP7dnSRgel7T7z3VVqhSFpH8QnPMRAJ+hZo90YFQ8h4AAA==" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition" alt="Beiyi, Jeremiah Dow, and Kent C. Dodds stand side by side in white baptismal clothing, smiling indoors at a church."/><div class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition backdrop-blur-xl"></div><img title="The Dow&#x27;s Start on the Covenant Path" style="aspect-ratio:3/4" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition transition-opacity opacity-0" alt="Beiyi, Jeremiah Dow, and Kent C. Dodds stand side by side in white baptismal clothing, smiling indoors at a church." src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/kentcdodds.com/content/blog/the-dows-start-on-the-covenant-path/dows-and-kent" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/kentcdodds.com/content/blog/the-dows-start-on-the-covenant-path/dows-and-kent 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/kentcdodds.com/content/blog/the-dows-start-on-the-covenant-path/dows-and-kent 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/kentcdodds.com/content/blog/the-dows-start-on-the-covenant-path/dows-and-kent 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/kentcdodds.com/content/blog/the-dows-start-on-the-covenant-path/dows-and-kent 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/kentcdodds.com/content/blog/the-dows-start-on-the-covenant-path/dows-and-kent 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/kentcdodds.com/content/blog/the-dows-start-on-the-covenant-path/dows-and-kent 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy" id="_R_1c9mql_" nonce="1cd53d475d910a07e6469e66c4a00309" onload="this.classList.remove(&#x27;opacity-0&#x27;)"/><noscript class="absolute z-10 h-full w-full"><img title="The Dow&#x27;s Start on the Covenant Path" style="aspect-ratio:3/4" class="focus-ring w-full rounded-lg object-cover object-center transition" alt="Beiyi, Jeremiah Dow, and Kent C. Dodds stand side by side in white baptismal clothing, smiling indoors at a church." src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/kentcdodds.com/content/blog/the-dows-start-on-the-covenant-path/dows-and-kent" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/kentcdodds.com/content/blog/the-dows-start-on-the-covenant-path/dows-and-kent 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/kentcdodds.com/content/blog/the-dows-start-on-the-covenant-path/dows-and-kent 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/kentcdodds.com/content/blog/the-dows-start-on-the-covenant-path/dows-and-kent 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/kentcdodds.com/content/blog/the-dows-start-on-the-covenant-path/dows-and-kent 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/kentcdodds.com/content/blog/the-dows-start-on-the-covenant-path/dows-and-kent 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/kentcdodds.com/content/blog/the-dows-start-on-the-covenant-path/dows-and-kent 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy"/></noscript></div><div class="text-secondary mt-8 text-xl font-medium">January 5th, 2026 — 5 min read</div><div class="text-2xl font-medium md:text-3xl text-black dark:text-white mt-4">The Dow&#x27;s Start on the Covenant Path</div></a><button class="ring-team-current rounded-lg bg-white p-3 text-lg font-medium whitespace-nowrap text-black shadow transition group-hover:opacity-100 peer-hover:opacity-100 peer-focus:opacity-100 hover:opacity-100 hover:shadow-md hover:ring-4 focus:opacity-100 focus:ring-4 focus:outline-none lg:px-8 lg:py-4 lg:opacity-0 absolute top-6 left-6 z-10"><span class="sr-only lg:not-sr-only lg:inline">Click to copy url</span><span class="inline lg:sr-only"><svg width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M6.5 15.25V15.25C5.5335 15.25 4.75 14.4665 4.75 13.5V6.75C4.75 5.64543 5.64543 4.75 6.75 4.75H13.5C14.4665 4.75 15.25 5.5335 15.25 6.5V6.5"></path><rect width="10.5" height="10.5" x="8.75" y="8.75" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" rx="2"></rect></svg></span></button></div></div><div class="col-span-4 mb-10"><div class="relative w-full set-color-team-current-blue"><a class="group peer relative block w-full focus:outline-none" href="/blog/2025-in-review" data-discover="true"><div class="relative aspect-[3/4] rounded-lg"><img src="data:image/webp;base64,UklGRuYAAABXRUJQVlA4INoAAADwBwCdASpkAEMAPrlKnEozM6khsHuK0nAXCWkG+OfC18ZRKMH+1wClVW/b92cT96pgDoeCKM0N46WMfbAO/FjpVTv/fgivEAAA/vCXTrOKtflXp/xmHb0LnNbItVR8cX1zR55kSUNARpsCcU8Xl8YHGMOFaLVR9iHTvomgrRbNMa5lEmO+dF8qBE39y1ZEeqXB0ETC6XYbZ2J67+pgE+pv4HcS6ntyZkk9JnjT+SKk3QwuujoUbCzgCnHqTkdFZysc/68es0IqNuBgK12MVmUNpxft8cY0ztwgAA==" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition" alt="A scenic view of a mountain range with trees and mountains in the background"/><div class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition backdrop-blur-xl"></div><img title="2025 in Review" style="aspect-ratio:3/4" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition transition-opacity opacity-0" alt="A scenic view of a mountain range with trees and mountains in the background" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1717186158463-a7550dd10534" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1717186158463-a7550dd10534 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1717186158463-a7550dd10534 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1717186158463-a7550dd10534 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1717186158463-a7550dd10534 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1717186158463-a7550dd10534 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1717186158463-a7550dd10534 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy" id="_R_1cpmql_" nonce="1cd53d475d910a07e6469e66c4a00309" onload="this.classList.remove(&#x27;opacity-0&#x27;)"/><noscript class="absolute z-10 h-full w-full"><img title="2025 in Review" style="aspect-ratio:3/4" class="focus-ring w-full rounded-lg object-cover object-center transition" alt="A scenic view of a mountain range with trees and mountains in the background" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1717186158463-a7550dd10534" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1717186158463-a7550dd10534 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1717186158463-a7550dd10534 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1717186158463-a7550dd10534 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1717186158463-a7550dd10534 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1717186158463-a7550dd10534 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1717186158463-a7550dd10534 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy"/></noscript></div><div class="text-secondary mt-8 text-xl font-medium">December 31st, 2025 — 12 min read</div><div class="text-2xl font-medium md:text-3xl text-black dark:text-white mt-4">2025 in Review</div></a><div class="bg-team-current absolute top-6 right-6 z-10 h-4 w-4 rounded-full p-1 lg:left-6"></div><button class="ring-team-current rounded-lg bg-white p-3 text-lg font-medium whitespace-nowrap text-black shadow transition group-hover:opacity-100 peer-hover:opacity-100 peer-focus:opacity-100 hover:opacity-100 hover:shadow-md hover:ring-4 focus:opacity-100 focus:ring-4 focus:outline-none lg:px-8 lg:py-4 lg:opacity-0 absolute top-6 left-6 z-10"><span class="sr-only lg:not-sr-only lg:inline">Click to copy url</span><span class="inline lg:sr-only"><svg width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M6.5 15.25V15.25C5.5335 15.25 4.75 14.4665 4.75 13.5V6.75C4.75 5.64543 5.64543 4.75 6.75 4.75H13.5C14.4665 4.75 15.25 5.5335 15.25 6.5V6.5"></path><rect width="10.5" height="10.5" x="8.75" y="8.75" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" rx="2"></rect></svg></span></button></div></div><div class="col-span-4 mb-10"><div class="relative w-full set-color-team-current-red"><a class="group peer relative block w-full focus:outline-none" href="/blog/the-next-chapter-epicai-pro" data-discover="true"><div class="relative aspect-[3/4] rounded-lg"><img src="data:image/webp;base64,UklGRjYBAABXRUJQVlA4ICoBAADQDACdASpkAEMAPp1Em0o/qq8hrNW6S/ATiWUG+OZ22ZseUH/5jbi+vYUipberimExUaA8iZOoWTETruyfwnM1a2PgGTxIwXvTfzYgjngXBOMQkkaYcNNXyYBwURuaW8n/+NJxIa47Q/FYIYa0H8AA/vDLPP653vL+SrMzodB8+hw1/sH2L1wa+S0MYvrBJn7Crb2ThtQv6GXZBDnf+lpu5u9fwamPr9DNJNG6ApJNQtfQ+HW15UgxaNSTxCuke0bm/esDwhldFPyrFgToaEO/Rz/LDyYADgoMshqCkW+A48Rt82riQve8WZBTtcGpCiFf0lcf3GcHC8/IMXlnfahYvs4rtYxfVnCnM0oZMLpAW/KnvZ3Q+HZhHwdxVaFFwZUxPza2M/LgJAAA" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition" alt="Photo of island and thunder"/><div class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition backdrop-blur-xl"></div><img title="The next chapter: EpicAI.pro" style="aspect-ratio:3/4" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition transition-opacity opacity-0" alt="Photo of island and thunder" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1500674425229-f692875b0ab7" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1500674425229-f692875b0ab7 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1500674425229-f692875b0ab7 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1500674425229-f692875b0ab7 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1500674425229-f692875b0ab7 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1500674425229-f692875b0ab7 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1500674425229-f692875b0ab7 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy" id="_R_1d9mql_" nonce="1cd53d475d910a07e6469e66c4a00309" onload="this.classList.remove(&#x27;opacity-0&#x27;)"/><noscript class="absolute z-10 h-full w-full"><img title="The next chapter: EpicAI.pro" style="aspect-ratio:3/4" class="focus-ring w-full rounded-lg object-cover object-center transition" alt="Photo of island and thunder" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1500674425229-f692875b0ab7" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1500674425229-f692875b0ab7 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1500674425229-f692875b0ab7 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1500674425229-f692875b0ab7 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1500674425229-f692875b0ab7 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1500674425229-f692875b0ab7 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1500674425229-f692875b0ab7 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy"/></noscript></div><div class="text-secondary mt-8 text-xl font-medium">April 10th, 2025 — 6 min read</div><div class="text-2xl font-medium md:text-3xl text-black dark:text-white mt-4">The next chapter: EpicAI.pro</div></a><div class="bg-team-current absolute top-6 right-6 z-10 h-4 w-4 rounded-full p-1 lg:left-6"></div><button class="ring-team-current rounded-lg bg-white p-3 text-lg font-medium whitespace-nowrap text-black shadow transition group-hover:opacity-100 peer-hover:opacity-100 peer-focus:opacity-100 hover:opacity-100 hover:shadow-md hover:ring-4 focus:opacity-100 focus:ring-4 focus:outline-none lg:px-8 lg:py-4 lg:opacity-0 absolute top-6 left-6 z-10"><span class="sr-only lg:not-sr-only lg:inline">Click to copy url</span><span class="inline lg:sr-only"><svg width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M6.5 15.25V15.25C5.5335 15.25 4.75 14.4665 4.75 13.5V6.75C4.75 5.64543 5.64543 4.75 6.75 4.75H13.5C14.4665 4.75 15.25 5.5335 15.25 6.5V6.5"></path><rect width="10.5" height="10.5" x="8.75" y="8.75" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" rx="2"></rect></svg></span></button></div></div><div class="col-span-4 mb-10"><div class="relative w-full set-color-team-current-blue"><a class="group peer relative block w-full focus:outline-none" href="/blog/ai-is-taking-your-job" data-discover="true"><div class="relative aspect-[3/4] rounded-lg"><img src="data:image/webp;base64,UklGRhYBAABXRUJQVlA4IAoBAAAQCgCdASpkAEMAPq1Em0o/qqMhtB0ac/AViWcGcAyk4fYPpPrkDr4XxI6XKz/1jcsOQT599PP25k0nZ4SvJhS8RPivLaHBHYIQkf96lOOdfOY84NDS2NB3AAD+S931DzsF0Re/o9be1ULvhzqycY6/mZgUQnXKttao2Z5HE7oXetIrofverpJHHrye2G4TBABX76hB6GueKMVSqsB4vMxSTGnJiWPzE3ahhrMOu0CBpr6P4+bWL+P7UmQjFBJX56N/3GFwWqPi0DkwVfkNBbdH6qXnLWpQqfJDCkXFn1qZXvWAd2F9LJLYceEcCFW6cI/1iVstXJaAUFUe9nUx36gW2SrFPBl8EwuAAA==" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition" alt="Silhouette photo of six persons on top of mountain"/><div class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition backdrop-blur-xl"></div><img title="AI is taking your job" style="aspect-ratio:3/4" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition transition-opacity opacity-0" alt="Silhouette photo of six persons on top of mountain" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1506869640319-fe1a24fd76dc" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1506869640319-fe1a24fd76dc 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1506869640319-fe1a24fd76dc 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1506869640319-fe1a24fd76dc 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1506869640319-fe1a24fd76dc 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1506869640319-fe1a24fd76dc 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1506869640319-fe1a24fd76dc 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy" id="_R_1dpmql_" nonce="1cd53d475d910a07e6469e66c4a00309" onload="this.classList.remove(&#x27;opacity-0&#x27;)"/><noscript class="absolute z-10 h-full w-full"><img title="AI is taking your job" style="aspect-ratio:3/4" class="focus-ring w-full rounded-lg object-cover object-center transition" alt="Silhouette photo of six persons on top of mountain" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1506869640319-fe1a24fd76dc" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1506869640319-fe1a24fd76dc 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1506869640319-fe1a24fd76dc 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1506869640319-fe1a24fd76dc 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1506869640319-fe1a24fd76dc 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1506869640319-fe1a24fd76dc 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1506869640319-fe1a24fd76dc 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy"/></noscript></div><div class="text-secondary mt-8 text-xl font-medium">November 21st, 2024 — 4 min read</div><div class="text-2xl font-medium md:text-3xl text-black dark:text-white mt-4">AI is taking your job</div></a><div class="bg-team-current absolute top-6 right-6 z-10 h-4 w-4 rounded-full p-1 lg:left-6"></div><button class="ring-team-current rounded-lg bg-white p-3 text-lg font-medium whitespace-nowrap text-black shadow transition group-hover:opacity-100 peer-hover:opacity-100 peer-focus:opacity-100 hover:opacity-100 hover:shadow-md hover:ring-4 focus:opacity-100 focus:ring-4 focus:outline-none lg:px-8 lg:py-4 lg:opacity-0 absolute top-6 left-6 z-10"><span class="sr-only lg:not-sr-only lg:inline">Click to copy url</span><span class="inline lg:sr-only"><svg width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M6.5 15.25V15.25C5.5335 15.25 4.75 14.4665 4.75 13.5V6.75C4.75 5.64543 5.64543 4.75 6.75 4.75H13.5C14.4665 4.75 15.25 5.5335 15.25 6.5V6.5"></path><rect width="10.5" height="10.5" x="8.75" y="8.75" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" rx="2"></rect></svg></span></button></div></div><div class="col-span-4 mb-10"><div class="relative w-full set-color-team-current-red"><a class="group peer relative block w-full focus:outline-none" href="/blog/how-i-increased-my-visibility" data-discover="true"><div class="relative aspect-[3/4] rounded-lg"><img src="data:image/webp;base64,UklGRnADAABXRUJQVlA4WAoAAAAgAAAAYwAAQgAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCAaAQAAMAsAnQEqZABDAD6dPppIuLCroS63DKMQE4lnBvjmacoqJaGcI3RK1zacd2GRNU8jtQmN9af2sBk5kRuNLGiFuxt1sbssE2jnwMHIwfi7kW2ap3Pioon5ahvMlUT/FXkjpoAA/u6f9sqd6XQJ73pa4a+VetE9qtO6WqidlyP5We/PkdbIsxiIzuGUPpWr9jZLslsISBgMN17YxA3CKCPixbEFPTbQsCiYiGURHFZ0GoiH57EkRTdkEI/O0LfnflpAHBRDy7g5wL+jlxkTrVXnolgHI6xbBK4dgo5v/w1g/i3qxgER82ktvg5uU4AJbii7Grd2kmFjKs7f6wrpXrWMEKRmkcjGctHsRmQrrtAn4BZTgGVXHM7aAAAA" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition" alt="Selective focus of blue-eyed person"/><div class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition backdrop-blur-xl"></div><img title="How I increased my visibility" style="aspect-ratio:3/4" class="absolute h-full w-full focus-ring w-full rounded-lg object-cover object-center transition transition-opacity opacity-0" alt="Selective focus of blue-eyed person" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1494869042583-f6c911f04b4c" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1494869042583-f6c911f04b4c 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1494869042583-f6c911f04b4c 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1494869042583-f6c911f04b4c 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1494869042583-f6c911f04b4c 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1494869042583-f6c911f04b4c 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1494869042583-f6c911f04b4c 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy" id="_R_1e9mql_" nonce="1cd53d475d910a07e6469e66c4a00309" onload="this.classList.remove(&#x27;opacity-0&#x27;)"/><noscript class="absolute z-10 h-full w-full"><img title="How I increased my visibility" style="aspect-ratio:3/4" class="focus-ring w-full rounded-lg object-cover object-center transition" alt="Selective focus of blue-eyed person" src="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_955,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1494869042583-f6c911f04b4c" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_280,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1494869042583-f6c911f04b4c 280w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_560,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1494869042583-f6c911f04b4c 560w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_840,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1494869042583-f6c911f04b4c 840w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1100,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1494869042583-f6c911f04b4c 1100w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1300,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1494869042583-f6c911f04b4c 1300w, https://res.cloudinary.com/kentcdodds-com/image/upload/c_fill,w_1650,ar_3:4,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1494869042583-f6c911f04b4c 1650w" sizes="(max-width:639px) 80vw, (min-width:640px) and (max-width:1023px) 40vw, (min-width:1024px) and (max-width:1620px) 25vw, 420px" crossorigin="anonymous" loading="lazy"/></noscript></div><div class="text-secondary mt-8 text-xl font-medium">October 29th, 2024 — 4 min read</div><div class="text-2xl font-medium md:text-3xl text-black dark:text-white mt-4">How I increased my visibility</div></a><div class="bg-team-current absolute top-6 right-6 z-10 h-4 w-4 rounded-full p-1 lg:left-6"></div><button class="ring-team-current rounded-lg bg-white p-3 text-lg font-medium whitespace-nowrap text-black shadow transition group-hover:opacity-100 peer-hover:opacity-100 peer-focus:opacity-100 hover:opacity-100 hover:shadow-md hover:ring-4 focus:opacity-100 focus:ring-4 focus:outline-none lg:px-8 lg:py-4 lg:opacity-0 absolute top-6 left-6 z-10"><span class="sr-only lg:not-sr-only lg:inline">Click to copy url</span><span class="inline lg:sr-only"><svg width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M6.5 15.25V15.25C5.5335 15.25 4.75 14.4665 4.75 13.5V6.75C4.75 5.64543 5.64543 4.75 6.75 4.75H13.5C14.4665 4.75 15.25 5.5335 15.25 6.5V6.5"></path><rect width="10.5" height="10.5" x="8.75" y="8.75" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" rx="2"></rect></svg></span></button></div></div></div></div><div class="mb-64 flex w-full justify-center"><button class="group relative inline-flex text-lg font-medium opacity-100 transition focus:outline-none disabled:opacity-50"><div class="focus-ring absolute inset-0 transform rounded-full opacity-100 transition disabled:opacity-50 border-secondary bg-primary border-2 group-hover:border-transparent group-focus:border-transparent"></div><div class="relative flex h-full w-full items-center justify-center whitespace-nowrap text-primary space-x-5 px-11 py-6"><span>Load more articles</span> <svg width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 5.75V18.25"></path><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M18.25 12L5.75 12"></path></svg></div></button></div></div><div class="relative mx-10vw"><div class="relative grid grid-cols-4 gap-x-4 md:grid-cols-8 lg:grid-cols-12 lg:gap-x-6 mx-auto max-w-7xl"><div class="col-span-full lg:col-span-5"><img style="aspect-ratio:1/1" class="" alt="Illustration of a kayak" src="https://res.cloudinary.com/kentcdodds-com/image/upload/w_856,q_auto,f_auto/kentcdodds.com/illustrations/rowing" srcSet="https://res.cloudinary.com/kentcdodds-com/image/upload/w_350,q_auto,f_auto/kentcdodds.com/illustrations/rowing 350w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_512,q_auto,f_auto/kentcdodds.com/illustrations/rowing 512w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_1024,q_auto,f_auto/kentcdodds.com/illustrations/rowing 1024w, https://res.cloudinary.com/kentcdodds-com/image/upload/w_1536,q_auto,f_auto/kentcdodds.com/illustrations/rowing 1536w" sizes="80vw, (min-width: 1024px) 30vw, (min-width:1620px) 530px" crossorigin="anonymous"/></div><div class="col-span-full mt-4 lg:col-span-6 lg:col-start-7 lg:mt-0"><h2 class="leading-tight text-3xl md:text-4xl text-black dark:text-white mb-8">More of a listener?</h2><p class="leading-tight text-3xl md:text-4xl text-gray-600 dark:text-slate-500 mb-16">
              Check out my podcast Chats with Kent and learn about software
              development, career, life, and more.
            </p><a class="text-primary inline-flex cursor-pointer items-center text-left font-medium transition focus:outline-none" href="/chats" data-discover="true"><span class="mr-8 text-xl font-medium">Check out the podcast</span><div class="relative inline-flex h-14 w-14 flex-none items-center justify-center p-1"><div class="absolute text-gray-200 dark:text-gray-600"><svg width="60" height="60"><circle stroke="currentColor" stroke-width="2" fill="transparent" r="28" cx="30" cy="30"></circle><circle class="text-primary" stroke="currentColor" stroke-width="2" fill="transparent" r="28" cx="30" cy="30" style="stroke-dasharray:175.92918860102841 175.92918860102841;transform:rotate(-90deg);transform-origin:50% 50%;transform-box:fill-box"></circle></svg></div><span><svg class="transform -rotate-90" width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.101 5.5V23.1094L9.40108 17.4095L8.14807 18.6619L15.9862 26.5L23.852 18.6342L22.5996 17.3817L16.8725 23.1094V5.5H15.101Z" fill="currentColor"></path></svg></span></div></a></div></div></div></div><div class=" h-40 lg:h-48"></div><footer class="border-t border-gray-200 pt-48 pb-16 dark:border-gray-600"><div class="mx-10vw relative"><div class="relative mx-auto grid max-w-7xl grid-cols-4 grid-rows-[max-content] gap-x-4 md:grid-cols-8 xl:grid-cols-12 xl:gap-x-6"><div class="col-span-full md:col-span-3 xl:row-span-2"><div><div class="text-xl font-medium md:text-2xl text-black dark:text-white">Kent C. Dodds</div><p class="text-secondary mt-6 max-w-md text-2xl">Full time educator making our world better</p><div class="text-secondary mt-6 flex items-center justify-between gap-4 xl:flex-col xl:items-start"><div class="flex gap-4"><a href="https://github.com/kentcdodds" class=" text-primary hover:text-team-current focus:text-team-current focus:outline-none"><svg width="32" height="32" fill="none" viewBox="0 0 24 24"><title>GitHub</title><path fill="currentColor" d="M12,2A10,10 0 0,0 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12A10,10 0 0,0 12,2Z"></path></svg></a><a href="https://youtube.com/c/KentCDodds-vids/videos" class=" text-primary hover:text-team-current focus:text-team-current focus:outline-none"><svg width="32" height="32" fill="none" viewBox="0 0 24 24"><title>YouTube</title><path fill="currentColor" d="M10,15L15.19,12L10,9V15M21.56,7.17C21.69,7.64 21.78,8.27 21.84,9.07C21.91,9.87 21.94,10.56 21.94,11.16L22,12C22,14.19 21.84,15.8 21.56,16.83C21.31,17.73 20.73,18.31 19.83,18.56C19.36,18.69 18.5,18.78 17.18,18.84C15.88,18.91 14.69,18.94 13.59,18.94L12,19C7.81,19 5.2,18.84 4.17,18.56C3.27,18.31 2.69,17.73 2.44,16.83C2.31,16.36 2.22,15.73 2.16,14.93C2.09,14.13 2.06,13.44 2.06,12.84L2,12C2,9.81 2.16,8.2 2.44,7.17C2.69,6.27 3.27,5.69 4.17,5.44C4.64,5.31 5.5,5.22 6.82,5.16C8.12,5.09 9.31,5.06 10.41,5.06L12,5C16.19,5 18.8,5.16 19.83,5.44C20.73,5.69 21.31,6.27 21.56,7.17Z"></path></svg></a><a href="https://x.com/kentcdodds" class=" text-primary hover:text-team-current focus:text-team-current focus:outline-none"><svg width="32" height="32" fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>𝕏</title><path d="M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z"></path></svg></a><a href="https://kentcdodds.com/blog/rss.xml" class=" text-primary hover:text-team-current focus:text-team-current focus:outline-none"><svg width="32" height="32" fill="none" viewBox="0 0 24 24"><title>RSS</title><path fill-rule="evenodd" clip-rule="evenodd" d="M7.33465 15.52C6.23018 15.52 5.33459 16.4153 5.33459 17.5199C5.33459 18.6244 6.23018 19.5201 7.33465 19.5201C8.43912 19.5201 9.33471 18.6244 9.33471 17.5199C9.33471 16.4153 8.43912 15.52 7.33465 15.52Z" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M5.33472 10.52V13.0919C8.87972 13.0919 11.7639 15.9753 11.7639 19.5202H14.3347C14.3347 14.5577 10.2973 10.52 5.33472 10.52Z" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M5.33472 5.52002V8.18702C11.5846 8.18702 16.6688 13.2701 16.6688 19.52H19.3347C19.3347 11.8001 13.0546 5.52002 5.33472 5.52002Z" fill="currentColor"></path></svg></a></div><div class="text-secondary relative flex w-24 items-center xl:mt-20 xl:w-32"><svg width="208" height="110" viewBox="0 0 208 110" class="absolute block w-full" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="m10.7 8.7c-0.4 4.3-2.7 19-5.2 32.7s-4.5 25.7-4.5 26.5c0 2.6 1.6 4.2 3.3 3.5 2.1-0.8 2.2-2.4 0.2-2.4-1.2 0-1.5-0.7-1-3.3 0.3-1.7 1.2-6.8 1.9-11.2 1.1-7 1.5-8 3.2-7.7 10.1 1.7 21.1 1.2 43.4-2.2 28.3-4.2 50-6.9 50.7-6.3 0.2 0.3-0.1 3.3-0.7 6.7s-0.9 6.4-0.6 6.7c1.2 1.3 2.4-1.1 2.9-6.3 0.3-3.1 1-6.1 1.5-6.6 0.6-0.6 9.9-1.8 20.9-2.8 33-3.1 38.7-3.4 38-2.3-0.4 0.6-1.9 1.4-3.4 1.8-1.6 0.3-8 2.6-14.3 5-6.3 2.5-23.2 8.7-37.5 13.9s-33.2 12.2-42 15.6c-28.5 10.9-50.4 19-51.5 19-0.5 0-1 0.4-1 1 0 0.5 0.2 1 0.4 1 1.2 0 28-9.7 60.6-22 20.6-7.8 42.5-15.9 48.5-18 6.1-2.1 13.6-4.8 16.8-6s6-2 6.3-1.8c0.2 0.3-0.5 1.7-1.6 3.1-1.2 1.4-2.7 4.3-3.4 6.4-1.1 3.2-1.7 3.8-4.5 3.9-3.9 0.2-7.1 2.9-7.1 6 0 2.3 2.5 4.4 4.5 3.9 0.6-0.2 2.2-0.6 3.8-0.9 4.2-1 3.2-2.5-1.3-1.9-3.6 0.5-4 0.3-4-1.5 0-2.9 4.4-4 6.9-1.8 1.7 1.5 1.8 1.3 3-3.7 0.6-2.9 2.3-7 3.6-9 1.4-2 2.5-4.2 2.5-5s1.9-1.9 4.3-2.7c2.3-0.6 7.1-2.5 10.7-4.2 5-2.2 6.1-3.1 5-3.8-2.5-1.6-12-1.2-46.6 2-37.5 3.5-49.3 4.9-71.9 8.5-28.1 4.4-43.5 4.3-43.5-0.3 0-2.9 13.9-15.2 26.9-24 10.2-6.9 12.5-8.1 13.8-7 1.2 1 1.8 0.8 3.4-1.2 2.3-3.1 2.4-4 0.1-4-4 0-27.1 15.3-37.3 24.7-3.5 3.3-5.9 4.9-5.9 4 0-0.8 0.9-5.9 2-11.2 2-9.9 2.7-22.5 1.1-22.5-0.4 0-1.1 3.5-1.4 7.7z"></path><path d="m165.1 40.7c-0.7 1.6-1.6 5.4-1.9 8.6-0.5 5.6-0.6 5.8-2.9 5.2-3.2-0.8-8.6 2.6-11.4 7.1-2.6 4.2-1.5 6.1 2.8 4.9 1.5-0.5 3.3-0.7 3.8-0.6 0.6 0.2 8.2 1.8 17 3.6 26.5 5.5 31.5 6.8 31.5 8 0 1.6-15.1 4-41 6.5-33.2 3.2-75.6 9.8-115.5 18-8.2 1.7-19.2 3.4-24.2 3.7-2.2066 0.132-5.0134 0.952-8.2618-0.36-1.2736-0.678-2.2382-1.25-0.5001-3.327 0.1923-0.577-0.7381-2.1132-2.0381-1.013-2 1.7-1.9 3.3 0.3 5.3 3 2.7 13.2 2.1 35.4-2.2 51.6-10 83.4-14.9 118.3-18.1 12.7-1.2 26.1-2.8 29.9-3.6 6.7-1.3 11.6-3.6 11.6-5.3 0-2.1-17.4-6.7-40.3-10.7-5.3-1-9.6-2.2-9.4-2.8 0.4-1.3 18.2-7.2 27.4-9.1 3.9-0.8 8.6-1.2 10.4-0.8 2.5 0.5 3.1 0.3 2.7-0.8-1-2.9-20.9 0-32 4.6-1.5 0.6-1.8 0.1-1.8-3.2 0-2.1 0.7-6.5 1.5-9.6 1.8-6.8 1.7-6.7 0.7-6.7-0.5 0-1.4 1.2-2.1 2.7zm-3.1 17.3c0 0.5-2 1.9-4.5 3.1s-4.8 2.5-5.1 3c-0.7 1.3-2.4 1.1-2.4-0.2 0-2.2 6.2-6.9 9.1-6.9 1.6 0 2.9 0.4 2.9 1z"></path><path d="m84.2 49.6c-2.4 1.6-3 5.4-0.9 5.4 2.4 0 10.7-3.2 10.7-4.1 0-1.2-0.1-1.2-4.3 0.6-4.3 1.8-4.7 1.8-4.7 0.5 0-0.6 1.1-1.5 2.5-2s2.5-1.2 2.5-1.5c0-1.1-3.7-0.4-5.8 1.1z"></path><path d="m27.6 54.4c-2.9 2.5-6.6 4.6-8 4.8-1.5 0.2-2.5 0.7-2.4 1.3 0.5 1.7 7.9 0.5 13.7-2.1 6.5-2.9 7.3-3 8.9-0.4 1.2 2 4.6 2.7 5.6 1.1 0.3-0.5-0.5-1.2-1.8-1.5s-2.6-1.5-2.9-2.7c-0.4-1.6-1.1-1.9-2.6-1.4-1.7 0.5-2.1 0.2-2.1-1.4 0-3.2-2.4-2.5-8.4 2.3zm5.1 0.3c-0.9 0.9-1.9 1.4-2.3 1.1-1-1 0.6-2.8 2.4-2.8 1.5 0 1.5 0.1-0.1 1.7z"></path><path d="m59.2 52.3c-2.5 2.7-3 7.7-0.8 7.7 0.9 0 1.6-1.2 1.8-2.7 0.2-1.9 1.2-3.2 3.1-4.1 1.5-0.7 2.5-1.7 2.2-2.3-1.1-1.6-4.1-1-6.3 1.4z"></path><path d="m116.1 57.6c-4.4 3.7-4.1 5.8 0.5 5.1 4.3-0.7 11.7-5.3 10.9-6.7-1.3-2.1-8.3-1.1-11.4 1.6zm6.9 0.2c0 0.9-4.4 3.2-6 3.2-2.3 0-0.7-2 2.3-2.9 1.7-0.5 3.3-1 3.5-1 0.1-0.1 0.2 0.3 0.2 0.7z"></path></svg></div></div></div></div><div class="col-span-full mt-20 md:col-span-5 md:col-start-1 xl:hidden"><div><div class="text-lg font-medium text-black dark:text-white">Stay up to date</div><div class="mt-4 max-w-md"><p class="max-w-full text-lg text-secondary">
            Subscribe to the newsletter to stay up to date with articles,
            courses and much more!
          <a class="text-secondary underlined hover:text-team-current focus:text-team-current" href="/subscribe" data-discover="true">Learn more about the newsletter<!-- --> <svg class="inline-block transform -rotate-[135deg]" width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.101 5.5V23.1094L9.40108 17.4095L8.14807 18.6619L15.9862 26.5L23.852 18.6342L22.5996 17.3817L16.8725 23.1094V5.5H15.101Z" fill="currentColor"></path></svg></a></p></div><div class="mt-8"><form noValidate="" data-discover="true" action="/action/kit" method="post"><div style="position:absolute;left:-9999px"><label for="website-url-_R_1l2l_">Your website</label><input type="text" id="website-url-_R_1l2l_" tabindex="-1" autoComplete="nope" name="url"/></div><input type="hidden" name="formId" value="newsletter"/><input type="hidden" name="kitTagId"/><input type="hidden" name="kitFormId" value="827139"/><div class="mb-8"><div class="mb-4 flex items-baseline justify-between gap-2"><label for="_R_nl2l_" class="inline-block text-lg text-gray-500 dark:text-slate-500">First name</label></div><input required="" id="_R_nl2l_" autoComplete="given-name" class="placeholder-gray-500 dark:disabled:text-slate-500 focus-ring px-11 py-8 w-full text-black disabled:text-gray-400 dark:text-white text-lg font-medium bg-gray-100 dark:bg-gray-800 rounded-lg" name="firstName"/></div><div class="mb-8"><div class="mb-4 flex items-baseline justify-between gap-2"><label for="_R_rl2l_" class="inline-block text-lg text-gray-500 dark:text-slate-500">Email</label></div><input required="" id="_R_rl2l_" autoComplete="email" class="placeholder-gray-500 dark:disabled:text-slate-500 focus-ring px-11 py-8 w-full text-black disabled:text-gray-400 dark:text-white text-lg font-medium bg-gray-100 dark:bg-gray-800 rounded-lg" name="email"/></div><button type="submit" class="text-primary inline-flex cursor-pointer items-center text-left font-medium transition focus:outline-none pt-4"><span class="mr-8 text-xl font-medium">Sign me up</span><div class="relative inline-flex h-14 w-14 flex-none items-center justify-center p-1"><div class="absolute text-gray-200 dark:text-gray-600"><svg width="60" height="60"><circle stroke="currentColor" stroke-width="2" fill="transparent" r="28" cx="30" cy="30"></circle><circle class="text-primary" stroke="currentColor" stroke-width="2" fill="transparent" r="28" cx="30" cy="30" style="stroke-dasharray:175.92918860102841 175.92918860102841;transform:rotate(-90deg);transform-origin:50% 50%;transform-box:fill-box"></circle></svg></div><span><svg class="transform -rotate-90" width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.101 5.5V23.1094L9.40108 17.4095L8.14807 18.6619L15.9862 26.5L23.852 18.6342L22.5996 17.3817L16.8725 23.1094V5.5H15.101Z" fill="currentColor"></path></svg></span></div></button></form></div></div></div><div class="col-span-2 mt-20 md:col-start-5 md:row-start-1 md:mt-0"><div><div class="text-lg font-medium text-black dark:text-white">Contact</div><ul class="mt-4"><li class="py-1"><a class="text-secondary underlined hover:text-team-current focus:text-team-current inline-block text-lg whitespace-nowrap focus:outline-none" href="/contact" data-discover="true">Email Kent</a></li><li class="py-1"><a class="text-secondary underlined hover:text-team-current focus:text-team-current inline-block text-lg whitespace-nowrap focus:outline-none" href="/calls" data-discover="true">Call Kent</a></li><li class="py-1"><a class="text-secondary underlined hover:text-team-current focus:text-team-current inline-block text-lg whitespace-nowrap focus:outline-none" href="/office-hours" data-discover="true">Office hours</a></li></ul></div></div><div class="col-span-2 mt-20 md:col-start-7 md:row-start-1 md:mt-0 xl:col-start-5 xl:row-start-2 xl:mt-16"><div><div class="text-lg font-medium text-black dark:text-white">General</div><ul class="mt-4"><li class="py-1"><a class="text-secondary underlined hover:text-team-current focus:text-team-current inline-block text-lg whitespace-nowrap focus:outline-none" href="/transparency" data-discover="true">My Mission</a></li><li class="py-1"><a class="text-secondary underlined hover:text-team-current focus:text-team-current inline-block text-lg whitespace-nowrap focus:outline-none" href="/transparency#privacy" data-discover="true">Privacy policy</a></li><li class="py-1"><a class="text-secondary underlined hover:text-team-current focus:text-team-current inline-block text-lg whitespace-nowrap focus:outline-none" href="/transparency#terms" data-discover="true">Terms of use</a></li><li class="py-1"><a class="text-secondary underlined hover:text-team-current focus:text-team-current inline-block text-lg whitespace-nowrap focus:outline-none" href="/conduct" data-discover="true">Code of conduct</a></li></ul></div></div><div class="col-span-full mt-20 md:col-span-2 md:col-start-7 xl:col-start-5 xl:row-span-2 xl:row-start-1 xl:mt-0 xl:ml-56"><div><div class="text-lg font-medium text-black dark:text-white">Sitemap</div><ul class="mt-4"><li class="py-1"><a class="text-secondary underlined hover:text-team-current focus:text-team-current inline-block text-lg whitespace-nowrap focus:outline-none" href="/" data-discover="true">Home</a></li><li class="py-1"><a class="text-secondary underlined hover:text-team-current focus:text-team-current inline-block text-lg whitespace-nowrap focus:outline-none" href="/blog" data-discover="true">Blog</a></li><li class="py-1"><a class="text-secondary underlined hover:text-team-current focus:text-team-current inline-block text-lg whitespace-nowrap focus:outline-none" href="/courses" data-discover="true">Courses</a></li><li class="py-1"><a class="text-secondary underlined hover:text-team-current focus:text-team-current inline-block text-lg whitespace-nowrap focus:outline-none" href="/better" data-discover="true">Better</a></li><li class="py-1"><a class="text-secondary underlined hover:text-team-current focus:text-team-current inline-block text-lg whitespace-nowrap focus:outline-none" href="/discord" data-discover="true">Discord</a></li><li class="py-1"><a class="text-secondary underlined hover:text-team-current focus:text-team-current inline-block text-lg whitespace-nowrap focus:outline-none" href="/chats" data-discover="true">Chats Podcast</a></li><li class="py-1"><a class="text-secondary underlined hover:text-team-current focus:text-team-current inline-block text-lg whitespace-nowrap focus:outline-none" href="/talks" data-discover="true">Talks</a></li><li class="py-1"><a class="text-secondary underlined hover:text-team-current focus:text-team-current inline-block text-lg whitespace-nowrap focus:outline-none" href="/testimony" data-discover="true">Testimony</a></li><li class="py-1"><a class="text-secondary underlined hover:text-team-current focus:text-team-current inline-block text-lg whitespace-nowrap focus:outline-none" href="/testimonials" data-discover="true">Testimonials</a></li><li class="py-1"><a class="text-secondary underlined hover:text-team-current focus:text-team-current inline-block text-lg whitespace-nowrap focus:outline-none" href="/about" data-discover="true">About</a></li><li class="py-1"><a class="text-secondary underlined hover:text-team-current focus:text-team-current inline-block text-lg whitespace-nowrap focus:outline-none" href="/resume" data-discover="true">Resume</a></li><li class="py-1"><a class="text-secondary underlined hover:text-team-current focus:text-team-current inline-block text-lg whitespace-nowrap focus:outline-none" href="/credits" data-discover="true">Credits</a></li><li class="py-1"><a class="text-secondary underlined hover:text-team-current focus:text-team-current inline-block text-lg whitespace-nowrap focus:outline-none" href="/sitemap.xml">Sitemap.xml</a></li></ul></div></div><div class="col-span-4 col-start-9 row-span-2 row-start-1 mt-0 hidden xl:block"><div><div class="text-lg font-medium text-black dark:text-white">Stay up to date</div><div class="mt-4 max-w-md"><p class="max-w-full text-lg text-secondary">
            Subscribe to the newsletter to stay up to date with articles,
            courses and much more!
          <a class="text-secondary underlined hover:text-team-current focus:text-team-current" href="/subscribe" data-discover="true">Learn more about the newsletter<!-- --> <svg class="inline-block transform -rotate-[135deg]" width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.101 5.5V23.1094L9.40108 17.4095L8.14807 18.6619L15.9862 26.5L23.852 18.6342L22.5996 17.3817L16.8725 23.1094V5.5H15.101Z" fill="currentColor"></path></svg></a></p></div><div class="mt-8"><form noValidate="" data-discover="true" action="/action/kit" method="post"><div style="position:absolute;left:-9999px"><label for="website-url-_R_1t2l_">Your website</label><input type="text" id="website-url-_R_1t2l_" tabindex="-1" autoComplete="nope" name="url"/></div><input type="hidden" name="formId" value="newsletter"/><input type="hidden" name="kitTagId"/><input type="hidden" name="kitFormId" value="827139"/><div class="mb-8"><div class="mb-4 flex items-baseline justify-between gap-2"><label for="_R_nt2l_" class="inline-block text-lg text-gray-500 dark:text-slate-500">First name</label></div><input required="" id="_R_nt2l_" autoComplete="given-name" class="placeholder-gray-500 dark:disabled:text-slate-500 focus-ring px-11 py-8 w-full text-black disabled:text-gray-400 dark:text-white text-lg font-medium bg-gray-100 dark:bg-gray-800 rounded-lg" name="firstName"/></div><div class="mb-8"><div class="mb-4 flex items-baseline justify-between gap-2"><label for="_R_rt2l_" class="inline-block text-lg text-gray-500 dark:text-slate-500">Email</label></div><input required="" id="_R_rt2l_" autoComplete="email" class="placeholder-gray-500 dark:disabled:text-slate-500 focus-ring px-11 py-8 w-full text-black disabled:text-gray-400 dark:text-white text-lg font-medium bg-gray-100 dark:bg-gray-800 rounded-lg" name="email"/></div><button type="submit" class="text-primary inline-flex cursor-pointer items-center text-left font-medium transition focus:outline-none pt-4"><span class="mr-8 text-xl font-medium">Sign me up</span><div class="relative inline-flex h-14 w-14 flex-none items-center justify-center p-1"><div class="absolute text-gray-200 dark:text-gray-600"><svg width="60" height="60"><circle stroke="currentColor" stroke-width="2" fill="transparent" r="28" cx="30" cy="30"></circle><circle class="text-primary" stroke="currentColor" stroke-width="2" fill="transparent" r="28" cx="30" cy="30" style="stroke-dasharray:175.92918860102841 175.92918860102841;transform:rotate(-90deg);transform-origin:50% 50%;transform-box:fill-box"></circle></svg></div><span><svg class="transform -rotate-90" width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.101 5.5V23.1094L9.40108 17.4095L8.14807 18.6619L15.9862 26.5L23.852 18.6342L22.5996 17.3817L16.8725 23.1094V5.5H15.101Z" fill="currentColor"></path></svg></span></div></button></form></div></div></div><div class="col-span-full mt-24 text-lg text-gray-500 md:mt-44 dark:text-slate-500"><span>All rights reserved</span> <span class="block md:inline">© Kent C. Dodds 2026</span></div></div></div></footer><script nonce="1cd53d475d910a07e6469e66c4a00309">((storageKey2, restoreKey) => {
    if (!window.history.state || !window.history.state.key) {
      let key = Math.random().toString(32).slice(2);
      window.history.replaceState({ key }, "");
    }
    try {
      let positions = JSON.parse(sessionStorage.getItem(storageKey2) || "{}");
      let storedY = positions[restoreKey || window.history.state.key];
      if (typeof storedY === "number") {
        window.scrollTo(0, storedY);
      }
    } catch (error) {
      console.error(error);
      sessionStorage.removeItem(storageKey2);
    }
  })("react-router-scroll-positions", null)</script><script nonce="1cd53d475d910a07e6469e66c4a00309" src="https://cdn.usefathom.com/script.js" data-site="HJUUDKMT" data-spa="history" data-auto="false" data-excluded-domains="localhost" defer=""></script><script nonce="1cd53d475d910a07e6469e66c4a00309">window.__reactRouterContext = {"basename":"/","future":{"unstable_optimizeDeps":false,"unstable_subResourceIntegrity":false,"unstable_trailingSlashAwareDataRequests":false,"unstable_previewServerPrerendering":false,"v8_middleware":false,"v8_splitRouteModules":false,"v8_viteEnvironmentApi":false},"routeDiscovery":{"mode":"lazy","manifestPath":"/__manifest"},"ssr":true,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script><script nonce="1cd53d475d910a07e6469e66c4a00309" type="module" async="">;
import * as route0 from "/assets/root-C-hh3G9p.js";
import * as route1 from "/assets/blog-ClCqgAip.js";
  window.__reactRouterManifest = {
  "entry": {
    "module": "/assets/entry.client-BpVaQRLZ.js",
    "imports": [
      "/assets/homework-completion-mA0KQdk9.js",
      "/assets/index-DlKQIqa_.js",
      "/assets/index-GIiJVtwk.js",
      "/assets/chunk-LFPYN7LY-Dhz4wK-H.js"
    ],
    "css": []
  },
  "routes": {
    "root": {
      "id": "root",
      "path": "",
      "hasAction": false,
      "hasLoader": true,
      "hasClientAction": false,
      "hasClientLoader": false,
      "hasClientMiddleware": false,
      "hasDefaultExport": true,
      "hasErrorBoundary": true,
      "module": "/assets/root-C-hh3G9p.js",
      "imports": [
        "/assets/homework-completion-mA0KQdk9.js",
        "/assets/index-DlKQIqa_.js",
        "/assets/index-GIiJVtwk.js",
        "/assets/chunk-LFPYN7LY-Dhz4wK-H.js",
        "/assets/root-BcmdRNHN.js",
        "/assets/clsx-an37Qlra.js",
        "/assets/promotification-38QICm2t.js",
        "/assets/debug-build-BkVyDy-S.js",
        "/assets/index-CSLKQwvV.js",
        "/assets/images-BVY726jz.js",
        "/assets/misc-react-7gXQx9PU.js",
        "/assets/exports-ChwI61oS.js",
        "/assets/icons-CXm68sMX.js",
        "/assets/typography-B3dSfy4m.js",
        "/assets/arrow-button-SLp9ACCU.js",
        "/assets/button-CQdvMSt0.js",
        "/assets/grid-BCnqOhf2.js",
        "/assets/cloudinary-video-Caq_1dPm.js",
        "/assets/theme-lw6zFWr0.js",
        "/assets/schemas-C9WWvlLx.js",
        "/assets/form-elements-CwyibmN3.js",
        "/assets/seo-cTWgUn8J.js",
        "/assets/spacer-DrP4EPgO.js",
        "/assets/header-section-BXbncSOA.js",
        "/assets/hero-section-DEQxT86d.js",
        "/assets/external-links-DJmzBAdF.js",
        "/assets/index-DejkO13w.js"
      ],
      "css": [
        "/assets/root-COBl6PrW.css"
      ]
    },
    "routes/blog": {
      "id": "routes/blog",
      "parentId": "root",
      "path": "blog",
      "hasAction": false,
      "hasLoader": true,
      "hasClientAction": false,
      "hasClientLoader": false,
      "hasClientMiddleware": false,
      "hasDefaultExport": true,
      "hasErrorBoundary": true,
      "module": "/assets/blog-ClCqgAip.js",
      "imports": [
        "/assets/chunk-LFPYN7LY-Dhz4wK-H.js",
        "/assets/homework-completion-mA0KQdk9.js",
        "/assets/index-DlKQIqa_.js",
        "/assets/root-BcmdRNHN.js",
        "/assets/clsx-an37Qlra.js",
        "/assets/arrow-button-SLp9ACCU.js",
        "/assets/button-CQdvMSt0.js",
        "/assets/grid-BCnqOhf2.js",
        "/assets/icons-CXm68sMX.js",
        "/assets/featured-section-BxErEz3h.js",
        "/assets/hero-section-DEQxT86d.js",
        "/assets/spacer-DrP4EPgO.js",
        "/assets/tag-0FxbzX23.js",
        "/assets/team-stats-CONiT4sK.js",
        "/assets/typography-B3dSfy4m.js",
        "/assets/images-BVY726jz.js",
        "/assets/external-links-DJmzBAdF.js",
        "/assets/misc-react-7gXQx9PU.js",
        "/assets/seo-cTWgUn8J.js",
        "/assets/promotification-38QICm2t.js",
        "/assets/debug-build-BkVyDy-S.js",
        "/assets/index-CSLKQwvV.js",
        "/assets/index-GIiJVtwk.js",
        "/assets/cloudinary-video-Caq_1dPm.js",
        "/assets/theme-lw6zFWr0.js",
        "/assets/schemas-C9WWvlLx.js",
        "/assets/form-elements-CwyibmN3.js",
        "/assets/header-section-BXbncSOA.js",
        "/assets/index-DejkO13w.js",
        "/assets/exports-ChwI61oS.js"
      ],
      "css": [
        "/assets/root-COBl6PrW.css"
      ]
    },
    "routes/index": {
      "id": "routes/index",
      "parentId": "root",
      "index": true,
      "hasAction": false,
      "hasLoader": true,
      "hasClientAction": false,
      "hasClientLoader": false,
      "hasClientMiddleware": false,
      "hasDefaultExport": true,
      "hasErrorBoundary": true,
      "module": "/assets/index-CTWT2VH7.js",
      "imports": [
        "/assets/chunk-LFPYN7LY-Dhz4wK-H.js",
        "/assets/homework-completion-mA0KQdk9.js",
        "/assets/button-CQdvMSt0.js",
        "/assets/root-BcmdRNHN.js",
        "/assets/images-BVY726jz.js",
        "/assets/arrow-button-SLp9ACCU.js",
        "/assets/grid-BCnqOhf2.js",
        "/assets/typography-B3dSfy4m.js",
        "/assets/course-section-pD9UKYas.js",
        "/assets/icons-CXm68sMX.js",
        "/assets/hero-section-DEQxT86d.js",
        "/assets/fullscreen-yt-embed-DKxR9PcR.js",
        "/assets/reach-tabs-O8gHj9Wj.js",
        "/assets/index-DlKQIqa_.js",
        "/assets/index-DejkO13w.js",
        "/assets/spacer-DrP4EPgO.js",
        "/assets/misc-react-7gXQx9PU.js",
        "/assets/clsx-an37Qlra.js",
        "/assets/promotification-38QICm2t.js",
        "/assets/debug-build-BkVyDy-S.js",
        "/assets/index-CSLKQwvV.js",
        "/assets/index-GIiJVtwk.js",
        "/assets/cloudinary-video-Caq_1dPm.js",
        "/assets/theme-lw6zFWr0.js",
        "/assets/schemas-C9WWvlLx.js",
        "/assets/form-elements-CwyibmN3.js",
        "/assets/seo-cTWgUn8J.js",
        "/assets/header-section-BXbncSOA.js",
        "/assets/external-links-DJmzBAdF.js",
        "/assets/flagship-products-B24AwLqX.js",
        "/assets/reach-auto-id-CMEUGdGv.js",
        "/assets/exports-ChwI61oS.js"
      ],
      "css": [
        "/assets/root-COBl6PrW.css"
      ]
    }
  },
  "url": "/assets/manifest-f1124b58.js",
  "version": "f1124b58"
};
  window.__reactRouterRouteModules = {"root":route0,"routes/blog":route1};

import("/assets/entry.client-BpVaQRLZ.js");</script><!--$--><script nonce="1cd53d475d910a07e6469e66c4a00309">window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_6349\":-5,\"_812\":-5},\"loaderData\",{\"_3\":4,\"_50\":51},\"root\",{\"_5\":-5,\"_6\":-5,\"_7\":8,\"_19\":-7,\"_20\":21,\"_28\":29,\"_30\":31},\"user\",\"userInfo\",\"latestPodcastSeasonLinks\",{\"_9\":10,\"_15\":16},\"chats\",{\"_11\":12,\"_13\":14},\"latestSeasonNumber\",7,\"latestSeasonPath\",\"/chats/07\",\"calls\",{\"_11\":17,\"_13\":18},5,\"/calls/05\",\"season7PromotificationCookieValue\",\"ENV\",{\"_22\":23,\"_24\":25,\"_26\":27},\"MODE\",\"production\",\"DISCORD_CLIENT_ID\",\"738096608440483870\",\"SENTRY_DSN\",\"https://c1ad8b66a0654947b019a7c70aca2169@o913766.ingest.sentry.io/5878963\",\"randomFooterImageKey\",\"snowboard\",\"requestInfo\",{\"_32\":33,\"_38\":39,\"_40\":41,\"_42\":43,\"_44\":45,\"_46\":47},\"hints\",{\"_34\":35,\"_36\":37},\"theme\",\"light\",\"timeZone\",\"UTC\",\"origin\",\"https://kentcdodds.com\",\"path\",\"/blog\",\"flyPrimaryInstance\",\"080750ec6d0098\",\"userPrefs\",{\"_34\":35},\"session\",{\"_48\":-7,\"_49\":-7},\"email\",\"signupEmail\",\"routes/blog\",{\"_52\":53,\"_5038\":5039,\"_5051\":5052,\"_5072\":5073,\"_6037\":6038,\"_5056\":6341,\"_6342\":6343,\"_6344\":6345,\"_6346\":6347,\"_6348\":5055},\"posts\",[54,107,135,165,188,212,237,258,281,306,328,380,400,422,442,490,512,536,557,576,604,624,646,686,706,741,774,798,843,874,896,933,974,1027,1049,1078,1108,1134,1160,1184,1209,1240,1263,1300,1324,1349,1377,1402,1419,1439,1462,1479,1513,1539,1560,1582,1603,1641,1660,1682,1720,1761,1789,1839,1863,1885,1907,1965,1983,2010,2038,2055,2079,2106,2127,2159,2182,2204,2228,2257,2285,2303,2327,2347,2374,2395,2417,2435,2456,2483,2506,2527,2545,2566,2587,2608,2648,2668,2690,2711,2726,2753,2774,2795,2822,2845,2870,2891,2922,2947,2967,2999,3024,3050,3076,3093,3128,3170,3208,3228,3250,3279,3312,3333,3352,3371,3397,3414,3435,3454,3477,3499,3519,3541,3560,3575,3599,3621,3640,3660,3681,3700,3719,3735,3755,3775,3794,3816,3833,3853,3872,3891,3911,3930,3955,3980,4007,4026,4045,4066,4084,4103,4121,4141,4165,4184,4200,4216,4235,4252,4271,4290,4310,4329,4353,4377,4396,4413,4438,4458,4477,4493,4516,4536,4553,4572,4586,4604,4623,4641,4660,4679,4699,4718,4739,4758,4777,4796,4813,4833,4852,4871,4891,4904,4922,4941,4956,4969,4986,5002,5024],{\"_55\":56,\"_57\":58,\"_67\":68,\"_103\":104,\"_105\":106},\"dateDisplay\",\"March 16th, 2026\",\"readTime\",{\"_59\":60,\"_61\":62,\"_63\":64,\"_65\":66},\"text\",\"16 min read\",\"minutes\",15.265,\"time\",915900,\"words\",3053,\"frontmatter\",{\"_69\":70,\"_71\":72,\"_73\":74,\"_75\":76,\"_78\":79,\"_93\":94,\"_95\":96,\"_97\":98,\"_99\":100,\"_101\":102},\"title\",\"Implementing Hybrid Semantic + Lexical Search\",\"date\",\"2026-03-16T00:00:00.000Z\",\"description\",\"Semantic search alone wasn't good enough. Here's how I improved search on kentcdodds.com through three rounds of iteration with Cursor and GPT-5.4, each time learning something that the previous design missed.\",\"categories\",[77],\"ai\",\"meta\",{\"_80\":81},\"keywords\",[77,82,83,84,85,86,87,88,89,90,91,92],\"search\",\"semantic search\",\"lexical search\",\"hybrid search\",\"fts5\",\"sqlite\",\"vectorize\",\"cloudflare workers\",\"cloudflare d1\",\"cursor\",\"gpt-5.4\",\"bannerCloudinaryId\",\"unsplash/photo-1678953573071-2bde835c807b\",\"bannerAlt\",\"A mountain range with a lake surrounded by snow\",\"bannerCredit\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/a-mountain-range-with-a-lake-surrounded-by-snow-NWuNl_8dZ18\\\"\u003eKush Dwivedi\u003c/a\u003e\",\"bannerBlurDataUrl\",\"data:image/webp;base64,UklGRuwAAABXRUJQVlA4IOAAAADQBwCdASpkAEMAPrlUoUw4MbGiqTZsKwAXCWkBPKrKhCKhQuJl/ma9ZzrO9o+9tmuut7c2TgsIjzFvGnBCV2fhksE9byhpQAD+7zeekGqVWdrRuZ65qKqWf+hCeedsSa8jLbYQpaizbL0eKNzODLT8H4fcO2QLIHn+jqv8q6Nc39XJUWnlr3t000lbc5/jlvdI2afPGg4pZ9L8YV01JLUOJa69kYONtHx/45G6Q+M4OO+fV/h5iry2MtwZBxmFmqyu1ka/EsRPAJ4vOC+OzwbE6cfHpHrwCI5RKRCvPRcAAA==\",\"bannerTitle\",\"Photo by Kush Dwivedi\",\"slug\",\"implementing-hybrid-semantic-lexical-search\",\"editLink\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/implementing-hybrid-semantic-lexical-search.mdx\",{\"_55\":108,\"_57\":109,\"_67\":114,\"_103\":133,\"_105\":134},\"March 11th, 2026\",{\"_59\":110,\"_61\":111,\"_63\":112,\"_65\":113},\"12 min read\",11.02,661200,2204,{\"_69\":115,\"_71\":116,\"_73\":117,\"_75\":118,\"_78\":120,\"_93\":128,\"_95\":129,\"_97\":130,\"_99\":131,\"_101\":132},\"Simplifying Containers with Cloudflare Sandboxes\",\"2026-03-11T00:00:00.000Z\",\"How I replaced a long-lived Cloudflare Container with a one-shot Cloudflare Sandbox, deleted most of the control-plane code, and let an agent do the heavy lifting in less than an hour of my own time.\",[119],\"cloudflare\",{\"_80\":121},[119,122,123,124,125,126,77,127],\"sandboxes\",\"containers\",\"ffmpeg\",\"devops\",\"podcast\",\"agents\",\"unsplash/photo-1648219247849-84242c30aad7\",\"A pile of sand sitting on top of a sidewalk\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/a-pile-of-sand-sitting-on-top-of-a-sidewalk-BncT2VwlpL0\\\"\u003eChad Stembridge\u003c/a\u003e\",\"data:image/webp;base64,UklGRgoBAABXRUJQVlA4IP4AAADQCQCdASpkAEIAPrVCmkouKquhsVrs+cAWiWcGcA08wnM37fpbVXcsVnEDzbwB2/XlT43Ml8dxjsq+/tJC0C31uqN3YSK8EjcOhpRJrei/gzCz4kA9MYAA/vE1HtIc9anbyxc2TEZZboMVN9X4+JHEwsaPJjJmgf7bXhJMK5RliE0YI6SadgKZ158dDwHONRN22wLiNRY9T6z7q+Ng0OxlXarwa1DgaP43R+vGL/xxvpHol1Qwnd+EYeCk+qzPQ4Ux2V2uPudkfM7WF8LFk8MCZmrANovxjfBy1SiQtQR7wGcD14Xz2BMLgCnyJgfeZrdV/sM+8mD8gz4YCQAAAA==\",\"Photo by Chad Stembridge\",\"simplifying-containers-with-cloudflare-sandboxes\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/simplifying-containers-with-cloudflare-sandboxes.mdx\",{\"_55\":136,\"_57\":137,\"_67\":142,\"_103\":163,\"_105\":164},\"March 10th, 2026\",{\"_59\":138,\"_61\":139,\"_63\":140,\"_65\":141},\"8 min read\",7.12,427200,1424,{\"_69\":143,\"_71\":144,\"_73\":145,\"_75\":146,\"_78\":148,\"_93\":158,\"_95\":159,\"_97\":160,\"_99\":161,\"_101\":162},\"Migrating to Workspaces and Nx\",\"2026-03-10T00:00:00.000Z\",\"The interesting part of moving kentcdodds.com to npm workspaces was not the file moves. It was everything the file moves broke.\",[147],\"dev\",{\"_80\":149},[150,151,152,153,154,155,156,157],\"npm workspaces\",\"monorepo\",\"Nx\",\"TypeScript\",\"Docker\",\"CI\",\"GitHub Actions\",\"refactoring\",\"unsplash/photo-1688318375271-b25e13f196ca\",\"A rack filled with lots of different colored skateboards\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/a-rack-filled-with-lots-of-different-colored-skateboards-dyLyxjZHMFw\\\"\u003eTasha Kostyuk\u003c/a\u003e\",\"data:image/webp;base64,UklGRjQDAABXRUJQVlA4WAoAAAAgAAAAYwAASgAASUNDUBgCAAAAAAIYYXBwbAQAAABtbnRyUkdCIFhZWiAH5gABAAEAAAAAAABhY3NwQVBQTAAAAABBUFBMAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGzs/aOOOIVHw220vU962hgvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApkZXNjAAAA/AAAADBjcHJ0AAABLAAAAFB3dHB0AAABfAAAABRyWFlaAAABkAAAABRnWFlaAAABpAAAABRiWFlaAAABuAAAABRyVFJDAAABzAAAACBjaGFkAAAB7AAAACxiVFJDAAABzAAAACBnVFJDAAABzAAAACBtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABQAAAAcAEQAaQBzAHAAbABhAHkAIABQADNtbHVjAAAAAAAAAAEAAAAMZW5VUwAAADQAAAAcAEMAbwBwAHkAcgBpAGcAaAB0ACAAQQBwAHAAbABlACAASQBuAGMALgAsACAAMgAwADIAMlhZWiAAAAAAAAD21QABAAAAANMsWFlaIAAAAAAAAIPfAAA9v////7tYWVogAAAAAAAASr8AALE3AAAKuVhZWiAAAAAAAAAoOAAAEQsAAMi5cGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltzZjMyAAAAAAABDEIAAAXe///zJgAAB5MAAP2Q///7ov///aMAAAPcAADAblZQOCD2AAAA8AoAnQEqZABLAD6dQp1LqDyzJSSZm7uQE4lpAM1QqXAzOviBTCYKhaHHrqo2EDp/oebHUcxNm7tP+bYUL6WYiP0eseJ2d8sglOCE7JY638vIFMRnMUN4A7rR0pIWtIikAP78Z3X4pMTTBVbDb9wtGSlRCGfdoHhNtySzPK8NXdx1rNkJ1jSpOOhEQugZtJh4M7YKCRG6DMTSg/Z86H0aoiB1dt8PhuU/Rxxdy67wdQG+oiX+S32/2PZBWO1hPG+PZzHAKjDXqZCbnZ1tTs8BrSiBXJ+ZfERYpPTcHYM7zPrxEXvxkJIHSv2sHYXmCfYgNfvslJAA\",\"Photo by Tasha Kostyuk\",\"migrating-to-workspaces-and-nx\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/migrating-to-workspaces-and-nx.mdx\",{\"_55\":166,\"_57\":167,\"_67\":171,\"_103\":186,\"_105\":187},\"March 9th, 2026\",{\"_59\":110,\"_61\":168,\"_63\":169,\"_65\":170},11.36,681600,2272,{\"_69\":172,\"_71\":173,\"_73\":174,\"_75\":175,\"_78\":176,\"_93\":181,\"_95\":182,\"_97\":183,\"_99\":184,\"_101\":185},\"Offloading FFmpeg with Cloudflare\",\"2026-03-09T00:00:00.000Z\",\"How I moved Call Kent podcast episode processing off my primary Fly.io app server and onto Cloudflare Queues and Containers: what broke, what I missed, and whether it was worth the complexity.\",[119],{\"_80\":177},[119,124,178,123,179,126,125,180],\"queues\",\"fly.io\",\"performance\",\"unsplash/photo-1670460891931-a2780ccb223f\",\"Giraffes eating leaves from a tree\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/giraffes-eating-leaves-from-a-tree-zYYyy_QAVsA\\\"\u003eTaylor Prince\u003c/a\u003e\",\"data:image/webp;base64,UklGRjgBAABXRUJQVlA4ICwBAABwDQCdASpkAEMAPrlSnko8taamrbiMA5AXCWctgYnq+OUBvg5pj4PLynJkpW6B/ZhCUwirBZGcDDMNd6p699pB2aaOBKjCVl60SmVsZpfEcrVEgmLMdWkg/RnBSZzI3qc3i0y1xfYyqKl1JipqM8qCxIjJAAD+8tnvepB5ejIUZ3PJME01vnaObubGEHeYM95EwVIbxwL91GzmBh5Iskwm79u1eFrHs5tzkPYmDwqWPoKShBOKk63FBFn586COEfHCW1HQbcmAhsy3PTarkJtU/yC+dI8Kmjb9WO+Y0kVgz7wBFrp+ujzrgWWCU3QJ4HLq4wB8Yo1h6SM2souhixfPYjpy0a6mtL+MWbGKGwoxNritwzEBy4xJt4aDy2lR3Wrv5YZj480Ljt7gAAA=\",\"Photo by Taylor Prince\",\"offloading-ffmpeg-with-cloudflare\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/offloading-ffmpeg-with-cloudflare.mdx\",{\"_55\":189,\"_57\":190,\"_67\":195,\"_103\":210,\"_105\":211},\"February 24th, 2026\",{\"_59\":191,\"_61\":192,\"_63\":193,\"_65\":194},\"7 min read\",6.585,395100,1317,{\"_69\":196,\"_71\":197,\"_73\":198,\"_75\":199,\"_78\":200,\"_93\":205,\"_95\":206,\"_97\":207,\"_99\":208,\"_101\":209},\"Building Semantic Search on my Content\",\"2026-02-24T00:00:00.000Z\",\"I've added some pretty cool AI-powered features to kentcdodds.com and I want to tell you all about it.\",[77],{\"_80\":201},[77,119,202,83,203,88,204],\"ai gateway\",\"vector database\",\"workers ai\",\"unsplash/photo-1619884889432-b242fdee532a\",\"Brown and silver telescope near body of water during daytime\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/brown-and-silver-telescope-near-body-of-water-during-daytime-fr3YLb9UHSQ\\\"\u003eDaniel Lerman\u003c/a\u003e\",\"data:image/webp;base64,UklGRvQAAABXRUJQVlA4IOgAAACQCwCdASpkAEMAPqVEmkk+OSWmK/xMu8AUiWkG+OUO1IYX4L5+afsp/VIi5kzD4VnT4w6Xh+qKvnNuMVK3a5i9A7WN2zRYdinQ1PI5ER2ef7Gr12kZfKKxXZnI0jTbDpnifBr3wAD+6saaUWnHcdIYo9ToeBHmkcgqQSO+jtNMfq4/tcAlvbAoxrq8wOg8Hry0uMOlU3dLDsgstc2Fu9+RGjIWXADZKp+nx7bZe10nIhCftHfGugCtnmf7hPEm9MjTNAfb932dqMa5VaEzZ/9k/vlMMNZuD1z7Lx5zA9jkFMJ4KedAEAAA\",\"Photo by Daniel Lerman\",\"building-semantic-search-on-my-content\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/building-semantic-search-on-my-content.mdx\",{\"_55\":189,\"_57\":213,\"_67\":218,\"_103\":235,\"_105\":236},{\"_59\":214,\"_61\":215,\"_63\":216,\"_65\":217},\"6 min read\",5.99,359400,1198,{\"_69\":219,\"_71\":197,\"_73\":220,\"_75\":221,\"_78\":222,\"_93\":230,\"_95\":231,\"_97\":232,\"_99\":233,\"_101\":234},\"Helping YOU ask ME questions with AI\",\"Here's how I've made it easier for you to call into the Call Kent podcast without having to record yourself and also make yourself anonymous using AI.\",[77],{\"_80\":223},[77,224,225,226,227,228,229,119],\"speech to text\",\"stt\",\"text to speech\",\"tts\",\"transcriptions\",\"call kent podcast\",\"unsplash/photo-1435348773030-a1d74f568bc2\",\"Man's face grayscale photo\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/mans-face-grayscale-photo-xgxzqRpK0UE\\\"\u003eMalik Earnest\u003c/a\u003e\",\"data:image/webp;base64,UklGRtgAAABXRUJQVlA4IMwAAACQCQCdASpkAEMAPrFIm0o3Mykhr5eMAuAWCWkGcAADf5o4YPhcUrDY4sZNFvX4HE/F1/b6znR/mCUgiY+IpTjjFg7eZ3GeBSr5H3yx1MN6+p5cDThAAP7wyg+Zsr7wzEq6m1/usi5lCQ35jth6VfZHLJ9Qv5ZfhTY3Uv7ZkiWxHhmWfWaEVVEiJmLmjou4ULFrk7LPsgPorK0E5Q1aT14C6Byi3oFvpoqjCWJypKJCm/dplJEoO7NfPAl9kg5aGWRYkZmfajQWjfVsYAA=\",\"Photo by Malik Earnest\",\"helping-you-ask-me-questions-with-ai\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/helping-you-ask-me-questions-with-ai.mdx\",{\"_55\":238,\"_57\":239,\"_67\":243,\"_103\":256,\"_105\":257},\"February 20th, 2026\",{\"_59\":110,\"_61\":240,\"_63\":241,\"_65\":242},11.32,679200,2264,{\"_69\":244,\"_71\":245,\"_73\":246,\"_75\":247,\"_78\":248,\"_93\":251,\"_95\":252,\"_97\":253,\"_99\":254,\"_101\":255},\"How I used Cursor to Migrate Frameworks\",\"2026-02-20T00:00:00.000Z\",\"I upgraded kentcdodds.com from Remix v2 to React Router v7 in a day with over 17k lines of code changed. Here's how I did it.\",[77],{\"_80\":249},[77,250,91,127],\"react router\",\"unsplash/photo-1551983045-07983cc66cab\",\"Assorted-color item lot\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/assorted-color-item-lot-AAHxr7ZvCLs\\\"\u003eEdgar Chaparro\u003c/a\u003e\",\"data:image/webp;base64,UklGRmABAABXRUJQVlA4IFQBAAAwDQCdASpkAEMAPpU+l0g7pqUhMHjss3ASiWVt6vAFh3gotoBshde21vFlaE/pmo1p5q8s6kknab/gckkJc2D5Vnm0515Zl962GiCXyiND4/c3+6gE3ZnFrHxWcDfhIitFcdn7iTD8tjdP6Wc7DEnPxIAA/vENJYzwysnJfZYcaW/SvwGy/whEr/1bPJJpGYUiWPtaVMZlwdnKHGnva/c7j9KNPq8S03n3MfYq8nfpuSC0mlt0ogT0wnq23etBHkeD4McLzuKN8AdYoLG6Ibvajbp+yOP5wmnSn37+0bDycPMmTttQhc8ofMrhWoXaJN7/wJlt6820jufyzIHgTDlBgSACoCuQ+RzTlZCoalk0yAkck07M4ouBhjI1qh9nCXYq9n0DMEGlBZH8Ip6xWTIVFPqIqzPWbdG4goMd3BBRH+Q+akHbncboABxKukzrTJFKpAAA\",\"Photo by Edgar Chaparro\",\"how-i-used-cursor-to-migrate-frameworks\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-i-used-cursor-to-migrate-frameworks.mdx\",{\"_55\":259,\"_57\":260,\"_67\":265,\"_103\":279,\"_105\":280},\"January 5th, 2026\",{\"_59\":261,\"_61\":262,\"_63\":263,\"_65\":264},\"5 min read\",4.79,287400,958,{\"_69\":266,\"_71\":267,\"_73\":268,\"_75\":269,\"_78\":271,\"_93\":276,\"_95\":277,\"_99\":278},\"The Dow's Start on the Covenant Path\",\"2026-01-05T00:00:00.000Z\",\"My experience sharing the gospel with Jeremiah and Beiyi Dow\",[270],\"personal\",{\"_80\":272},[273,274,275],\"faith\",\"religion\",\"baptism\",\"kentcdodds.com/content/blog/the-dows-start-on-the-covenant-path/dows-and-kent\",\"Beiyi, Jeremiah Dow, and Kent C. Dodds stand side by side in white baptismal clothing, smiling indoors at a church.\",\"data:image/webp;base64,UklGRhQDAABXRUJQVlA4WAoAAAAgAAAAYwAASgAASUNDUBgCAAAAAAIYYXBwbAQAAABtbnRyUkdCIFhZWiAH5gABAAEAAAAAAABhY3NwQVBQTAAAAABBUFBMAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGzs/aOOOIVHw220vU962hgvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApkZXNjAAAA/AAAADBjcHJ0AAABLAAAAFB3dHB0AAABfAAAABRyWFlaAAABkAAAABRnWFlaAAABpAAAABRiWFlaAAABuAAAABRyVFJDAAABzAAAACBjaGFkAAAB7AAAACxiVFJDAAABzAAAACBnVFJDAAABzAAAACBtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABQAAAAcAEQAaQBzAHAAbABhAHkAIABQADNtbHVjAAAAAAAAAAEAAAAMZW5VUwAAADQAAAAcAEMAbwBwAHkAcgBpAGcAaAB0ACAAQQBwAHAAbABlACAASQBuAGMALgAsACAAMgAwADIAMlhZWiAAAAAAAAD21QABAAAAANMsWFlaIAAAAAAAAIPfAAA9v////7tYWVogAAAAAAAASr8AALE3AAAKuVhZWiAAAAAAAAAoOAAAEQsAAMi5cGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltzZjMyAAAAAAABDEIAAAXe///zJgAAB5MAAP2Q///7ov///aMAAAPcAADAblZQOCDWAAAAEAgAnQEqZABLAD65SJtKP7cpJLFYbHvwFwlpBvgcY647Tctd5yMQZPCLnIGbJQEElIP3iKFYovnoh12nCS73VA/suNvjMv+pAAD8bgiaR2XjCaSdE7HvtCcbrK/m0aEb2Tle9M318bg9HgHZ3GhVCtXiUYoTFYekoDIePJ8FK592gzKXWXO3J714sx9Kj+rziYqSJDtTBcHVTIUGhd2DxeaWGDzKfmLjfYAB/X5nUr7D1ZG5kP7dnSRgel7T7z3VVqhSFpH8QnPMRAJ+hZo90YFQ8h4AAA==\",\"the-dows-start-on-the-covenant-path\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/the-dows-start-on-the-covenant-path.mdx\",{\"_55\":282,\"_57\":283,\"_67\":287,\"_103\":304,\"_105\":305},\"December 31st, 2025\",{\"_59\":110,\"_61\":284,\"_63\":285,\"_65\":286},11.885,713100,2377,{\"_69\":288,\"_71\":289,\"_73\":290,\"_75\":291,\"_78\":293,\"_93\":299,\"_95\":300,\"_97\":301,\"_99\":302,\"_101\":303},\"2025 in Review\",\"2025-12-31T00:00:00.000Z\",\"Looking back over my 2025 and looking forward to my 2026\",[292],\"review\",{\"_80\":294},[270,295,296,297,298],\"professional\",\"mcp\",\"react\",\"web\",\"unsplash/photo-1717186158463-a7550dd10534\",\"A scenic view of a mountain range with trees and mountains in the background\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/a-scenic-view-of-a-mountain-range-with-trees-and-mountains-in-the-background-ZRELaDcKFH4\\\"\u003eOlya Mn\u003c/a\u003e\",\"data:image/webp;base64,UklGRuYAAABXRUJQVlA4INoAAADwBwCdASpkAEMAPrlKnEozM6khsHuK0nAXCWkG+OfC18ZRKMH+1wClVW/b92cT96pgDoeCKM0N46WMfbAO/FjpVTv/fgivEAAA/vCXTrOKtflXp/xmHb0LnNbItVR8cX1zR55kSUNARpsCcU8Xl8YHGMOFaLVR9iHTvomgrRbNMa5lEmO+dF8qBE39y1ZEeqXB0ETC6XYbZ2J67+pgE+pv4HcS6ntyZkk9JnjT+SKk3QwuujoUbCzgCnHqTkdFZysc/68es0IqNuBgK12MVmUNpxft8cY0ztwgAA==\",\"Photo by Olya Mn\",\"2025-in-review\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/2025-in-review.mdx\",{\"_55\":307,\"_57\":308,\"_67\":312,\"_103\":326,\"_105\":327},\"April 10th, 2025\",{\"_59\":214,\"_61\":309,\"_63\":310,\"_65\":311},5.815,348900,1163,{\"_69\":313,\"_71\":314,\"_73\":315,\"_75\":316,\"_78\":317,\"_93\":321,\"_95\":322,\"_97\":323,\"_99\":324,\"_101\":325},\"The next chapter: EpicAI.pro\",\"2025-04-10T00:00:00.000Z\",\"What I'm working on with AI education and why I think it's the future.\",[77],{\"_80\":318},[77,296,319,320],\"education\",\"epicai.pro\",\"unsplash/photo-1500674425229-f692875b0ab7\",\"Photo of island and thunder\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/photo-of-island-and-thunder-E-Zuyev2XWo\\\"\u003eJohannes Plenio\u003c/a\u003e\",\"data:image/webp;base64,UklGRjYBAABXRUJQVlA4ICoBAADQDACdASpkAEMAPp1Em0o/qq8hrNW6S/ATiWUG+OZ22ZseUH/5jbi+vYUipberimExUaA8iZOoWTETruyfwnM1a2PgGTxIwXvTfzYgjngXBOMQkkaYcNNXyYBwURuaW8n/+NJxIa47Q/FYIYa0H8AA/vDLPP653vL+SrMzodB8+hw1/sH2L1wa+S0MYvrBJn7Crb2ThtQv6GXZBDnf+lpu5u9fwamPr9DNJNG6ApJNQtfQ+HW15UgxaNSTxCuke0bm/esDwhldFPyrFgToaEO/Rz/LDyYADgoMshqCkW+A48Rt82riQve8WZBTtcGpCiFf0lcf3GcHC8/IMXlnfahYvs4rtYxfVnCnM0oZMLpAW/KnvZ3Q+HZhHwdxVaFFwZUxPza2M/LgJAAA\",\"Photo by Johannes Plenio\",\"the-next-chapter-epicai-pro\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/the-next-chapter-epicai-pro.mdx\",{\"_55\":329,\"_57\":330,\"_67\":335,\"_103\":378,\"_105\":379},\"November 21st, 2024\",{\"_59\":331,\"_61\":332,\"_63\":333,\"_65\":334},\"4 min read\",3.925,235500,785,{\"_69\":336,\"_71\":337,\"_73\":338,\"_75\":339,\"_78\":341,\"_349\":350,\"_93\":373,\"_95\":374,\"_97\":375,\"_99\":376,\"_101\":377},\"AI is taking your job\",\"2024-11-21T00:00:00.000Z\",\"AI is changing how hiring works, and that makes in person connections even more important.\",[340],\"career\",{\"_80\":342},[343,77,344,345,346,347,348],\"conferences\",\"connection\",\"job search\",\"hiring\",\"meetups\",\"human\",\"translations\",[351,361,367],{\"_352\":353,\"_354\":355,\"_356\":357},\"language\",\"日本語\",\"link\",\"https://zenn.dev/mahata/articles/ai-is-taking-your-job\",\"author\",{\"_358\":359,\"_354\":360},\"name\",\"Yasunori Mahata\",\"https://zenn.dev/mahata\",{\"_352\":362,\"_354\":363,\"_356\":364},\"Vietnamese\",\"https://7hv-blog.vercel.app/blogs/ai-is-taking-your-job\",{\"_358\":365,\"_354\":366},\"Thu Thi Bich Vu\",\"https://7hv-blog.vercel.app/about\",{\"_352\":368,\"_354\":369,\"_356\":370},\"한국어\",\"https://chapdo.vercel.app/post/25-02-10\",{\"_358\":371,\"_354\":372},\"Serim Min\",\"https://github.com/anonymousRecords\",\"unsplash/photo-1506869640319-fe1a24fd76dc\",\"Silhouette photo of six persons on top of mountain\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/silhouette-photo-of-six-persons-on-top-of-mountain-Sj0iMtq_Z4w\\\"\u003eChang Duong\u003c/a\u003e\",\"data:image/webp;base64,UklGRhYBAABXRUJQVlA4IAoBAAAQCgCdASpkAEMAPq1Em0o/qqMhtB0ac/AViWcGcAyk4fYPpPrkDr4XxI6XKz/1jcsOQT599PP25k0nZ4SvJhS8RPivLaHBHYIQkf96lOOdfOY84NDS2NB3AAD+S931DzsF0Re/o9be1ULvhzqycY6/mZgUQnXKttao2Z5HE7oXetIrofverpJHHrye2G4TBABX76hB6GueKMVSqsB4vMxSTGnJiWPzE3ahhrMOu0CBpr6P4+bWL+P7UmQjFBJX56N/3GFwWqPi0DkwVfkNBbdH6qXnLWpQqfJDCkXFn1qZXvWAd2F9LJLYceEcCFW6cI/1iVstXJaAUFUe9nUx36gW2SrFPBl8EwuAAA==\",\"Photo by Chang Duong\",\"ai-is-taking-your-job\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/ai-is-taking-your-job.mdx\",{\"_55\":381,\"_57\":382,\"_67\":386,\"_103\":398,\"_105\":399},\"October 29th, 2024\",{\"_59\":331,\"_61\":383,\"_63\":384,\"_65\":385},3.04,182400,608,{\"_69\":387,\"_71\":388,\"_73\":389,\"_75\":390,\"_78\":391,\"_93\":393,\"_95\":394,\"_97\":395,\"_99\":396,\"_101\":397},\"How I increased my visibility\",\"2024-10-29T00:00:00.000Z\",\"Someone asked me this and here's my answer.\",[270],{\"_80\":392},[319,340],\"unsplash/photo-1494869042583-f6c911f04b4c\",\"Selective focus of blue-eyed person\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/selective-focus-of-blue-eyed-person-UbJMy92p8wk\\\"\u003eAmanda Dalbjörn\u003c/a\u003e\",\"data:image/webp;base64,UklGRnADAABXRUJQVlA4WAoAAAAgAAAAYwAAQgAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCAaAQAAMAsAnQEqZABDAD6dPppIuLCroS63DKMQE4lnBvjmacoqJaGcI3RK1zacd2GRNU8jtQmN9af2sBk5kRuNLGiFuxt1sbssE2jnwMHIwfi7kW2ap3Pioon5ahvMlUT/FXkjpoAA/u6f9sqd6XQJ73pa4a+VetE9qtO6WqidlyP5We/PkdbIsxiIzuGUPpWr9jZLslsISBgMN17YxA3CKCPixbEFPTbQsCiYiGURHFZ0GoiH57EkRTdkEI/O0LfnflpAHBRDy7g5wL+jlxkTrVXnolgHI6xbBK4dgo5v/w1g/i3qxgER82ktvg5uU4AJbii7Grd2kmFjKs7f6wrpXrWMEKRmkcjGctHsRmQrrtAn4BZTgGVXHM7aAAAA\",\"Photo by Amanda Dalbjörn\",\"how-i-increased-my-visibility\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-i-increased-my-visibility.mdx\",{\"_55\":401,\"_57\":402,\"_67\":406,\"_103\":420,\"_105\":421},\"December 20th, 2023\",{\"_59\":331,\"_61\":403,\"_63\":404,\"_65\":405},3.695,221700,739,{\"_69\":407,\"_71\":408,\"_73\":409,\"_75\":410,\"_78\":411,\"_93\":415,\"_95\":416,\"_97\":417,\"_99\":418,\"_101\":419},\"2023 in Review\",\"2023-12-20T00:00:00.000Z\",\"A review of what happened in the life of Kent C. Dodds in 2023\",[292],{\"_80\":412},[270,413,414],\"epic web\",\"remix\",\"unsplash/photo-1523293836414-f04e712e1f3b\",\"Body of water in front of brown soil digital art\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/body-of-water-in-front-of-brown-soil-digital-art-0D8_tYHIy0o\\\"\u003eCasey Horner\u003c/a\u003e\",\"data:image/webp;base64,UklGRsYBAABXRUJQVlA4ILoBAADwEgCdASpkAJAAPp1Cmki4vKuhLTgMU5ATiWcFHPEBFw8Sd7mL4X+qttTSak28wgS6VhhAPgyubabfKRrOtIFOsAXKxucE4oVsiGUA8RuKVlSwDixRmzjKrBpPFGSPkVhIdKKWXeSjOvkcQMtDthL5rVhEFk9/YrhGj8f9sH1DiVcO010UW7hu3BdPBpAy2+wRb9IkZN+p11bPSze09N+AAP76QnAXyiy71jRr4Nb2Ek+iWOlYIOQQKMR3SGLbeGr2dYjDWoqnkVcHq1Gye81/6051aI2iwntiYAlCpVm7aWHBuNLr51e2XSJBQJPor6a/wAEna5Tbn/wbkjChIQ2setY7sFpN1Qay9ZRWDQokTLsq9oJK2Pviv8SShUPj0LRXx6m9+VVeyShFs84vKUGoJo0CsNm09MfS/KaBY5uLuPxCh/jbvVtDS31qVrgRo9yG64lcXnTYEnwthrIXuFDLOFNLcuv4jxSqokJBiYOLAawM5HN70fzJJly2/B68jxb4KwkQkKdmvum68eH6Q2t/UDfmvE9ZB/9C3Zyk9y7lDXkZNzWzBB2z6Hnt+crK9snH/C/Yc73AiAAA\",\"Photo by Casey Horner\",\"2023-in-review\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/2023-in-review.mdx\",{\"_55\":401,\"_57\":423,\"_67\":428,\"_103\":440,\"_105\":441},{\"_59\":424,\"_61\":425,\"_63\":426,\"_65\":427},\"13 min read\",12.81,768600,2562,{\"_69\":429,\"_71\":408,\"_73\":430,\"_75\":431,\"_78\":432,\"_93\":437,\"_95\":438,\"_99\":439},\"Launching Epic Web\",\"The story of how Epic Web came to be\",[270],{\"_80\":433},[434,435,413,319,436],\"web development\",\"courses\",\"story\",\"kentcdodds.com/content/blog/launching-epic-web/banner\",\"Illustration of three rocket ships taking off from a blue planet with an orange planet and stars in the background\",\"data:image/webp;base64,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\",\"launching-epic-web\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/launching-epic-web.mdx\",{\"_55\":443,\"_57\":444,\"_67\":449,\"_103\":488,\"_105\":489},\"May 30th, 2023\",{\"_59\":445,\"_61\":446,\"_63\":447,\"_65\":448},\"9 min read\",8.265,495900,1653,{\"_69\":450,\"_71\":451,\"_73\":452,\"_75\":453,\"_78\":454,\"_93\":459,\"_95\":460,\"_97\":461,\"_349\":462,\"_99\":486,\"_101\":487},\"Stop Being a Junior\",\"2023-05-30T00:00:00.000Z\",\"Some advise for people who still consider themselves junior developers\",[340],{\"_80\":455},[456,457,458],\"junior\",\"advice\",\"teaching\",\"unsplash/photo-1503023345310-bd7c1de61c7d\",\"Man in middle of wheat field\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/6VPEOdpFNAs\\\"\u003eLachlan Dempsey\u003c/a\u003e\",[463,469,475,480],{\"_352\":464,\"_354\":465,\"_356\":466},\"Español\",\"https://medium.com/@christiancaracach/dej%C3%A1-de-ser-un-junior-kent-c-dodds-a231ddb45f61\",{\"_358\":467,\"_354\":468},\"Christian Caracach\",\"https://www.linkedin.com/in/christian-caracach/\",{\"_352\":470,\"_354\":471,\"_356\":472},\"Português (do Brasil)\",\"https://blog.danielmarques.dev/posts/deixe-de-ser-um-junior\",{\"_358\":473,\"_354\":474},\"Daniel Marques\",\"https://danielmarques.dev\",{\"_352\":368,\"_354\":476,\"_356\":477},\"https://hellomooneekim.netlify.app/stop-being-a-junior\",{\"_358\":478,\"_354\":479},\"Moonhee Kim\",\"https://github.com/moonheekim0118\",{\"_352\":481,\"_354\":482,\"_356\":483},\"Français\",\"https://blog.theresilient.dev/arrete-d-etre-un-e-junior-e\",{\"_358\":484,\"_354\":485},\"Kokou AGBAVON\",\"https://theresilient.dev/\",\"data:image/webp;base64,UklGRiYFAABXRUJQVlA4WAoAAAAgAAAAYwAAfAAASUNDUKwDAAAAAAOsS0NNUwIQAABtbnRyUkdCIFhZWiAHzgAMAAEAEgA6ABVhY3NwTVNGVAAAAABLT0RBUk9NTQAAAAAAAAAAAAAAAAAA9tYAAQAAAADTK0tPREEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxjcHJ0AAABFAAAAEhkZXNjAAABXAAAAIN3dHB0AAAB4AAAABRyVFJDAAAB9AAAAA5nVFJDAAAB9AAAAA5iVFJDAAAB9AAAAA5yWFlaAAACBAAAABRnWFlaAAACGAAAABRiWFlaAAACLAAAABRkbW5kAAACQAAAAG5kbWRkAAACsAAAANFtbW9kAAADhAAAACh0ZXh0AAAAAENvcHlyaWdodCAoYykgRWFzdG1hbiBLb2RhayBDb21wYW55LCAxOTk5LCBhbGwgcmlnaHRzIHJlc2VydmVkLgBkZXNjAAAAAAAAAA1Qcm9QaG90byBSR0IAAAAAAAAAAA7+/wBQAHIAbwBQAGgAbwB0AG8AIABSAEcAQgAAAAANUHJvUGhvdG8gUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA9tYAAQAAAADTLGN1cnYAAAAAAAAAAQHNAABYWVogAAAAAAAAzDQAAEm9AAAAAFhZWiAAAAAAAAAinAAAtj4AAAAAWFlaIAAAAAAAAAgGAAAABgAA0y1kZXNjAAAAAAAAAAZLT0RBSwAAAAAAAAAAB/7/AEsATwBEAEEASwAAAAAGS09EQUsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAnUmVmZXJlbmNlIE91dHB1dCBNZWRpdW0gTWV0cmljKFJPTU0pICAAAAAAAAAAACj+/wBSAGUAZgBlAHIAZQBuAGMAZQAgAE8AdQB0AHAAdQB0ACAATQBlAGQAaQB1AG0AIABNAGUAdAByAGkAYwAoAFIATwBNAE0AKQAgACAAAAAAJ1JlZmVyZW5jZSBPdXRwdXQgTWVkaXVtIE1ldHJpYyhST01NKSAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbW9kAAAAAAAABhAAAJ0DAQEBAbDPO4AAAAAAAAAAAAAAAAAAAAAAVlA4IFQBAAAwDQCdASpkAH0APrVMnUo/sDMhsJjcI/AWiWcGeuoF8DBmBcGzunp69qVZ4QsbIyKPs9Cd+cCZ8P02wy5l6N4HhmchKxIS1xXYouAolE4X9JmM9R6E9FtICJmcma/3EA1GLQuKglXGeSXAuFMy2dX//agA/vMilIy1TvASFF6Glnd116HF3honKvd2irPsoQy4DIcewL+jvay56qEBIlspXFH/YP+2qbVdtCKkaeW5W2nIKeyxHaXeryZXhQrj+jHgKA/ZbfPfbtdbaJqTQjilExS971nGOUnlU0xbNN7lF1kSrAt/bCC1/Wyd5XqqWaizQYBzj4dUC3t6k/2xxBBdiic3BaJEbOIJ9RYR5qFwTW7xxeE7+KxK4V7DxdFup6kb5SUwavHEkLKGYw7Ml/e5hQcukQ6ayh9GK4kd6YioyFl7kevRox/qECU0UqvCr166wAAA\",\"Photo by Lachlan Dempsey\",\"stop-being-a-junior\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/stop-being-a-junior.mdx\",{\"_55\":491,\"_57\":492,\"_67\":497,\"_103\":510,\"_105\":511},\"March 14th, 2023\",{\"_59\":493,\"_61\":494,\"_63\":495,\"_65\":496},\"15 min read\",14.89,893400,2978,{\"_69\":498,\"_71\":499,\"_73\":500,\"_75\":501,\"_78\":502,\"_93\":505,\"_95\":506,\"_97\":507,\"_99\":508,\"_101\":509},\"RSC with Dan Abramov and Joe Savona Live Stream\",\"2023-03-14T00:00:00.000Z\",\"I had a live streamed conversation with Joe Savona and Dan Abramov. Here's a summary of our discussion.\",[297],{\"_80\":503},[297,504,414],\"server components\",\"kentcdodds.com/content/blog/rsc-with-dan-abramov-and-joe-savona-live-stream/thumbnail\",\"The words \\\"React Server Components\\\" with photos of Dan Abramov, Joe Savona, and Kent C. Dodds\",\"Thumbnail by \u003ca href=\\\"https://x.com/yourboysoren/status/1634707317521260544\\\"\u003eLucas Soren\u003c/a\u003e\",\"data:image/webp;base64,UklGRhQBAABXRUJQVlA4IAgBAABQCgCdASpkADgAPrlUoU08v64oqTIMy/AXCWUAvOXnwXNmm0BE9Hk/BU5hwDRPoEoYlgLBNbc+xohz/XCN67F1Sd3cVAs9qihDGfupmVOQRqDPHN8tet/pY+EAAP7wjen49K4X9FOie1h+MvjMEKESmJ+LHigyYCsyM+Myi6B5KCVwf5oqj71XhklxSNfyIsWA33gtsoLoLaDltV0zNFr8keju9S+GptvCZxa/3H2Sz7kt5VodVZzJ9dGshOSfB1gjE0QqXtVAtsNpgA9epSRQ/Cg8C1RGUNU+qrkq3ZT1MtHiEtzLPLZGhkNKHViI9OqxQzLOB2g+1Nvf3tyCBLZ08RcXLd8AAAA=\",\"Thumbnail by Lucas Soren\",\"rsc-with-dan-abramov-and-joe-savona-live-stream\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/rsc-with-dan-abramov-and-joe-savona-live-stream.mdx\",{\"_55\":513,\"_57\":514,\"_67\":518,\"_103\":534,\"_105\":535},\"January 12th, 2023\",{\"_59\":493,\"_61\":515,\"_63\":516,\"_65\":517},14.92,895200,2984,{\"_69\":519,\"_71\":520,\"_73\":521,\"_75\":522,\"_78\":524,\"_93\":529,\"_95\":530,\"_97\":531,\"_99\":532,\"_101\":533},\"Fixing a Memory Leak in a Production Node.js App\",\"2023-01-12T00:00:00.000Z\",\"How I found and fixed a memory leak on kentcdodds.com\",[523],\"node\",{\"_80\":525},[180,526,23,527,528],\"metrics\",\"node.js\",\"memory leak\",\"unsplash/photo-1520637102912-2df6bb2aec6d\",\"person in front of waterfalls during nighttime\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/VlH2eHyE_50\\\"\u003eJonatan Pie\u003c/a\u003e\",\"data:image/webp;base64,UklGRg4BAABXRUJQVlA4IAIBAACQCQCdASpkAEMAPrlOn0s/rColL5aaq/AXCWcGWALWirwHeANSlhcyaSTOxJeAugpS3mtFNCiEnQJndHlZfS5hr7z1Y05lgi2mVz+YWl3ImismZYhQAP7w/3PU6+Isz/FapYy0h0mLqaJK6jXEALgglfOsgABrj4nz21jQ/mijs1RDLuWlLq+bfigsmSRJON27ur0F7STMWHRqR6iGNhiAR6C8ePUt5GwELHz/WpRMBWwQcZUu8a24jfSIQSe7xafEdGNvNSPPvvAI/Y9VevSXucBQP0Z1KsrKPqXQQPWYYo8PzPB4JwyU9YEAIMo6RhLJIxyd0JT6npAwQC01c4jggAA=\",\"Photo by Jonatan Pie\",\"fixing-a-memory-leak-in-a-production-node-js-app\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/fixing-a-memory-leak-in-a-production-node-js-app.mdx\",{\"_55\":537,\"_57\":538,\"_67\":542,\"_103\":555,\"_105\":556},\"December 29th, 2022\",{\"_59\":261,\"_61\":539,\"_63\":540,\"_65\":541},4.64,278400,928,{\"_69\":543,\"_71\":544,\"_73\":545,\"_75\":546,\"_78\":547,\"_93\":550,\"_95\":551,\"_97\":552,\"_99\":553,\"_101\":554},\"2022 in Review\",\"2022-12-29T00:00:00.000Z\",\"A review of what happened in the KCD world in 2022\",[292],{\"_80\":548},[270,549,414,413],\"accident\",\"unsplash/photo-1494500764479-0c8f2919a3d8\",\"tree on body of water near mountains\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/KonWFWUaAuk\\\"\u003eKen Cheung\u003c/a\u003e\",\"data:image/webp;base64,UklGRhQDAABXRUJQVlA4WAoAAAAgAAAAYwAAQgAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCC+AAAA8AYAnQEqZABDAD6lUKBNP7EmoqH4C+PwFIlnBvgbwSB6CnQtYzPZ6e1/Gy4yNpBzuU2nuAdUtm6Ha5qsJGVdYAD4V+D+fltf2p+Vnu+i0MdNY0Fliidej6u1GBzSMOw8HhQui9qjAzR4vNl9c7xmoVsjiIKmgvYqb0NtMDvhKhyLhsYxg0USsd2MC7c/aZt8GI9cYwhcwcB6h3Lt+wfE3E3x7spMbMfW/vpvvDzLnmiJhMp85W6m4le+1wAAAA==\",\"Photo by Ken Cheung\",\"2022-in-review\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/2022-in-review.mdx\",{\"_55\":537,\"_57\":558,\"_67\":562,\"_103\":574,\"_105\":575},{\"_59\":214,\"_61\":559,\"_63\":560,\"_65\":561},5.71,342600,1142,{\"_69\":563,\"_71\":544,\"_73\":564,\"_75\":565,\"_78\":566,\"_93\":571,\"_95\":572,\"_99\":573},\"My Car Accident\",\"I was involved in a very bad car accident in 2022. Here's the story.\",[270],{\"_80\":567},[568,569,570],\"car accident\",\"tesla\",\"recovery\",\"kentcdodds.com/content/blog/my-car-accident/car-in-daylight\",\"Kent standing by a wrecked Tesla model 3 in a junkyard. It's completely crushed.\",\"data:image/webp;base64,UklGRkwDAABXRUJQVlA4WAoAAAAgAAAAYwAASgAASUNDUCQCAAAAAAIkYXBwbAQAAABtbnRyUkdCIFhZWiAH4QAHAAcADQAWACBhY3NwQVBQTAAAAABBUFBMAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGzKGpWCJX8QTTiZE9XR6hWCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApkZXNjAAAA/AAAAGVjcHJ0AAABZAAAACN3dHB0AAABiAAAABRyWFlaAAABnAAAABRnWFlaAAABsAAAABRiWFlaAAABxAAAABRyVFJDAAAB2AAAACBjaGFkAAAB+AAAACxiVFJDAAAB2AAAACBnVFJDAAAB2AAAACBkZXNjAAAAAAAAAAtEaXNwbGF5IFAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29weXJpZ2h0IEFwcGxlIEluYy4sIDIwMTcAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAIPfAAA9v////7tYWVogAAAAAAAASr8AALE3AAAKuVhZWiAAAAAAAAAoOAAAEQsAAMi5cGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltzZjMyAAAAAAABDEIAAAXe///zJgAAB5MAAP2Q///7ov///aMAAAPcAADAblZQOCACAQAAkAoAnQEqZABLAD65Tp9Lv7StqizW28vwFwlnBnomzV4ciBaY8mUDkoCyyYHZ286s6QzOxna6Ie5yCFjimFCeeEOhYiLxvPmwQs7tkKHBZWLuYgHAVXEHisWPSyOwAP7jq72beRmrRvxW17eY3kHBrOCNCTz/1Z9i1IhI76bkywWCo3xujkcBNdJWPzBQFktz6xnY9fV7E4tvWDiqwisg0EPc1KN5qME0yAIxmkLlnbRnbazw1eD5sgvb6siuAXFu/vIgpky6W95v5pJiQGaPh3h7ZK34R14kosE/EbSoLWxCnoIo0u3968GLJWdiqb00Zk+7W1fhim/Dex4GjwHV6AAA\",\"my-car-accident\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/my-car-accident.mdx\",{\"_55\":577,\"_57\":578,\"_67\":583,\"_103\":602,\"_105\":603},\"November 21st, 2022\",{\"_59\":579,\"_61\":580,\"_63\":581,\"_65\":582},\"22 min read\",21.28,1276800,4256,{\"_69\":584,\"_71\":585,\"_73\":586,\"_75\":587,\"_78\":589,\"_93\":597,\"_95\":598,\"_97\":599,\"_99\":600,\"_101\":601},\"I Migrated from a Postgres Cluster to Distributed SQLite with LiteFS\",\"2022-11-21T00:00:00.000Z\",\"Why and how I migrated from distributed postgres to distributed sqlite on kentcdodds.com\",[588],\"databases\",{\"_80\":590},[591,87,592,593,594,595,588,596],\"postgres\",\"litefs\",\"fly\",\"infrastructure\",\"litestream\",\"distributed\",\"unsplash/photo-1642134222020-cc21d2e39dd6\",\"HD photo by Radu Chelariu\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/TO79QbSkwaI\\\"\u003eRadu Chelariu\u003c/a\u003e\",\"data:image/webp;base64,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\",\"Photo by Radu Chelariu\",\"i-migrated-from-a-postgres-cluster-to-distributed-sqlite-with-litefs\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/i-migrated-from-a-postgres-cluster-to-distributed-sqlite-with-litefs.mdx\",{\"_55\":605,\"_57\":606,\"_67\":610,\"_103\":622,\"_105\":623},\"September 7th, 2022\",{\"_59\":191,\"_61\":607,\"_63\":608,\"_65\":609},6.885,413100,1377,{\"_69\":611,\"_71\":612,\"_73\":613,\"_75\":614,\"_78\":615,\"_93\":617,\"_95\":618,\"_97\":619,\"_99\":620,\"_101\":621},\"I'm building EpicWeb.dev\",\"2022-09-07T00:00:00.000Z\",\"I've struck out on my own again to focus on my most ambitious project yet.\",[340],{\"_80\":616},[297,414,319,340,298],\"unsplash/photo-1639262498805-17c7dc422d37\",\"Futuristic spaceship flying through the sky from night-time blue on the left to streaks of red lines on the right.\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/vED-G-klEjo\\\"\u003eIvan Diaz\u003c/a\u003e\",\"data:image/webp;base64,UklGRhwBAABXRUJQVlA4IBABAAAwCQCdASpkAEMAPp1Knku0p60hpJma8pATiWUG+OfP1XWP3eQFbFu5naDMH4uHXhHHk0cn1nkxzHTFUerGdQv25bNIu2sc3uzEltU2xxMXNgM4AP7uT+YFfihotxgUn/wH5y/YHd/VKPY9zsDrI3X6WutSt2j+eho79oTNVzLYiKxQdakcn1LkeWojc/bvJHTuOD5doknTZ1SNOoSYGVi7FXQBLXA7yE3GOmCHxnjECZR0SMZg8XBuvBqng65Fc9+6KGP+W9z8AVSP+iqnbrcD3Oo+BEirWHvPvmUXUgPFG9+CLLcHyLbt5CsRDCxMfA/7CvfQcSFYOip1ZYuwbyUQyCdxNvAz0J72blHjEAAAAA==\",\"Photo by Ivan Diaz\",\"i-m-building-epicweb-dev\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/i-m-building-epicweb-dev.mdx\",{\"_55\":625,\"_57\":626,\"_67\":630,\"_103\":644,\"_105\":645},\"September 6th, 2022\",{\"_59\":261,\"_61\":627,\"_63\":628,\"_65\":629},4.84,290400,968,{\"_69\":631,\"_71\":632,\"_73\":633,\"_75\":634,\"_78\":635,\"_93\":639,\"_95\":640,\"_97\":641,\"_99\":642,\"_101\":643},\"A review of my time at Remix\",\"2022-09-06T00:00:00.000Z\",\"As I move on to my next adventure, I want to take this opportunity to review what I accomplished while at Remix.\",[340],{\"_80\":636},[414,637,638,340],\"github\",\"open source\",\"unsplash/photo-1487640228478-7a32e30a9e40\",\"person sitting on black surface looking to a purple sky\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/DLICfSD33as\\\"\u003eJeremy Bishop\u003c/a\u003e\",\"data:image/webp;base64,UklGRv4AAABXRUJQVlA4IPIAAADQCQCdASpkAEMAPqVInUoxL6+mqvgMKiAUiWcG+OUHgCevA2GO3dUliVfLKavdr6mLR5kQmwWJyX96tffjo2NtqqcBcriwqMU14CAMIcdMWRXnf3K6vgAA/vD/7/jbIsqehwBzRgAHP+oz/nJBpsKn6d4ZeRyqPf9Vb0Ux1GUW6AwwptxD3ARUGbgoZNrD3Z7e+qzdlc6+1m93RsVpXJzhrmI6xg8S6zk/Vav6yWUSTKamVCRXyOtaEdJAc98Po9vj+P81uLhXqfIwIfUDqrSs4jEcbAOMSz9B4hme1Vhj2O8RR9rq3AxemZNd9RjnMAAAAA==\",\"Photo by Jeremy Bishop\",\"a-review-of-my-time-at-remix\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/a-review-of-my-time-at-remix.mdx\",{\"_55\":647,\"_57\":648,\"_67\":653,\"_103\":684,\"_105\":685},\"March 24th, 2022\",{\"_59\":649,\"_61\":650,\"_63\":651,\"_65\":652},\"11 min read\",10.945,656700,2189,{\"_69\":654,\"_71\":655,\"_73\":656,\"_75\":657,\"_78\":658,\"_349\":660,\"_93\":679,\"_95\":680,\"_97\":681,\"_99\":682,\"_101\":683},\"Remix: The Yang to React's Yin\",\"2022-03-24T00:00:00.000Z\",\"Remix fills the missing piece that all React web applications need: The Network Chasm\",[414,297],{\"_80\":659},[414,297,298,250],[661,667,669,675],{\"_352\":662,\"_354\":663,\"_356\":664},\"Türkçe\",\"https://medium.com/@yilmazcite/remix-reactin-yin-ine-yang-ac7ee260f827\",{\"_358\":665,\"_354\":666},\"Yılmaz Çite\",\"https://github.com/yilmazcite\",{\"_352\":353,\"_354\":668},\"https://note.com/lada496/n/ned53c33b35cd\",{\"_352\":670,\"_354\":671,\"_356\":672},\"Português\",\"https://yazaldefilimone.com/blog/remix-o-yang-para-reagir-ao-yin\",{\"_358\":673,\"_354\":674},\"Yazalde Filimone\",\"https://github.com/yazaldefilimonepinto\",{\"_352\":464,\"_354\":676,\"_356\":677},\"https://medium.com/@christiancaracach/remix-el-yang-del-yin-de-react-e20e1495f0b8\",{\"_358\":467,\"_354\":678},\"https://github.com/Chriscaracach\",\"unsplash/photo-1604845029162-cfa4b9a1550f\",\"yellow and black fish in water\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/SITwDBhar6w\\\"\u003eSergio Capuzzimati\u003c/a\u003e\",\"data:image/webp;base64,UklGRhIBAABXRUJQVlA4IAYBAADwDACdASpkAEMAPp1EnEm4sikhLbmZMxATiWcGcAzuXlQnXhFdl5LEiQOky3ly1yV8GpkKhcOe29tCRes9Wq2B0o77rXPs4E7nP3OwsAut/3CV7hg0rWITIibQzrFimy9P75HvBw34tjD6PevHThAAAP75ZVFI3/anWDpkp4M/wtOEf4zH6BM6/3V5YRlrJAnnjY2oJm52jaFHH7wWg3Hi94EMy+E6NkpjelGc83YxIgzfl47RBYgu8SJoKpvrPUIf+wHyhaHPVB619/G2h4w4FiIBi2qWwJlWI3cVM289RBL4vF0ekeF0HIo+/eVxC0X/YIfB7ejH7w6UcEXF2KXw1meTAAAA\",\"Photo by Sergio Capuzzimati\",\"remix-the-yang-to-react-s-yin\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/remix-the-yang-to-react-s-yin.mdx\",{\"_55\":687,\"_57\":688,\"_67\":692,\"_103\":704,\"_105\":705},\"November 15th, 2021\",{\"_59\":261,\"_61\":689,\"_63\":690,\"_65\":691},4.565,273900,913,{\"_69\":693,\"_71\":694,\"_73\":695,\"_75\":696,\"_78\":697,\"_93\":699,\"_97\":700,\"_95\":701,\"_99\":702,\"_101\":703},\"How I help you build better websites\",\"2021-11-15T00:00:00.000Z\",\"I'm making a career move to more effectively help you make the web (and the world) better.\",[414,340,270],{\"_80\":698},[297,414,458,340,319],\"kentcdodds.com/content/blog/how-i-help-you-build-better-websites/kent-speaking-about-remix\",\"Photo by \u003ca href=\\\"https://x.com/marcelcutts/status/1451543256236494854\\\"\u003eMarcel Cutts\u003c/a\u003e\",\"Kent on stage raising his hand with the Remix logo behind him\",\"data:image/webp;base64,UklGRggBAABXRUJQVlA4IPwAAAAwCgCdASpkAEMAPrlOoEszOLEhq/dtExAXCWkGcBjrYtd69huTwQmKzLTTZI4YXnfsVSbiWagGK3feWOoRNIP/not5dwlobo45orkaFKRlWPG4cW3FjsbZcQAA/vRicHrAF4ThT3zRHU+COw82gLA9Zqie07bv7rZcw7bTRhxbWQqBDpDlqlxCC3kUFoZVHxRgBae2l3sr2IZpGXInt9aaX2OhiFpP4OeVEnTe32QjEyzQWhy0YDXL0gEcSd67VTSUkOmOWcSaOdQt3db/2dsU2SfJCiqtDNytyZr9HqWujFwkfXfC7BcUoPXQHszpFJ8ZMXpSzxeYTTvkAAA=\",\"Photo by Marcel Cutts\",\"how-i-help-you-build-better-websites\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-i-help-you-build-better-websites.mdx\",{\"_55\":707,\"_57\":708,\"_67\":713,\"_103\":739,\"_105\":740},\"November 13th, 2021\",{\"_59\":709,\"_61\":710,\"_63\":711,\"_65\":712},\"10 min read\",9.37,562200,1874,{\"_69\":714,\"_71\":715,\"_73\":716,\"_75\":717,\"_78\":718,\"_349\":726,\"_93\":734,\"_95\":735,\"_97\":736,\"_99\":737,\"_101\":738},\"Why I Love Remix\",\"2021-11-13T00:00:00.000Z\",\"I've written tens of thousands of lines of code with Remix and I want to tell you why I love using this framework.\",[414],{\"_80\":719},[720,297,721,722,723,180,724,725],\"remix run\",\"server side rendering\",\"ssr\",\"ssg\",\"css\",\"user experience\",[727,729],{\"_352\":353,\"_354\":728},\"https://note.com/lada496/n/nce2525980fcc\",{\"_352\":470,\"_354\":730,\"_356\":731},\"https://dev.to/remix-run-br/por-que-eu-amo-remix-por-kent-c-dodds-4379\",{\"_358\":732,\"_354\":733},\"William Gonçalves\",\"https://owilliamgoncalves.dev\",\"unsplash/photo-1587096473086-abb7a1ec4393\",\"blue and black compact disc\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/syexL_Ke5V8\\\"\u003eGio Bartlett\u003c/a\u003e\",\"data:image/webp;base64,UklGRv4AAABXRUJQVlA4IPIAAAAwCACdASpkAEsAPp1GnEslrykhpnScAeATiWcAxYSB0pcEEAT1uIzpkzAeN6p0RISEKg7fr1KQXSyI+gsaLwAEGfjkGi17yzKwQAD+9WmlrjBeKE+frjqBCuX1CMj43CKWjuVmpwUheplrn5s/Z8lNryFj09H/QthEzbqW2MDYRogKctXx9cGjd2RyB870F3d04BCbdzMTnvj0SlB10YTRTZee5V0y1BV5J+eFkS49GHrXXfA7bbVzR0FEpTlsYMS0eWt/IWfgIVPdmFsgDIEz6MnMiNAZ7Gap5tgF2aNw+v82W3IloBOF43YZcIbK7wAAAA==\",\"Photo by Gio Bartlett\",\"why-i-love-remix\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/why-i-love-remix.mdx\",{\"_55\":742,\"_57\":743,\"_67\":747,\"_103\":772,\"_105\":773},\"November 5th, 2021\",{\"_59\":214,\"_61\":744,\"_63\":745,\"_65\":746},5.715,342900,1143,{\"_69\":748,\"_71\":749,\"_73\":750,\"_75\":751,\"_78\":752,\"_93\":761,\"_95\":762,\"_97\":763,\"_349\":764,\"_99\":770,\"_101\":771},\"The State Initializer Pattern\",\"2021-11-05T00:00:00.000Z\",\"A simple pattern used in libraries like downshift and ReachUI to enable component/hook users to initialize your state and even reset it to that initial value.\",[297],{\"_80\":753},[297,754,755,756,757,758,759,760],\"patterns\",\"hooks\",\"function components\",\"advanced react patterns\",\"state initialization\",\"reset state\",\"key prop\",\"unsplash/photo-1455612693675-112974d4880b\",\"white abstract geometric artwork\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/Fixg8KipOg8\\\"\u003eSilvio Kundt\u003c/a\u003e\",[765],{\"_352\":464,\"_354\":766,\"_356\":767},\"https://www.jpmti2016.com/es/posts/the-state-initializer-pattern\",{\"_358\":768,\"_354\":769},\"Yampier Medina\",\"https://www.jpmti2016.com/\",\"data:image/webp;base64,UklGRqwAAABXRUJQVlA4IKAAAADQBgCdASpkAEMAPrlQn0w8qKMiKTzL05AXCWkG+AAHmOki9ZMlBZNr4ec9gBCUvBY+qG2qnxTidABMunyKh4AA/u/1mI0QWiTiLwfrk42RPpph6m1Sjyjou2i7LrLy2MX2D3yaz4JapMC9g/Z+8vqOz6qQQKpIuRkIjmlfZN+QOG093js4uY1dXQoOTv8328kxn3IgcSdXB30AX5Eo1gAA\",\"Photo by Silvio Kundt\",\"the-state-initializer-pattern\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/the-state-initializer-pattern\",{\"_55\":775,\"_57\":776,\"_67\":780,\"_103\":796,\"_105\":797},\"November 3rd, 2021\",{\"_59\":138,\"_61\":777,\"_63\":778,\"_65\":779},7.125,427500,1425,{\"_69\":781,\"_71\":782,\"_73\":783,\"_349\":784,\"_78\":788,\"_93\":791,\"_97\":792,\"_99\":793,\"_95\":794,\"_101\":795},\"How to React ⚛️\",\"2021-11-03T00:00:00.000Z\",\"Let's see how learning React ⚛️ in the right order can make it less overwhelming.\",[785],{\"_352\":464,\"_354\":786,\"_356\":787},\"https://medium.com/@christiancaracach/c%C3%B3mo-reactcionar-how-to-react-6ac7b9434d7d\",{\"_358\":467,\"_354\":468},{\"_80\":789},[297,790],\"javascript\",\"unsplash/photo-1515997855079-97ffd6a7775e\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/7UYzLZB9BM0\\\"\u003eArtem Sapegin\u003c/a\u003e\",\"data:image/webp;base64,UklGRr4AAABXRUJQVlA4ILIAAAAwBwCdASpkADIAPrlUoUu/pSchqTv8A/AXCWcAzfwTDQrWTzDf4iwRnxIsZAP4QjvNQbEgqCR5me/fualbHS+tlAAA/u5Uj8Vlu55rnCq2k5XhseFY7/PdOfT939CZSzlrar8/nGmOGStXxKaEHi823XgKPB/9p9kkutwCHaXQqFr5wliON/z7Mre4lSitTy6beYY3NByFbvAIYoeX8FqU/UErjU16wpCqJX1bvuOcyXgA\",\"by Artem Sapegin\",\"Photo by Artem Sapegin\",\"how-to-react\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-to-react.mdx\",{\"_55\":799,\"_57\":800,\"_67\":804,\"_103\":841,\"_105\":842},\"October 28th, 2021\",{\"_59\":261,\"_61\":801,\"_63\":802,\"_65\":803},4.635,278100,927,{\"_69\":805,\"_71\":806,\"_73\":807,\"_75\":808,\"_78\":810,\"_349\":814,\"_93\":836,\"_95\":837,\"_97\":838,\"_99\":839,\"_101\":840},\"Get a catch block error message with TypeScript\",\"2021-10-28T00:00:00.000Z\",\"TypeScript forces you to acknowledge you can't know what was thrown making getting the error message a pain. Here's how you can manage it.\",[809],\"typescript\",{\"_80\":811},[812,809,813],\"errors\",\"error messages\",[815,820,825,830],{\"_352\":368,\"_354\":816,\"_356\":817},\"https://junghyeonsu.com/posts/get-a-catch-block-error-message-with-typescript/\",{\"_358\":818,\"_354\":819},\"Hyeonsu Jung\",\"https://junghyeonsu.com/\",{\"_352\":470,\"_354\":821,\"_356\":822},\"https://ruttmann.github.io/posts/ts-error-messages/\",{\"_358\":823,\"_354\":824},\"Marlon E. Ruttmann\",\"https://www.linkedin.com/in/marlon-ruttmann/\",{\"_352\":353,\"_354\":826,\"_356\":827},\"https://note.com/lada496/n/n88c5aab6d0f9\",{\"_358\":828,\"_354\":829},\"Lada496\",\"https://github.com/Lada496\",{\"_352\":831,\"_354\":832,\"_356\":833},\"简体中文\",\"https://www.boris1993.com/translation-get-a-catch-block-error-message-with-typescript.html\",{\"_358\":834,\"_354\":835},\"boris1993\",\"https://github.com/boris1993\",\"unsplash/photo-1525785967371-87ba44b3e6cf\",\"brown and white cat in shallow focus shot\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/tEMU4lzAL0w\\\"\u003e傅甬 华\u003c/a\u003e\",\"data:image/webp;base64,UklGRlIBAABXRUJQVlA4IEYBAACQDgCdASpkAEIAPrlOn0snOK2hsHHMsxAXCWcAzDofhbcTEAaXVx2eSJBzl1FI4PsBhjC0mJpyqFCYKqMtkKcldBqLlBXH5tks4EesHBbcwmQtLVuaJug5EpYd2Jg2wctB0VtCI12O4yBBEj4wlow2GP8/KpGzDG//K/q+YADL6K3ZBbuLsHv+btleeFd86jNg7XkblZTPXd5p1Id+5xNhkkY8xwsJ0UhWlCSNzluD75C4NqAkJ2LoIrnIXS4P1/KE1RXleEy+9/v+3vGqv1eAihURUs/TqUxrI8a0AijigqKn5K4lS73P4e5/HQLYVOHYKqJtHgmT7alc7zrP1QjhxRR0bGKQfuVNDgRAs9YrTN5JLUHXl1u0GMtoCWYijr3pQOBJabEmmGpXLTqHs+hH2PMa8+mZPbSlOVETaEBi1bulCmYAAA==\",\"Photo by 傅甬 华\",\"get-a-catch-block-error-message-with-typescript\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/get-a-catch-block-error-message-with-typescript.mdx\",{\"_55\":844,\"_57\":845,\"_67\":850,\"_103\":872,\"_105\":873},\"October 19th, 2021\",{\"_59\":846,\"_61\":847,\"_63\":848,\"_65\":849},\"14 min read\",13.995,839700,2799,{\"_69\":851,\"_71\":852,\"_73\":853,\"_75\":854,\"_349\":855,\"_78\":861,\"_93\":867,\"_95\":868,\"_97\":869,\"_99\":870,\"_101\":871},\"Building an awesome image loading experience\",\"2021-10-19T00:00:00.000Z\",\"How Unsplash's blurred image loading works and why I did mine differently for a more excellent experience on my site.\",[725],[856],{\"_352\":368,\"_354\":857,\"_356\":858},\"https://velog.io/@shroad1802/Building-an-awesome-image-loading-experience\",{\"_358\":859,\"_354\":860},\"Lee Dogyeong\",\"https://github.com/dogyeong\",{\"_80\":862},[863,297,864,180,725,865,866],\"server rendering\",\"cloudinary\",\"blurhash\",\"gatsby-plugin-sharp\",\"unsplash/photo-1541969358822-1567cdf1a2a4\",\"frosted glass window\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/JhEzbxfNeMw\\\"\u003eDanielle MacInnes\u003c/a\u003e\",\"data:image/webp;base64,UklGRgwBAABXRUJQVlA4IAABAADwCgCdASpkAEMAPq1Cm0otrikrtRvKqcAViWkAz2nhwgXX13NFMxMyGNCWhOHCzdPw+yvl8POIZIwFskZ8W8/yTwqAgJlFzTeqh/DhBDoDTKMpifPj1CALqgVCCxj+31AA/u/Y0L92ySjySVRXNg6rkHPwUBIeTfxTyOZx7FairWDPysfh0O9mqkU+ta/dR3A/rDS4OxGuoP3vzGrfu+tklBsdGZ6ayYUh/QBZtjXbVpV429DgM37pbaGjEWec6qi39yNf9JgCVy1mBxcqpHbUQttDgjYKkcTxf1OmgSHMrHvea7Asr/BB6QagnPQ4nERV7OFnHWhjn4HgZ+YXQAAA\",\"Photo by Danielle MacInnes\",\"building-an-awesome-image-loading-experience\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/building-an-awesome-image-loading-experience.mdx\",{\"_55\":875,\"_57\":876,\"_67\":880,\"_103\":894,\"_105\":895},\"October 13th, 2021\",{\"_59\":191,\"_61\":877,\"_63\":878,\"_65\":879},6.215,372900,1243,{\"_69\":881,\"_71\":882,\"_73\":883,\"_75\":884,\"_78\":885,\"_93\":889,\"_95\":890,\"_97\":891,\"_99\":892,\"_101\":893},\"How Remix makes CSS clashes predictable\",\"2021-10-13T00:00:00.000Z\",\"Remix has this beautifully simple feature for CSS that I want to tell you all about.\",[724],{\"_80\":886},[414,724,354,297,887,888],\"css-in-js\",\"tailwind\",\"unsplash/photo-1543393716-375f47996a77\",\"white police car in wall\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/K5BFXOsFp7g\\\"\u003eConor Samuel\u003c/a\u003e\",\"data:image/webp;base64,UklGRhABAABXRUJQVlA4IAQBAACwCwCdASpkAEMAPrlEnUoppyYrr50rGXAXCWkAz2nkAbsOQqmHxDfWNBpEfOBFCluKaeTr1mRZo+qBHzQENXd2qRKnIL2zWkbeq14o33kZ9awcGi0yv6QHuZkrOEKz8CapV19KMAAA/vRmTNvOMUZxkvsTPHuKx2eksSDAIm/Lp6Ii7c3LfSq5zGpyr6htQiowMtbd9SpB3OoYz2sq/2RJdjNQfu+uLZBbuNBvFoan6kHQOHzeQfpbxsZp5Z6mtn0SmY4J1Hv80Mro3lAnFdtEGgY90sASFTrjO57LH+cdJhQ3WUDktZTHK+tUe67nnVcayDhGtGRVymW7e2N2DKLWgTIAAA==\",\"Photo by Conor Samuel\",\"how-remix-makes-css-clashes-predictable\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-remix-makes-css-clashes-predictable.mdx\",{\"_55\":897,\"_57\":898,\"_67\":903,\"_103\":931,\"_105\":932},\"September 29th, 2021\",{\"_59\":899,\"_61\":900,\"_63\":901,\"_65\":902},\"34 min read\",33.9,2034000,6780,{\"_69\":904,\"_71\":905,\"_73\":906,\"_75\":907,\"_349\":908,\"_78\":920,\"_93\":926,\"_95\":927,\"_97\":928,\"_99\":929,\"_101\":930},\"How I built a modern website in 2021\",\"2021-09-29T00:00:00.000Z\",\"I rewrote kentcdodds.com using the latest technologies and I want to talk about what I did.\",[297,414],[909,914],{\"_352\":464,\"_354\":910,\"_356\":911},\"https://medium.com/@diego.razquin/como-constru%C3%AD-un-sitio-web-moderno-en-2021-e0c923f161e6\",{\"_358\":912,\"_354\":913},\"Diego Razquin\",\"https://x.com/TheRaaskin\",{\"_352\":915,\"_354\":916,\"_356\":917},\"Greek\",\"https://medium.com/@athanasu/how-i-built-a-modern-website-in-2021-greek-translation-7d1405edc932\",{\"_358\":918,\"_354\":919},\"George Athanasoulias\",\"https://www.linkedin.com/in/athanasu/\",{\"_80\":921},[297,414,922,809,923,179,591,924,925],\"prisma\",\"cypress\",\"tailwind css\",\"magic links\",\"kentcdodds.com/content/blog/how-i-built-a-modern-website-in-2021/banner_iplhop\",\"MacBook Pro on top of brown table\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/1SAnrIxw5OY\\\"\u003eKari Shea\u003c/a\u003e\",\"data:image/webp;base64,UklGRhQBAABXRUJQVlA4IAgBAAAQDQCdASpkAEMAPrFGmko7qyWhsls9U3AWCWkGcA01nlwbK5buwWRoA3koD7+5vLBXAtOMrneG2GT90JyrLz+2XeotIAEq5PL4F0N1qTRIJ7LnMa5Zcre8UaDTMRtFt14eXNoGYkhNSt0REMN2PN4FwAD+7s4jHeyE9BXykzZMxIuwC4FSp408GYxRjoczsMvwZlqrnzr4cuA6X6MspvaoVHUro1XNU1SNxrLKLjhZrJ3GmlyoorlW1L532OP9tbhOeQgFiDwE81g+CH4d16xfOjEGrpus0wYxdunoI7Nokc5fnyoAw8pKJEq6cW3Yp4rqZw9fosV61qnAN+ViAH+WOzoqC6R90AA=\",\"Photo by Kari Shea\",\"how-i-built-a-modern-website-in-2021\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-i-built-a-modern-website-in-2021.mdx\",{\"_55\":934,\"_57\":935,\"_67\":936,\"_103\":972,\"_105\":973},\"June 5th, 2021\",{\"_59\":649,\"_61\":650,\"_63\":651,\"_65\":652},{\"_69\":937,\"_71\":938,\"_73\":939,\"_75\":940,\"_78\":941,\"_349\":944,\"_93\":967,\"_97\":968,\"_99\":969,\"_95\":970,\"_101\":971},\"How to use React Context effectively\",\"2021-06-05T00:00:00.000Z\",\"How to create and expose React Context providers and consumers\",[297],{\"_80\":942},[297,790,809,943],\"react context\",[945,948,950,955,961],{\"_352\":946,\"_354\":947},\"Русский\",\"https://habr.com/ru/post/522896/\",{\"_352\":368,\"_354\":949},\"https://goongoguma.github.io/2021/06/05/How-to-use-React-Context-effectively/\",{\"_352\":464,\"_354\":951,\"_356\":952},\"https://dev.to/jereef/como-usar-react-context-de-manera-efectiva-1h6l\",{\"_358\":953,\"_354\":954},\"Jeremias Fernandez\",\"https://github.com/jereef\",{\"_352\":956,\"_354\":957,\"_356\":958},\"Polish\",\"https://dev.to/bartek532/react-context-jak-efektywnie-go-uzywac-41l\",{\"_358\":959,\"_354\":960},\"Bartosz Zagrodzki\",\"https://github.com/Bartek532\",{\"_352\":962,\"_354\":963,\"_356\":964},\"中文\",\"https://www.soaringswan.io/posts/how-to-use-react-context-effectively-zh\",{\"_358\":965,\"_354\":966},\"David Tseng\",\"https://github.com/davidqqq\",\"unsplash/photo-1534870439272-475575042b61\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/KLbUohEjb04\\\"\u003ePathum Danthanarayana\u003c/a\u003e\",\"data:image/webp;base64,UklGRgIBAABXRUJQVlA4IPYAAAAwCACdASpkAEMAPp1Kn0wsL6aiJJZqIfATiWUAyfSSgEc/GtT0mHKdzHFLl3LiEpsZRLNOBmqxnXaeaEKRhCTa4qdPXztUj3OQAAD+71Ev/6tD/+QZ//IM/aR/2p87fCg/zbiOendFqmjcLvFs1XKBG2LnlMO8i4JGnXqU2LbV1AdRG3n4LGiPD1M13AHcj8foCIYljpkQ23VEwS90Uu5o4oJhKgDzE8P/CtmRPahoXVponQRTLHexVS42NzUeoleskN5k5hTEbFkmQhDbTzbbB7fx/e5R4lPhc+xfSGP9nTUHJcXnqHxkyj+XbqYfiIm/ST8kAAA=\",\"by Pathum Danthanarayana\",\"Photo by Pathum Danthanarayana\",\"how-to-use-react-context-effectively\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-to-use-react-context-effectively.mdx\",{\"_55\":975,\"_57\":976,\"_67\":980,\"_103\":1025,\"_105\":1026},\"June 3rd, 2021\",{\"_59\":424,\"_61\":977,\"_63\":978,\"_65\":979},12.335,740100,2467,{\"_69\":981,\"_71\":982,\"_73\":983,\"_75\":984,\"_78\":986,\"_349\":990,\"_93\":1021,\"_97\":1022,\"_99\":1023,\"_95\":1024,\"_101\":1024},\"Static vs Unit vs Integration vs E2E Testing for Frontend Apps\",\"2021-06-03T00:00:00.000Z\",\"What these mean, why they matter, and why they don't\",[985],\"testing\",{\"_80\":987},[985,988,989,297,790],\"testing trophy\",\"testing pyramid\",[991,994,999,1005,1011,1016],{\"_352\":956,\"_354\":992,\"_356\":993},\"https://dev.to/bartek532/testy-statyczne-vs-jednostkowe-vs-e2e-w-aplikacjach-frontendowych-4cdl\",{\"_358\":959,\"_354\":960},{\"_352\":464,\"_354\":995,\"_356\":996},\"https://www.johanaltamar.com/es/blog/pruebas-estaticas-vs-unitarias-vs-integracion-vs-e2e-para-aplicaciones-frontend\",{\"_358\":997,\"_354\":998},\"Johan Altamar\",\"https://www.johanaltamar.com/\",{\"_352\":1000,\"_354\":1001,\"_356\":1002},\"Portuguese\",\"https://dev.to/walbermelo/testes-estaticos-vs-testes-unitarios-vs-testes-de-integracao-vs-testes-e2e-para-aplicacoes-frontend-4kbm\",{\"_358\":1003,\"_354\":1004},\"Walber Melo\",\"https://www.walbermelo.com\",{\"_352\":1006,\"_354\":1007,\"_356\":1008},\"Japanese\",\"https://zenn.dev/takuyakikuchi/articles/3663c0e521408d\",{\"_358\":1009,\"_354\":1010},\"Takuya Kikuchi\",\"https://x.com/_takuyakikuchi\",{\"_352\":368,\"_354\":1012,\"_356\":1013},\"https://soojae.tistory.com/82\",{\"_358\":1014,\"_354\":1015},\"Sujae Lee\",\"https://soojae.tistory.com\",{\"_352\":481,\"_354\":1017,\"_356\":1018},\"https://medium.com/@jfgreffier/tests-statiques-unitaires-dint%C3%A9gration-de-bout-en-bout-pour-les-applis-frontend-1c276e2142f8\",{\"_358\":1019,\"_354\":1020},\"Jean-François Greffier\",\"https://jfgreffier.com\",\"kentcdodds.com/content/blog/unit-vs-integration-vs-e2e-tests/banner\",\"Screenshot from \u003ca href=\\\"https://testingjavascript.com\\\"\u003eTestingJavaScript.com\u003c/a\u003e\",\"data:image/webp;base64,UklGRowAAABXRUJQVlA4IIAAAABQCACdASpkAC4APp08m0iwpqKhLD37EhATiWkA1UXnwVtleT07q4FuaRn9dkKY3jg98Y+RU9GDzr7AGvr8Wa+NQs8E00qPi4wdHYAA/vcey7UgpeorW55D7RRfQ5V/1FtaahFlyN9knZ+ASgOBtUro/v5MucA8aIZoWzymp/wAAA==\",\"Screenshot from TestingJavaScript.com\",\"static-vs-unit-vs-integration-vs-e2e-tests\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/static-vs-unit-vs-integration-vs-e2e-tests.mdx\",{\"_55\":975,\"_57\":1028,\"_67\":1032,\"_103\":1047,\"_105\":1048},{\"_59\":191,\"_61\":1029,\"_63\":1030,\"_65\":1031},6.35,381000,1270,{\"_69\":1033,\"_71\":982,\"_73\":1034,\"_75\":1035,\"_78\":1036,\"_93\":1042,\"_97\":1043,\"_99\":1044,\"_95\":1045,\"_101\":1046},\"The Testing Trophy and Testing Classifications\",\"How to interpret the testing trophy for optimal clarity\",[985],{\"_80\":1037},[985,988,1038,1039,1040,1041,297],\"integration tests\",\"unit tests\",\"e2e tests\",\"end-to-end tests\",\"unsplash/photo-1527871454777-032ec3f75edc\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/Y_upPEyxXN8\\\"\u003eFauzan Saari\u003c/a\u003e\",\"data:image/webp;base64,UklGRuwAAABXRUJQVlA4IOAAAADQBwCdASpkADgAPrlSn0wppKaoKl46iTAXCWUAxzAdEQrE4+l/MC4CsWyANsW1z8M512Po1w09qSXQZ59q6+4NmL21UJ1eQAD+7A7WOo5Ig3uWiQdGJqh+trsjFwY3KMtR8OWRY9WfjnmRfuwX7zHAbEd7HcZUeD0FLL9ltWQUJAitqdaYdKeAHtuLk0TepYZMBR/BBZgrEz9jrKvnHbQ1Fz12sG8aQafdgSHbffn66Ddldx1X8wPkZwhtmDRymFPlLLhEy9fYck/p/JeyR9jvrOokZmvGmOYJgG0sBAAAAA==\",\"by Fauzan Saari\",\"Photo by Fauzan Saari\",\"the-testing-trophy-and-testing-classifications\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/the-testing-trophy-and-testing-classifications.mdx\",{\"_55\":1050,\"_57\":1051,\"_67\":1055,\"_103\":1076,\"_105\":1077},\"May 24th, 2021\",{\"_59\":261,\"_61\":1052,\"_63\":1053,\"_65\":1054},4.3,258000,860,{\"_69\":1056,\"_71\":1057,\"_73\":1058,\"_75\":1059,\"_78\":1060,\"_349\":1067,\"_93\":1071,\"_97\":1072,\"_99\":1073,\"_95\":1074,\"_101\":1075},\"Array reduce vs chaining vs for loop\",\"2021-05-24T00:00:00.000Z\",\"A comparison of different approaches to operating on an array\",[790],{\"_80\":1061},[1062,1063,1064,1065,1066],\"arrays\",\"reduce\",\"filter\",\"map\",\"for loop\",[1068],{\"_352\":956,\"_354\":1069,\"_356\":1070},\"https://dev.to/bartek532/reduce-vs-chaining-vs-petla-for-1n5a\",{\"_358\":959,\"_354\":960},\"unsplash/photo-1527266237111-a4989d028b4b\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/u2d0BPZFXOY\\\"\u003eTine Ivanič\u003c/a\u003e\",\"data:image/webp;base64,UklGRtgAAABXRUJQVlA4IMwAAADwCACdASpkAEMAPp1InEq8ty8iKTgKk5ATiWkG+OIBvBtAP0Akun32FLYdczEBEetmVYxXNMdNJHGwm4RZVhG/SJ2q1rkz0bTKvP1lp/XicAD+6vvwEgulXTxkm+IjAvcQKSr4i9/Ia2Efqv2MEctmehegz1RbG71LMY5ey7bYXz4eJC0HZyKbvaAIaphuUIh2HUekm7KdIe6XJro/XN7hQDdO+jBtpoZDygkXLuIZdIHYY+OHZZ4f1b7KVpULIS97iXMY/zCKA/keFAA=\",\"by Tine Ivanič\",\"Photo by Tine Ivanič\",\"array-reduce-vs-chaining-vs-for-loop\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/array-reduce-vs-chaining-vs-for-loop.mdx\",{\"_55\":1079,\"_57\":1080,\"_67\":1084,\"_103\":1106,\"_105\":1107},\"May 11th, 2021\",{\"_59\":709,\"_61\":1081,\"_63\":1082,\"_65\":1083},9.73,583800,1946,{\"_69\":1085,\"_71\":1086,\"_73\":1087,\"_75\":1088,\"_78\":1090,\"_93\":1094,\"_97\":1095,\"_349\":1096,\"_99\":1103,\"_95\":1104,\"_101\":1105},\"Don't Solve Problems, Eliminate Them\",\"2021-05-11T00:00:00.000Z\",\"How eliminating problems can drastically simplify your codebases and life\",[1089],\"productivity\",{\"_80\":1091},[297,414,790,1092,569,1093],\"coding\",\"life\",\"unsplash/photo-1459262838948-3e2de6c1ec80\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/EerxztHCjM8\\\"\u003eJordan Whitt\u003c/a\u003e\",[1097],{\"_352\":1098,\"_354\":1099,\"_356\":1100},\"Bahasa Indonesia\",\"https://www.qisthi.dev/posts/jangan-selesaikan-masalah-hilangkan-saja\",{\"_358\":1101,\"_354\":1102},\"Qisthi Ramadhani\",\"https://qisthi.dev\",\"data:image/webp;base64,UklGRlADAABXRUJQVlA4WAoAAAAgAAAAYwAAQgAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCD6AAAAcAoAnQEqZABDAD6dRplKvLooJKr0C9OQE4lpAM0R44A/3fHb1rlYVSOqjAmycAAxH8MzkfslVvMcKD6MqJZfdGtYWLmcDXjTOWkXWHFJ2H2LeQf6UKGYj5OaW4AA/vQy1eqF5rYcP38vghrIz6zM32w/Ib/OLuokmlqPoZ+zH9oFGkCOvDTO5PCGgjx/WfgkNPYHnbrabseML1ktelfk1W1XuBf8a8NWztZ8+12oMz3V+10WWhUXHlYZdNnEzVFbo6o76ZU+mVRmyxNypaQWOvzFNfKHJRRleZ1Z1f8ETnZqe0kjK35nDzRb1lJPEBc6TeVaWiUmo1AAAA==\",\"by Jordan Whitt\",\"Photo by Jordan Whitt\",\"don-t-solve-problems-eliminate-them\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/don-t-solve-problems-eliminate-them.mdx\",{\"_55\":1109,\"_57\":1110,\"_67\":1114,\"_103\":1132,\"_105\":1133},\"May 3rd, 2021\",{\"_59\":110,\"_61\":1111,\"_63\":1112,\"_65\":1113},12,720000,2400,{\"_69\":1115,\"_71\":1116,\"_73\":1117,\"_75\":1118,\"_78\":1119,\"_349\":1124,\"_93\":1127,\"_97\":1128,\"_99\":1129,\"_95\":1130,\"_101\":1131},\"Super Simple Start to Remix\",\"2021-05-03T00:00:00.000Z\",\"The simplest distraction-free version of a remix app\",[297],{\"_80\":1120},[297,414,1121,1122,1123],\"framework\",\"remix.run\",\"full stack\",[1125],{\"_352\":353,\"_354\":1126},\"https://note.com/lada496/n/n7fb44b901364\",\"unsplash/photo-1609667083964-f3dbecb7e7a5\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/oTCRizM-PUI\\\"\u003eJan Huber\u003c/a\u003e\",\"data:image/webp;base64,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\",\"by Jan Huber\",\"Photo by Jan Huber\",\"super-simple-start-to-remix\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/super-simple-start-to-remix.mdx\",{\"_55\":1135,\"_57\":1136,\"_67\":1141,\"_103\":1158,\"_105\":1159},\"April 8th, 2021\",{\"_59\":1137,\"_61\":1138,\"_63\":1139,\"_65\":1140},\"3 min read\",2.605,156300,521,{\"_69\":1142,\"_71\":1143,\"_73\":1144,\"_75\":1145,\"_78\":1146,\"_93\":1153,\"_97\":1154,\"_99\":1155,\"_95\":1156,\"_101\":1157},\"Super Simple Start to ESModules in Node.js\",\"2021-04-08T00:00:00.000Z\",\"All supported versions of Node.js support ESModules now. Here's how to get started using them.\",[790],{\"_80\":1147},[790,1148,1149,1150,1151,1152,527],\"native esm\",\"native esmodules\",\"commonjs\",\"modules\",\"ecmascript modules\",\"unsplash/photo-1617804309291-2f2d3734b471\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/kzBL8rd3EoI\\\"\u003eSolen Feyissa\u003c/a\u003e\",\"data:image/webp;base64,UklGRiIBAABXRUJQVlA4IBYBAABwCQCdASpkAEMAPrlUok08qLWlpnSc25AXCWUG+OaHta4L1QAK0UFbDjlpj5UPNuxF0OGWHpVqDfQcRYeVGFMi8DB/sWMWmy9HfF7zCez9dI/Au0AA/vPzu8Q8TebEU8tD5Klhg13rOW6jlgLnlVr/9K2hizwJRO4WHVItRC09uIzpWn3LKQP3VTksW70YNJ9vARU5kwgfDoWfqWtzqUyqKqBDZE6dY/SeugKbaeB7qRydt3n1zy6/KALVrxA0/N72z5kNLpCStt+YMnPHSNOalyxtINp4TQsHURMPYHcEJP52UdhoL43/mDKFzXjgEFWp4sq8jCcpxzaHBK1Z/XnTjiBlA+4Q6tjTiGUeRBhtgffEC6AQAA==\",\"by Solen Feyissa\",\"Photo by Solen Feyissa\",\"super-simple-start-to-es-modules-in-node-js\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/super-simple-start-to-es-modules-in-node-js.mdx\",{\"_55\":1161,\"_57\":1162,\"_67\":1166,\"_103\":1182,\"_105\":1183},\"March 23rd, 2021\",{\"_59\":261,\"_61\":1163,\"_63\":1164,\"_65\":1165},4.705,282300,941,{\"_69\":1167,\"_71\":1168,\"_73\":1169,\"_75\":1170,\"_78\":1171,\"_93\":1177,\"_97\":1178,\"_99\":1179,\"_95\":1180,\"_101\":1181},\"JavaScript Pass By Value Function Parameters\",\"2021-03-23T00:00:00.000Z\",\"How it works and how to work with it... and around it\",[790],{\"_80\":1172},[1173,1174,1175,1176],\"function\",\"values\",\"variable\",\"reassignment\",\"unsplash/photo-1529673459131-57b1d4019fc7\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/T4cXypPgN3w\\\"\u003eJeffrey F Lin\u003c/a\u003e\",\"data:image/webp;base64,UklGRswAAABXRUJQVlA4IMAAAACQBwCdASpkAEMAPp1GnUqsMqyhp1gLilATiWcG+OfEhPRwmD0O3DUjwYd6hH1ZP2LjilCC2B0Yu3gst6KSCE3j45+K7AAA/tb4vjhAFXcPmZQ9r90N7oiDCdiWlRqgIF2Mfua4N84MVS2LjglQLHieK5GsJVom7WiBYAW0DnOgU5DXF+zjrsAqcLJQvuOKJD7uaIplDPSX1Tjnrng3fRPPv0tp2ox+Ws19GZ/RmleYZddHlO81kWR3C9YHu04AAAA=\",\"by Jeffrey F Lin\",\"Photo by Jeffrey F Lin\",\"javascript-pass-by-value-function-parameters\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/javascript-pass-by-value-function-parameters.mdx\",{\"_55\":1185,\"_57\":1186,\"_67\":1190,\"_103\":1207,\"_105\":1208},\"March 9th, 2021\",{\"_59\":709,\"_61\":1187,\"_63\":1188,\"_65\":1189},9.925,595500,1985,{\"_69\":1191,\"_71\":1192,\"_73\":1193,\"_75\":1194,\"_78\":1195,\"_93\":1202,\"_97\":1203,\"_99\":1204,\"_95\":1205,\"_101\":1206},\"How to write a Constrained Identity Function (CIF) in TypeScript\",\"2021-03-09T00:00:00.000Z\",\"A handy advanced TypeScript pattern to increase your productivity.\",[809],{\"_80\":1196},[809,1197,1198,1199,1200,1201,297,985],\"types\",\"type narrowing\",\"type widening\",\"type constrained\",\"advanced patterns\",\"unsplash/photo-1516697346631-fea02c692049\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/Kr8oDwBK_HY\\\"\u003eSabri Tuzcu\u003c/a\u003e\",\"data:image/webp;base64,UklGRuoAAABXRUJQVlA4IN4AAACQCQCdASpkAEMAPp1Am0msMSwhLbRLmiATiWkA0qwJVqFsWnrN2m7/LxotsefzKrMsr5NebM3o2DI3JcrO5s9jssBKK62f6oudOrGL69/eYhSEco+AAP7v6jqRCp2XcbE3jl2i+URpohYCmqUjtFV9zpPZ1rDyTGldRCN+toLn1ce7fLF5eIZnh+P9Op51VoqwdflHPwz2YLnJNWZJvO5RJr1quOSdSPcv8edIaDtlAfuDMG1sSOZ9kPbjAmMb6WDjqCMAxCWfr87m4xXUcbRjvWivUrmVH7BDpmMGAAA=\",\"by Sabri Tuzcu\",\"Photo by Sabri Tuzcu\",\"how-to-write-a-constrained-identity-function-in-typescript\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-to-write-a-constrained-identity-function-in-typescript.mdx\",{\"_55\":1210,\"_57\":1211,\"_67\":1215,\"_103\":1238,\"_105\":1239},\"March 8th, 2021\",{\"_59\":1137,\"_61\":1212,\"_63\":1213,\"_65\":1214},2.395,143700,479,{\"_69\":1216,\"_71\":1217,\"_73\":1218,\"_75\":1219,\"_78\":1220,\"_349\":1224,\"_93\":1233,\"_97\":1234,\"_99\":1235,\"_95\":1236,\"_101\":1237},\"How to optimize your context value\",\"2021-03-08T00:00:00.000Z\",\"Why and how you can optimize your context provider's value to avoid performance issues\",[297],{\"_80\":1221},[790,297,1222,1223,943],\"useMemo\",\"react hooks\",[1225,1228],{\"_352\":956,\"_354\":1226,\"_356\":1227},\"https://dev.to/bartek532/jak-zoptymalizowac-react-context-4p7d\",{\"_358\":959,\"_354\":960},{\"_352\":368,\"_354\":1229,\"_356\":1230},\"https://beenzi.tistory.com/86\",{\"_358\":1231,\"_354\":1232},\"gak\",\"https://github.com/gaki2\",\"unsplash/photo-1554668108-87d6864fdca2\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/_nqApgG-QrY\\\"\u003ePaweł Czerwiński\u003c/a\u003e\",\"data:image/webp;base64,UklGRlwBAABXRUJQVlA4IFABAADQCgCdASpkAEMAPp1CmkosNS4iLNSbaqATiUDODNYXxY7wCzxiAPhGeYPaFXfcLM+jHyZi0zlkM0snqZv9e4mNCrqJzoDQQqX2+SR1msXK8gm+hcsuPIsu47wOsMFIsAD+7y/nG/nnJvEb63cTbmbaXF9uw3YfI3Utn58W3NTNS0CQXjHhIqfyBZzkqdbGga8ti0qtyzf6jtTtGH5rY6NnzxXkzots4kVUx/JOc24CzhIbl7DwjtUz1m+7+Qk3/HhtqO98mAJNpCsLG4bk/dEloleDEyfnfXwFcz3j6bc83Ovwp3rQguPR1friVqRJLFtFxq3RsdV8TYbp8AHGmiqxrUfyNngw5brgi2qA3KuPThmOCMaVY6BjXn5KBeYVRoAqb5yEJH1m5pLFe+HsqMmNYwwJjAhLQTdWuPbwjtysGko9iiuMkPvQEDgDtL2/YAA=\",\"by Paweł Czerwiński\",\"Photo by Paweł Czerwiński\",\"how-to-optimize-your-context-value\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-to-optimize-your-context-value.mdx\",{\"_55\":1241,\"_57\":1242,\"_67\":1246,\"_103\":1261,\"_105\":1262},\"March 4th, 2021\",{\"_59\":138,\"_61\":1243,\"_63\":1244,\"_65\":1245},7.05,423000,1410,{\"_69\":1247,\"_71\":1248,\"_73\":1249,\"_75\":1250,\"_78\":1251,\"_93\":1256,\"_97\":1257,\"_99\":1258,\"_95\":1259,\"_101\":1260},\"How to write a React Component in TypeScript\",\"2021-03-04T00:00:00.000Z\",\"There are plenty of ways to do it, here's how I recommend typing React Components\",[297,809],{\"_80\":1252},[809,297,790,1253,1254,1255,985],\"props\",\"react element\",\"children\",\"unsplash/photo-1600337751718-184ce5422b3e\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/prqTBbgDkec\\\"\u003eJonny Gios\u003c/a\u003e\",\"data:image/webp;base64,UklGRtAAAABXRUJQVlA4IMQAAADQBwCdASpkAD4APrlKnEopt6MhsBkskvAXCWkGe9UMA79CtqHz6ulhpFi/tJZC6YWEVr/Slbu16Rk+b7MofKg96WED0u02AAD8e1bOd7TAQrTTbLRS/iIMlpB4vMwbZS+q1luq3iyiQdocJo7pIoQlM8g+CLglOmAnvqWj08J8hvgEDSxE12p15STLNbBX9E8WXPfgjaPoqpoIYRqffhblgPOJ2iCEojshYk0z2TXm7gTIzdZ5Hr1v0FjvTl8n6GNECAAA\",\"by Jonny Gios\",\"Photo by Jonny Gios\",\"how-to-write-a-react-component-in-typescript\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-to-write-a-react-component-in-typescript.mdx\",{\"_55\":1264,\"_57\":1265,\"_67\":1269,\"_103\":1298,\"_105\":1299},\"February 25th, 2021\",{\"_59\":493,\"_61\":1266,\"_63\":1267,\"_65\":1268},14.11,846600,2822,{\"_69\":1270,\"_71\":1271,\"_73\":1272,\"_75\":1273,\"_78\":1274,\"_349\":1280,\"_93\":1293,\"_97\":1294,\"_99\":1295,\"_95\":1296,\"_101\":1297},\"TypeScript Function Syntaxes\",\"2021-02-25T00:00:00.000Z\",\"The syntax for various functions and function types in TypeScript with simple examples.\",[809],{\"_80\":1275},[809,1276,1277,1278,1279],\"functions\",\"type definitions\",\"type declarations\",\"function type annotations\",[1281,1287],{\"_352\":1282,\"_354\":1283,\"_356\":1284},\"Italian\",\"https://tonino.xyz/blog/sintassi-delle-funzioni-typescript/\",{\"_358\":1285,\"_354\":1286},\"Roberto Tonino\",\"https://www.linkedin.com/in/roberto-t-962752101/\",{\"_352\":1288,\"_354\":1289,\"_356\":1290},\"French\",\"https://developpeur-web.tech/posts/fonction-typescript\",{\"_358\":1291,\"_354\":1292},\"Johan Petrikovsky\",\"https://www.linkedin.com/in/johanpetrikovsky/\",\"unsplash/photo-1488554378835-f7acf46e6c98\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/pVq6YhmDPtk\\\"\u003ehao wang\u003c/a\u003e\",\"data:image/webp;base64,UklGRr4AAABXRUJQVlA4ILIAAADQBgCdASpkAEMAPp1GnUwlqyKiJnJK2WATiWcBiEY5lAfdtKfQi9y5kBWrkBfa8evXGf9xw/c5LUkvUQg5ZwAA/vcJ9x1f7sVdh4OyjrF1iJebdVDjyqUVwQqA6qMx/S8JVVPARtg7k/9eacDtFmVuli3kgmJxm3J5EZS/Xxdt1mIWD5Cpq5o+LlKVfvdDtNW+MtIjAWDFli7TCczpNQVf0CHK9C7te8o6gHoOtNF1YAAA\",\"by hao wang\",\"Photo by hao wang\",\"typescript-function-syntaxes\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/typescript-function-syntaxes.mdx\",{\"_55\":1301,\"_57\":1302,\"_67\":1306,\"_103\":1322,\"_105\":1323},\"February 18th, 2021\",{\"_59\":214,\"_61\":1303,\"_63\":1304,\"_65\":1305},5.66,339600,1132,{\"_69\":1307,\"_71\":1308,\"_73\":1309,\"_75\":1310,\"_78\":1311,\"_93\":1317,\"_97\":1318,\"_99\":1319,\"_95\":1320,\"_101\":1321},\"Listify a JavaScript Array\",\"2021-02-18T00:00:00.000Z\",\"Make a human readable list from an array in JavaScript.\",[790],{\"_80\":1312},[790,809,1313,1314,1315,1316],\"nice list\",\"comma delineated list\",\"Intl\",\"Intl.FormatList\",\"unsplash/photo-1507925921958-8a62f3d1a50d\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/-1_RZL8BGBM\\\"\u003eKelly Sikkema\u003c/a\u003e\",\"data:image/webp;base64,UklGRugAAABXRUJQVlA4INwAAACwCACdASpkAEIAPp1KmkooJKIhqTs7MQATiWkAzjgTOqw/uJ/dnCWC5Vw+17D489IMnOfKzfUTfwFAv0Iz+Sla1gOfOxRGmo8XuqWahvgA/ui0gfAZexrlzA+UCAOVKoyXaf9dUzRwxTei/yNOP33UWUqHFSKIU9cSJNtSCIXrilzlT2lsizC6tcP1hgMgvY7aIZ8kIDTJcUnus2fREf4Qk2FtfbOLtAYnO6ufnPUg/lKNgPTQhbuw2PWx7yplqtRxQYNyDjQGgAH2c1fwrLlcATty4b5INu9CcAAA\",\"by Kelly Sikkema\",\"Photo by Kelly Sikkema\",\"listify-a-java-script-array\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/listify-a-java-script-array.mdx\",{\"_55\":1325,\"_57\":1326,\"_67\":1330,\"_103\":1347,\"_105\":1348},\"February 4th, 2021\",{\"_59\":214,\"_61\":1327,\"_63\":1328,\"_65\":1329},5.115,306900,1023,{\"_69\":1331,\"_71\":1332,\"_73\":1333,\"_75\":1334,\"_78\":1335,\"_93\":1342,\"_97\":1343,\"_99\":1344,\"_95\":1345,\"_101\":1346},\"Build vs Buy: Component Libraries edition\",\"2021-02-04T00:00:00.000Z\",\"Some things to think about before you decide to create your own component library.\",[638],{\"_80\":1336},[1337,297,1338,1339,1340,1341],\"components\",\"angular\",\"vue\",\"business\",\"oss\",\"unsplash/photo-1590403183019-8ab6ba58ce50\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/VDAzcZyjun8\\\"\u003eGeorge Bakos\u003c/a\u003e\",\"data:image/webp;base64,UklGRgYBAABXRUJQVlA4IPoAAADwCQCdASpkAEMAPp1AmkmsKi4kKvgMKcATiWkG+OZ22ZXVE94DjBp5csfIJ4ov0Hmatsa+dYXLneYtP3DUwkpzKuC9r3vZcaJBAD+xKByDS8Q1obeu5RAAAP7hFaD4K5kx5J63IGhajix/3x3MEnj6h+P78mBJzEOZqMNNZkvHo07ORkaYj7lWFMh01FgQB50XKJAQ7J88eWvsOV66s/N7EuFIDz+vayHoaaqB3eqEpEw+3zNBUFq2LDuN8cnDJW5vTjJ7SDJETU+MB7Z6pUoSQLYLtJFySr00E7W4ss88RV/4R/28yjpABPfLNPbAi6NBaQV2dkFHgAAA\",\"by George Bakos\",\"Photo by George Bakos\",\"build-vs-buy-component-libraries-edition\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/build-vs-buy-component-libraries-edition.mdx\",{\"_55\":1350,\"_57\":1351,\"_67\":1355,\"_103\":1375,\"_105\":1376},\"January 26th, 2021\",{\"_59\":138,\"_61\":1352,\"_63\":1353,\"_65\":1354},7.545,452700,1509,{\"_69\":1356,\"_71\":1357,\"_73\":1358,\"_75\":1359,\"_78\":1360,\"_93\":1364,\"_97\":1365,\"_349\":1366,\"_99\":1372,\"_95\":1373,\"_101\":1374},\"Using fetch with TypeScript\",\"2021-01-26T00:00:00.000Z\",\"How to make HTTP requests with fetch and TypeScript\",[809],{\"_80\":1361},[1362,809,790,1363],\"fetch\",\"http\",\"unsplash/photo-1600370685640-746880bfff2f\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/1Ck8CCXlVEU\\\"\u003eAnthony Duran\u003c/a\u003e\",[1367],{\"_352\":464,\"_354\":1368,\"_356\":1369},\"https://andres039.hashnode.dev/fetch-con-typescript\",{\"_358\":1370,\"_354\":1371},\"Andres Beltran\",\"https://www.andresbeltran.dev\",\"data:image/webp;base64,UklGRkYDAABXRUJQVlA4WAoAAAAgAAAAYwAARgAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCDwAAAAkAgAnQEqZABHAD65Up5KpyUmoizci2jgFwlnBnAM5KH2CeBfic13YZmFVkx+JiKtTce3mQO98IxVcCygbXVADadMsX2u0GG0q5CUeAAA/u+xya4PxKt0QHLMA6ondA5bz6IdR/3/zKKin11ljUvuNAA7y9BJa06ea3kzo1jpC2KnbK4aih/2GsvuMnoX4u52+rPE4wt0XX/Y4ZCne7xhcOE3PYCvj350bRzQLw/KLNtjc+JVfhHtc0Rd1o5i5MyuhcPz3gVfAzVosQE6cte56X+NnaJAl2ASYvfEYbUjMbUHqEoxtLF0cFNXZLbsQAAA\",\"by Anthony Duran\",\"Photo by Anthony Duran\",\"using-fetch-with-type-script\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/using-fetch-with-type-script.mdx\",{\"_55\":1378,\"_57\":1379,\"_67\":1383,\"_103\":1400,\"_105\":1401},\"January 19th, 2021\",{\"_59\":214,\"_61\":1380,\"_63\":1381,\"_65\":1382},5.285,317100,1057,{\"_69\":1384,\"_71\":1385,\"_73\":1386,\"_75\":1387,\"_78\":1388,\"_93\":1395,\"_97\":1396,\"_99\":1397,\"_95\":1398,\"_101\":1399},\"Wrapping React.useState with TypeScript\",\"2021-01-19T00:00:00.000Z\",\"How to make a custom hook that wraps useState with TypeScript properly\",[297],{\"_80\":1389},[809,1390,1391,1392,1393,1394],\"useState\",\"as const\",\"as expression\",\"type casting\",\"tuples\",\"unsplash/photo-1491294769645-9816599c284a\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/-oaGhEPVy0o\\\"\u003eDaiga Ellaby\u003c/a\u003e\",\"data:image/webp;base64,UklGRtAAAABXRUJQVlA4IMQAAAAwBwCdASpkAEMAPp1Mn0w4uCoipJmaaxATiWkGe9TuAHKtAspABfdflfTwYD8X5NyJyuTLIVzDFHSCrbqQwU8towAA/vDKyhX27Q89qrf25K0PtOwUKytgURpIrperffrZg+DBcrmkJ49vRvtyYBlhOTowBbcHBgKrybUkfPqc8D3f5AfS8d4R3eS3mxdQwT6TXvhO7xa2Qn3Nog4MzKGwvD6CRP3GeUybgGNcR8N6uJqlJ/KKceCnuSCGNfkvMO3xQAAA\",\"by Daiga Ellaby\",\"Photo by Daiga Ellaby\",\"wrapping-react-use-state-with-type-script\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/wrapping-react-use-state-with-type-script.mdx\",{\"_55\":1403,\"_57\":1404,\"_67\":1405,\"_103\":1417,\"_105\":1418},\"January 12th, 2021\",{\"_59\":261,\"_61\":627,\"_63\":628,\"_65\":629},{\"_69\":1406,\"_71\":1407,\"_73\":1408,\"_75\":1409,\"_78\":1410,\"_93\":1412,\"_97\":1413,\"_99\":1414,\"_95\":1415,\"_101\":1416},\"Define function overload types with TypeScript\",\"2021-01-12T00:00:00.000Z\",\"Have your JS expressiveness and type it too.\",[809],{\"_80\":1411},[809,790,1276],\"unsplash/photo-1429734956993-8a9b0555e122\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/8DMuvdp-vso\\\"\u003eNick Scheerbart\u003c/a\u003e\",\"data:image/webp;base64,UklGRhoBAABXRUJQVlA4IA4BAABQCwCdASpkAEAAPp1GmEi8trAhMTVeI5ATiWUGcAyIRsI3NFVGB+oFlvvkrRh1B/MI92v0NhYUUO7VAGr49rchpqVCzHS2MLBi1aY6ETkXDglTUGZAOceud/XmEQSaa1av/ywA/u5X99+yfz26R/yJc/EpX5JGy6orNgUw2EP2VNaPHhQsLtZcNMx9ohcK8Rienpj3VPq7reFD+qSrfVq3SpYx/ilNm/9eIgynGKU4dssHRQ4HiYBjyMc+A8y6VJyO0fepAtGPTMdpHpo/F4RiqpwY30ugSghnz4ZEMQ2qYkSZ1ozdd09bsGw+Vo3MJyZROR/I9MPH1kxWjMLpPaVqeSTBKhDh1SDJlUCwAAA=\",\"by Nick Scheerbart\",\"Photo by Nick Scheerbart\",\"define-function-overload-types-with-type-script\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/define-function-overload-types-with-type-script.mdx\",{\"_55\":1420,\"_57\":1421,\"_67\":1425,\"_103\":1437,\"_105\":1438},\"January 4th, 2021\",{\"_59\":60,\"_61\":1422,\"_63\":1423,\"_65\":1424},15.43,925800,3086,{\"_69\":1426,\"_71\":1427,\"_73\":1428,\"_75\":1429,\"_78\":1430,\"_93\":1432,\"_97\":1433,\"_99\":1434,\"_95\":1435,\"_101\":1436},\"2020 in Review\",\"2021-01-04T00:00:00.000Z\",\"An overview of what I accomplished in 2020 and a bit about my goals for 2021.\",[292],{\"_80\":1431},[340],\"unsplash/photo-1541542301395-315ee588a095\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/Nc5Q_CEcY44\\\"\u003eFlorian Olivo\u003c/a\u003e\",\"data:image/webp;base64,UklGRk4CAABXRUJQVlA4TEICAAAvY4AQAB9AJmAZOzdUQCZgGTs3VEAmbZu62k7F5j/+ByTaBpCUbW8bSfAfQD/E95FA3o/BX8Czd9p9psgHCPiftu/36ftqaL+nXCCi/wzcNlI00OHZw0+YCWcAagBMRmcfC2B1uEKWs9WJF8Bq36YKuXdzAKyaVVMjy3SIVJSp3YuslghzUKJuRJqmD0ltdpwfbWXgCouZxoMSe7m8OevDjI3VuiPaVm6eLqUBIumLAHl8ve9NlbNTtcBeXr+7t+vdqgerP770+Np131dyiExT4uKolY+ue7iRBI5Of3z7x++u697OGuRWG6O8luuu683lbpmRUeGofe0G7qHQGsMCU7iRKmP1VRS1fIygD0CkaMCRjIMe8qi+7jK1HxNagt3UeId6CrtVpr1WG8sjmcIorUFqp7DUx2JRy/sEVmCeGudwJDeTRVVOGlBxNA1kqX4hwaGWaxWs9sSxl9GrONvpYEJ51F5/DCQN9LSLSPI9VM4aZIEU9RH7UeFstMtYFSBPvbmWCvpPYxmplaeHs8vdMaKzaro8SnIp19JUc79sGFb1KgkZB6+BKzGI7FY9GR0iUpLBgoMeEAN12japxkLdZci7Ascp1QDCoPrXBhzV1VCZSVMYBEvtr1S/qhHnHCjoZMNYFjwH5GKMIzvt1P/mMmNmIj9H0RO7PJKdtWSIOXfsnDfzgyb4qZ0ZNOyIvJt2zp3gyfzIs86RN/aHjjfGm5/yj0Lvetf9sGOU+bHYX9R/xX/ruv9q+vMG++dV/0eeAQ==\",\"by Florian Olivo\",\"Photo by Florian Olivo\",\"2020-in-review\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/2020-in-review.mdx\",{\"_55\":1440,\"_57\":1441,\"_67\":1445,\"_103\":1460,\"_105\":1461},\"December 10th, 2020\",{\"_59\":649,\"_61\":1442,\"_63\":1443,\"_65\":1444},10.575,634500,2115,{\"_69\":1446,\"_71\":1447,\"_73\":1448,\"_75\":1449,\"_78\":1450,\"_93\":1455,\"_97\":1456,\"_99\":1457,\"_95\":1458,\"_101\":1459},\"Business and Engineering alignment\",\"2020-12-10T00:00:00.000Z\",\"How to convince \\\"the business folks\\\" to let you do what you want.\",[340],{\"_80\":1451},[1340,1452,1453,1454,297,985],\"mission\",\"migrating\",\"tech debt\",\"unsplash/photo-1477959858617-67f85cf4f1df\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/Nyvq2juw4_o\\\"\u003ePedro Lastra\u003c/a\u003e\",\"data:image/webp;base64,UklGRgYDAABXRUJQVlA4WAoAAAAgAAAAYwAAPQAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCCwAAAA0AYAnQEqZAA+AD65Up5LpySzobASSkpwFwlpAMtoBNDShpB61HB5gpl+pqLzQYKidpE9aA9/xoV5UJOmR0jQAP7eqt4IbCkOjAMex9HFZTUAgSjAIybeefN3IevnJPklJ9GtMOZ9Jbk3kgIlA4fCObMY2DzXwclN96P5nesmcwZj+X+Vt/x8rV1vtn62jxTTTZKr3zW9DD5JfsQolfRNG/2/zdJCQIKVxxiNuPxCAAA=\",\"by Pedro Lastra\",\"Photo by Pedro Lastra\",\"business-and-engineering-alignment\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/business-and-engineering-alignment.mdx\",{\"_55\":1463,\"_57\":1464,\"_67\":1468,\"_103\":1477,\"_105\":1478},\"December 2nd, 2020\",{\"_59\":214,\"_61\":1465,\"_63\":1466,\"_65\":1467},5.34,320400,1068,{\"_69\":1469,\"_71\":1470,\"_73\":1471,\"_93\":1472,\"_97\":1473,\"_99\":1474,\"_95\":1475,\"_101\":1476},\"Hi, thanks for reaching out to me 👋\",\"2020-12-02T00:00:00.000Z\",\"How to get help from Kent\",\"kentcdodds.com/content/blog/hi-thanks-for-reaching-out-to-me/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/Volo9FYUAzU\\\"\u003eGiovanni Calia\u003c/a\u003e\",\"data:image/webp;base64,UklGRjABAABXRUJQVlA4ICQBAACwCgCdASpkAEMAPrlMoEs/qCohrrYLy/AXCWUtgDDBnwlwRuaLyqZc6/GqBiTHV2tlwnEvVoTk8tPcufX+Jpef89e/lcoaY9BCkHBLO+9hPh90egOjWrBQq6ssMLFwAP32ifs0/mHM+ZIH/9z98/fLCmNpxiFGiXeWniFgf1czhJrduzZsP+7vT7O0Y2pNODwQFG5NIQ60Tz0jqkWGyaebCgN0a9CRfIyUuGKv/5GpU14UGaZuCZt1mnDheAkWMHuJP8e1rRO8ke6cSzxAzDJuGA16NKsWPdep2kXLK3TARNT/tlSvgyFvyqdWRABa19n+XmNvKgfQog0BehjfKky42defGzqAhlQCiKvb31vxw3NXjWKyIbBEqsrMmWdY9xAAAAAA\",\"by Giovanni Calia\",\"Photo by Giovanni Calia\",\"hi-thanks-for-reaching-out-to-me\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/hi-thanks-for-reaching-out-to-me.mdx\",{\"_55\":1480,\"_57\":1481,\"_67\":1485,\"_103\":1511,\"_105\":1512},\"December 1st, 2020\",{\"_59\":1137,\"_61\":1482,\"_63\":1483,\"_65\":1484},2.78,166800,556,{\"_69\":1486,\"_71\":1487,\"_73\":1488,\"_78\":1489,\"_349\":1491,\"_93\":1506,\"_97\":1507,\"_99\":1508,\"_95\":1509,\"_101\":1510},\"useEffect vs useLayoutEffect\",\"2020-12-01T00:00:00.000Z\",\"The simple rules for when to use each.\",{\"_80\":1490},[297,790,1223],[1492,1495,1500],{\"_352\":368,\"_354\":1493,\"_356\":1494},\"https://junghyeonsu.com/posts/translation/useeffect-vs-uselayouteffect/\",{\"_358\":818,\"_354\":819},{\"_352\":470,\"_354\":1496,\"_356\":1497},\"https://www.allanramos.com.br/use-effect-vs-use-layout-effect/\",{\"_358\":1498,\"_354\":1499},\"Allan Ramos\",\"https://www.linkedin.com/in/allangabrielrds/\",{\"_352\":1501,\"_354\":1502,\"_356\":1503},\"فارسی\",\"https://amirsalehi.ir/blog/useeffect-vs-uselayouteffect/\",{\"_358\":1504,\"_354\":1505},\"Amir Salehi\",\"https://amirsalehi.ir/\",\"unsplash/photo-1474718723952-48d2a016108f\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/sNYSV3t2w58\\\"\u003eMohamed Nohassi\u003c/a\u003e\",\"data:image/webp;base64,UklGRiYBAABXRUJQVlA4IBoBAADwDACdASpkAEgAPqE+mUi/pqIhMztpI/AUCWcAz9TUo/NGmOjLQeeGoceI0bMr+hYlbtE7ki7qvzMrY8kINfcxV/2MJfX7AZfwhCIsQZZ4qWIjkGFqHLaTW4Yxrq4hEuuZKWGcu1lCdXtHENcJ52CAAP7Wn7rdDv/dY/S6+/2u54df/Ml7Dz8ap/jItacd12b0MTK3+cqnAhU5r+oEnMiy4PF7alUHF2o/E8++SwcoiAQ10fmjXH0W4vAWxFWx1GfBzdb7gHYrgedfa+TqiAFBp0wVpe9io47g4movXusyV3OQAc7Zhs+nN39lHQk9+YRz18MMIJQ17ifGKdHHvT5zKMi3Bkq7FKGGcwp4mPTqNWySSdjBPoAAAAA=\",\"by Mohamed Nohassi\",\"Photo by Mohamed Nohassi\",\"useeffect-vs-uselayouteffect\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/useeffect-vs-uselayouteffect.mdx\",{\"_55\":1514,\"_57\":1515,\"_67\":1519,\"_103\":1537,\"_105\":1538},\"November 12th, 2020\",{\"_59\":709,\"_61\":1516,\"_63\":1517,\"_65\":1518},9.625,577500,1925,{\"_69\":1520,\"_71\":1521,\"_73\":1522,\"_75\":1523,\"_78\":1524,\"_93\":1532,\"_97\":1533,\"_99\":1534,\"_95\":1535,\"_101\":1536},\"Super simple start to Firebase functions\",\"2020-11-12T00:00:00.000Z\",\"The simplest getting started guide for Firebase Cloud functions\",[523],{\"_80\":1525},[1526,1527,1528,1529,1530,1276,1531],\"serverless\",\"servers\",\"nodejs\",\"firebase\",\"lambda\",\"cloud\",\"unsplash/photo-1586712762548-9fa10a195532\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/Z_Jdq_xKwb8\\\"\u003eRed Zeppelin\u003c/a\u003e\",\"data:image/webp;base64,UklGRiwBAABXRUJQVlA4ICABAACQCgCdASpkAEsAPrlSoUwnPiciKvVbe8AXCWUAxYSIo/AEXfivwoICMnb6URHGHIFOTP2fccav4GG3B9A63QNAuw9I3EmrGmF4v/j0E1+2mbYF9SeLCpFcb31J++AA/tkr0VedX4bMGwxKLknnNYlDKgYRZYUinfaOeMGRYFzuanO5TXLqQmGFxif5fat0e9+YIUhRiWF517w920oLKicf5E5ZX+77p5uybeg2C+Xw+B4GH3lWElvfge82kLr6csvnggdVlLVF9u/ZsAf2nB2ilVJbZvhLRGOKjTxTYmT2qohIPeVrv0o2Vj8YPNzL4Q/QjuRT4RwWDwwR3hsYV1GkAa7yGYEdWTYFjWFgeXiAQLoOCqqRk1RM5NlfCGoDcAA=\",\"by Red Zeppelin\",\"Photo by Red Zeppelin\",\"super-simple-start-to-firebase-functions\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/super-simple-start-to-firebase-functions.mdx\",{\"_55\":1540,\"_57\":1541,\"_67\":1545,\"_103\":1558,\"_105\":1559},\"November 11th, 2020\",{\"_59\":191,\"_61\":1542,\"_63\":1543,\"_65\":1544},6.835,410100,1367,{\"_69\":1546,\"_71\":1547,\"_73\":1548,\"_75\":1549,\"_78\":1550,\"_93\":1553,\"_97\":1554,\"_99\":1555,\"_95\":1556,\"_101\":1557},\"Super simple start to Netlify functions\",\"2020-11-11T00:00:00.000Z\",\"Easily create server code without worrying about managing servers yourself\",[523],{\"_80\":1551},[1526,1527,1528,1552,1530,1276],\"netlify\",\"unsplash/photo-1529333034259-bc9d027df718\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/F_7Z1A6Jp_s\\\"\u003eKlemen Vrankar\u003c/a\u003e\",\"data:image/webp;base64,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\",\"by Klemen Vrankar\",\"Photo by Klemen Vrankar\",\"super-simple-start-to-netlify-functions\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/super-simple-start-to-netlify-functions.mdx\",{\"_55\":1561,\"_57\":1562,\"_67\":1566,\"_103\":1580,\"_105\":1581},\"October 28th, 2020\",{\"_59\":1137,\"_61\":1563,\"_63\":1564,\"_65\":1565},2.475,148500,495,{\"_69\":1567,\"_71\":1568,\"_73\":1569,\"_75\":1570,\"_78\":1571,\"_93\":1575,\"_97\":1576,\"_99\":1577,\"_95\":1578,\"_101\":1579},\"Super Simple Start to css variables\",\"2020-10-28T00:00:00.000Z\",\"How to get started using css variables\",[724],{\"_80\":1572},[1573,1574,297,790],\"css variables\",\"css custom properties\",\"unsplash/photo-1474540412665-1cdae210ae6b\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/n7a2OJDSZns\\\"\u003eHarli  Marten\u003c/a\u003e\",\"data:image/webp;base64,UklGRuYAAABXRUJQVlA4INoAAAAQCQCdASpkAEIAPrlMokw/sCOiKTzLg/AXCWUAyFwTQ3VWgjPI8P+R7iW87epun0aUn85dRAIY/lPhEl6QbvU/bqcjrdh+Gr3z19a1gWNZMEAA/u1Ar9fB+zUJVFPmLbwS2VQL08eNak8CbkCs3mjSS/tGWGij4BsrFluYpJzFeD5tadbRhR4FPKBpTZoRgqLi+PyWEaCP/NLg7u7XtRmQBCIANfjc8QooCV3IjWD2ZoMShU6KADiqH9sc7yCh52X6UZaE07w8ge0DwxV/nBN7dXAjOMVJKzUAAA==\",\"by Harli  Marten\",\"Photo by Harli  Marten\",\"super-simple-start-to-css-variables\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/super-simple-start-to-css-variables.mdx\",{\"_55\":1583,\"_57\":1584,\"_67\":1588,\"_103\":1601,\"_105\":1602},\"August 24th, 2020\",{\"_59\":138,\"_61\":1585,\"_63\":1586,\"_65\":1587},7.94,476400,1588,{\"_69\":1589,\"_71\":1590,\"_73\":1591,\"_75\":1592,\"_78\":1593,\"_93\":1596,\"_97\":1597,\"_99\":1598,\"_95\":1599,\"_101\":1600},\"Favor Progress Over Pride in Open Source\",\"2020-08-24T00:00:00.000Z\",\"How I deprecated my most popular open source project in favor of a better library\",[638],{\"_80\":1594},[790,887,1595,638,1341],\"glamorous\",\"kentcdodds.com/content/blog/favor-progress-over-pride-in-open-source/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/X8-ogEgk338\\\"\u003eMorning Brew\u003c/a\u003e\",\"data:image/webp;base64,UklGRswAAABXRUJQVlA4IMAAAAAQCgCdASpkAEMAPp1EnkulrqmhpZK72dATiWkAzciqsB2TNp7UtQRy/ibeUW57EcyJJ/w1dmHw1sLUAt4QlzE4JrZxs6BhIvmDjM/hQK+RRR9R0XBK8Tm8AAD+9VBMWZLhoeqQgeF+iXAtRLEtmUBWpkHMEKtpSRQCIMAkGI8SwzZstrXAyANePiKDYTJP4+uHYEg7WHA8uSaoqWcxiru3dJJD7OPr7HlrYsAEyTdrJUDd0YjOUyhGiIQuOIqmAAA=\",\"by Morning Brew\",\"Photo by Morning Brew\",\"favor-progress-over-pride-in-open-source\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/favor-progress-over-pride-in-open-source.mdx\",{\"_55\":1604,\"_57\":1605,\"_67\":1609,\"_103\":1639,\"_105\":1640},\"August 17th, 2020\",{\"_59\":110,\"_61\":1606,\"_63\":1607,\"_65\":1608},11.935,716100,2387,{\"_69\":1610,\"_71\":1611,\"_73\":1612,\"_78\":1613,\"_349\":1615,\"_93\":1634,\"_97\":1635,\"_99\":1636,\"_95\":1637,\"_101\":1638},\"Testing Implementation Details\",\"2020-08-17T00:00:00.000Z\",\"Testing implementation details is a recipe for disaster. Why is that? And what does it even mean?\",{\"_80\":1614},[790,985,297],[1616,1619,1621,1623,1625,1627,1629],{\"_352\":1617,\"_354\":1618},\"繁體中文\",\"https://medium.com/@GQSM/react-unit-test-%E7%82%BA%E5%9F%B7%E8%A1%8C%E7%B4%B0%E7%AF%80%E5%AF%AB%E4%B8%8B%E6%B8%AC%E8%A9%A6-%E7%BF%BB%E8%AD%AF-7bec3bca4ee1\",{\"_352\":831,\"_354\":1620},\"https://mp.weixin.qq.com/s/cTCQH6VjcQDPmvBb0YveFw\",{\"_352\":670,\"_354\":1622},\"https://mikeoli.hashnode.dev/testando-detalhes-de-implementacao\",{\"_352\":353,\"_354\":1624},\"https://zenn.dev/pandanoir/articles/fe052e716d5c87\",{\"_352\":946,\"_354\":1626},\"https://emeraldweb.vercel.app/code/articles/testing-implementation-details-ru\",{\"_352\":368,\"_354\":1628},\"https://soojae.tistory.com/84\",{\"_352\":464,\"_354\":1630,\"_356\":1631},\"https://www.redradix.com/insights/detalles-implementacionl-tests-articulo-de-kentc-dodds\",{\"_358\":1632,\"_354\":1633},\"Virgilio Gómez\",\"https://github.com/virgilio-redradix\",\"kentcdodds.com/content/blog/testing-implementation-details/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/1Z15APktAiY\\\"\u003erawpixel\u003c/a\u003e\",\"data:image/webp;base64,UklGRnYBAABXRUJQVlA4IGoBAABQDQCdASpkAEYAPqFAmki/tLEhMzbcA/AUCWMGcA0pf7GYDQbNZTqFw7jLssndjN/hhNnCMlCefxFjvC+TvoXvahLwSOJGlcly7zMuTXzT45cmV9pWeQGhIzUk7zxZhIpoCptxtReJ8itNr/pUHGmruIcmAP74h212HNtR2o627+W0FqM02NwxuNXufJzoWAy2fsnzGS6CHbax4te4kUzgXoS1I2aRyx3Fd7bwOi+ZzTN/tTtbefJThqEc0nRaLTnHvt/BPg3q9L0PVAGZGkYHu4nAcZsEmGEw58kRl42tpA7McKHhxMQB75nrtdeR++w2TuESeEah+m2MVQqu+oODneTELX2VvPoRgIEzX32uxXx27W7GV/K51R0OB/JJTCllKxRr3VFbawUnHWXztmiBZhiUAvOukaQczRgQp5+uLYqNj0MVUcWs9kGgd/Rkrct29z2PL+Xh7feAM9aCmf6EQMx4EZrMa5bcAA==\",\"by rawpixel\",\"Photo by rawpixel\",\"testing-implementation-details\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/testing-implementation-details.mdx\",{\"_55\":1642,\"_57\":1643,\"_67\":1647,\"_103\":1658,\"_105\":1659},\"August 10th, 2020\",{\"_59\":261,\"_61\":1644,\"_63\":1645,\"_65\":1646},4.38,262800,876,{\"_69\":1648,\"_71\":1649,\"_73\":1650,\"_78\":1651,\"_93\":1653,\"_97\":1654,\"_99\":1655,\"_95\":1656,\"_101\":1657},\"How getting into Open Source has been awesome for me\",\"2020-08-10T00:00:00.000Z\",\"An anecdotal argument for contributing and using open source\",{\"_80\":1652},[638,790],\"unsplash/photo-1507290439931-a861b5a38200\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/iGrsa9rL11o\\\"\u003eTj Holowaychuk\u003c/a\u003e\",\"data:image/webp;base64,UklGRoQDAABXRUJQVlA4WAoAAAAgAAAAYwAANwAASUNDUFQCAAAAAAJUbGNtcwQwAABtbnRyUkdCIFhZWiAH4QAKAAYACwAnABhhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAAD5jcHJ0AAABSAAAAEx3dHB0AAABlAAAABRjaGFkAAABqAAAACxyWFlaAAAB1AAAABRiWFlaAAAB6AAAABRnWFlaAAAB/AAAABRyVFJDAAACEAAAACBnVFJDAAACEAAAACBiVFJDAAACEAAAACBjaHJtAAACMAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACIAAAAcAHMAUgBHAEIAIABJAEUAQwA2ADEAOQA2ADYALQAyAC4AMQAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAAwAAAAHABOAG8AIABjAG8AcAB5AHIAaQBnAGgAdAAsACAAdQBzAGUAIABmAHIAZQBlAGwAeVhZWiAAAAAAAAD21gABAAAAANMtc2YzMgAAAAAAAQxCAAAF3v//8yUAAAeTAAD9kP//+6H///2iAAAD3AAAwG5YWVogAAAAAAAAb6AAADj1AAADkFhZWiAAAAAAAAAknwAAD4QAALbDWFlaIAAAAAAAAGKXAAC3hwAAGNlwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXFZQOCAKAQAA0AoAnQEqZAA4AD6dRJxKOLksIapVW8sgE4llBnAMbgZQvQCVWhJrrIZ6KETpfnX78A0AntWZkuDNcyC16mLHzHt/Y1YW9aThD9yatVBjgDpWVxqOwP6XKfDCANdmIaAA/u/qcSQrxmzMe7Noq0gL873DWjjaFo2E/KsfRsY91sk41HbHyb0UnR2DnFfc6SwrThfkqPvgVrVbIN7g3E101BBBrp2l2qcNKZe3Vo9SfmvkDDzL7ul31HZplETAWfI/cfEHXzCVn3C16fZSII4AyBCZNXKOcr8ekuUpAPiWcQNdYgN9LceupD62sMYGRwlve7vEFybgM+uEK5SVx4SYhKExOIvFTBOAAAA=\",\"by Tj Holowaychuk\",\"Photo by Tj Holowaychuk\",\"how-getting-into-open-source-has-been-awesome-for-me\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-getting-into-open-source-has-been-awesome-for-me.mdx\",{\"_55\":1661,\"_57\":1662,\"_67\":1666,\"_103\":1680,\"_105\":1681},\"August 3rd, 2020\",{\"_59\":138,\"_61\":1663,\"_63\":1664,\"_65\":1665},7.875,472500,1575,{\"_69\":1667,\"_71\":1668,\"_73\":1669,\"_75\":1670,\"_78\":1671,\"_93\":1675,\"_97\":1676,\"_99\":1677,\"_95\":1678,\"_101\":1679},\"useState lazy initialization and function updates\",\"2020-08-03T00:00:00.000Z\",\"When to pass a function to useState and setState\",[297],{\"_80\":1672},[297,1390,755,790,756,1673,1674],\"function updates\",\"lazy initialization\",\"unsplash/photo-1548691905-57c36cc8d935\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/dSyhpTGhNHg\\\"\u003eMichael Dziedzic\u003c/a\u003e\",\"data:image/webp;base64,UklGRkAkAABXRUJQVlA4WAoAAAAgAAAAYwAAQgAASUNDUAQjAAAAACMEbGNtcwIQAABtbnRyUkdCIFhZWiAH4wABABwAEAAAABVhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxjcHJ0AAABFAAAABdkZXNjAAABLAAAAHRkbW5kAAABoAAAAIBkbWRkAAACIAAAAHR3dHB0AAAClAAAABRia3B0AAACqAAAABRyWFlaAAACvAAAABRnWFlaAAAC0AAAABRiWFlaAAAC5AAAABRyVFJDAAAC+AAAIAxnVFJDAAAC+AAAIAxiVFJDAAAC+AAAIAx0ZXh0AAAAAFB1YmxpYyBEb21haW4AAABkZXNjAAAAAAAAAAhzUkdCAAAAAAAAAAAAAAAJAHMAUgBHAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAADERhcmt0YWJsZQAAAAAAAAAAAAANAEQAYQByAGsAdABhAGIAbABlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAIc1JHQgAAAAAAAAAAAAAACQBzAFIARwBCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+gAAA49QAAA5BYWVogAAAAAAAAYpcAALeHAAAY2VhZWiAAAAAAAAAknwAAD4QAALbEY3VydgAAAAAAABAAAAAAAQACAAQABQAGAAcACQAKAAsADAAOAA8AEAARABMAFAAVABYAGAAZABoAGwAcAB4AHwAgACEAIwAkACUAJgAoACkAKgArAC0ALgAvADAAMgAzADQANQA3ADgAOQA6ADsAPQA+AD8AQABCAEMARABFAEcASABJAEoATABNAE4ATwBRAFIAUwBUAFUAVwBYAFkAWgBcAF0AXgBfAGEAYgBjAGQAZgBnAGgAaQBrAGwAbQBuAG8AcQByAHMAdAB2AHcAeAB5AHsAfAB9AH4AgACBAIIAgwCFAIYAhwCIAIkAiwCMAI0AjgCQAJEAkgCTAJUAlgCXAJgAmgCbAJwAnQCfAKAAoQCiAKQApQCmAKcAqACqAKsArACtAK8AsACxALIAtAC1ALYAtwC5ALoAuwC8AL4AvwDAAMEAwgDEAMUAxgDHAMkAygDLAMwAzgDPANAA0QDTANQA1QDXANgA2QDaANwA3QDeAOAA4QDiAOQA5QDmAOgA6QDqAOwA7QDvAPAA8QDzAPQA9gD3APgA+gD7AP0A/gD/AQEBAgEEAQUBBwEIAQoBCwENAQ4BDwERARIBFAEVARcBGAEaARsBHQEfASABIgEjASUBJgEoASkBKwEtAS4BMAExATMBNAE2ATgBOQE7ATwBPgFAAUEBQwFFAUYBSAFKAUsBTQFPAVABUgFUAVUBVwFZAVoBXAFeAWABYQFjAWUBZwFoAWoBbAFuAW8BcQFzAXUBdgF4AXoBfAF+AX8BgQGDAYUBhwGJAYoBjAGOAZABkgGUAZYBlwGZAZsBnQGfAaEBowGlAacBqQGrAawBrgGwAbIBtAG2AbgBugG8Ab4BwAHCAcQBxgHIAcoBzAHOAdAB0gHUAdYB2AHaAdwB3gHhAeMB5QHnAekB6wHtAe8B8QHzAfUB+AH6AfwB/gIAAgICBAIHAgkCCwINAg8CEgIUAhYCGAIaAh0CHwIhAiMCJQIoAioCLAIuAjECMwI1AjgCOgI8Aj4CQQJDAkUCSAJKAkwCTwJRAlMCVgJYAloCXQJfAmECZAJmAmkCawJtAnACcgJ1AncCeQJ8An4CgQKDAoYCiAKLAo0CkAKSApUClwKaApwCnwKhAqQCpgKpAqsCrgKwArMCtQK4ArsCvQLAAsICxQLIAsoCzQLPAtIC1QLXAtoC3QLfAuIC5ALnAuoC7ALvAvIC9QL3AvoC/QL/AwIDBQMIAwoDDQMQAxMDFQMYAxsDHgMgAyMDJgMpAywDLgMxAzQDNwM6Az0DPwNCA0UDSANLA04DUQNUA1YDWQNcA18DYgNlA2gDawNuA3EDdAN3A3oDfQOAA4IDhQOIA4sDjgORA5QDmAObA54DoQOkA6cDqgOtA7ADswO2A7kDvAO/A8IDxQPJA8wDzwPSA9UD2APbA98D4gPlA+gD6wPuA/ID9QP4A/sD/gQCBAUECAQLBA8EEgQVBBgEHAQfBCIEJQQpBCwELwQzBDYEOQQ9BEAEQwRHBEoETQRRBFQEVwRbBF4EYgRlBGgEbARvBHMEdgR5BH0EgASEBIcEiwSOBJIElQSZBJwEoASjBKcEqgSuBLEEtQS4BLwEvwTDBMYEygTOBNEE1QTYBNwE4ATjBOcE6gTuBPIE9QT5BP0FAAUEBQgFCwUPBRMFFgUaBR4FIgUlBSkFLQUxBTQFOAU8BUAFQwVHBUsFTwVSBVYFWgVeBWIFZgVpBW0FcQV1BXkFfQWBBYQFiAWMBZAFlAWYBZwFoAWkBagFrAWvBbMFtwW7Bb8FwwXHBcsFzwXTBdcF2wXfBeMF5wXrBe8F9AX4BfwGAAYEBggGDAYQBhQGGAYcBiEGJQYpBi0GMQY1BjkGPgZCBkYGSgZOBlMGVwZbBl8GYwZoBmwGcAZ0BnkGfQaBBoUGigaOBpIGlwabBp8GpAaoBqwGsQa1BrkGvgbCBsYGywbPBtQG2AbcBuEG5QbqBu4G8gb3BvsHAAcEBwkHDQcSBxYHGwcfByQHKActBzEHNgc6Bz8HQwdIB00HUQdWB1oHXwdjB2gHbQdxB3YHewd/B4QHiQeNB5IHlwebB6AHpQepB64Hswe3B7wHwQfGB8oHzwfUB9kH3QfiB+cH7AfxB/UH+gf/CAQICQgNCBIIFwgcCCEIJggrCC8INAg5CD4IQwhICE0IUghXCFwIYQhmCGsIcAh1CHoIfwiECIkIjgiTCJgInQiiCKcIrAixCLYIuwjACMUIygjPCNQI2QjfCOQI6QjuCPMI+Aj9CQMJCAkNCRIJFwkdCSIJJwksCTEJNwk8CUEJRglMCVEJVglbCWEJZglrCXEJdgl7CYEJhgmLCZEJlgmbCaEJpgmrCbEJtgm8CcEJxgnMCdEJ1wncCeIJ5wntCfIJ+An9CgIKCAoNChMKGQoeCiQKKQovCjQKOgo/CkUKSgpQClYKWwphCmYKbApyCncKfQqDCogKjgqUCpkKnwqlCqoKsAq2CrwKwQrHCs0K0wrYCt4K5ArqCu8K9Qr7CwELBwsMCxILGAse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aCpoP2hVaGpogGiWaKtowWjWaOxpAmkXaS1pQ2lYaW5phGmZaa9pxWnbafBqBmocajJqSGpdanNqiWqfarVqymrgavZrDGsiazhrTmtka3prkGuma7xr0mvoa/5sFGwqbEBsVmxsbIJsmGyubMRs2mzwbQZtHG0zbUltX211bYttoW24bc5t5G36bhFuJ249blNuam6AbpZurW7Dbtlu8G8GbxxvM29Jb2Bvdm+Mb6NvuW/Qb+Zv/XATcCpwQHBXcG1whHCacLFwx3DecPRxC3EicThxT3FmcXxxk3GqccBx13HucgRyG3IyckhyX3J2co1ypHK6ctFy6HL/cxZzLHNDc1pzcXOIc59ztnPNc+Rz+nQRdCh0P3RWdG10hHSbdLJ0yXTgdPd1DnUmdT11VHVrdYJ1mXWwdcd13nX2dg12JHY7dlJ2anaBdph2r3bHdt529XcMdyR3O3dSd2p3gXeYd7B3x3fed/Z4DXgleDx4VHhreIJ4mnixeMl44Hj4eQ95J3k+eVZ5bnmFeZ15tHnMeeN5+3oTeip6QnpaenF6iXqherh60HroewB7F3sve0d7X3t2e457pnu+e9Z77nwFfB18NXxNfGV8fXyVfK18xXzcfPR9DH0kfTx9VH1sfYR9nH20fc195X39fhV+LX5Ffl1+dX6NfqV+vn7Wfu5/Bn8efzd/T39nf39/l3+wf8h/4H/5gBGAKYBBgFqAcoCKgKOAu4DUgOyBBIEdgTWBToFmgX+Bl4GwgciB4YH5ghKCKoJDgluCdIKMgqWCvoLWgu+DB4MggzmDUYNqg4ODm4O0g82D5YP+hBeEMIRIhGGEeoSThKyExITdhPaFD4UohUGFWoVyhYuFpIW9hdaF74YIhiGGOoZThmyGhYaehreG0IbphwKHG4c0h02HZ4eAh5mHsofLh+SH/YgXiDCISYhiiHuIlYiuiMeI4Ij6iROJLIlGiV+JeImRiauJxIneifeKEIoqikOKXYp2io+KqYrCityK9YsPiyiLQotbi3WLjouoi8KL24v1jA6MKIxCjFuMdYyPjKiMwozcjPWND40pjUKNXI12jZCNqY3Djd2N944RjiuORI5ejniOko6sjsaO4I76jxOPLY9Hj2GPe4+Vj6+PyY/jj/2QF5AxkEuQZZB/kJqQtJDOkOiRApEckTaRUJFrkYWRn5G5kdOR7pII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\",\"by Michael Dziedzic\",\"Photo by Michael Dziedzic\",\"use-state-lazy-initialization-and-function-updates\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/use-state-lazy-initialization-and-function-updates\",{\"_55\":1683,\"_57\":1684,\"_67\":1685,\"_103\":1718,\"_105\":1719},\"July 27th, 2020\",{\"_59\":261,\"_61\":801,\"_63\":802,\"_65\":803},{\"_69\":1686,\"_71\":1687,\"_73\":1688,\"_75\":1689,\"_78\":1690,\"_349\":1695,\"_93\":1713,\"_97\":1714,\"_99\":1715,\"_95\":1716,\"_101\":1717},\"Use ternaries rather than \u0026\u0026 in JSX\",\"2020-07-27T00:00:00.000Z\",\"What problems can happen when you use \u0026\u0026 to conditionally render content in JSX\",[297],{\"_80\":1691},[297,1692,790,1693,1694],\"jsx\",\"ternaries\",\"conditionally render jsx\",[1696,1702,1708],{\"_352\":1697,\"_354\":1698,\"_356\":1699},\"Turkish\",\"https://medium.com/@yusufgungor/jsxte-yerine-ternary-operator-leri-kullan%C4%B1n-b310ee45f6e5\",{\"_358\":1700,\"_354\":1701},\"Yusuf Güngör\",\"https://github.com/yusfgungor\",{\"_352\":1703,\"_354\":1704,\"_356\":1705},\"Українська\",\"https://medium.com/@lelihelija/use-ternaries-rather-than-and-and-in-jsx-ed6db3241020\",{\"_358\":1706,\"_354\":1707},\"Lelihelija\",\"https://www.linkedin.com/in/olhaborysenko-fe-dev/\",{\"_352\":368,\"_354\":1709,\"_356\":1710},\"https://rosetta.page/post/번역-jsx에서-대신-삼항-연산자를-사용하세요-hrtyw\",{\"_358\":1711,\"_354\":1712},\"오인규\",\"https://github.com/gomjellie\",\"unsplash/photo-1516824600626-47a22f894aff\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/aoN3HWLbhdI\\\"\u003eBurst\u003c/a\u003e\",\"data:image/webp;base64,UklGRgwBAABXRUJQVlA4IAABAAAwCwCdASpkAEMAPrlInko/symhszYcA/AXCWcGcGawLzH5sO+hQ0PxjqwpTRk9ilDsfQNuKGy/8dfu6jb0/Kx/lIfMc9t5in6Zihqq3TisWCzyiOGuzad9vE1ElJLw/z/kAAD+yva3fi/C32Xo6lnzBxGY4vNPPowzzSuFUY33apZlnL+WtWngPObHimtf1LTVP3dncKIAnrlu6O+MynDLRjYFTiTjO1nT+CSAPQICD9Uc35yXCAYn1tSPkYU6CMR0oiUDXDkQngaIokXOsacgJcWqQLmVfKaJuc58KCwQUxpB1YI2HZcVyVPNWqowmzOnZgkVmvSsNGyLPxl2tGAA\",\"by Burst\",\"Photo by Burst\",\"use-ternaries-rather-than-and-and-in-jsx\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/use-ternaries-rather-than-and-and-in-jsx.mdx\",{\"_55\":1721,\"_57\":1722,\"_67\":1726,\"_103\":1759,\"_105\":1760},\"July 21st, 2020\",{\"_59\":846,\"_61\":1723,\"_63\":1724,\"_65\":1725},13.46,807600,2692,{\"_69\":1727,\"_71\":1728,\"_73\":1729,\"_75\":1730,\"_78\":1731,\"_349\":1739,\"_93\":1754,\"_97\":1755,\"_99\":1756,\"_95\":1757,\"_101\":1758},\"Application State Management with React\",\"2020-07-21T00:00:00.000Z\",\"How React is all you need to manage your application state\",[297],{\"_80\":1732},[297,1733,790,1734,1735,1736,1737,1738],\"state\",\"redux\",\"mobx\",\"recoil\",\"react query\",\"jotai\",[1740,1742,1744,1749],{\"_352\":946,\"_354\":1741},\"https://habr.com/ru/post/507572/\",{\"_352\":368,\"_354\":1743},\"https://im-developer.tistory.com/222\",{\"_352\":962,\"_354\":1745,\"_356\":1746},\"https://liyanlance.github.io/#/frontend/react-state-management\",{\"_358\":1747,\"_354\":1748},\"Li Yan\",\"https://liyanlance.github.io/\",{\"_352\":662,\"_354\":1750,\"_356\":1751},\"https://medium.com/@gizemnkorkmaz/react-ile-application-state-y%C3%B6netimi-fe4c2adabc49\",{\"_358\":1752,\"_354\":1753},\"Gizem Korkmaz\",\"https://x.com/gizemnkorkmaz\",\"unsplash/photo-1513346940221-6f673d962e97\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/YeUVDKZWSZ4\\\"\u003eRene Böhmer\u003c/a\u003e\",\"data:image/webp;base64,UklGRh4BAABXRUJQVlA4IBIBAACQCgCdASpkAEMAPqVGnEk+NqMhLrUMo8AUiWUGcA0EB3VcN/QE0Qn+7fXY0scjYVqMGK5Ljyy+WX7r59srx0f7CRCiSbTe3yUrcBpP5Aq9lYFjt/3EjcccazKI52AA/u6IZwkQp3+qWd08d9/ASeCVZf7qxkfpDlgn6kFVpMW3T29AOxy9ECZPFzaTtjnP5eAsjWhfReoZ4MsJgYU5G55YJzfbQHzCj5otAF1E74a/CdXpPYPhK6QsxAMkB5wQuc/cuAW2CcN9jou9qHx+bJ+iPy1kI5RySNBqetugknuuyF+OA3xQBrslSNdPBlt3QyQpxwlBwWsEL+53v54HybEVpLCPkpu0Q7jyCFQOYk6PkwAA\",\"by Rene Böhmer\",\"Photo by Rene Böhmer\",\"application-state-management-with-react\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/application-state-management-with-react.mdx\",{\"_55\":1762,\"_57\":1763,\"_67\":1764,\"_103\":1787,\"_105\":1788},\"July 20th, 2020\",{\"_59\":138,\"_61\":1585,\"_63\":1586,\"_65\":1587},{\"_69\":1765,\"_71\":1766,\"_73\":1767,\"_75\":1768,\"_78\":1769,\"_349\":1776,\"_93\":1782,\"_97\":1783,\"_99\":1784,\"_95\":1785,\"_101\":1786},\"Use react-error-boundary to handle errors in React\",\"2020-07-20T00:00:00.000Z\",\"How to simplify your React apps by handling React errors effectively with react-error-boundary\",[297],{\"_80\":1770},[297,1771,1772,1773,1774,1775],\"error boundary\",\"react-error-boundary\",\"error boundaries\",\"runtime errors\",\"error\",[1777],{\"_352\":368,\"_354\":1778,\"_356\":1779},\"https://codesnapmag.hashnode.dev/react-error-boundary\",{\"_358\":1780,\"_354\":1781},\"Jung Wook Park\",\"https://github.com/hatchling13\",\"kentcdodds.com/content/blog/use-react-error-boundary-to-handle-errors-in-react/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/yObRnRYfnmY\\\"\u003eDebora Cardenas\u003c/a\u003e\",\"data:image/webp;base64,UklGRhIBAABXRUJQVlA4IAYBAABwCQCdASpkAEMAPrlSnku4P7AnrbVbm/AXCWMGgyUXnmQJl9DXzNixtcfFxvMsV7jEto8F/heo736SzSz9X7kTHU07MjRHa9DwQbl7YbWjmjXuvGAA/unVPM7Lh5f/lK/+N3+FI6+1f2p+VnmrBksLlwUCgwo8gO6d8wQF0bbQpqnIPoXeAMiCeL5bz9XCHnkNmETylmdJ0ROhPqMdG+g/PaHwaKAKVeWFYoHHyky+Cvgx8R2hISHWv0ST3UFet5BDd1JvAHFU5HbTa7V1xbqsQRV8nBRNLvIz7e5DgzrZ9oINzvWW5O/8pYMmq/uHHVIye4+wShmh16MUbxR6B3Hsid1BAAAA\",\"by Debora Cardenas\",\"Photo by Debora Cardenas\",\"use-react-error-boundary-to-handle-errors-in-react\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/use-react-error-boundary-to-handle-errors-in-react\",{\"_55\":1790,\"_57\":1791,\"_67\":1795,\"_103\":1837,\"_105\":1838},\"July 15th, 2020\",{\"_59\":846,\"_61\":1792,\"_63\":1793,\"_65\":1794},13.345,800700,2669,{\"_69\":1796,\"_71\":1797,\"_73\":1798,\"_75\":1799,\"_78\":1800,\"_349\":1802,\"_93\":1832,\"_97\":1833,\"_99\":1834,\"_95\":1835,\"_101\":1836},\"JavaScript to Know for React\",\"2020-07-15T00:00:00.000Z\",\"What JavaScript features you should be familiar with when learning and using React\",[790],{\"_80\":1801},[297,790],[1803,1805,1807,1809,1811,1817,1822,1827],{\"_352\":662,\"_354\":1804},\"https://medium.com/p/14a6ef62bd72/\",{\"_352\":481,\"_354\":1806},\"https://www.thibaud-duthoit.fr/blog/javascript-a-savoir-pour-react\",{\"_352\":470,\"_354\":1808},\"https://medium.com/p/f08d46476b99\",{\"_352\":368,\"_354\":1810},\"https://immigration9.github.io/react,javascript/2020/07/26/javascript-to-know-for-react.html\",{\"_352\":1812,\"_354\":1813,\"_356\":1814},\"پارسی\",\"https://virgool.io/@iamjalalhamed/%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-%D9%84%D8%A7%D8%B2%D9%85-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B1%DB%8C-%D8%A7%DA%A9%D8%AA-jks0suonosic\",{\"_358\":1815,\"_354\":1816},\"Jalal Hamed\",\"https://virgool.io/@iamjalalhamed\",{\"_352\":464,\"_354\":1818,\"_356\":1819},\"https://medium.com/@noeliadonato/javascript-para-saber-react-e3f0887ad530\",{\"_358\":1820,\"_354\":1821},\"Noelia Donato\",\"https://x.com/vamoacodear\",{\"_352\":1703,\"_354\":1823,\"_356\":1824},\"https://dev.to/hraboviyvadim/javascript-iakii-potribno-znati-dlia-react-50n7\",{\"_358\":1825,\"_354\":1826},\"Vadym Grabovyi\",\"https://x.com/hraboviyvadim\",{\"_352\":962,\"_354\":1828,\"_356\":1829},\"https://www.neotan.me/blog/javascript-to-know-for-react\",{\"_358\":1830,\"_354\":1831},\"Neo Tan\",\"https://www.neotan.me\",\"unsplash/photo-1519681393784-d120267933ba\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/phIFdC6lA4E\\\"\u003eBenjamin Voros\u003c/a\u003e\",\"data:image/webp;base64,UklGRgABAABXRUJQVlA4IPQAAACwCQCdASpkAEMAPrlQoUopqLihq/idExAXCWcG+BuowoiiKvuh8/ufkFU/RiVRXkzGLhWgLMIlsYTEICF+1nv2B/gkD5jYHJPkHMmPYRv7lsTBZQ8PygD+7oHv3WYD8g3UyP52rY+z7xhMdlMPUy7kN4gWhXED1hl67/R6c/w7BUGFcgx71pYHT8h9zlob0ufSLiryaQcfgikCXxTfkzTo9VYtRVsEj1zO4R8KpIdpYYoaoCqFCYpYMPaQSBPrH68GTQ6vB+HdcInvUKI3oGYUpBR21CUukoj/lYZg/Y3Fsrc4dvzoqGjs5iP+oHpHGCdeQAAA\",\"by Benjamin Voros\",\"Photo by Benjamin Voros\",\"javascript-to-know-for-react\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/javascript-to-know-for-react.mdx\",{\"_55\":1840,\"_57\":1841,\"_67\":1845,\"_103\":1861,\"_105\":1862},\"July 13th, 2020\",{\"_59\":138,\"_61\":1842,\"_63\":1843,\"_65\":1844},7.865,471900,1573,{\"_69\":1846,\"_71\":1847,\"_73\":1848,\"_75\":1849,\"_78\":1850,\"_93\":1856,\"_97\":1857,\"_99\":1858,\"_95\":1859,\"_101\":1860},\"How I structure Express apps\",\"2020-07-13T00:00:00.000Z\",\"The build/dev tools and scripts I use for Node backends.\",[523],{\"_80\":1851},[790,527,1852,1853,523,1854,1855,985],\"express\",\"express.js\",\"file structure\",\"architecture\",\"unsplash/photo-1534777410147-084a460870fc\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/DYHx6h3lMdY\\\"\u003eJJ Ying\u003c/a\u003e\",\"data:image/webp;base64,UklGRuwAAABXRUJQVlA4IOAAAABQBgCdASpkAEMAPp1On00lpCaxIOmqIBOJZwb4Gsxg2AjQcOHeqWk172XBrIJyuwcZtMDVczW5GR+FQAD+9JxNxpbFuDkTWGjamLyiidTbg4Hm83uACRPt/X8+2QHM+eyivBtamhkYj4BoyW2GW5HNwj0962UiGnZjKumFNPtCqfifaYtlUkjMR8nbjnzCuOqGN+NfL911OBrwqBFwqvizwbIBk9zR1uvI3DLB/O0H7yVSFiWOIr4HGYoHKNRXVe3EgNmvv0DLamanyghtLh16m5OaGN75KiJoUa7/FoAAAA==\",\"by JJ Ying\",\"Photo by JJ Ying\",\"how-i-structure-express-apps\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-i-structure-express-apps.mdx\",{\"_55\":1864,\"_57\":1865,\"_67\":1869,\"_103\":1883,\"_105\":1884},\"July 6th, 2020\",{\"_59\":214,\"_61\":1866,\"_63\":1867,\"_65\":1868},5.07,304200,1014,{\"_69\":1870,\"_71\":1871,\"_73\":1872,\"_78\":1873,\"_349\":1875,\"_93\":1879,\"_97\":1880,\"_99\":1881,\"_95\":1882,\"_101\":1882},\"What open source project should I contribute to?\",\"2020-07-06T00:00:00.000Z\",\"My silver bullet answer to this frequently posed question, and how to get started\",{\"_80\":1874},[638,637,790],[1876],{\"_352\":464,\"_354\":1877,\"_356\":1878},\"https://medium.com/@noeliadonato/a-qu%C3%A9-proyecto-de-c%C3%B3digo-abierto-deber%C3%ADa-contribuir-949bef467863\",{\"_358\":1820,\"_354\":1821},\"kentcdodds.com/content/blog/what-open-source-project-should-i-contribute-to/banner\",\"\u003ca href=\\\"https://octodex.github.com/repo\\\"\u003eoctodex.github.com\u003c/a\u003e\",\"data:image/webp;base64,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\",\"octodex.github.com\",\"what-open-source-project-should-i-contribute-to\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/what-open-source-project-should-i-contribute-to.mdx\",{\"_55\":1886,\"_57\":1887,\"_67\":1891,\"_103\":1905,\"_105\":1906},\"June 29th, 2020\",{\"_59\":214,\"_61\":1888,\"_63\":1889,\"_65\":1890},5.23,313800,1046,{\"_69\":1892,\"_71\":1893,\"_73\":1894,\"_75\":1895,\"_78\":1896,\"_93\":1900,\"_97\":1901,\"_99\":1902,\"_95\":1903,\"_101\":1904},\"When I follow TDD\",\"2020-06-29T00:00:00.000Z\",\"Test-Driven Development doesn't always make sense, here's when it does for me.\",[985],{\"_80\":1897},[985,790,1898,1899],\"tdd\",\"test driven development\",\"unsplash/photo-1534187722941-e13c206e71c6\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/VU4y5JRD-zo\\\"\u003eRobin Vet\u003c/a\u003e\",\"data:image/webp;base64,UklGRtoAAABXRUJQVlA4IM4AAABwCQCdASpkAEMAPrlEnUspqqMhsHgMOVAXCWkG+OaH1s27AbECGDNtXaGqLPC6fU5zS8COgC3wsk6T3+30NcJJDK9OV2sCapPiNFc2zs4Mz5uTT/AA/u+4QeS16v8MXi81XhNwmz1KUzOupccHDfMn+FzpBziWZXNL4hRZ8oqsOuQW8w4brIcQCXB3DXhMgQVSoFhY9QO/CZk1ZZsfHu6ODaz2mUm0vmPWOd6ysL20dlmtU7V/TLGpIuOQbYtByUmu3ggcfKa7c3wqSoAAAA==\",\"by Robin Vet\",\"Photo by Robin Vet\",\"when-i-follow-tdd\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/when-i-follow-tdd.mdx\",{\"_55\":1908,\"_57\":1909,\"_67\":1913,\"_103\":1963,\"_105\":1964},\"June 22nd, 2020\",{\"_59\":261,\"_61\":1910,\"_63\":1911,\"_65\":1912},4.83,289800,966,{\"_69\":1914,\"_73\":1915,\"_71\":1916,\"_75\":1917,\"_78\":1919,\"_349\":1921,\"_93\":1958,\"_97\":1959,\"_99\":1960,\"_95\":1961,\"_101\":1962},\"AHA Programming 💡\",\"The dangers of DRY, the web of WET, the awesomeness of AHA.\",\"2020-06-22T00:00:00.000Z\",[1918],\"programming\",{\"_80\":1920},[1918,1092],[1922,1924,1929,1934,1939,1942,1947,1953],{\"_352\":368,\"_354\":1923},\"https://goongoguma.github.io/2021/05/02/AHA-Programming/\",{\"_352\":362,\"_354\":1925,\"_356\":1926},\"https://anphan.com/vi/aha-programming\",{\"_358\":1927,\"_354\":1928},\"An Phan\",\"https://anphan.com\",{\"_352\":464,\"_354\":1930,\"_356\":1931},\"https://www.infoxicator.com/es/programacion-aha\",{\"_358\":1932,\"_354\":1933},\"Ruben Casas\",\"https://x.com/Infoxicador\",{\"_352\":353,\"_354\":1935,\"_356\":1936},\"https://smagch.com/posts/aha-programming/\",{\"_358\":1937,\"_354\":1938},\"Tomoya Shimaguchi\",\"https://smagch.com\",{\"_352\":470,\"_354\":1940,\"_356\":1941},\"https://www.allanramos.com.br/aha-programacao/\",{\"_358\":1498,\"_354\":1499},{\"_352\":831,\"_354\":1943,\"_356\":1944},\"https://keenwon.com/aha-programming/\",{\"_358\":1945,\"_354\":1946},\"keenwon\",\"https://keenwon.com\",{\"_352\":1948,\"_354\":1949,\"_356\":1950},\"Italiano\",\"https://www.linkedin.com/pulse/aha-programming-roberto-carboni\",{\"_358\":1951,\"_354\":1952},\"Roberto Carboni\",\"https://www.linkedin.com/in/roberto-carboni/\",{\"_352\":1098,\"_354\":1954,\"_356\":1955},\"https://www.linkedin.com/pulse/aha-programming-adith-widya-pradipta\",{\"_358\":1956,\"_354\":1957},\"Adith Widya Pradipta\",\"https://www.linkedin.com/in/adith-widya-pradipta-3a777894/\",\"unsplash/photo-1546942113-a6c43b63104a\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/Rnqa6jOpnHw\\\"\u003eJoshua Sortino\u003c/a\u003e\",\"data:image/webp;base64,UklGRvwAAABXRUJQVlA4IPAAAAAwCQCdASpkAEMAPp1InEslsyYip1YKqmATiWcGcAyb3iwGowHcRCwo83l5x46BhvM5Kj+iGjvAA8YhKeuJHh9s+Psfph8RiW/Gp33H8wwyuznAAP7usyHIqQ38z4B6Q2CB74jZlk3EdXmANvICpe32fH7LjnXJuUsZX2TeKBsJV7FX5DcqPqe/6BdKrQkkNxOCh53cafqDqPKiHlo3jVsC7hI4Fdc2qZb2c1dEP+atVnqnQdAN8TluZgYAMgUjkWtCSPcqTN5/n9HCIR+eEyc0GPzB0LmHgcEYq3/0bs7f5Enn23j9XY2IbvTtshgIwAA=\",\"by Joshua Sortino\",\"Photo by Joshua Sortino\",\"aha-programming\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/aha-programming.mdx\",{\"_55\":1908,\"_57\":1966,\"_67\":1970,\"_103\":1981,\"_105\":1982},{\"_59\":138,\"_61\":1967,\"_63\":1968,\"_65\":1969},7.2,432000,1440,{\"_69\":1971,\"_71\":1916,\"_73\":1972,\"_75\":1973,\"_78\":1974,\"_93\":1979,\"_99\":1980},\"How I Record Educational Videos\",\"My process for making high value-to-minute content.\",[458],{\"_80\":1975},[1976,458,1977,1978],\"learning\",\"videos\",\"egghead\",\"kentcdodds.com/content/blog/how-i-record-educational-videos/banner\",\"data:image/webp;base64,UklGRiYBAABXRUJQVlA4IBoBAAAwCgCdASpkAEsAPp1Cmkk4uKWhLrULyxATiWcC5So9V9ahdCrBKz/OojxGE4dRfM7mVPBaJZdh0QEJyEDjhp5hcN1T1XFExQMrT738ABQPavBpO0+PgBZgKAAA/vBwvFa2qEFiGv2AAJ0Hn127xUcWOZtqvg2rnf7KwCEjc38TX0Bn8QtJRQlLhJ/DzyQ8fERR+HTqVcKvwo8L7h1L11YaMIMPazsxlWD6KNBHYXQGFJH+JSpQ0RLTyGnPavMwpb6+8lqguHJ2zAACPsOL62MvxWWcBJ8ISLZN2zOa+wVr59lCOzjbNV8dzNasSUxxc7EHCQjHvQiQuNqWwp9UkJyUWmNmlWUTkenVHXgSujgnHxAPr/2HeYMAAAA=\",\"how-i-record-educational-videos\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-i-record-educational-videos.mdx\",{\"_55\":1984,\"_57\":1985,\"_67\":1989,\"_103\":2008,\"_105\":2009},\"June 15th, 2020\",{\"_59\":1137,\"_61\":1986,\"_63\":1987,\"_65\":1988},2.62,157200,524,{\"_69\":1990,\"_71\":1991,\"_73\":1992,\"_75\":1993,\"_78\":1994,\"_349\":1999,\"_93\":2003,\"_97\":2004,\"_99\":2005,\"_95\":2006,\"_101\":2007},\"Should I write a test or fix a bug?\",\"2020-06-15T00:00:00.000Z\",\"How to prioritize tests relative to everything else.\",[985],{\"_80\":1995},[1996,985,790,1997,1998],\"software development\",\"practically testing\",\"practical testing\",[2000],{\"_352\":2001,\"_354\":2002},\"Indonesian\",\"https://kahfi.dev/idn-translations/should-i-write-a-test-or-fix-a-bug/\",\"unsplash/photo-1533082353026-fa9a7f503afe\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/HmKIoGSRj7A\\\"\u003eKrzysztof Niewolny\u003c/a\u003e\",\"data:image/webp;base64,UklGRtIAAABXRUJQVlA4IMYAAACQBQCdASpkAEMAPp1Ook2lpCMiIOgAsBOJZwDJvNHARae8nCznGDEmE0OahGbmDycJmK62GAD+4JEAOv/zsH/8D/49+DP8UPFnxZGVC06IJ0bSZsPONbPwN9j5AnhJRkGkOa7O25ldTaah2qji7aLiZ9rjIENCAijlrL4A7cuuyegbden48DaAh0nKxADykmKllpNpPs59FD8Ec6o6yuYqb2Svt2t8a6e8QShLpbLQ4bRlT1p0BvQaT6zfIyEr4jONev3wAAA=\",\"by Krzysztof Niewolny\",\"Photo by Krzysztof Niewolny\",\"should-i-write-a-test-or-fix-a-bug\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/should-i-write-a-test-or-fix-a-bug.mdx\",{\"_55\":2011,\"_57\":2012,\"_67\":2016,\"_103\":2036,\"_105\":2037},\"June 3rd, 2020\",{\"_59\":649,\"_61\":2013,\"_63\":2014,\"_65\":2015},10.33,619800,2066,{\"_69\":2017,\"_71\":2018,\"_73\":2019,\"_75\":2020,\"_78\":2021,\"_349\":2025,\"_93\":2031,\"_97\":2032,\"_99\":2033,\"_95\":2034,\"_101\":2035},\"Stop mocking fetch\",\"2020-06-03T00:00:00.000Z\",\"Why you shouldn't mock fetch or your API Client in your tests and what to do instead.\",[985],{\"_80\":2022},[790,985,1363,1362,2023,2024],\"integration\",\"unit\",[2026],{\"_352\":368,\"_354\":2027,\"_356\":2028},\"https://lurgi.tistory.com/183\",{\"_358\":2029,\"_354\":2030},\"Jeongwoo park\",\"https://github.com/lurgi\",\"unsplash/photo-1551337201-38ef80edf160\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/4SOEj44KvHA\\\"\u003eZdeněk Macháček\u003c/a\u003e\",\"data:image/webp;base64,UklGRiYDAABXRUJQVlA4WAoAAAAgAAAAYwAASgAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCDQAAAAMAgAnQEqZABLAD6dSJ1LP6uirKhVWnPwE4lnAM+gB829WDtr1ADO8o/8ijVQxWaLmLI0yeSmFy4CggudxBwGhrU5R1Swet5PtaAA/upK7r/I53s+o7xcJyNjK0XsCuoC7ArCbu9dPNJ/XZkm6bAlC4bQQHAF4DD6g1rrRYK8q233MB5Iypnb8lGzg/+Ap9qH8gQ+/F1lYGLNxEZJGSSeXVRIn92A5LOmCozpFBghR7BqKh0yaMRPGONwV+jC9YrTkSgMLUoAfrPPzZ4JUT+AAA==\",\"by Zdeněk Macháček\",\"Photo by Zdeněk Macháček\",\"stop-mocking-fetch\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/stop-mocking-fetch.mdx\",{\"_55\":2039,\"_57\":2040,\"_67\":2041,\"_103\":2053,\"_105\":2054},\"May 26th, 2020\",{\"_59\":138,\"_61\":777,\"_63\":778,\"_65\":779},{\"_69\":2042,\"_71\":2043,\"_73\":2044,\"_75\":2045,\"_78\":2046,\"_93\":2048,\"_97\":2049,\"_99\":2050,\"_95\":2051,\"_101\":2052},\"Intentional Career Building\",\"2020-05-26T00:00:00.000Z\",\"A challenge and ideas for you to do something to build your career.\",[340],{\"_80\":2047},[340],\"unsplash/photo-1456255985051-dcbc4f615823\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/8tem2WpFPhM\\\"\u003eRadek Grzybowski\u003c/a\u003e\",\"data:image/webp;base64,UklGRtYAAABXRUJQVlA4IMoAAADwBwCdASpkAEMAPrVKnUopJ6Mhszea2SAWiWktgAqmAViFS3AWQjWtiZTYLQffgTOEmNtBpIf9pdRmi55doprSNQhvhpmjm0wA/vTUgP3yasVRdooSlhLSv4XP76wyTrmy8iySnmBWKs3JdgWCpl+DI40nuNmDGu9LNPMyoxhEiCzqTf+kINp53xrVS6xHjGlbRGxh1WRh3z/hgtEXFxopCDG29FnnfZF81WgSV8LttbtPDbwvm43x0n+/VQZS/tUxx0bW32Q9AAAA\",\"by Radek Grzybowski\",\"Photo by Radek Grzybowski\",\"intentional-career-building\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/intentional-career-building.mdx\",{\"_55\":2056,\"_57\":2057,\"_67\":2061,\"_103\":2077,\"_105\":2078},\"May 18th, 2020\",{\"_59\":138,\"_61\":2058,\"_63\":2059,\"_65\":2060},7.76,465600,1552,{\"_69\":2062,\"_71\":2063,\"_73\":2064,\"_75\":2065,\"_78\":2066,\"_93\":2072,\"_97\":2073,\"_99\":2074,\"_95\":2075,\"_101\":2076},\"Improve test error messages of your abstractions\",\"2020-05-18T00:00:00.000Z\",\"How to manipulate stack traces to get beautiful error messages with Jest and your test helper functions.\",[985],{\"_80\":2067},[985,2068,1775,2069,2070,2071],\"jest\",\"stacktrace\",\"stack trace\",\"messages\",\"unsplash/photo-1472494731104-3ba69e52845b\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/ZahNAl_Ic3o\\\"\u003eAustin Neill\u003c/a\u003e\",\"data:image/webp;base64,UklGRkQBAABXRUJQVlA4IDgBAADwDACdASpkAEMAPp0+mEg8rbAhL5eNU5ATiWcGeqi4IrUH81fcgNqNcLRQ9dk7jqKEZ4jVL5db0KtQF1URFhvNXFG1XstD6bkxsBV4qxi1pON+7SsZ0GzfWqQJvRo3mNwRY0fdJX9pxFvdQLnwcWiAAP6TL/liJ643L5AMa1xDKgxT68tEOnEsSuk9hcWHQHoj8yLOPL/z4fHU+1Lj8SiwDoWU7zXq7UO0RAJC2a0i0NkieyRVYHOmJWMOO8+dgzyigW/MmC5QctqhMdo3gurNOX0VufVuSInhxvDsCzvwlEq1OqvpyNyQC/FzXIBY5zT4HF+EKH9PNqGV6HCHoKA/FZ7rOTg0VavrAW/9yAAlBs+vuYr8GMDUXJZlhimQv8iDm0FHZGkIgew6cUclDBHIBLg6f23AAAA=\",\"by Austin Neill\",\"Photo by Austin Neill\",\"improve-test-error-messages-of-your-abstractions\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/improve-test-error-messages-of-your-abstractions\",{\"_55\":2080,\"_57\":2081,\"_67\":2085,\"_103\":2104,\"_105\":2105},\"May 8th, 2020\",{\"_59\":331,\"_61\":2082,\"_63\":2083,\"_65\":2084},3.905,234300,781,{\"_2086\":2087,\"_69\":2088,\"_71\":2089,\"_73\":2090,\"_75\":2091,\"_78\":2092,\"_93\":2099,\"_97\":2100,\"_99\":2101,\"_95\":2102,\"_101\":2103},\"archived\",true,\"Tracing user interactions with React\",\"2020-05-08T00:00:00.000Z\",\"How to use the (EXPERIMENTAL) interactions tracing API in React.\",[297],{\"_80\":2093},[297,2094,2095,2096,2097,2098],\"monitoring\",\"tracing\",\"unstable_trace\",\"trace\",\"scheduler\",\"unsplash/photo-1461016951828-c09537329b3a\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/1DDFLlCz42k\\\"\u003eLuke Porter\u003c/a\u003e\",\"data:image/webp;base64,UklGRggBAABXRUJQVlA4IPwAAACwCACdASpkAEsAPrVImUopL6ghsV5KAfAWiWcAzfwsm0JUNYsNwbidmpYgWFPSFF9nOmK2A1u13Bnh7vA7h31LpgImLKjiw7unAaHHDMAA/vQ7Jpj1eSiz41h90zpQqZ3F40UUQj0wSzkvMbwRrH8UgJffuuLn5A4bisfDMKFS29R5wz/lk6Cxpt58NzmoOLmCVV/GoUOLks/lNquQkmCi+x5bCxZwzKODWkxkaoZTeVRokp7CFzgUqrD+ILLawq0Qz4CfwPP+eGjzH66OoTjeYABBxFW4xh7EiQuZSXIuGxjLxTnvUkGaABTWY/JZQB3hQfm03aIeVQHSkAA=\",\"by Luke Porter\",\"Photo by Luke Porter\",\"tracing-user-interactions-with-react\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/tracing-user-interactions-with-react.mdx\",{\"_55\":2107,\"_57\":2108,\"_67\":2112,\"_103\":2125,\"_105\":2126},\"May 7th, 2020\",{\"_59\":331,\"_61\":2109,\"_63\":2110,\"_65\":2111},3.675,220500,735,{\"_69\":2113,\"_71\":2114,\"_73\":2115,\"_78\":2116,\"_93\":2120,\"_97\":2121,\"_99\":2122,\"_95\":2123,\"_101\":2124},\"Eliminate an entire category of bugs with a few simple tools\",\"2020-05-07T00:00:00.000Z\",\"How you can use a few simple static code analysis tools to avoid common programming bugs.\",{\"_80\":2117},[790,985,2118,2119,809],\"prettier\",\"eslint\",\"unsplash/photo-1503789146722-cf137a3c0fea\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/4mAcustUNPs\\\"\u003eMatt Artz\u003c/a\u003e\",\"data:image/webp;base64,UklGRqQCAABXRUJQVlA4TJcCAAAvY8ASABcgJk1DsEvFpGkIdqmYNA3BLp3/wMoPclRtC6PrFfx7P5jsx4D2E8gb8PYKyX4yoP0IcZ2aTHXriP4rbNu2sRpl9BP8F5idVr/EiGhYM/8QbbWIaC36IdZZTZLeWKvn+9k4iogsFDFaRNT4P09CkpPQdbLj/lrYI/RaRET3/e05IgtldpgBwFq3ksw5kKR3K0W0AwBNMqZt+wQOg8wAgGUhP9/r2j+BXLjSr0YU4F5kOkoqNUeSnn4Vrw2AhTHnqx1H+WSSEye+OpG5Xq21dhwMJEnvxQJ25Se31lqrOXMjSb68Bhzj3gZSYo+DgpBlSNk/OZOkTAK8ma/WU2sgA0mK0ph5jjpSSumM5EQHvJjqeC6ZZ+BGigZW3tSRSg5nICcvCo5xfOX45Jhi2LgAWJnbSNlTCNtGegc4ptvKOaZMTgKsPG8+St5SSlugVxqO9bpTy2XPJxcHLAw355pDSqUETgow/I46Sqr5ynsie5UbXfkqLYfNdzpH1T0dpdYjkaLgGPOQ0npqmP4AuzKNS0q1tXaUTobn92oPlDT9AXrhuBzjC/QGhtzqqNon86UAxzhWGZT4B9iVMbcnCl8KxjDU9sQeJgMsjPsPEgW4lekxxzYB1jKej2viogG9/CoYMuYfzgLAMTwuBycAbuWZr6fzJgqAkPmp/aM3gLY841NLm1YAZGGouZUc65CNHoDRJENKNR3l6hMnBQDGkTEwhHMvXY5AUQDm93oypk9MZ+xS6DUAYF7YE7bumyQUAG1eHIj8tlYCZdD75p2sIZBaAQCgPR/wYgAARow8ZBplHVxP38eCgSgAwNs5chJjMKBtLw2ILGbGDX2HEQFwW7BGz0bPgHXOQeMHjAag8SMGv2LxvwYA\",\"by Matt Artz\",\"Photo by Matt Artz\",\"eliminate-an-entire-category-of-bugs-with-a-few-simple-tools\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/eliminate-an-entire-category-of-bugs-with-a-few-simple-tools.mdx\",{\"_55\":2128,\"_57\":2129,\"_67\":2133,\"_103\":2157,\"_105\":2158},\"May 4th, 2020\",{\"_59\":493,\"_61\":2130,\"_63\":2131,\"_65\":2132},14.42,865200,2884,{\"_69\":2134,\"_71\":2135,\"_73\":2136,\"_75\":2137,\"_78\":2138,\"_349\":2143,\"_93\":2152,\"_97\":2153,\"_99\":2154,\"_95\":2155,\"_101\":2156},\"Common mistakes with React Testing Library\",\"2020-05-04T00:00:00.000Z\",\"Some mistakes I frequently see people making with React Testing Library.\",[985],{\"_80\":2139},[297,985,2140,2141,2142],\"react testing library\",\"dom testing library\",\"async\",[2144,2146,2148,2150],{\"_352\":470,\"_354\":2145},\"https://giovanisleite.dev/erros-comuns-com-react-testing-library\",{\"_352\":831,\"_354\":2147},\"https://mp.weixin.qq.com/s/pgdcDNjDGPgNq76Zh_dZxg\",{\"_352\":368,\"_354\":2149},\"https://seongry.github.io/2021/06-20-common-mistakes-with-rty/\",{\"_352\":353,\"_354\":2151},\"https://qiita.com/kobanyan/items/126512ec3e8d76c538b3\",\"unsplash/photo-1555861496-0666c8981751\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/52jRtc2S_VE\\\"\u003eSarah Kilian\u003c/a\u003e\",\"data:image/webp;base64,UklGRugAAABXRUJQVlA4INwAAACwCACdASpkAEMAPp1InEo4szUhqFVcmxATiWkGep0twHkbeGQzgB5bHS05Dg/FEGaDCCPOciO++dq1jnt98OFoX8tVc8C1gj5NhRRBcgAA/vEAdxUfJixG1LLM2Z8wHiadgY8HRU0/vNxlTclPSMgVsjE7G9NcnZkGasziQA+bvT1QYNKC6N8BLYcxf69mu2f7R4XiN1Iy2r6wM20rPp2Y4544ZgY/XM8yDC4JMOHEyPaTJzYLGPLTnRkE1vaDvOIeBIW3RnPUhco+pRaEZn7f28uFOeXd2kYe78AA\",\"by Sarah Kilian\",\"Photo by Sarah Kilian\",\"common-mistakes-with-react-testing-library\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/common-mistakes-with-react-testing-library.mdx\",{\"_55\":2160,\"_57\":2161,\"_67\":2165,\"_103\":2180,\"_105\":2181},\"April 24th, 2020\",{\"_59\":191,\"_61\":2162,\"_63\":2163,\"_65\":2164},6.55,393000,1310,{\"_69\":2166,\"_71\":2167,\"_73\":2168,\"_75\":2169,\"_78\":2170,\"_93\":2175,\"_97\":2176,\"_99\":2177,\"_95\":2178,\"_101\":2179},\"Super Simple Start to React\",\"2020-04-24T00:00:00.000Z\",\"The most simple React setup imaginable\",[297],{\"_80\":2171},[2172,790,2173,724,297,2174],\"abstraction\",\"html\",\"simple\",\"unsplash/photo-1474947363373-576e7ef9eac5\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/PVIbUkN_wCQ\\\"\u003eEmma Frances Logan\u003c/a\u003e\",\"data:image/webp;base64,UklGRvYAAABXRUJQVlA4IOoAAACQCACdASpkAEMAPrlOn0u/sKaiq/sbQ/AXCWkGeswHoCgWhLhkVXOkialaPgJIYKixG85wCQLzRsJXnAEfw24W415XCeNHRvPXSnC/wAD+8Q/EeTtydVEC+41e4RF7njS5BG8/ymJOW7xcEfgtVPcOqtMEoGro1NEhISF6VYh0HdobohfLswxppcdXlyPzx/nUIAODSbLBAmxeCOmesfnaQNK8ApH5640B4Dflg9mP1zOykv7V0qn8/fVmakxjHPyksIjH0wygq5V7MstI85qfvAN3Ry6zcrhJLfkZrB14819Sro2t9rGAAAA=\",\"by Emma Frances Logan\",\"Photo by Emma Frances Logan\",\"super-simple-start-to-react\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/super-simple-start-to-react.mdx\",{\"_55\":2183,\"_57\":2184,\"_67\":2188,\"_103\":2202,\"_105\":2203},\"April 13th, 2020\",{\"_59\":214,\"_61\":2185,\"_63\":2186,\"_65\":2187},5.57,334200,1114,{\"_69\":2189,\"_71\":2190,\"_73\":2191,\"_75\":2192,\"_78\":2193,\"_93\":2197,\"_97\":2198,\"_99\":2199,\"_95\":2200,\"_101\":2201},\"Stop using client-side route redirects\",\"2020-04-13T00:00:00.000Z\",\"Why you should stop using client-side route redirects (like the `from` prop on React Router's Redirect component) and what you should do instead.\",[297],{\"_80\":2194},[790,250,297,2195,1552,2196],\"url redirect\",\"server\",\"unsplash/photo-1537021770129-cb010359abc4\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/hF6TtT-xz80\\\"\u003eLance Grandahl\u003c/a\u003e\",\"data:image/webp;base64,UklGRgYDAABXRUJQVlA4WAoAAAAgAAAAYwAASgAASUNDUCQCAAAAAAIkYXBwbAQAAABtbnRyUkdCIFhZWiAH4QAHAAcADQAWACBhY3NwQVBQTAAAAABBUFBMAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGzKGpWCJX8QTTiZE9XR6hWCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApkZXNjAAAA/AAAAGVjcHJ0AAABZAAAACN3dHB0AAABiAAAABRyWFlaAAABnAAAABRnWFlaAAABsAAAABRiWFlaAAABxAAAABRyVFJDAAAB2AAAACBjaGFkAAAB+AAAACxiVFJDAAAB2AAAACBnVFJDAAAB2AAAACBkZXNjAAAAAAAAAAtEaXNwbGF5IFAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29weXJpZ2h0IEFwcGxlIEluYy4sIDIwMTcAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAIPfAAA9v////7tYWVogAAAAAAAASr8AALE3AAAKuVhZWiAAAAAAAAAoOAAAEQsAAMi5cGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltzZjMyAAAAAAABDEIAAAXe///zJgAAB5MAAP2Q///7ov///aMAAAPcAADAblZQOCC8AAAAkAYAnQEqZABLAD6dTJ5MJagpoiSTOvEwE4lnBnANPMArrGLvilemLHqjKZxOmPUv17sTG6vegZmvmLIGAAD+8FC//Z+nqubwnPGCRSJ9kdkn1OYdUogld3sFx1IRCijuyQu02vzbLO+ve3CpUGP1Pz24je9rEk4yO0RrGEzcHFMA6RTlWpT02ArVQojF8X78sbhRM3yIf0JTb9kfdiDAWQmfdhwk8rVfOqtUsKbK3llfN3QZcTQN6OcWBAA=\",\"by Lance Grandahl\",\"Photo by Lance Grandahl\",\"stop-using-client-side-route-redirects\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/stop-using-client-side-route-redirects.mdx\",{\"_55\":2205,\"_57\":2206,\"_67\":2210,\"_103\":2226,\"_105\":2227},\"April 6th, 2020\",{\"_59\":110,\"_61\":2207,\"_63\":2208,\"_65\":2209},11.82,709200,2364,{\"_69\":2211,\"_71\":2212,\"_73\":2213,\"_75\":2214,\"_78\":2215,\"_93\":2221,\"_97\":2222,\"_99\":2223,\"_95\":2224,\"_101\":2225},\"The State Reducer Pattern with React Hooks\",\"2020-04-06T00:00:00.000Z\",\"A pattern for you to use in custom hooks to enhance the power and flexibility of your hooks.\",[297],{\"_80\":2216,\"_349\":2217},[297,755],[2218,2219],{\"_352\":368},{\"_354\":2220},\"https://dkrnfls.tistory.com/403\",\"unsplash/photo-1539404234905-48cf3d73aec5\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/W_K6j6OQBDg\\\"\u003eAlex Eckermann\u003c/a\u003e\",\"data:image/webp;base64,UklGRvoAAABXRUJQVlA4IO4AAACwCQCdASpkAEMAPp1Emkk0qq4hKvlcKpATiWkAzyhBAFJCF1j6IG3KWKMPXLGpcVG+mbACZVCeRTp6KAbn4cHANRhT8aBBDI8/ONihM02Ig086XTXmAAD+byW96jvN7OvuR/F8n5PCShdJKC3hGHuZu+c2S8h8N4SLS5ukhEu2DHQiS1pbMpaKnYGvPNZvUQ0X3Zwc9v7JiNtjWrlEIpXYH4RY6pgRNYhOyTBy+qRp3TejRZtm7gu9zcnZeggChv4+Jy2cnSxvIyMuPsPHBvmeHAdeLkWW2Ku3EWVuPiSBP/06JDPRA3LQxxlDAAAA\",\"by Alex Eckermann\",\"Photo by Alex Eckermann\",\"the-state-reducer-pattern-with-react-hooks\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/the-state-reducer-pattern-with-react-hooks.mdx\",{\"_55\":2229,\"_57\":2230,\"_67\":2234,\"_103\":2255,\"_105\":2256},\"April 5th, 2020\",{\"_59\":1137,\"_61\":2231,\"_63\":2232,\"_65\":2233},2.935,176100,587,{\"_69\":2235,\"_71\":2236,\"_73\":2237,\"_75\":2238,\"_78\":2239,\"_349\":2244,\"_93\":2250,\"_97\":2251,\"_99\":2252,\"_95\":2253,\"_101\":2254},\"Function forms\",\"2020-04-05T00:00:00.000Z\",\"When I prefer to use function declarations instead of arrow functions\",[790],{\"_80\":2240},[2241,2242,2243],\"function declarations\",\"arrow functions\",\"hoisting\",[2245],{\"_352\":368,\"_354\":2246,\"_356\":2247},\"https://dj-min43.medium.com/%EB%B2%88%EC%97%AD-%ED%95%A8%EC%88%98%EC%9D%98-%ED%98%95%ED%83%9C%EB%93%A4-81ea5879010b\",{\"_358\":2248,\"_354\":2249},\"Dongjoon Min\",\"https://github.com/djmin43\",\"unsplash/photo-1531177071211-ed1b7991958b\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/b3PuuRU8IPc\\\"\u003eZoltan Tasi\u003c/a\u003e\",\"data:image/webp;base64,UklGRigDAABXRUJQVlA4WAoAAAAgAAAAYwAARQAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCDSAAAA8AYAnQEqZABGAD6dRJ5MJaOppSSTOqkwE4lnBnq/JqQ9gHgBdv8z7vwdAO4IL21kevpZDn7P5H7ikFN8MEVrgAD+83um/PDHI/p3GP3TbgghgtHxJUI9DqIW3sqzEkSpxaTx3megENYAbSYx5ZI/XeXpdO0M6C+QQcyUXxUw1nP+cJq5pxpFAv7Anu/BwKgggFBzvqVKLfsGyrDfgJ6tqQZbKgtONvZNkxnqHSLkjYnopH2GpkAdbuaO2WG9FZt+1oDLbyaAIMEBzCRV6fHRgAAA\",\"by Zoltan Tasi\",\"Photo by Zoltan Tasi\",\"function-forms\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/function-forms.mdx\",{\"_55\":2258,\"_57\":2259,\"_67\":2263,\"_103\":2283,\"_105\":2284},\"March 30th, 2020\",{\"_59\":214,\"_61\":2260,\"_63\":2261,\"_65\":2262},5.76,345600,1152,{\"_69\":2264,\"_71\":2265,\"_73\":2266,\"_75\":2267,\"_78\":2268,\"_93\":2273,\"_97\":2274,\"_349\":2275,\"_99\":2280,\"_95\":2281,\"_101\":2282},\"Replace axios with a simple custom fetch wrapper\",\"2020-03-30T00:00:00.000Z\",\"Axios can do a ton of stuff, but here's a simpler solution that can handle most use cases\",[790],{\"_80\":2269},[1363,2270,1362,790,2271,2272],\"axios\",\"dom\",\"browsers\",\"unsplash/photo-1565678788992-b0ed8a1e4447\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/kqPlrOrir5g\\\"\u003eK. Mitch Hodge\u003c/a\u003e\",[2276],{\"_352\":1098,\"_354\":2277,\"_356\":2278},\"https://www.qisthi.dev/posts/ganti-axios-dengan-wrapper-fetch-sederhana-buatan-sendiri\",{\"_358\":1101,\"_354\":2279},\"https://www.qisthi.dev\",\"data:image/webp;base64,UklGRvwCAABXRUJQVlA4WAoAAAAgAAAAYwAANwAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCCmAAAAsAUAnQEqZAA4AD55OJhKJKMioaJYCYiQDwlnBnANHsAyj/RR0UtilPImyQR6sL50/kD0FMgYAP7a/Irj/G/5r/Qpj7EyOEUKvDUflKIPaf1JRr1K26D00Zreh9ert4ycd3yO7sPgT5OrGkzs/pVfk+kWWbv05LH+PG5efEoXsNd8f+rsw1UasDgNYBwZ2OsbAQMJBD+JqS+j2Y/zkdche4sHlDAAAA==\",\"by K. Mitch Hodge\",\"Photo by K. Mitch Hodge\",\"replace-axios-with-a-simple-custom-fetch-wrapper\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/replace-axios-with-a-simple-custom-fetch-wrapper.mdx\",{\"_55\":2286,\"_57\":2287,\"_67\":2288,\"_103\":2301,\"_105\":2302},\"March 22nd, 2020\",{\"_59\":709,\"_61\":1081,\"_63\":1082,\"_65\":1083},{\"_69\":2289,\"_71\":2290,\"_73\":2291,\"_75\":2292,\"_78\":2293,\"_93\":2296,\"_97\":2297,\"_99\":2298,\"_95\":2299,\"_101\":2300},\"How to test custom React hooks\",\"2020-03-22T00:00:00.000Z\",\"Get confidence your custom React hooks work properly with solid tests.\",[985],{\"_80\":2294},[297,790,985,755,2295,2140],\"react hooks testing library\",\"unsplash/photo-1563115298-e9585e7943d4\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/21ztbENjzeI\\\"\u003eGrant Durr\u003c/a\u003e\",\"data:image/webp;base64,UklGRuYAAABXRUJQVlA4INoAAADQCACdASpkAEMAPqVKnUq5pCmnKvVbIzAUiWcG+Bu5AZ8fo4q7WLYdL71Oem0Glf7kz584v3C/PATweS0LU2t+y3LKI3ycV/Tge7X/BnzAAP7c8F5t/UQTPwBUJ++HJVgKFfeECzcFNSs16b5LEZ1mEA7r4JmaJh2Zw74WnEPH/QhwPel/gdVI5BT5PvxjOwvofA0IV/bhuZz6lwiCEo8XmSENZTduNaUBIkyX6iLk9IU/uKEUdx3Dx4xp8pBgO6GcuNjSZ6D195QhfMtlIYdhMnOeLjalYyGAAA==\",\"by Grant Durr\",\"Photo by Grant Durr\",\"how-to-test-custom-react-hooks\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-to-test-custom-react-hooks\",{\"_55\":2304,\"_57\":2305,\"_67\":2309,\"_103\":2325,\"_105\":2326},\"March 16th, 2020\",{\"_59\":331,\"_61\":2306,\"_63\":2307,\"_65\":2308},3.86,231600,772,{\"_69\":2310,\"_71\":2311,\"_73\":2312,\"_75\":2313,\"_78\":2314,\"_349\":2316,\"_93\":2320,\"_97\":2321,\"_99\":2322,\"_95\":2323,\"_101\":2324},\"React Production Performance Monitoring\",\"2020-03-16T00:00:00.000Z\",\"How to set up performance monitoring for production React applications.\",[297],{\"_80\":2315},[180,790,2094,297],[2317],{\"_352\":2318,\"_354\":2319},\"french\",\"https://developpeur-web.tech/posts/suivi-des-performances-d-une-application-react-en-production\",\"unsplash/photo-1551288049-bebda4e38f71\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/JKUTrJ4vK00\\\"\u003eLuke Chesser\u003c/a\u003e\",\"data:image/webp;base64,UklGRvgAAABXRUJQVlA4IOwAAAAwCgCdASpkAEMAPrlInEo/sywiL5w8c/AXCWcGcAzTwi95hmblLqBEZRoQrtyChzZ5AFPI7I91GrpNqzpNUc78wdw6nXiHflZAC3qkgTKcI6pjtAoYMYtaVcAA/utZvPLhevuH3+6EyQ2L0f/uUIZlWrEwU42n3/3yAV48yJ/8OuJ/sE5t9b0b6ytGbQ3ZKmgu5Of1XXFf6M4D4ZhhNOwE75KiSgLqeefbPUAm/8eWDs8L6hUYBUsoMPrAS40Mu7lFuMST7qXq4W/mOEh9SqK7N/HJdqx5xEcY3ew1LK+UPrC5BECNWkgkcXkAAA==\",\"by Luke Chesser\",\"Photo by Luke Chesser\",\"react-production-performance-monitoring\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/react-production-performance-monitoring.mdx\",{\"_55\":2328,\"_57\":2329,\"_67\":2333,\"_103\":2345,\"_105\":2346},\"March 9th, 2020\",{\"_59\":424,\"_61\":2330,\"_63\":2331,\"_65\":2332},12.195,731700,2439,{\"_69\":2334,\"_71\":2335,\"_73\":2336,\"_75\":2337,\"_78\":2338,\"_93\":2340,\"_97\":2341,\"_99\":2342,\"_95\":2343,\"_101\":2344},\"Should I useState or useReducer?\",\"2020-03-09T00:00:00.000Z\",\"Two built-in React hooks that handle state, which one should you use?\",[297],{\"_80\":2339},[297,790,755],\"unsplash/photo-1502298411556-0b02524812cb\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/IFLgWYlT2fI\\\"\u003eKyle Glenn\u003c/a\u003e\",\"data:image/webp;base64,UklGRsgAAABXRUJQVlA4ILwAAAAwCACdASpkAEMAPrlEm0o8o6MhszkqS5AXCWkHCGZLzjdgAYFx8V5rhO+dhIT+FoaUWg2omtuMSHm6s03tPYY2m/RoYlqrjLFGAAD+8MEWklXCsVSqXA1EFEPl05QA+MxRVOyEfa3fsmT3QHQogoPvOJEcNOOz5uLzXHVFySb3Jfof3tXTfoZcy/lazqzxCvnz8UQQJNeUeINVwP0CXJptaFvozb55mzAzl9Ijo43E+67omOIFMkYacgAAAA==\",\"by Kyle Glenn\",\"Photo by Kyle Glenn\",\"should-i-usestate-or-usereducer\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/should-i-usestate-or-usereducer.mdx\",{\"_55\":2348,\"_57\":2349,\"_67\":2353,\"_103\":2372,\"_105\":2373},\"March 2nd, 2020\",{\"_59\":709,\"_61\":2350,\"_63\":2351,\"_65\":2352},9.085,545100,1817,{\"_69\":2354,\"_71\":2355,\"_73\":2356,\"_75\":2357,\"_78\":2358,\"_93\":2367,\"_97\":2368,\"_99\":2369,\"_95\":2370,\"_101\":2371},\"Stop using isLoading booleans\",\"2020-03-02T00:00:00.000Z\",\"Why using a status enum (or even better: a **state machine**) will help your app stay bug free\",[790],{\"_80\":2359},[297,755,790,2360,2361,2362,1733,2363,2364,2365,2366],\"status\",\"boolean\",\"state machines\",\"isLoading\",\"isRejected\",\"isResolved\",\"isIdle\",\"unsplash/photo-1533928298208-27ff66555d8d\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/902vnYeoWS4\\\"\u003eChristophe Hautier\u003c/a\u003e\",\"data:image/webp;base64,UklGRsYAAABXRUJQVlA4ILoAAAAwCACdASpkAEMAPrlOoUq/qCchr5lqO/AXCWcG+BxEUbAfaNGnm5BP6gjclGzzBRxNtzgYhKKmbEUmx7Ee0IRcPJGZaNi6BaKMgAD+8I6o5GALX7nMpN4/M90BsPtZk7DakeO2Veyz10DjudbzPaxUwlTRLBbUIoJ0U9v/hCLyUmPhmSHPOYJgJnLsaB/HF/dlvBC381xa6J1RebrsG8xpK1PxdM79WUId8ZxsgTpTHqkkZh54aBygAAA=\",\"by Christophe Hautier\",\"Photo by Christophe Hautier\",\"stop-using-isloading-booleans\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/stop-using-isloading-booleans.mdx\",{\"_55\":2375,\"_57\":2376,\"_67\":2380,\"_103\":2393,\"_105\":2394},\"February 24th, 2020\",{\"_59\":331,\"_61\":2377,\"_63\":2378,\"_65\":2379},3.76,225600,752,{\"_69\":2381,\"_71\":2382,\"_73\":2383,\"_75\":2384,\"_78\":2385,\"_93\":2388,\"_97\":2389,\"_99\":2390,\"_95\":2391,\"_101\":2392},\"Make Your Test Fail\",\"2020-02-24T00:00:00.000Z\",\"If you're not careful you can write a test that's worse than having no tests at all\",[985],{\"_80\":2386},[985,790,2387],\"best practices\",\"unsplash/photo-1508935620299-047e0e35fbe3\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/cGXdjyP6-NU\\\"\u003echuttersnap\u003c/a\u003e\",\"data:image/webp;base64,UklGRrwAAABXRUJQVlA4ILAAAACwBgCdASpkAEMAPp1Mnku0pCahpJZqqpATiWkG+OZp0X4MQK8Y6AMp32faFm58uSpWdxPh/71E0MgGjHGTAAD+6dJV+YnpkWkZXdmlkmCJeBJfN9DhAWWnuv0ZgB+Jo2RlecPS6FIF/dTSYIrdejrEvPWkF0eCcSdUXRq9ONYNo7mg7qXtBG71fkt4WE0IvjOL/II4UaqIXMU90izYCgyfjSD/abvJ111bGRKMlDAwAA==\",\"by chuttersnap\",\"Photo by chuttersnap\",\"make-your-test-fail\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/make-your-test-fail.mdx\",{\"_55\":2396,\"_57\":2397,\"_67\":2401,\"_103\":2415,\"_105\":2416},\"February 17th, 2020\",{\"_59\":191,\"_61\":2398,\"_63\":2399,\"_65\":2400},6.775,406500,1355,{\"_69\":2402,\"_71\":2403,\"_73\":2404,\"_75\":2405,\"_78\":2406,\"_93\":2410,\"_97\":2411,\"_99\":2412,\"_95\":2413,\"_101\":2414},\"Make your own DevTools\",\"2020-02-17T00:00:00.000Z\",\"How creating DevTools specific for your own app can improve your productivity\",[1089],{\"_80\":2407},[2408,790,2409],\"DevTools\",\"utilities\",\"unsplash/photo-1453806839674-d1a9087ca1ed\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/vS7LVkPyXJU\\\"\u003ePhilip Swinburn\u003c/a\u003e\",\"data:image/webp;base64,UklGRkoDAABXRUJQVlA4WAoAAAAgAAAAYwAAQgAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCD0AAAA8AgAnQEqZABDAD65TJ5LvKwwJ6zZLJOQFwlpBviFBCCgfXDCeqbXoc0ahRCyWe27KPLfF2TsKrDM8UM0EAY5ps7MjYLGmx7WC5lwhJIzygAA/vB1dYYQd66wBUsYZP+BB/ZjfxSzxgVzgj3hMwRlQlLvBRzDpcIWaNl1qsixtUZvk7hk7pAYk/x80bOpjJfNT3wGDf0AwmOlwdqnVHQkfxcvC/seOqDAwDhkOon3UB3ZvUm9R7hZkOqfaeSRk78zBwJeywrYBJG5rn05qWrfFcFEgcdMopz0d03ctyc6sEXbm+a48wKBuZY0bbkTcVaP+FAAAA==\",\"by Philip Swinburn\",\"Photo by Philip Swinburn\",\"make-your-own-dev-tools\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/make-your-own-dev-tools.mdx\",{\"_55\":2418,\"_57\":2419,\"_67\":2423,\"_103\":2430,\"_105\":2434},\"February 10th, 2020\",{\"_59\":138,\"_61\":2420,\"_63\":2421,\"_65\":2422},7.925,475500,1585,{\"_69\":2424,\"_71\":2425,\"_73\":2426,\"_75\":2427,\"_78\":2428,\"_93\":2431,\"_97\":2432,\"_99\":2433,\"_95\":2432,\"_101\":2432},\"An Argument for Automation\",\"2020-02-10T00:00:00.000Z\",\"Why it can be worth spending 1 hour automating a 10 second task\",[1089],{\"_80\":2429},[790,2430,434],\"automation\",\"kentcdodds.com/content/blog/automation/banner\",\"Rube Goldberg Machine\",\"data:image/webp;base64,UklGRr4AAABXRUJQVlA4ILIAAACQBwCdASpkAEYAPrFQo0ytqLatp1YKEtAWCWkADwug2+4uXVvVd51n0FVcxZr+cSBrV+T6UoZfHb+tjgmEuf+5VwAQibAA/vFAlr4wepGLmQd0Lqs4PvM96G8TOPgvWK5sko4BjX3rjuyHsshJ+x4wTP+zfXJlj+2azlVHC/qlIeoWWNdQMPoFfiRW/6SdejQ9NWDo3ECUARVJgvs8TKKpkDEWGsJfSblATON0uvDypQAA\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/automation.mdx\",{\"_55\":2436,\"_57\":2437,\"_67\":2441,\"_103\":2454,\"_105\":2455},\"February 3rd, 2020\",{\"_59\":846,\"_61\":2438,\"_63\":2439,\"_65\":2440},13.015,780900,2603,{\"_69\":2442,\"_71\":2443,\"_73\":2444,\"_75\":2445,\"_78\":2446,\"_93\":2449,\"_97\":2450,\"_99\":2451,\"_95\":2452,\"_101\":2453},\"Fix the \\\"not wrapped in act(...)\\\" warning\",\"2020-02-03T00:00:00.000Z\",\"There are a few reasons you're getting this warning. Here's how you fix it.\",[985],{\"_80\":2447},[297,790,2142,2448,985,2140],\"act\",\"unsplash/photo-1541336744128-c4b211d13087\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/HUnKka6VtZc\\\"\u003eLubo Minar\u003c/a\u003e\",\"data:image/webp;base64,UklGRlIDAABXRUJQVlA4WAoAAAAgAAAAYwAAQgAASUNDUCQCAAAAAAIkYXBwbAQAAABtbnRyUkdCIFhZWiAH4QAHAAcADQAWACBhY3NwQVBQTAAAAABBUFBMAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGzKGpWCJX8QTTiZE9XR6hWCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApkZXNjAAAA/AAAAGVjcHJ0AAABZAAAACN3dHB0AAABiAAAABRyWFlaAAABnAAAABRnWFlaAAABsAAAABRiWFlaAAABxAAAABRyVFJDAAAB2AAAACBjaGFkAAAB+AAAACxiVFJDAAAB2AAAACBnVFJDAAAB2AAAACBkZXNjAAAAAAAAAAtEaXNwbGF5IFAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29weXJpZ2h0IEFwcGxlIEluYy4sIDIwMTcAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAIPfAAA9v////7tYWVogAAAAAAAASr8AALE3AAAKuVhZWiAAAAAAAAAoOAAAEQsAAMi5cGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltzZjMyAAAAAAABDEIAAAXe///zJgAAB5MAAP2Q///7ov///aMAAAPcAADAblZQOCAIAQAAcAgAnQEqZABDAD6dSp1LrCQsoaO0DCGQE4llBvjmabWvWmfoAiBKTFvoP35UOvLtkCjq/c3YzQmHsGnO9ReOuO0UnJ/NaF4CjCUQAAD+2o2r0//tT6k994S/X3T3Os951oLYR2WqaBgyqULQ7ABSb6B+5/715jodAV2hei1CxX2AqjPIlVSe4in5hsdFajK7iSZFtY4+7RTPTDKZN27Xej0es0B0DRQT69CfG155SRszKEVUTE/GvkjVUhGMHqWCYeG5A7M/lODRgZh9UT4VKhPs897HR25sRSK4qIugLoUnFSVB4MtGGtxiWKhHavJ2qVf0YQqNBWhi5Q/kX/6AZicU660g0IAA\",\"by Lubo Minar\",\"Photo by Lubo Minar\",\"fix-the-not-wrapped-in-act-warning\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/fix-the-not-wrapped-in-act-warning\",{\"_55\":2457,\"_57\":2458,\"_67\":2462,\"_103\":2481,\"_105\":2482},\"January 22nd, 2020\",{\"_59\":331,\"_61\":2459,\"_63\":2460,\"_65\":2461},3.915,234900,783,{\"_69\":2463,\"_71\":2464,\"_73\":2465,\"_75\":2466,\"_78\":2467,\"_349\":2471,\"_93\":2476,\"_97\":2477,\"_99\":2478,\"_95\":2479,\"_101\":2480},\"Super Simple Start to ESModules in the Browser\",\"2020-01-22T00:00:00.000Z\",\"All major browsers support ESModules now. Here's how to get started using them.\",[790],{\"_80\":2468},[790,2272,2469,2470,1151],\"esmodules\",\"ecmascript\",[2472,2474],{\"_352\":470,\"_354\":2473},\"https://mjfneto.medium.com/uma-introdu%C3%A7%C3%A3o-super-simples-aos-es-modules-no-browser-39fda8aa0da3\",{\"_352\":831,\"_354\":2475},\"https://segmentfault.com/a/1190000040806331\",\"unsplash/photo-1516641051054-9df6a1aad654\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/S8bde3hkBR8\\\"\u003eJOSE LARRAZOLO\u003c/a\u003e\",\"data:image/webp;base64,UklGRiQBAABXRUJQVlA4TBgBAAAvY4APABfw43yBQOJPm8ELBBKA/HV//gOXTwE7kmy3ig3AKh+MFMDzEIDuM/mgKikAXJzU1fkCPvfsRPSfgdu2jcLuffeMs3+Vq3BcP0bTg659E+RHKVa7tR0ZXdBdAW2AePxRxDkIFsR0bef7yJI1bXODspvtGYxa5rNaa71pFOpssmPhTUCDpG7dBqCbxWbdKKBrUddoMV/nRo2kxSaKUN8LNrICP3bzC+gznF+3hZw3jMlbZh+AJOAtYswsHijUGfq0x8RZ14+ZA84y9KbUDVl+HHecxp6h1jNlxJ5c7On9WOulxqJURh3tbzipHtZRXxMUWxM1J2z7WATwVS+mL1uC06QvZk1wBDhlPWRTeUj1qC/Mib8d\",\"by JOSE LARRAZOLO\",\"Photo by JOSE LARRAZOLO\",\"super-simple-start-to-es-modules-in-the-browser\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/super-simple-start-to-es-modules-in-the-browser.mdx\",{\"_55\":2484,\"_57\":2485,\"_67\":2489,\"_103\":2504,\"_105\":2505},\"January 20th, 2020\",{\"_59\":649,\"_61\":2486,\"_63\":2487,\"_65\":2488},10.775,646500,2155,{\"_69\":2490,\"_71\":2491,\"_73\":2492,\"_75\":2493,\"_78\":2494,\"_93\":2501,\"_97\":2502,\"_99\":2503,\"_95\":1236,\"_101\":1237},\"Implementing a simple state machine library in JavaScript\",\"2020-01-20T00:00:00.000Z\",\"Let's write a state machine abstraction together to understand it better\",[1733],{\"_80\":2495},[790,2496,2497,2498,2499,1733,2500,2172],\"algorithms\",\"data structures\",\"state management\",\"state machine\",\"library\",\"unsplash/photo-1575573569545-351853b40d7a\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/0-hXSg0oRjg\\\"\u003ePaweł Czerwiński\u003c/a\u003e\",\"data:image/webp;base64,UklGRu4AAABXRUJQVlA4IOIAAAAQCACdASpkAEMAPp1CnEqlsa8kq/J6ijATiWUDvZ1T5IjoARq3T3GniUdFMhCGKbsEBUrT6S5it+Y3emWywhtQL6n04iITvkYAAP70WhNNkfS5ZVmqjGdP5nXd+TjTCdbYiMjwJjpA5+xVM1mjU1RNLjiNzfw+BNniQFzrt5NzL8LQf4+LP+Z+yhkDJhSktXrAEQD6tuVGEHJZA+N22GMwvJUNFbF3fICDuT5XjvKcRuYjlBLQ6Ec7bDNcJ3EUXw2PiVtV1wOtAVbeVjEG07R3+4K+D4pQLozW+grNBnKrAAAA\",\"implementing-a-simple-state-machine-library-in-javascript\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/implementing-a-simple-state-machine-library-in-javascript.mdx\",{\"_55\":2507,\"_57\":2508,\"_67\":2513,\"_103\":2525,\"_105\":2526},\"December 31st, 2019\",{\"_59\":2509,\"_61\":2510,\"_63\":2511,\"_65\":2512},\"58 min read\",57.095,3425700,11419,{\"_69\":2514,\"_71\":2515,\"_73\":2516,\"_75\":2517,\"_78\":2518,\"_93\":2520,\"_97\":2521,\"_99\":2522,\"_95\":2523,\"_101\":2524},\"2010s Decade in Review\",\"2019-12-31T00:00:00.000Z\",\"The 2010s are over, time to think back, then forward\",[292],{\"_80\":2519},[340],\"unsplash/photo-1473172707857-f9e276582ab6\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/ICE__bo2Vws\\\"\u003eJoshua Earle\u003c/a\u003e\",\"data:image/webp;base64,UklGRkADAABXRUJQVlA4WAoAAAAgAAAAYwAAQgAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCDqAAAAkAkAnQEqZABDAD6dQJxKPKosK6hVXOuQE4lnAM4B58Ble+fMjBtEkRcKdvhM4swN9jqb2NxzHI3zAPnvX56B/fK5NPhV/kWTKtr4a8s+F+J6OZboAAD+5k8tAzHbmRAjr3+ODMgYu8dvDnXmqZ24TpdQtpICSMGUcyRgEV/xdZpNz44vMgdN7FX3lBuISr+5z62UN4xQ3wOjGGP6Wnjf81LTel0+GTosd3klBJ8uGow0mGqVFufbqaKX+NfUdK6YjsDvqbizBzZnYA8p9LTuE8nGChEicivH5SZb2MPztv0Q333YhKSQAAAA\",\"by Joshua Earle\",\"Photo by Joshua Earle\",\"2010s-decade-in-review\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/2010s-decade-in-review.mdx\",{\"_55\":2528,\"_57\":2529,\"_67\":2533,\"_103\":2543,\"_105\":2544},\"December 23rd, 2019\",{\"_59\":331,\"_61\":2530,\"_63\":2531,\"_65\":2532},3.735,224100,747,{\"_69\":2534,\"_71\":2535,\"_73\":2536,\"_78\":2537,\"_93\":2541,\"_99\":2542},\"Why users care about how you write code\",\"2019-12-23T00:00:00.000Z\",\"Your coding practices and technology choices impact user experience...\",{\"_80\":2538},[2539,434,2540],\"Code\",\"User Experience\",\"kentcdodds.com/content/blog/why-users-care-about-how-you-write-code/banner\",\"data:image/webp;base64,UklGRgABAABXRUJQVlA4IPQAAACwCwCdASpkAEMAPp1AmUk8u62kLNksM5ATiWkGcA0jCqsLhlBnp5jXrLihoYTzgEOV/JUw9pdWrL3/VhA2wHb2MhU9E4k8FisvS4N/KqYfqG/0w0BQRHD6k1cxqf0VhBJ9g8pfFAAA/u+Ebv6/9Q/G2ps33wMnbHHz1xLNowK32OqhiKQQH2OLhbP2L8g/vEypVVv9xmJr8j1/RSUL7qqSsiK4IApIpGL0L3Xf7vRybJdEQW8kCnGBVGDZq70sd0N3F0bTO1STyiPfwS1/a5N6kK9VDYmKaNLaZpqAcAS1/9oqYCOIgO2tNqrpJ2lRFMBaAAAA\",\"why-users-care-about-how-you-write-code\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/why-users-care-about-how-you-write-code.mdx\",{\"_55\":2546,\"_57\":2547,\"_67\":2551,\"_103\":2564,\"_105\":2565},\"December 13th, 2019\",{\"_59\":331,\"_61\":2548,\"_63\":2549,\"_65\":2550},3.975,238500,795,{\"_69\":2552,\"_71\":2553,\"_73\":2554,\"_75\":2555,\"_78\":2556,\"_93\":2559,\"_97\":2560,\"_99\":2561,\"_95\":2562,\"_101\":2563},\"Why I avoid nesting closures\",\"2019-12-13T00:00:00.000Z\",\"A little tendency I have to reduce cognitive load for readers of my code.\",[1918],{\"_80\":2557},[2558],\"programming coding software functions closures nesting\",\"unsplash/photo-1562692655-5e76a32fb952\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/35FfwGHXsqU\\\"\u003eAnna Sjöblom\u003c/a\u003e\",\"data:image/webp;base64,UklGRjoBAABXRUJQVlA4IC4BAAAQDACdASpkAEMAPrlSn0o/v62hr5S7i/AXCWcGcAzm01kERSJZEZroyy3XY8GtUoGgIbHqrAxs2QT4khYVhWDcKOjgtvOGQgQStVHNhwgnajhldxs+bGfYEpAc2FFxpR9uq/sh4dLVo0AA/u47oFrWZw9cXNyJUTu2xripe5QXEw0ioeur2Ka+LKhfdDp/qfE+OjL6C054uwxErqNCjYaBgInNXfQxzaiVXLEXTFfZCYo5HNGlGS5DUQfDirDsJcrJ1fb/SljbZur07UXpdTx+tzBNE7rXjwpMcVwcBtZ3GPMtlJ+wAuKsDnWUmbDV0Lohdf5Qm9yeY2ecSFeRBBlDDf6ZVQAv3uGlTk1Ll1oamf/8CHjvDb1atYHAW85pa7sxLZd9Mh+osYQL/fSQAA==\",\"by Anna Sjöblom\",\"Photo by Anna Sjöblom\",\"why-i-avoid-nesting-closures\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/why-i-avoid-nesting-closures.mdx\",{\"_55\":2567,\"_57\":2568,\"_67\":2572,\"_103\":2585,\"_105\":2586},\"December 8th, 2019\",{\"_59\":261,\"_61\":2569,\"_63\":2570,\"_65\":2571},4.55,273000,910,{\"_69\":2573,\"_71\":2574,\"_73\":2575,\"_75\":2576,\"_78\":2577,\"_93\":2580,\"_97\":2581,\"_99\":2582,\"_95\":2583,\"_101\":2584},\"Don't call a React function component\",\"2019-12-08T00:00:00.000Z\",\"The difference between React.createElement and calling a function component directly\",[297],{\"_80\":2578},[297,790,2579],\"react elements\",\"unsplash/photo-1498582750569-89914abe05e4\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/bxhYCD7cdq8\\\"\u003eAlexander Andrews\u003c/a\u003e\",\"data:image/webp;base64,UklGRggBAABXRUJQVlA4IPwAAABwDACdASpkAGQAPp1Em0o0pyYhqdqrSpATiWkGcA1t3kwPlaSm09hcJvJkYqvVVJ1BeaJh2FgmJrRA9ltHJw0akJb2IOV08J0lpgdGXXx5xqToVmxxxwT/xAI8GlSuuE0cUXB1d3AbCkLTEAAA/vPCWElJ3Tf1gZuAwHWW2NqMTBlpjebRvHrya+r3kLDI2X+ADm2/uufwyRHqHCtHX7dsedyuAWBYow7GpJKaZtO/yRd36fXNhz2X+bHDI/JodpabaOXcXPhgCXtaYXFf6MBrJnfOaphq0J6R/ADwZSUnSV9O3yWhPpy61wWOaYWQbMsSbKR2Gd/h1kBFAAA=\",\"by Alexander Andrews\",\"Photo by Alexander Andrews\",\"dont-call-a-react-function-component\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/dont-call-a-react-function-component\",{\"_55\":2588,\"_57\":2589,\"_67\":2594,\"_103\":2606,\"_105\":2607},\"December 3rd, 2019\",{\"_59\":2590,\"_61\":2591,\"_63\":2592,\"_65\":2593},\"2 min read\",1.875,112500,375,{\"_69\":2595,\"_71\":2596,\"_73\":2597,\"_75\":2598,\"_78\":2599,\"_93\":2601,\"_97\":2602,\"_99\":2603,\"_95\":2604,\"_101\":2605},\"Why your team needs TestingJavaScript.com\",\"2019-12-03T00:00:00.000Z\",\"A letter you can copy/paste and send to your boss.\",[985],{\"_80\":2600},[790,985],\"unsplash/photo-1483428400520-675ef69a3bc4\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/vpxeE7s-my4\\\"\u003eHudson Hintze\u003c/a\u003e\",\"data:image/webp;base64,UklGRhIBAABXRUJQVlA4IAYBAABQCwCdASpkAEsAPrVInUo/r6Mhszeba/AWiWcAzYQTPRKN08CWTkPVX+8qsRYzKa6WgFhFebiYoh8SExduna4ZnNfKMoqeDexCiiyyQmw7i1qBrg+LYF/jC5RpUGigOSp1GhAA/uLax9Kc8PsA4iaKPseWqfXdkR0FJuZYOdXj6VJWIc1qCdLmMcKnVu9uyORy65gdW7HRRIcqmCFQ7AetLWxDhY+F0AWXgf+EwCWRGuvXrUw/qhUIlTyA4YzTWRqSoHt6M0m/sTOwswMzCzQFWKInrDsLqD1FetiFGtixmu7ELVzlT8tKxEItsm7fywMepEjju9ZCLBieTsbXT3vrFuyAAAAA\",\"by Hudson Hintze\",\"Photo by Hudson Hintze\",\"why-your-team-needs-testing-javascript-com\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/why-your-team-needs-testing-javascript-com.mdx\",{\"_55\":2609,\"_57\":2610,\"_67\":2611,\"_103\":2646,\"_105\":2647},\"November 18th, 2019\",{\"_59\":60,\"_61\":1422,\"_63\":1423,\"_65\":1424},{\"_69\":2612,\"_71\":2613,\"_73\":2614,\"_75\":2615,\"_78\":2616,\"_349\":2622,\"_93\":2641,\"_97\":2642,\"_99\":2643,\"_95\":2644,\"_101\":2645},\"Inversion of Control\",\"2019-11-18T00:00:00.000Z\",\"A simple principle that can drastically improve your reusable code\",[790],{\"_80\":2617},[2618,297,790,2619,2620,1223,2621],\"abstractions\",\"state reducer\",\"control props\",\"render props\",[2623,2625,2630,2635],{\"_352\":946,\"_354\":2624},\"https://habr.com/ru/post/485012/\",{\"_352\":368,\"_354\":2626,\"_356\":2627},\"https://jaehyeon48.github.io/javascript/inversion-of-control/\",{\"_358\":2628,\"_354\":2629},\"Jaehyeon Kim\",\"https://github.com/jaehyeon48\",{\"_352\":464,\"_354\":2631,\"_356\":2632},\"https://www.sebastiangon11.com/blog/inversion-de-control\",{\"_358\":2633,\"_354\":2634},\"Sebastián González\",\"https://www.sebastiangon11.com\",{\"_352\":2636,\"_354\":2637,\"_356\":2638},\"Polski\",\"https://marcinparda.vercel.app/blog/odwrocenie-zaleznosci\",{\"_358\":2639,\"_354\":2640},\"Marcin Parda\",\"https://github.com/MarcinParda\",\"unsplash/photo-1559250591-e2e54b0d9557\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/CL96u03iK_Y\\\"\u003eJasper Garratt\u003c/a\u003e\",\"data:image/webp;base64,UklGRhYDAABXRUJQVlA4WAoAAAAgAAAAYwAANwAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCDAAAAAsAcAnQEqZAA4AD6dRJtLMLIpLytzOxpAE4lpAM9p58KCjhL3fc8A++61gUT86BVmfLssEHoatxECcoFQfiTvh0VTb2ugAAD9G55ZuXloQci/XmjwzkyOd/A4V5Yk/xwghW1uVDtXa/IHtJnkSvP0fIJ2l1c8zNhZJoSdzBcNzl/Blp4Ei8jEk26atnUY8pTDeUec/LmeA0Q2UlIQxk2RzM3zKZQmkR68xOb6WSBXwAceFek8nYTpss9Y3VCBAAAA\",\"by Jasper Garratt\",\"Photo by Jasper Garratt\",\"inversion-of-control\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/inversion-of-control.mdx\",{\"_55\":2649,\"_57\":2650,\"_67\":2654,\"_103\":2666,\"_105\":2667},\"November 11th, 2019\",{\"_59\":214,\"_61\":2651,\"_63\":2652,\"_65\":2653},5.4,324000,1080,{\"_69\":2655,\"_71\":2656,\"_73\":2657,\"_75\":2658,\"_78\":2659,\"_93\":2661,\"_97\":2662,\"_99\":2663,\"_95\":2664,\"_101\":2665},\"Understanding React's key prop\",\"2019-11-11T00:00:00.000Z\",\"The key prop is a mechanism for controlling component instances.\",[297],{\"_80\":2660},[297,760,790],\"kentcdodds.com/content/blog/understanding-reacts-key-prop/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/SzG0ncGBOeo\\\"\u003eFlorian Berger\u003c/a\u003e\",\"data:image/webp;base64,UklGRvIAAABXRUJQVlA4IOYAAABQCACdASpkAEIAPrlQokquOa6hrrcKizAXCWUCpAFBcBtDj0zLsLhPCO4rxdsTF6YZOLpQJOhMILq/DjzENnoZ2mAYaGyuxevVUAAA/vOa10uLkI2sSEBr2yhxwuUghgb+NOgJvHjWzOlPQy60ALv6puFLHWu8jRruC9X/nsRNhibqTZPh1xVvPL3VYavDUlB+WmdZVIjdsMSWw3As1+SyVFED+yy2nbBZOgFVZyYVzdlgdgAEThIeUrBZy9twiuCVbeeKw5vxD+H1Sx+u3okXCYHXj9vQF96/OHGMJWkBIdlFYJ1AAA==\",\"by Florian Berger\",\"Photo by Florian Berger\",\"understanding-reacts-key-prop\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/understanding-reacts-key-prop\",{\"_55\":2669,\"_57\":2670,\"_67\":2674,\"_103\":2688,\"_105\":2689},\"November 4th, 2019\",{\"_59\":191,\"_61\":2671,\"_63\":2672,\"_65\":2673},6.57,394200,1314,{\"_69\":2675,\"_71\":2676,\"_73\":2677,\"_75\":2678,\"_2086\":2087,\"_78\":2679,\"_93\":2683,\"_97\":2684,\"_99\":2685,\"_95\":2686,\"_101\":2687},\"How to Enable React Concurrent Mode\",\"2019-11-04T00:00:00.000Z\",\"Concurrent Mode is an enormous improvement for user experience and developer experience. Here's how you enable it.\",[297],{\"_80\":2680},[297,2681,2682],\"Concurrent Mode\",\"async react\",\"unsplash/photo-1564669722947-c89159202d19\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/a2g3LM0cGFg\\\"\u003eMarc Schulte\u003c/a\u003e\",\"data:image/webp;base64,UklGRv4AAABXRUJQVlA4IPIAAAAwCACdASpkAEMAPrlKn0q4M6ahrNks8wAXCWcG+BuAIvJ+90g6VFmeKUo/6oUWhxFTHPbbZdaDT7IWfCNAiaNj6z/54I55yFllYAD+8NN7zda3GW9v/8gJJe24ZvAnS4O4vnQdu5LfwLZGrjDtCsTyH1lPhqrDS8t/Qc1iMZpwOEP3BeK19VL9LE8r0tycGg6tm7w30PP//5/Rkj1pRPEObQ8GnDGekO8RMJsR7wMHuCaGMzlDu+I1XKTRkzy6mNzMrUikKklBOGHR/74p/rtTU9OmGhgqgP0SiZ5U2P0jHy9GKF2x1/8c7KqhJLBtwfYAAA==\",\"by Marc Schulte\",\"Photo by Marc Schulte\",\"how-to-enable-react-concurrent-mode\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-to-enable-react-concurrent-mode.mdx\",{\"_55\":2691,\"_57\":2692,\"_67\":2696,\"_103\":2709,\"_105\":2710},\"October 28th, 2019\",{\"_59\":191,\"_61\":2693,\"_63\":2694,\"_65\":2695},6.23,373800,1246,{\"_69\":2697,\"_71\":2698,\"_73\":2699,\"_75\":2700,\"_78\":2701,\"_93\":2704,\"_97\":2705,\"_99\":2706,\"_95\":2707,\"_101\":2708},\"How to add testing to an existing project\",\"2019-10-28T00:00:00.000Z\",\"This is how you get started in testing your application\",[985],{\"_80\":2702},[298,297,2703,985,790],\"application\",\"unsplash/photo-1562516155-e0c1ee44059b\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/_uM5_nG2ssc\\\"\u003eGia Oris\u003c/a\u003e\",\"data:image/webp;base64,UklGRqoAAABXRUJQVlA4IJ4AAACQBQCdASpkADgAPp1MoE0lpCaioSkw0BOJaQZwDQDAMi41Q64ApmfsHcgG4UCeFY3/lD+6AAD+41BnSdWk0i8KPi/V2aZyVqx5BiJ0q6lqlWAkqb+9EgclXvjwHFvwqJqeScGpzaanL0OhEZPy9gxdtuIqnxB+ZmU9xthqzPfI6GQC1lgyTBp5K7pMnKx2aS2cO5N73IKElPPO4gAAAA==\",\"by Gia Oris\",\"Photo by Gia Oris\",\"how-to-add-testing-to-an-existing-project\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-to-add-testing-to-an-existing-project.mdx\",{\"_55\":2712,\"_57\":2713,\"_67\":2714,\"_103\":2724,\"_105\":2725},\"October 8th, 2019\",{\"_59\":261,\"_61\":801,\"_63\":802,\"_65\":803},{\"_69\":2715,\"_71\":2716,\"_73\":2717,\"_75\":2718,\"_93\":2719,\"_97\":2720,\"_99\":2721,\"_95\":2722,\"_101\":2723},\"Building the Open Source Community We Want\",\"2019-10-08T00:00:00.000Z\",\"Let's be intentional about the open source community we want and work hard to build it.\",[638],\"unsplash/photo-1529156069898-49953e39b3ac\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/Cecb0_8Hx-o\\\"\u003eDuy Pham\u003c/a\u003e\",\"data:image/webp;base64,UklGRvgCAABXRUJQVlA4WAoAAAAgAAAAYwAANwAASUNDUCQCAAAAAAIkYXBwbAQAAABtbnRyUkdCIFhZWiAH4QAHAAcADQAWACBhY3NwQVBQTAAAAABBUFBMAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGzKGpWCJX8QTTiZE9XR6hWCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApkZXNjAAAA/AAAAGVjcHJ0AAABZAAAACN3dHB0AAABiAAAABRyWFlaAAABnAAAABRnWFlaAAABsAAAABRiWFlaAAABxAAAABRyVFJDAAAB2AAAACBjaGFkAAAB+AAAACxiVFJDAAAB2AAAACBnVFJDAAAB2AAAACBkZXNjAAAAAAAAAAtEaXNwbGF5IFAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29weXJpZ2h0IEFwcGxlIEluYy4sIDIwMTcAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAIPfAAA9v////7tYWVogAAAAAAAASr8AALE3AAAKuVhZWiAAAAAAAAAoOAAAEQsAAMi5cGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltzZjMyAAAAAAABDEIAAAXe///zJgAAB5MAAP2Q///7ov///aMAAAPcAADAblZQOCCuAAAA0AYAnQEqZAA4AD65UKFLvLUnIa7XaROQFwlpBvjmadIELF8bSdR+HF2ko2LHcQmBY7swx0usltmBJ3qOxdgAAP7s9fMLsqyFezbc5JTPCKXPTV+JCfdwnkezw6MZA60TzxJ9s5f4Z9C0Ess+3tPOU/FHkw1UlGIRoZ3IdjepfFkXMwCIb+IXy7zPyhPKkbJc8OIOgQFE1KLijz3YAwBSJqjcQYqwPu+7Xv2ndmAA\",\"by Duy Pham\",\"Photo by Duy Pham\",\"building-the-open-source-community-we-want\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/building-the-open-source-community-we-want.mdx\",{\"_55\":2727,\"_57\":2728,\"_67\":2732,\"_103\":2751,\"_105\":2752},\"October 7th, 2019\",{\"_59\":214,\"_61\":2729,\"_63\":2730,\"_65\":2731},5.175,310500,1035,{\"_69\":2733,\"_71\":2734,\"_73\":2735,\"_78\":2736,\"_349\":2741,\"_93\":2746,\"_97\":2747,\"_99\":2748,\"_95\":2749,\"_101\":2750},\"Making your UI tests resilient to change\",\"2019-10-07T00:00:00.000Z\",\"User interface tests are famously finicky and prone to breakage. Let's talk about how to improve this.\",{\"_80\":2737},[790,985,2738,2739,2740],\"Ui Testing\",\"Unit Testing\",\"Integration Testing\",[2742,2744],{\"_352\":1617,\"_354\":2743},\"https://medium.com/enjoy-life-enjoy-coding/react-unit-test-%E8%AE%93%E4%BD%A0%E7%9A%84-ui-%E6%B8%AC%E8%A9%A6%E9%81%A9%E6%87%89%E8%AE%8A%E5%8C%96-%E7%BF%BB%E8%AD%AF-b9b2c1c4110f\",{\"_352\":353,\"_354\":2745},\"https://makotot.dev/posts/making-your-ui-tests-resilient-to-change-translation-ja\",\"unsplash/photo-1492567291473-fe3dfc175b45\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/tHiGKAJxaA8\\\"\u003eWarren Wong\u003c/a\u003e\",\"data:image/webp;base64,UklGRjQBAABXRUJQVlA4ICgBAADQDQCdASpkAJcAPrlSokwzNaciq3uJyrAXCWkA1jXjQRuXFchmjw+QzRzPSBMGRYPvwrqXb+k2RfxTbsGaXUYI/6jyV+4RWj8Bo8Bfa5zhKsp6/p9hFi1Lsonvt4xRWnJTBusz6QIn4AZjQuAZpo4hYz5pDQMGAAD+9J/IVoBq604bABhKZF0tjuZowG99mMrs+A64770B9txmXB2WjOPh6fze4p4/J3a6qk8929m5T1SBopOZg0QAwZ5fPFO+WXxVwH7Q4A2huWz6ElPkfEenfzJOUac7/RAJZJdCLL3ecY3e1kniY8p0Yb6a7B7ZmDAxeh/bb1JVIjJmtHjjLFMzKllbLaRL1WZVWEE/PLmGfTHg/iHMBrheDYbOabMmqqT0Dd4On/ZAAA==\",\"by Warren Wong\",\"Photo by Warren Wong\",\"making-your-ui-tests-resilient-to-change\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/making-your-ui-tests-resilient-to-change.mdx\",{\"_55\":2754,\"_57\":2755,\"_67\":2759,\"_103\":2772,\"_105\":2773},\"October 4th, 2019\",{\"_59\":261,\"_61\":2756,\"_63\":2757,\"_65\":2758},4.955,297300,991,{\"_69\":2760,\"_71\":2761,\"_73\":2762,\"_75\":2763,\"_78\":2764,\"_93\":2767,\"_97\":2768,\"_99\":2769,\"_95\":2770,\"_101\":2771},\"Speed up your App with Web Workers\",\"2019-10-04T00:00:00.000Z\",\"How to get started using web workers for practical use cases\",[790],{\"_80\":2765},[297,180,2766],\"web workers\",\"unsplash/photo-1508633069371-a735f885a1c7\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/eJ9mX6yEbAw\\\"\u003eMatthew Brodeur\u003c/a\u003e\",\"data:image/webp;base64,UklGRhoBAABXRUJQVlA4IA4BAABwCgCdASpkAEMAPqVInUq5sy+hqvqpuzAUiWcG+BsvrZQel/iYPLGE154ZiYwzeF8UJRAKZ0oAzLdTpjlp8qBuGwW1ntMTe6iQZbxzyP4gBeg7X7SH7NwyBcUDAAD+8MrTwbAD8OLmsoaL1QDPwEE+GrfqLQPn6xkgFHCB8lyjV3K2RvcQ7pSvgA87LOVuDtMrtkm+tTV0x1RcIe4Uvb6J+yygkV48DSejuyrMWrYgoZyjkf/0/L9+bAZgCam6+oHqjBSWTq5jF7wzBxYwfoGY7OdYZOdeGb4euuuLaCzDHz/QRbDCaIsJWJW3Jo4bkbz44AI/8UfFTGX4tMTRcKLXTDIviU+/u7UnlVaDQAA=\",\"by Matthew Brodeur\",\"Photo by Matthew Brodeur\",\"speed-up-your-app-with-web-workers\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/speed-up-your-app-with-web-workers.mdx\",{\"_55\":2775,\"_57\":2776,\"_67\":2780,\"_103\":2793,\"_105\":2794},\"September 30th, 2019\",{\"_59\":424,\"_61\":2777,\"_63\":2778,\"_65\":2779},12.145,728700,2429,{\"_69\":2781,\"_71\":2782,\"_73\":2783,\"_75\":2784,\"_78\":2785,\"_93\":2788,\"_97\":2789,\"_99\":2790,\"_95\":2791,\"_101\":2792},\"Don't Sync State. Derive It!\",\"2019-09-30T00:00:00.000Z\",\"How to avoid state synchronization bugs and complexity with derived state.\",[297],{\"_80\":2786},[297,1733,1223,1390,2787,1222],\"useReducer\",\"unsplash/photo-1523962389844-25940ebd2226\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/pMmw3ynuXHw\\\"\u003eGabriel Gusmao\u003c/a\u003e\",\"data:image/webp;base64,UklGRkwBAABXRUJQVlA4IEABAABQCgCdASpkAEMAPqVOnku/qDasqFcbY/AUiWUGepxIg5lmtvgEKQtzp+HX6XVJ08oS8DTK8Vq4+M+v4ea4vQXmfydT3QVYlI4ROImanmrGzyKl7p7KwebynxwAAP7tIG1ZnDMv/wYnpT9SdQ3/DvWHmtzrFMBdEZAgYzzyhMawwXJYMKuhgW0ix3wuSRCjeDEQFP8v4npoTUw+tl5yAldy3KKuH5C9pG/63sZBixAR+GFCDiH+1tuIUDaAJjk1cixKQLuR4vOEfZ1OxZ0OmVO6HB9aBZ+E/aV5imcMnpoF2TlpAl4WY7sJw0CxmAdzHlpXspU7mzb8+pZApL1c//89ofAe6SUtKl5+mjpGwOOu/TrXlzcMQHXoS35JWBARXfFxwBReOHNPKJSHtDuJbcytLK0CYREvtuWvp0MXzF4AAA==\",\"by Gabriel Gusmao\",\"Photo by Gabriel Gusmao\",\"dont-sync-state-derive-it\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/dont-sync-state-derive-it.mdx\",{\"_55\":2796,\"_57\":2797,\"_67\":2801,\"_103\":2820,\"_105\":2821},\"September 23rd, 2019\",{\"_59\":649,\"_61\":2798,\"_63\":2799,\"_65\":2800},10.24,614400,2048,{\"_69\":2802,\"_71\":2803,\"_73\":2804,\"_75\":2805,\"_78\":2806,\"_349\":2810,\"_93\":2815,\"_97\":2816,\"_99\":2817,\"_95\":2818,\"_101\":2819},\"State Colocation will make your React app faster\",\"2019-09-23T00:00:00.000Z\",\"How state colocation makes your app not only more maintainable but also faster.\",[297,1733],{\"_80\":2807},[2808,297,1733,2809,1735],\"colocation\",\"Redux\",[2811,2813],{\"_352\":368,\"_354\":2812},\"https://ideveloper2.dev/blog/2019-10-12--state-colocation-will-make-your-react-app-faster/\",{\"_352\":946,\"_354\":2814},\"https://habr.com/ru/post/485032/\",\"kentcdodds.com/content/blog/state-colocation-will-make-your-react-app-faster/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/j0g8taxHZa0\\\"\u003eSamuel Zeller\u003c/a\u003e\",\"data:image/webp;base64,UklGRtYAAABXRUJQVlA4IMoAAAAwCgCdASpkAEMAPr1Onkq/rDAhsVybA/AXiWkGcAFV7jBq7LOdoO8EflgF6YX+qQ1BKUwckLvWUa4AKrXgWAUR+RILnQ3xcZHihhX+d6GMQmFyXsspHPpQ6gAA/u4f/Nad1/ObleZ3ux9b+WFim3po/K/k9RwlweBNUujwCWUU8kPKTG/e9w+eR0gDz1yVlKSEKj/N95QhK4lNn52O4/k1PByTD49dxdH/tz6YjNsUU6gOADhAjmxCQm0iDruhAZc9Kp+sWvsCm4AA\",\"by Samuel Zeller\",\"Photo by Samuel Zeller\",\"state-colocation-will-make-your-react-app-faster\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/state-colocation-will-make-your-react-app-faster\",{\"_55\":2823,\"_57\":2824,\"_67\":2828,\"_103\":2843,\"_105\":2844},\"September 16th, 2019\",{\"_59\":445,\"_61\":2825,\"_63\":2826,\"_65\":2827},8.815,528900,1763,{\"_69\":2829,\"_71\":2830,\"_73\":2831,\"_75\":2832,\"_78\":2833,\"_93\":2838,\"_97\":2839,\"_99\":2840,\"_95\":2841,\"_101\":2842},\"Profile a React App for Performance\",\"2019-09-16T00:00:00.000Z\",\"How to use the React DevTools and React's profiling build to properly profile a production app\",[180],{\"_80\":2834},[297,2835,2836,2837],\"devtools\",\"optimization\",\"profile\",\"unsplash/photo-1537210249814-b9a10a161ae4\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/L4-16dmZ-1c\\\"\u003eFelix Mittermeier\u003c/a\u003e\",\"data:image/webp;base64,UklGRmgDAABXRUJQVlA4WAoAAAAgAAAAYwAANwAASUNDUFQCAAAAAAJUbGNtcwIQAABtbnRyUkdCIFhZWiAH0AAIAAsAEwAzADthY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAJB3dHB0AAABwAAAABRia3B0AAAB1AAAABRyVFJDAAAB6AAAAA5nVFJDAAAB+AAAAA5iVFJDAAACCAAAAA5yWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABR0ZXh0AAAAAENvcHlyaWdodCAyMDAwIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAEQBBAGQAbwBiAGUAIABSAEcAQgAgACgAMQA5ADkAOAApAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCDuAAAAcAgAnQEqZAA4AD6dQp1MNLyzLSbyuuuQE4llBnvTn8emPzR9wZFAKHUsMsssDz3I4rzh147ZslWcfc/ofL+pxXl4IM4iFN6inxr4cAD+7I3YG/yhv/fHtd7XJx7rY9v20wBX0cOx6TE9hWkTYrzWobzq/89u3yVVH7lpHs1AZryt6eZiFsWlquwu2KS3cTeIwydzfMgHUOCF8IP4gat57Ic428GXnqrWGUXB8LPH+1/PsjxcT0HTRlIruzyHxF5qJu4f+VliqUTvBO+6RqBu9DXGA/+AirVF3W1Hi/B/zw0ldaGGA3T5i1j6AAAAAA==\",\"by Felix Mittermeier\",\"Photo by Felix Mittermeier\",\"profile-a-react-app-for-performance\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/profile-a-react-app-for-performance.mdx\",{\"_55\":2846,\"_57\":2847,\"_67\":2848,\"_103\":2868,\"_105\":2869},\"September 9th, 2019\",{\"_59\":191,\"_61\":2671,\"_63\":2672,\"_65\":2673},{\"_69\":2849,\"_71\":2850,\"_73\":2851,\"_75\":2852,\"_78\":2853,\"_349\":2857,\"_93\":2863,\"_97\":2864,\"_99\":2865,\"_95\":2866,\"_101\":2867},\"Fix the slow render before you fix the re-render\",\"2019-09-09T00:00:00.000Z\",\"How to start optimizing your React app renders\",[297],{\"_80\":2854},[297,180,790,2855,2856],\"renders\",\"rerenders\",[2858,2860],{\"_352\":368,\"_354\":2859},\"https://goongoguma.github.io/2021/05/15/Fix-the-slow-render-before-you-fix-the-re-render/\",{\"_352\":464,\"_354\":2861,\"_356\":2862},\"https://www.sebastiangon11.com/blog/soluciona-los-renderizados-lentos-antes-de-los-re-renderizados\",{\"_358\":2633,\"_354\":2634},\"unsplash/photo-1518729371765-043e54eb5674\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/J3pkJFnpDkM\\\"\u003ePascal van de Vendel\u003c/a\u003e\",\"data:image/webp;base64,UklGRsoAAABXRUJQVlA4IL4AAABQBgCdASpkAEAAPp1Mnk0ltCmiolgJ2oATiWcAy2gC+BapMcMX7yAmL2kz3IJ6qU/35lnRgklEyedKAAD+7FZvLlfqqnt9HPgmtOBmNe7+iZvtU/8V0BrxcJXopf0zUAkrQSg5VVAiyYvUlkUN2I7Vv0EjKRTr5QWRjcAnx6ogLUwUNUk9NS58RUsjO/gCQ4AFShYRFsrUb4eK+byBd81mYOu4YNm11Bpxn9ayA5/jJIxyZ8gtlSp6UiaBgAAA\",\"by Pascal van de Vendel\",\"Photo by Pascal van de Vendel\",\"fix-the-slow-render-before-you-fix-the-re-render\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/fix-the-slow-render-before-you-fix-the-re-render\",{\"_55\":2871,\"_57\":2872,\"_67\":2876,\"_103\":2889,\"_105\":2890},\"August 30th, 2019\",{\"_59\":214,\"_61\":2873,\"_63\":2874,\"_65\":2875},5.225,313500,1045,{\"_69\":2877,\"_71\":2878,\"_73\":2879,\"_75\":2880,\"_78\":2881,\"_93\":2884,\"_97\":2885,\"_99\":2886,\"_95\":2887,\"_101\":2888},\"How to implement useState with useReducer\",\"2019-08-30T00:00:00.000Z\",\"A fun exercise to help understand the differences and use cases of these two related hooks\",[297],{\"_80\":2882},[1223,790,2883],\"composability\",\"unsplash/photo-1506591501018-9e93b4134ee6\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/7ajo0Vz98yU\\\"\u003eMarc Sendra Martorell\u003c/a\u003e\",\"data:image/webp;base64,UklGRt4AAABXRUJQVlA4INIAAADwBwCdASpkAEsAPp1CmkqsKqIhqvaqyYATiWcAznys4IachhgzOTc/H9HO4k8ygbz/JavBGdsB1AdN2vwgC/PAaORXccL/U6gA/vd9hSdJaaTLArolqAT9KIZg8OgEYTVvAQwEp7rU9PhHs/AJ4nbhllVRlh+HmmMEcFXxgYB0pu1iYf3QxZfUuOnpvxEObCr/7GFeviRzkPVUWeyZgKVtjcEEk6trMy0wJBC7UNTCDJaHycnxfMTYVvk4MIYY0q80MzEvSbvuV9j261/JjcyoAAA=\",\"by Marc Sendra Martorell\",\"Photo by Marc Sendra Martorell\",\"how-to-implement-usestate-with-usereducer\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-to-implement-usestate-with-usereducer.mdx\",{\"_55\":2892,\"_57\":2893,\"_67\":2897,\"_103\":2920,\"_105\":2921},\"August 26th, 2019\",{\"_59\":709,\"_61\":2894,\"_63\":2895,\"_65\":2896},9.365,561900,1873,{\"_69\":2898,\"_71\":2899,\"_73\":2900,\"_75\":2901,\"_78\":2902,\"_349\":2906,\"_93\":2915,\"_97\":2916,\"_99\":2917,\"_95\":2918,\"_101\":2919},\"Write fewer, longer tests\",\"2019-08-26T00:00:00.000Z\",\"Making tests too short often leads to poor testing practices and way more tests.\",[985],{\"_80\":2903},[790,2904,2905],\"software\",\"qa\",[2907,2912],{\"_352\":464,\"_354\":2908,\"_356\":2909},\"https://dev.to/danyparedes/escribiendo-menos-tests-y-mas-largos-316h\",{\"_358\":2910,\"_354\":2911},\"Dany Paredes\",\"https://x.com/danywalls\",{\"_352\":368,\"_354\":2913,\"_356\":2914},\"https://rosetta.page/post/번역-더-적고-더-긴-테스트를-작성하세요-XmBzf\",{\"_358\":1711,\"_354\":1712},\"unsplash/photo-1506744038136-46273834b3fb\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/NRQV-hBF10M\\\"\u003eBailey Zindel\u003c/a\u003e\",\"data:image/webp;base64,UklGRlQDAABXRUJQVlA4WAoAAAAgAAAAYwAAQgAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCD+AAAAMAkAnQEqZABDAD61SJxKNzMvIbJZm7rgFolnBRANKAIQtSdH5qOTWNIVLI8njlLD2WZ7OtxJZYOVxqJEEQnNbEKRwK9p+saa3lQfrbVnB06IAAD+7gG/XAPnwoYnZN8NHfz3tdzDaUewRhip+jGLBnQZv5ESKpJe06UBxSHu/U8uA70f00FS4Odhr4+du9xCU8sQCb4caDUkpLfb2bzFuYagJBJo/w9JIC55tyFNnHQTy953JyXZwbGXfuQwsY7c7CVLDiex+OOWJfpa9sN2FILuny2znpZLpIiLUOPVPElSwG3m5lB1uBIYqXVag/nkHm3ZAb90M32b+4XUgAA=\",\"by Bailey Zindel\",\"Photo by Bailey Zindel\",\"write-fewer-longer-tests\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/write-fewer-longer-tests\",{\"_55\":2923,\"_57\":2924,\"_67\":2928,\"_103\":2945,\"_105\":2946},\"August 12th, 2019\",{\"_59\":261,\"_61\":2925,\"_63\":2926,\"_65\":2927},4.675,280500,935,{\"_69\":2929,\"_71\":2930,\"_73\":2931,\"_75\":2932,\"_78\":2933,\"_349\":2937,\"_93\":2940,\"_97\":2941,\"_99\":2942,\"_95\":2943,\"_101\":2944},\"How to get experience as a software engineer\",\"2019-08-12T00:00:00.000Z\",\"There's no shortcut to experience, but there are things you can do to increase the impact of your time.\",[340],{\"_80\":2934},[1918,2935,2936],\"debugging\",\"senior software engineer\",[2938],{\"_352\":662,\"_354\":2939},\"https://medium.com/@ismailsimsek/bir-yaz%C4%B1l%C4%B1m-m%C3%BChendisi-olarak-nas%C4%B1l-deneyim-edinebilirsiniz-d5bc19e84c09\",\"unsplash/photo-1521790361543-f645cf042ec4\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/ZJEKICY5EXY\\\"\u003eCytonn Photography\u003c/a\u003e\",\"data:image/webp;base64,UklGRgoBAABXRUJQVlA4IP4AAADwCACdASpkAEMAPrlKnko/v7Ohr5adU/AXCWcAy6nmQNEZSzOoJAULd6X/uTKmAQyiEMn4/sahLKDHod7o9MtCJYeg/AKHi4Uhy2kVq5fIgAD+wsPz1Ce4gcHptedZnv7pam6RrNdcEYmue+2Hwenc/+jJH6ot7u4R6BG61d2AWY5+T3Ffb1QvibR26JlI2yRCz4nqeALfwnzLnTs0H7oUQdD96plBRdOSwCwHFR1K552wdYHn9L4Vcg2suE7IB58bOXK5GB/YNOeMW9bV/DwM8KUUDMTFwF60M2bzVsI9tSadjtVDGdPTJmam41P6vJduwlldpb6HbY28AAAAAA==\",\"by Cytonn Photography\",\"Photo by Cytonn Photography\",\"how-to-get-experience-as-a-software-engineer\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-to-get-experience-as-a-software-engineer.mdx\",{\"_55\":2948,\"_57\":2949,\"_67\":2953,\"_103\":2965,\"_105\":2966},\"August 5th, 2019\",{\"_59\":424,\"_61\":2950,\"_63\":2951,\"_65\":2952},12.615,756900,2523,{\"_69\":2954,\"_71\":2955,\"_73\":2956,\"_75\":2957,\"_78\":2958,\"_93\":2960,\"_97\":2961,\"_99\":2962,\"_95\":2963,\"_101\":2964},\"5 Tips to Help You Avoid React Hooks Pitfalls\",\"2019-08-05T00:00:00.000Z\",\"Let's explore some hook gotchas and how to avoid them.\",[297],{\"_80\":2959},[1223],\"unsplash/photo-1500964757637-c85e8a162699\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/twukN12EN7c\\\"\u003eSimon Matzinger\u003c/a\u003e\",\"data:image/webp;base64,UklGRuAAAABXRUJQVlA4INQAAADwBwCdASpkAEAAPrVSnEo3JaMkslUMAuAWiUWwAT/AG6a27x9HZrxEup4/quU+qFK6wYp2c/vID+lH2KqsZeckxO/hpXhkVuAA/u16nx3MBR2QipUqBudRQ3D3Yk3HkSrqEO4pr+9RE9AC3uvnqeyrN+7in2c7ONFTTT6L7JfBSIfOFQOt2k80ZnRJB2cMcWrLKvvtb3cXadWDe+msohCFG0+BeAkZyBIYbJFiFM9gDUnhZ40eAn9o2nDEwQerCpfCMuLeNZKQNY0iDINKOCx8PUAAAA==\",\"by Simon Matzinger\",\"Photo by Simon Matzinger\",\"react-hooks-pitfalls\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/react-hooks-pitfalls\",{\"_55\":2968,\"_57\":2969,\"_67\":2973,\"_103\":2997,\"_105\":2998},\"July 29th, 2019\",{\"_59\":846,\"_61\":2970,\"_63\":2971,\"_65\":2972},13.205,792300,2641,{\"_69\":2974,\"_71\":2975,\"_73\":2976,\"_75\":2977,\"_78\":2978,\"_349\":2983,\"_93\":2992,\"_97\":2993,\"_99\":2994,\"_95\":2995,\"_101\":2996},\"Avoid Nesting when you're Testing\",\"2019-07-29T00:00:00.000Z\",\"Why using hooks like beforeEach as a mechanism for code reuse leads to unmaintainable tests and how to avoid it.\",[985],{\"_80\":2979},[985,790,2068,2980,2981,2982],\"mocha\",\"jasmine\",\"ava\",[2984,2987],{\"_352\":368,\"_354\":2985,\"_356\":2986},\"https://jaehyeon48.github.io/testing/avoid-nesting-when-youre-testing/\",{\"_358\":2628,\"_354\":2629},{\"_352\":353,\"_354\":2988,\"_356\":2989},\"https://zenn.dev/jay_es/articles/2025-08-11-avoid-nesting-when-youre-testing\",{\"_358\":2990,\"_354\":2991},\"jay-es\",\"https://github.com/jay-es\",\"unsplash/photo-1486338892246-cd25343d5338\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/05_sUnshoaE\\\"\u003eKate Remmer\u003c/a\u003e\",\"data:image/webp;base64,UklGRjoDAABXRUJQVlA4WAoAAAAgAAAAYwAAQgAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCDkAAAAcAkAnQEqZABDAD6dRp1KOK8vqSk2azMQE4lpBnwusC/wwiFmrvAyu/BT1/1PGgKIFJu+a/361PS4rM/EHjSPBDmMo4ThGRKdte6q3xS34qasID8AAP7T8JuRcYTSLkaW+lWonHw5d8kOznHY/ZKPfO29wF03RzhBYzCJxmjv60XnHBIQsJ4YlvB823jviQbEpyK5GAevn7LmsG+rVOB268AmT2l3gMCRAYTVJdM3Z3R1UB5eDvBcL0sgHPJvcvXvR1Mq54YuVN2nN6N5SN+F2DjhVCvz0tEsQqL5AxSq6My0i0AA\",\"by Kate Remmer\",\"Photo by Kate Remmer\",\"avoid-nesting-when-youre-testing\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/avoid-nesting-when-youre-testing\",{\"_55\":3000,\"_57\":3001,\"_67\":3005,\"_103\":3022,\"_105\":3023},\"July 19th, 2019\",{\"_59\":331,\"_61\":3002,\"_63\":3003,\"_65\":3004},3.22,193200,644,{\"_69\":3006,\"_71\":3007,\"_73\":3008,\"_75\":3009,\"_78\":3010,\"_349\":3012,\"_93\":3017,\"_97\":3018,\"_99\":3019,\"_95\":3020,\"_101\":3021},\"When to break up a component into multiple components\",\"2019-07-19T00:00:00.000Z\",\"At what point does it make sense to break a single component into multiple components?\",[297],{\"_80\":3011},[790,297],[3013,3015],{\"_352\":368,\"_354\":3014},\"https://edykim.com/ko/post/when-to-break-up-a-component-into-multiple-components\",{\"_352\":1006,\"_354\":3016},\"https://zenn.dev/matazou/articles/a84ba6fd9ce69a\",\"unsplash/photo-1526029655228-b7ee496c7819\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/kp_87tExCwI\\\"\u003eSamuel Scrimshaw\u003c/a\u003e\",\"data:image/webp;base64,UklGRvAAAABXRUJQVlA4IOQAAACQCACdASpkAEMAPrlUo0u/tishqvlbI/AXCWcG+BuAIkQj8PhJhGdpyMwpDpwHNJtSEVJ+m/OhaYfx0a9uJuOHb6UpNtB/hwD4iuFKAAD+5OlU5YO9fsi8CSschb1xc2REP3sSE8cjsLlxcknLBk9Hh3IcGbXIoUtcthw1WSDgWihxumh3ewF6l3SmUcdQ+2FCS1DMIAnPLKW0y1XZwiojaUlh7Ef/j0XMB0LanVQWz2SdHU6HbTCKv8Fq3b9hPZI1F0U5Ke/DOa5cqqGgxamZPK9R2qtUQ6qkeFnXh6409aCgAAA=\",\"by Samuel Scrimshaw\",\"Photo by Samuel Scrimshaw\",\"when-to-break-up-a-component-into-multiple-components\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/when-to-break-up-a-component-into-multiple-components.mdx\",{\"_55\":3025,\"_57\":3026,\"_67\":3030,\"_103\":3048,\"_105\":3049},\"July 13th, 2019\",{\"_59\":214,\"_61\":3027,\"_63\":3028,\"_65\":3029},5.47,328200,1094,{\"_69\":3031,\"_71\":3032,\"_73\":3033,\"_75\":3034,\"_78\":3035,\"_349\":3038,\"_93\":3043,\"_97\":3044,\"_99\":3045,\"_95\":3046,\"_101\":3047},\"Write tests. Not too many. Mostly integration.\",\"2019-07-13T00:00:00.000Z\",\"[Guillermo Rauch](https://x.com/rauchg) [tweeted](https://x.com/rauchg/status/807626710350839808) this a while back. Let's take a dive into what it means.\",[985],{\"_80\":3036},[985,3037,2539,434,2739],\"Integration\",[3039,3041],{\"_352\":1000,\"_354\":3040},\"https://medium.com/@sergioamjr91/escreva-testes-não-muitos-mas-mais-de-integração-7ebebf225516\",{\"_352\":353,\"_354\":3042},\"https://makotot.dev/posts/write-tests-translation-ja\",\"unsplash/photo-1469598614039-ccfeb0a21111\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/RLlcbkemwnw\\\"\u003eElena Cordery\u003c/a\u003e\",\"data:image/webp;base64,UklGRpoDAABXRUJQVlA4WAoAAAAgAAAAYwAAlQAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCBEAQAAEA8AnQEqZACWAD6dSJ1LKCupoab5mlFwE4lpANMsqLb0xOGDKMqN0BSVWO8tvu+IpnUpeccFXv/lwK2YPV+9qUhk2oe0dzpWG0nvl4d16+lxtf03h7ErrARgZWyJpv1PkakRKNrGHFZv1v/tK3R4n6d9muDdPpsRgYhbazlU0TywAP7wMtH5d4JpsgKmyDpU0KpnxUm+Dg2arjHqgsR/SLp/mvXYA7xFxSkJE6sS8mP6CbJWAmgcMxwJ/4FnPYupJRVLQqC60xvBoYDSn3vmOCWmsiQdTxRigcE08MPJBBSXkYNWNDtZqtYl+5EAj5Iciq5S62c6OJ5PzXqeaVNNQsRr8FzY/ttbr4bWiL8XXm252r6iRAxMk8ryE+0u9mLIrGFVCRN49Oyg1aTJsjBP0kaKYjiicNIBxbPNQglJkg+6QAAA\",\"by Elena Cordery\",\"Photo by Elena Cordery\",\"write-tests\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/write-tests.mdx\",{\"_55\":3051,\"_57\":3052,\"_67\":3056,\"_103\":3074,\"_105\":3075},\"July 8th, 2019\",{\"_59\":214,\"_61\":3053,\"_63\":3054,\"_65\":3055},5.11,306600,1022,{\"_69\":3057,\"_71\":3058,\"_73\":3059,\"_75\":3060,\"_349\":3061,\"_78\":3067,\"_93\":3069,\"_97\":3070,\"_99\":3071,\"_95\":3072,\"_101\":3073},\"React Fundamentals: Props vs State\",\"2019-07-08T00:00:00.000Z\",\"What's the difference between props and state in React?\",[297],[3062],{\"_352\":470,\"_354\":3063,\"_356\":3064},\"https://dev.to/beatrizoliveira/fundamentos-do-react-props-vs-state-4gcn\",{\"_358\":3065,\"_354\":3066},\"Beatriz Oliveira\",\"https://x.com/biantris_\",{\"_80\":3068},[297,790,1253,1733],\"unsplash/photo-1513151233558-d860c5398176\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/Xaanw0s0pMk\\\"\u003eJason Leung\u003c/a\u003e\",\"data:image/webp;base64,UklGRuQAAABXRUJQVlA4INgAAAAQBwCdASpkAEMAPp1Mn0ylpDQiIOqagBOJZwb4G/kMHL8AU2Ax11JRk3Dn/zMfCDvLg/sIGRgV6FdhQKtuqqHDwAD+7ksAY/kdP2mOP/+A/ez/K1d+VPtIJOXWTIoU2LaYSLAS5GP/q4/dNhLFVuZLqH377rs0d9nciItEHR72C0bWaadz48i8c/6VG/cEr5x1B6XA7FzGA3nlOlAXHq6Ds7MTqZu9JCDAmyWruCQ7jNW93YwoKCoAOnKW+1dFsmU66CTzq/3kc/FAf+/HsVRBSCNl4MeEwAA=\",\"by Jason Leung\",\"Photo by Jason Leung\",\"props-vs-state\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/props-vs-state\",{\"_55\":3077,\"_57\":3078,\"_67\":3082,\"_103\":3091,\"_105\":3092},\"July 1st, 2019\",{\"_59\":191,\"_61\":3079,\"_63\":3080,\"_65\":3081},6.925,415500,1385,{\"_69\":3083,\"_71\":3084,\"_73\":3085,\"_75\":3086,\"_78\":3087,\"_93\":3089,\"_99\":3090},\"How I Teach\",\"2019-07-01T00:00:00.000Z\",\"How I apply the science of learning to help students retain what I teach them, and how I learn.\",[1976],{\"_80\":3088},[458,1976],\"kentcdodds.com/content/blog/how-i-teach/banner\",\"data:image/webp;base64,UklGRuwAAABXRUJQVlA4IOAAAAAwCACdASpkAEAAPp1EnEs4qq8nqTQMAxATiWcAyrQHR8SE9nBOiNqgmr8HsTtiqgYHwq09eXeoUTGby6E/qzUsy4aDDubUXNSvAAD+7WZPSAr64WyzDNgr28/t2elHwlU3fZzrhJMFdquyT/+q0A3QV0RI+VC9mawxYysqtAfqVgiQqROk58c0lDZ6er26uPw+k5kj3knzzQnzBLIX53Rj5MIvoW1hJOUSLp3x+WXB0smcI3qwQqNBed2eavSDmH7rq18nEY6MFx5zj9ne7qGGYhGlFU3plyNjuaGBhQAAAA==\",\"how-i-teach\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-i-teach.mdx\",{\"_55\":3094,\"_57\":3095,\"_67\":3099,\"_103\":3126,\"_105\":3127},\"June 24th, 2019\",{\"_59\":138,\"_61\":3096,\"_63\":3097,\"_65\":3098},7.855,471300,1571,{\"_69\":3100,\"_71\":3101,\"_73\":3102,\"_75\":3103,\"_78\":3104,\"_349\":3109,\"_93\":3121,\"_97\":3122,\"_99\":3123,\"_95\":3124,\"_101\":3125},\"One simple trick to optimize React re-renders\",\"2019-06-24T00:00:00.000Z\",\"Without using React.memo, PureComponent, or shouldComponentUpdate\",[297],{\"_80\":3105},[297,2836,3106,3107,3108,180],\"memoization\",\"React.memo\",\"re-renders\",[3110,3116],{\"_352\":3111,\"_354\":3112,\"_356\":3113},\"Português (Brasil)\",\"https://dev.to/ronaizacardoso/um-simples-truque-para-otimizar-as-re-renderizacoes-no-react-bo0\",{\"_358\":3114,\"_354\":3115},\"ronaiza\",\"https://github.com/ronaiza-cardoso\",{\"_352\":368,\"_354\":3117,\"_356\":3118},\"https://dkrnfls.tistory.com/413\",{\"_358\":3119,\"_354\":3120},\"정우병\",\"https://github.com/woobottle\",\"kentcdodds.com/content/blog/optimize-react-re-renders/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/wDCq6GSvMps\\\"\u003eEvan Dvorkin\u003c/a\u003e\",\"data:image/webp;base64,UklGRv4AAABXRUJQVlA4IPIAAACwCQCdASpkAEMAPrlOn0u/sK2hrrcK8/AXCWcGe9T5QKxD3D4HYBy0KoXza8MkwzDh+oD6TPAcPYWTfQvEbLObFLge0G359icLBYra9jxEE9/334XoAAD+jxFT2yz9LX5V1JERhoptG8SgOoYjPvTUc+Uor3dIrcbaYRW3cNhHx8qzyhjFB/WQZUPVZjAajQiOeXkkNoVWtlOhBjQHdrSUlTQMo/qHf1tQGj1SN7HbFZzSZMO4ACr1bf6tBv1RSm84BLcXmqNWJ0EtT5FQ0WrUqZZzz/ABLXgWRoD9ptE/FWCIoAVBvCRFZULJcHToNgAAAA==\",\"by Evan Dvorkin\",\"Photo by Evan Dvorkin\",\"optimize-react-re-renders\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/optimize-react-re-renders.mdx\",{\"_55\":3129,\"_57\":3130,\"_67\":3134,\"_103\":2808,\"_105\":3169},\"June 17th, 2019\",{\"_59\":445,\"_61\":3131,\"_63\":3132,\"_65\":3133},8.01,480600,1602,{\"_69\":3135,\"_71\":3136,\"_73\":3137,\"_78\":3138,\"_93\":3142,\"_97\":3143,\"_349\":3144,\"_99\":3166,\"_95\":3167,\"_101\":3168},\"Colocation\",\"2019-06-17T00:00:00.000Z\",\"Maintainability through colocation\",{\"_80\":3139},[790,297,3140,2539,3141],\"Architecture\",\"Clean Code\",\"unsplash/photo-1444703686981-a3abbc4d4fe3\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/oMpAz-DN-9I\\\"\u003eGreg Rakozy\u003c/a\u003e\",[3145,3150,3154,3159,3161],{\"_352\":831,\"_354\":3146,\"_356\":3147},\"https://juejin.cn/post/7075233317284479013\",{\"_358\":3148,\"_354\":3149},\"Doma\",\"https://github.com/SevenOutman\",{\"_352\":368,\"_354\":3151,\"_356\":3152},\"https://dkrnfls.tistory.com/408\",{\"_358\":3153,\"_354\":3120},\"Woobyeong\",{\"_352\":464,\"_354\":3155,\"_356\":3156},\"https://www.redradix.com/insights/colocalizacion\",{\"_358\":3157,\"_354\":3158},\"Aarón Contreras\",\"https://github.com/acontreras89\",{\"_352\":353,\"_354\":3160},\"https://makotot.dev/posts/colocation-translation-ja\",{\"_352\":670,\"_354\":3162,\"_356\":3163},\"https://mateusf.com/blog/post/co-localizacao\",{\"_358\":3164,\"_354\":3165},\"Mateus Felipe Gonçalves\",\"https://mateusf.com/about\",\"data:image/webp;base64,UklGRjABAABXRUJQVlA4ICQBAACQDQCdASpkAEMAPrVInEoyr6whslv6qlAWiWcGeqi8oqa6YIJptMslvb6LMestXaIaFXhMPhfDm5O66LMtHOU+IxO7Br9onKNfAQpTf4HQnK6rHLSF80v5jOViWGgtOUgllOa8Ylt9IQ6Oms9+BAeW+/t9pYAA/viFp69LeVdpo8rteAwMT12jzsLL+a4LPYpPeYVcX1Q0lyxD0C5FVF1Z6yddLIggiiwmMFq4fRaDiqylL12cXmAFTsufQukA5TyHtvzX3q1XQjr6oNTrciNNSIJ+ZGLyQDDWkGB2rdbjt+S0Mf2Ph7F4A5hhZl/kwVF4KHBnRuwDtHqFkhFHyVhqaEdBb10bGPh0HT+7Ys6cCV1jTwkW6Q5rRyJQgNYOHQT8AAAA\",\"by Greg Rakozy\",\"Photo by Greg Rakozy\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/colocation.mdx\",{\"_55\":3171,\"_57\":3172,\"_67\":3176,\"_103\":3206,\"_105\":3207},\"June 4th, 2019\",{\"_59\":846,\"_61\":3173,\"_63\":3174,\"_65\":3175},13.175,790500,2635,{\"_69\":3177,\"_71\":3178,\"_73\":3179,\"_75\":3180,\"_78\":3181,\"_349\":3184,\"_93\":3201,\"_97\":3202,\"_99\":3203,\"_95\":3204,\"_101\":3205},\"When to useMemo and useCallback\",\"2019-06-04T00:00:00.000Z\",\"Performance optimizations ALWAYS come with a cost but do NOT always come with a benefit. Let's talk about the costs and benefits of useMemo and useCallback.\",[297],{\"_80\":3182},[790,3106,1223,180,3183,297],\"inline functions\",[3185,3187,3189,3192,3194,3196],{\"_352\":368,\"_354\":3186},\"https://ideveloper2.dev/blog/2019-06-14--when-to-use-memo-and-use-callback\",{\"_352\":368,\"_354\":3188},\"https://goongoguma.github.io/2021/04/26/When-to-useMemo-and-useCallback/\",{\"_352\":3190,\"_354\":3191},\"Chinese\",\"https://jancat.github.io/post/2019/translation-usememo-and-usecallback/\",{\"_352\":1282,\"_354\":3193},\"https://aleromano.com/posts/it/usememo-usecallback\",{\"_352\":1006,\"_354\":3195},\"https://zenn.dev/matazou/articles/6ea5b90f7980be\",{\"_352\":470,\"_354\":3197,\"_356\":3198},\"https://medium.com/@diegohferraz/quando-usar-usememo-and-usecallback-2c73a1edc446\",{\"_358\":3199,\"_354\":3200},\"Diego H. Ferraz\",\"https://www.linkedin.com/in/diegohferraz/\",\"unsplash/photo-1554672723-b208dc85134f\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/mQTTDA_kY_8\\\"\u003eJp Valery\u003c/a\u003e\",\"data:image/webp;base64,UklGRhgDAABXRUJQVlA4WAoAAAAgAAAAYwAAQgAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCDCAAAAEAcAnQEqZABDAD6dSJ1KOK+soaoUalMQE4lpBvjnhsoqkbZkLPsZbQI7x+ZjpA2NTxVcwMCywYvDRr2gfYmpA4AA/n97J94pV1A4E2SK8MZ0zjLGfqfclMxup7wZb7OBBgFh0k4C7iEFs/gYGB+e4p8UC/cx26fjQgAFfhdrKhIZFai7bS+v89KMpeQbEUhhojvtrTKF8o33cMGXXQBrPXACV8fBNT1dirGbJmrCEgqv9ok1pqX98/8dOxSlxbsAAAA=\",\"by Jp Valery\",\"Photo by Jp Valery\",\"usememo-and-usecallback\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/usememo-and-usecallback\",{\"_55\":3209,\"_57\":3210,\"_67\":3214,\"_103\":3226,\"_105\":3227},\"May 24th, 2019\",{\"_59\":261,\"_61\":3211,\"_63\":3212,\"_65\":3213},4.065,243900,813,{\"_69\":3215,\"_71\":3216,\"_73\":3217,\"_75\":3218,\"_78\":3219,\"_93\":3221,\"_97\":3222,\"_99\":3223,\"_95\":3224,\"_101\":3225},\"Avoid the Test User\",\"2019-05-24T00:00:00.000Z\",\"How your UI code has only two users, but the wrong tests can add a third\",[985],{\"_80\":3220},[985,790,297],\"unsplash/photo-1497138169556-ba5743a6031c\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/vXZ_lC0XN4c\\\"\u003eGenevieve Perron-Migneron\u003c/a\u003e\",\"data:image/webp;base64,UklGRvwAAABXRUJQVlA4IPAAAAAQCwCdASpkAEMAPrlKnUo4N7Mhr5lscwAXCWkGcA0yCpIPc9w8txDii5eVG8I2s2IwQg+Q6o95knRlZjlYyHu6z7UvLH09lZmlaaXDyhlhdAi9PadDD2/1EYKhYFFURHIAAP7u90e5I8k05h/Z7al7+I80MS/mbjsOz59Cu0vq+mAUvKwzsK9boEXcK6/ia4UbzdP5rPS8Xl/FI1AFv9Az6AQghlFBH8USRX2FG4yEddbVtK3kmzOTF6UoTHr1oOm/46EpfzmU8JVRNUqjli3+42MkErHhYpVpW0IPi0uIldQzwZNMVt35yO6NfWzPwAA=\",\"by Genevieve Perron-Migneron\",\"Photo by Genevieve Perron-Migneron\",\"avoid-the-test-user\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/avoid-the-test-user\",{\"_55\":3229,\"_57\":3230,\"_67\":3234,\"_103\":3248,\"_105\":3249},\"May 20th, 2019\",{\"_59\":214,\"_61\":3231,\"_63\":3232,\"_65\":3233},5.54,332400,1108,{\"_69\":3235,\"_71\":3236,\"_73\":3237,\"_75\":3238,\"_78\":3239,\"_93\":3243,\"_97\":3244,\"_99\":3245,\"_95\":3246,\"_101\":3247},\"Authentication in React Applications\",\"2019-05-20T00:00:00.000Z\",\"How to handle user authentication in modern React Applications with context and hooks\",[297],{\"_80\":3240},[790,297,3241,3242],\"router\",\"authentication\",\"unsplash/photo-1461838432805-dff34fe2d8cb\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/H58bnmnedTc\\\"\u003eMike Enerio\u003c/a\u003e\",\"data:image/webp;base64,UklGRvYAAABXRUJQVlA4IOoAAABQCACdASpkAEMAPqVMn0w5tDCqpZK8qzAUiWcAyn3nwCH8nX2FivHJsHvEXRuZbpNKpcBzO4zJ/JCpnjQROtszy4kujDBc9F+qVwAA/uZB/hBB3R/y0h9aUIMVykdupl03b9ZVRK9NHMrcN0RfkcfROGHLhqeC/It5LaciVt52uUrPglJrRjCegHpNDftMo6S486K6neU2IOYvFsF5eo8WKbQO+Tn18d0Rga4wj5EiCPKZhRkbi02/HVK0QKd/xk0KrqZP5qk6l33Sujwzqc9IfqYAniLZqJh1esX4sSoFPVmJCcDrwPmAAAA=\",\"by Mike Enerio\",\"Photo by Mike Enerio\",\"authentication-in-react-applications\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/authentication-in-react-applications.mdx\",{\"_55\":3251,\"_57\":3252,\"_67\":3256,\"_103\":3277,\"_105\":3278},\"April 13th, 2019\",{\"_59\":709,\"_61\":3253,\"_63\":3254,\"_65\":3255},9.395,563700,1879,{\"_69\":3257,\"_71\":3258,\"_73\":3259,\"_75\":3260,\"_78\":3261,\"_349\":3264,\"_93\":3272,\"_97\":3273,\"_99\":3274,\"_95\":3275,\"_101\":3276},\"How to know what to test\",\"2019-04-13T00:00:00.000Z\",\"Practical advice to help you determine what to test.\",[985],{\"_80\":3262},[985,790,3263],\"coverage\",[3265,3267,3269],{\"_352\":831,\"_354\":3266},\"https://juejin.cn/post/7084526003548061703\",{\"_352\":470,\"_354\":3268},\"https://segredo.dev/como-saber-o-que-testar/?utm_source=kentcdodds\u0026utm_medium=translate\u0026utm_campaign=howknowtest\",{\"_352\":368,\"_354\":3270,\"_356\":3271},\"https://soojae.tistory.com/83\",{\"_358\":1014,\"_354\":1015},\"unsplash/photo-1494017411273-233a4d225d36\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/aJfy0WtHtkc\\\"\u003eCraig  Whitehead\u003c/a\u003e\",\"data:image/webp;base64,UklGRnIDAABXRUJQVlA4WAoAAAAgAAAAYwAAfAAASUNDUCQCAAAAAAIkYXBwbAQAAABtbnRyUkdCIFhZWiAH3wAKAA4ADQAIADlhY3NwQVBQTAAAAABBUFBMAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGzluw6YZ71GzUu+RG69G3WYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApkZXNjAAAA/AAAAGVjcHJ0AAABZAAAACN3dHB0AAABiAAAABRyWFlaAAABnAAAABRnWFlaAAABsAAAABRiWFlaAAABxAAAABRyVFJDAAAB2AAAACBjaGFkAAAB+AAAACxiVFJDAAAB2AAAACBnVFJDAAAB2AAAACBkZXNjAAAAAAAAAAtEaXNwbGF5IFAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29weXJpZ2h0IEFwcGxlIEluYy4sIDIwMTUAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAIPfAAA9v////7tYWVogAAAAAAAASr8AALE3AAAKuVhZWiAAAAAAAAAoOAAAEQsAAMi5cGFyYQAAAAAAAwAAAAJmZgAA8rAAAA1QAAATtgAACfxzZjMyAAAAAAABDEIAAAXe///zJgAAB5MAAP2Q///7ov///aMAAAPcAADAblZQOCAoAQAAMAwAnQEqZAB9AD6dRptLJbosKiiVW4NAE4lpBvjmOtwqAsgXiD35CYnIq8LamZME7/ACkDgb8YvBRfD5KNbk1vwmDTprTFDnMkZUoSHwE3ss+xkNcOt6Koj46UMVMAxS9ezo8SHHd69TwAD+6/rMOoDFj8Hm9847c3uf/IBwDHoR9KkVh7ZRtaueHD0usZ8R4lW9d8f5kK7jcMaHsaTpRunqHm2YSX/ijV7STqDJp0BQM986z3x2vriEkSFHVpNW52L1ENISe6kCgPGspEzcL3bGVCRQ2AFxtZxXnC9eLARo3gBUVqxoc9OHaPEU0BQGQtOBvNIy5lCeHMOOgilcnd0tpqzy9apjkbOzkEFMpBGak5Is+R3cIjiKNWx+7nZPMjoYTcMAAAA=\",\"by Craig  Whitehead\",\"Photo by Craig  Whitehead\",\"how-to-know-what-to-test\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-to-know-what-to-test.mdx\",{\"_55\":3280,\"_57\":3281,\"_67\":3285,\"_103\":3310,\"_105\":3311},\"April 7th, 2019\",{\"_59\":709,\"_61\":3282,\"_63\":3283,\"_65\":3284},9.155,549300,1831,{\"_69\":3286,\"_71\":3287,\"_73\":3288,\"_75\":3289,\"_78\":3290,\"_349\":3295,\"_93\":3305,\"_97\":3306,\"_99\":3307,\"_95\":3308,\"_101\":3309},\"AHA Testing 💡\",\"2019-04-07T00:00:00.000Z\",\"How to apply the \\\"Avoid Hasty Abstraction\\\" principle to your test code.\",[985],{\"_80\":3291},[985,297,3292,3293,3294],\"dry\",\"wet\",\"aha\",[3296,3298,3300],{\"_352\":831,\"_354\":3297},\"https://juejin.cn/post/7086704811927666719/\",{\"_352\":353,\"_354\":3299},\"https://makotot.dev/posts/aha-testing-translation-ja\",{\"_352\":368,\"_354\":3301,\"_356\":3302},\"https://medium.com/@jiwoochoics/%EB%B2%88%EC%97%AD-aha-%ED%85%8C%EC%8A%A4%ED%8C%85-405c9e4b4c7c\",{\"_358\":3303,\"_354\":3304},\"Jiwoo Choi\",\"https://github.com/jiwoo-choi\",\"unsplash/photo-1522424427542-e6fc86ff5253\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/CM-qccHaQ04\\\"\u003eAlexandru Goman\u003c/a\u003e\",\"data:image/webp;base64,UklGRvoDAABXRUJQVlA4WAoAAAAgAAAAYwAAQQAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOEykAQAAL2NAEAAXoCBtAxbtT0yapmCXSCBpi7f98x/Edf8Aydn2phFIZE+K7zMF9rHEh+Ts7ZT7GOlnn2IfE5f/nzlBRP8ZuJHihoTheodHNP/y7bevlVf1rcwCUkz7PURFe602QGSVBjbs+dl0UmAnsZkqxVZ8DbmF5u15gicDgEUPwMEbKLbiawI942UGxoERDW8e7mVnnDgMQAhxvQAY2LxdY4xPg5FrOeIVNrksbMdveIqbBAPVsqcXk6wkAIXsd+wBTnhm+nAzxq5+Q1hK4MQh5FgNdvsqzp5i3pA9WOCVCxmoKnptCzxm7Bn4kIuzLMrMy4ixgkdRfHcs7EuOQhwPT3I85XBSDCAxUIAE8MUdCYrvcixBXBzE8PntrXzxCJJCgyrFmkH9jjoGLlYgfDn3GWpgzs8WGcs5E+xLCg1XgivWPkg9YMJSDvQn1P2y0s1x6CZPFU/e7RlQFHryGTaH4dDs4fKeDqqufY/igQBj09ZR+PiW13suuFkqW3ZtI3DMVRBZWw0bNvEYeybT7+E3YwHdNXyQtoTZYBg6LtxP8KBqiG4A\",\"by Alexandru Goman\",\"Photo by Alexandru Goman\",\"aha-testing\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/aha-testing\",{\"_55\":3313,\"_57\":3314,\"_67\":3318,\"_103\":3331,\"_105\":3332},\"March 6th, 2019\",{\"_59\":445,\"_61\":3315,\"_63\":3316,\"_65\":3317},8.21,492600,1642,{\"_69\":3319,\"_71\":3320,\"_73\":3321,\"_75\":3322,\"_78\":3323,\"_93\":3326,\"_97\":3327,\"_99\":3328,\"_95\":3329,\"_101\":3330},\"How to get started with programming\",\"2019-03-06T00:00:00.000Z\",\"So you want to get into programming? Here's how you get started.\",[1918],{\"_80\":3324},[1918,1092,3325],\"beginner\",\"unsplash/photo-1510280781386-572b2438f88b\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/wEsqjsjIDLs\\\"\u003eLane Smith\u003c/a\u003e\",\"data:image/webp;base64,UklGRqoBAABXRUJQVlA4IJ4BAADQEQCdASpkAI4APrlKm0o4M6khsFn72wAXCWktgFgLrb3ux6ZsJAguweQ13WlG/u8++iXcPVnhk+pKgWUBW5VfbcD3NEfMynNU5aOwtRBPAx75FmPE/p5cS7X/eoA9ODbl8UG4GoNgbA8l+6fS8TxnL5P1FUGfc/4w8Crw0JvN8HrsevIW4fEHMnA+opRVmUMVJDxWoYgAAP7W/QgHZatJYGVyfk5gl+ImCSs1yaebR7hvRZBWx7377cnk+ko0eRADeNEH7fHira7huNgneKCru5/aKZY2W/Ggjj/j8dBkLdycF1e0rsBVRqRZyG0O1cL73cAbekQceREpa+6VTHz3YmWiTkQUgCgawqKod4pvEBQ2Td05DJ3biLJqQv1mxjnCXpQgczFapecSWfyUdUkljrhXpv4nMiFqiTVugOMvv1/kgSJAhnacL/QktcsgvlGvIs6M6+n53HSxRx0w7H3wIAlFpq1f/LEpcN8tZCbP2NuqAVFPJkYUMNVDyYNQs3hsp6Dc+UIIKSc2ggb0bg4HMgmYDCUZqCORUlNA3AA=\",\"by Lane Smith\",\"Photo by Lane Smith\",\"how-to-get-started-with-programming\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-to-get-started-with-programming.mdx\",{\"_55\":3334,\"_57\":3335,\"_67\":3339,\"_103\":3350,\"_105\":3351},\"March 4th, 2019\",{\"_59\":214,\"_61\":3336,\"_63\":3337,\"_65\":3338},5.36,321600,1072,{\"_69\":3340,\"_71\":3341,\"_73\":3342,\"_78\":3343,\"_93\":3345,\"_97\":3346,\"_99\":3347,\"_95\":3348,\"_101\":3349},\"How to Enable React Strict Mode\",\"2019-03-04T00:00:00.000Z\",\"What it is and how to add it to your app.\",{\"_80\":3344},[297,790],\"unsplash/photo-1493780758133-e5cfb0d00354\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/PgQgGuCGZNw\\\"\u003eMartin Sanchez\u003c/a\u003e\",\"data:image/webp;base64,UklGRpgAAABXRUJQVlA4IIwAAACQBQCdASpkADgAPp1KnkylpCaiIStA0BOJaQDRCALwf3a6dtBTUoq2Jgbu04ZwWvBHXABpKAD+9F9METrA23DEKO8jRjDifFQ+s0Z9VluPYqLSC69C/pe+5PVjwqM9Xfarzrqr6ajG682Y3t56H/Jgjd1fIw3YoTLBLOnwFG1Aane5v/Rmmiq5zfAAAA==\",\"by Martin Sanchez\",\"Photo by Martin Sanchez\",\"react-strict-mode\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/react-strict-mode.mdx\",{\"_55\":3353,\"_57\":3354,\"_67\":3358,\"_103\":3369,\"_105\":3370},\"February 25th, 2019\",{\"_59\":261,\"_61\":3355,\"_63\":3356,\"_65\":3357},4.92,295200,984,{\"_69\":3359,\"_71\":3360,\"_73\":3361,\"_78\":3362,\"_93\":3364,\"_97\":3365,\"_99\":3366,\"_95\":3367,\"_101\":3368},\"Goodbye Medium\",\"2019-02-25T00:00:00.000Z\",\"I've migrated from Medium to kentcdodds.com/blog... Here's why\",{\"_80\":3363},[340],\"unsplash/photo-1507527413181-c37774c5cb27\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/swCOXlxmr5U\\\"\u003eBobby Johnson\u003c/a\u003e\",\"data:image/webp;base64,UklGRowBAABXRUJQVlA4IIABAAAQDwCdASpkAH0APqVKnUqxM6+nKlY8AnAUiWUG+OhH2OXANDd2dxx38hva/9UtSTnX4lVCPdPfbI6iwTlKPmXdiMDwekcQvQd6z2/4uw71KM71xkcc73Te8UDmpDCHiLKUgmO2h9/CH9XcDqjk+Jk3RSg5XDDBI+DHFqCRwNh6+kAA+zW84sx/1909m4T//ln/+Lv+UXO9mm/P9gAnaODFajigXW04nEYdTRgPlEYVIup/kvsjDrGO1FTnBgYxZJFSuCQL4RqeFa0wPs9ZvQJjDYB/X5uxaOwHRhzbipu7k7NChta6e9f7aCGluY/1Co7QlVrF3Mu9G4XnC3wRv7maWVjXGhgIPRO26ymnl03pMoEiIM1Ug9o0Bh6KFbZrhp9Rre9MovGo3LOZQpOfhoDK45L6NhDXhfbf6+m1jWrCR28Nn1g8InKc99HDRcQSN7ojiwdYkUkXBFZ7WE/bs4eUmwTYv/2bSKhZhUjUp1YdnFBQ7OvcoW+H1FRy2hwAAAA=\",\"by Bobby Johnson\",\"Photo by Bobby Johnson\",\"goodbye-medium\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/goodbye-medium.mdx\",{\"_55\":3372,\"_57\":3373,\"_67\":3377,\"_103\":3395,\"_105\":3396},\"February 18th, 2019\",{\"_59\":261,\"_61\":3374,\"_63\":3375,\"_65\":3376},4.28,256800,856,{\"_69\":3378,\"_71\":3379,\"_73\":3380,\"_75\":3381,\"_78\":3382,\"_93\":3384,\"_97\":3385,\"_349\":3386,\"_99\":3392,\"_95\":3393,\"_101\":3394},\"React Hooks: Compound Components\",\"2019-02-18T00:00:00.000Z\",\"How do compound components change with React hooks?\",[297],{\"_80\":3383},[297,1223],\"kentcdodds.com/content/blog/compound-components-with-react-hooks/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/remgiCyeqHI\\\"\u003ekarl S\u003c/a\u003e\",[3387],{\"_352\":368,\"_354\":3388,\"_356\":3389},\"https://nextjs-blog-gray.vercel.app/article/compound-components\",{\"_358\":3390,\"_354\":3391},\"Dongho Kim\",\"https://github.com/mass2527\",\"data:image/webp;base64,UklGRhQBAABXRUJQVlA4IAgBAADQCgCdASpkAE8APp1AmkkoLbEmLbZrmiATiWkGcA1EnkQMsgqoSSeR3v+LuDO4HILbVDwCeyikxDNMGw0ITbc1v8mWEEFGO15dTPrw1Y+CVl3T8kZPl0QgM59uUx5YwAD+8a/4y9zUHr5IbslMiwzoOx8tHQ4MqQ8uKeROnY0l/RJYRhrSuDvjgInbNlgDsDdyrVYB0c75VYE1qaOyTNgtgBbhViCXnaTiiaaqZsJRzm/3gFzHKpgFSGe38bePzvdQevdxjbflpR1eOY4x+xRqmQKi3WZWJPM0yfw9NfLTREkihr7sPrMHjPZn5lj9uFvaF8oO3KAjAieTmmC2zXiIWE6aG3s4AAA=\",\"by karl S\",\"Photo by karl S\",\"compound-components-with-react-hooks\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/compound-components-with-react-hooks.mdx\",{\"_55\":3398,\"_57\":3399,\"_67\":3403,\"_103\":3412,\"_105\":3413},\"February 17th, 2019\",{\"_59\":2590,\"_61\":3400,\"_63\":3401,\"_65\":3402},1.935,116100,387,{\"_69\":3404,\"_71\":3405,\"_73\":3406,\"_75\":3407,\"_78\":3408,\"_93\":3410,\"_99\":3411},\"🚨 Big Announcement: I'm a full-time educator! 👨‍🏫\",\"2019-02-17T00:00:00.000Z\",\"After years of teaching on the side, I've decided to take the plunge and go full-time as an educator!\",[270],{\"_80\":3409},[270,340],\"kentcdodds.com/content/blog/full-time-educator/banner\",\"data:image/webp;base64,UklGRhABAABXRUJQVlA4IAQBAACQCwCdASpkAEMAPrFMnUotrC+hsljLMfAWCWcAzy3hwCLnAkD52IPDmDleZVs2kBkRMoPq4IC6tU9gExxf7ML5r3uIfni8eSN0OUoIcJsKrwrQQeQ4W5/e0s6M85b3hDkjYKz94AC+ropjpRs4WdLQdUgu/2codwxIMB3wBa0itR5EPfZfMmfrzJIYlIH2TUMR9Nmimwcl7FWOVE+n/FngswVBI8impXXJcAUl6eIQnW2Z5FqVYAL/Abk5LGqbUVwwjRFIJNf67T4gzHWnZNmKcJk+H0htAa0lPb4hmkoXbwWiXhR5ws9pZTyv5oXoJZdbOr1W1lCOqFWFNycUz6L2wAAAAA==\",\"full-time-educator\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/full-time-educator.mdx\",{\"_55\":3415,\"_57\":3416,\"_67\":3420,\"_103\":3433,\"_105\":3434},\"February 4th, 2019\",{\"_59\":331,\"_61\":3417,\"_63\":3418,\"_65\":3419},3.38,202800,676,{\"_69\":3421,\"_71\":3422,\"_73\":3423,\"_78\":3424,\"_93\":3428,\"_97\":3429,\"_99\":3430,\"_95\":3431,\"_101\":3432},\"Please stop building inaccessible forms (and how to fix them)\",\"2019-02-04T00:00:00.000Z\",\"I regularly find inaccessible forms. In this post we'll check out some common accessibility problems and fix them.\",{\"_80\":3425},[3426,3427],\"Accessibility\",\"Forms\",\"unsplash/photo-1493119508027-2b584f234d6c\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/iacpoKgpBAM\\\"\u003eGoran Ivos\u003c/a\u003e\",\"data:image/webp;base64,UklGRlwBAABXRUJQVlA4IFABAACwDACdASpkAGQAPp1Em0m/tbUtKxWrQ/ATiWkG+OZWDTgCewF3wWxP27kwvb49fWBDc2cIgLskwimC991/b6BeGRihilD5E8ogq/2dj4OcM2HubmYX0QM3LBihOytHmt1u1CV0C4qGP7CphwlAAAD+ysfITF8PHbLA75dGaH54vNV4ULO+/BzkOXh+TdJc6DYugi3kA9NiS55WOWXcP8NAfwr+Nd7GznHfgxTtZB9mk3ORtE1/o6NPCdGGlmHDwbFynQvAebECodBqjkVe4h7x7eorr04fTux2HLBAO5lYctO2ABEKb3fGt9+KO+PemYvAFa8KyIYZBwny5XjSqJnl8lKbjWLByAFv7Z3bo+qohVE1xMoPUNntw3h7vTF3CHvN74hrPvmOeMqaUXgjxr+Owd8HVU7f/2fF5eg4Ra2zIWdKrU8mUaOjfPEZjX4aAAA=\",\"by Goran Ivos\",\"Photo by Goran Ivos\",\"please-stop-building-inaccessible-forms-and-how-to-fix-them\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/please-stop-building-inaccessible-forms-and-how-to-fix-them.mdx\",{\"_55\":3436,\"_57\":3437,\"_67\":3441,\"_103\":3452,\"_105\":3453},\"January 14th, 2019\",{\"_59\":424,\"_61\":3438,\"_63\":3439,\"_65\":3440},12.09,725400,2418,{\"_69\":3442,\"_71\":3443,\"_73\":3444,\"_78\":3445,\"_93\":3447,\"_97\":3448,\"_99\":3449,\"_95\":3450,\"_101\":3451},\"2018 in Review\",\"2019-01-14T00:00:00.000Z\",\"An overview of what I've accomplished in 2018 and a bit about my goals for 2019.\",{\"_80\":3446},[790,3442],\"unsplash/photo-1504006833117-8886a355efbf\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/bKhETeDV1WM\\\"\u003eGeran de Klerk\u003c/a\u003e\",\"data:image/webp;base64,UklGRrYAAABXRUJQVlA4IKoAAACQBwCdASpkAEMAPp1Mn0uwrCohpZVaMhATiWkA0BgFV57BMt/OzkRLfe9NPqklHRYhx/MuLe61AJuqT7kNVfar7NzxFVQA/vW0AXamFg6MxefAoBGe76Csx8zJYOJwFbzxOX4TueMS5GpuL2wTsVH/ltlN/COStXAK0w5Y1bMjEH8lAqD7/ZXSJIzCv+d5m7sxZfDcUApl09nxGpv2aKUKyN6Dt75BBAAAAA==\",\"by Geran de Klerk\",\"Photo by Geran de Klerk\",\"2018-in-review\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/2018-in-review.mdx\",{\"_55\":3455,\"_57\":3456,\"_67\":3460,\"_103\":3475,\"_105\":3476},\"December 31st, 2018\",{\"_59\":138,\"_61\":3457,\"_63\":3458,\"_65\":3459},7.265,435900,1453,{\"_69\":3461,\"_71\":3462,\"_73\":3463,\"_78\":3464,\"_349\":3468,\"_93\":3471,\"_97\":3472,\"_99\":3473,\"_95\":3474,\"_101\":3474},\"React Hooks: Array Destructuring Fundamentals\",\"2018-12-31T00:00:00.000Z\",\"React's upcoming useState hook relies on array destructuring, let's dive in and see how that feature works.\",{\"_80\":3465},[790,297,3466,3467,1223],\"babel\",\"Destructuring\",[3469],{\"_352\":470,\"_354\":3470},\"https://medium.com/p/67015a14c3c6\",\"kentcdodds.com/content/blog/react-hooks-array-destructuring-fundamentals/banner\",\"I made this all by myself... Well... Except for \u003ca href=\\\"https://arcweb.co/is-react-native-a-viable-framework-for-financial-applications/react-logo-1000-transparent\\\"\u003ethe react logo\u003c/a\u003e... \u003ca href=\\\"https://kcd.im/mft\\\"\u003eAnd the font... and the theme.\u003c/a\u003e\",\"data:image/webp;base64,UklGRp4AAABXRUJQVlA4IJIAAAAwBgCdASpkADIAPp1In0ylr7CiJJQKAhATiWkA0qwDlNd1A2vSbWuYFR7RqgnGn5xMHKZhGYMCy1QAAP71WLtk70v7DCYJxMaf93Yf19/ztQ+/2D2K5+0XRW8xfcdIk1ukXZ2AQ9LREowj5K33vstvSSr/R6PCn0NKkZnTJQl9jfEFFIyayBbT2JXHupRu2iwAAA==\",\"I made this all by myself... Well... Except for the react logo... And the font... and the theme.\",\"react-hooks-array-destructuring-fundamentals\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/react-hooks-array-destructuring-fundamentals.mdx\",{\"_55\":3478,\"_57\":3479,\"_67\":3483,\"_103\":3497,\"_105\":3498},\"December 24th, 2018\",{\"_59\":709,\"_61\":3480,\"_63\":3481,\"_65\":3482},9.25,555000,1850,{\"_69\":3484,\"_71\":3485,\"_73\":3486,\"_78\":3487,\"_349\":3489,\"_93\":3492,\"_97\":3493,\"_99\":3494,\"_95\":3495,\"_101\":3496},\"React Hooks: What's going to happen to my tests?\",\"2018-12-24T00:00:00.000Z\",\"How can we prepare our tests for React's new hooks feature?\",{\"_80\":3488},[790,297,985],[3490],{\"_352\":368,\"_354\":3491},\"https://edykim.com/ko/post/react-hooks-whats-going-to-happen-to-my-tests\",\"unsplash/photo-1538291397218-01e8830ddc68\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/OFVMOjjjIic\\\"\u003eMat Reding\u003c/a\u003e\",\"data:image/webp;base64,UklGRuoAAABXRUJQVlA4IN4AAADwCwCdASpkAEMAPqVAm0m5rakmsHY8OzAUiWkA06HkQMWzuxQp4zc744kl1c2qJQz+SoGAT6g19qXX6UUW3xQMxl+H4WzZ5amh/aC3jHS19bkppOc29sWOgAGQO1k4Vw5KAto5+Pb/gAD+8CXsNLUc+MaKptFksph75YFDzRRQ2S5FwzW0LUAkoXZq2NHV6wmjL2mVq+L9rMQCfyOGTtFXcD7dCH5CtgRsOAfn3htHIRDN+bTE2O8JPBFVqryMHfxOdRXiaqPflsvLTEnFFF8GmBxV9qQ1npdGT4BTAAA=\",\"by Mat Reding\",\"Photo by Mat Reding\",\"react-hooks-whats-going-to-happen-to-my-tests\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/react-hooks-whats-going-to-happen-to-my-tests.mdx\",{\"_55\":3500,\"_57\":3501,\"_67\":3505,\"_103\":3517,\"_105\":3518},\"December 17th, 2018\",{\"_59\":331,\"_61\":3502,\"_63\":3503,\"_65\":3504},3.775,226500,755,{\"_69\":3506,\"_71\":3507,\"_73\":3508,\"_78\":3509,\"_93\":3512,\"_97\":3513,\"_99\":3514,\"_95\":3515,\"_101\":3516},\"React Hooks: What's going to happen to react context?\",\"2018-12-17T00:00:00.000Z\",\"With the cool new stuff coming to React (Hooks/Suspense), what's going to happen to the context api?\",{\"_80\":3510},[790,297,3511,1223],\"react Context\",\"unsplash/photo-1527117499127-8169c886e66e\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/VSrHD079L78\\\"\u003eJoel Fulgencio\u003c/a\u003e\",\"data:image/webp;base64,UklGRnABAABXRUJQVlA4IGQBAABwCwCdASpkAJYAPp1Kn00ws7CloPgKInATiWdu4Dw5ldGpAhKsATkNY7Gv8DuMRg2Aio1R1WvRxKeZ7UWYxZqONvBLxj7M3zYCLo5tuWSibJb8v0GQM8PKvZJ01xClkdqugkUAAP7owwTn7tVa+n8/69XNw3QyGJPpNex9yPrbDeLCpQh58MMYqxGHqy+YNpaODP3LiN9eWX7nWLYzr3vmEKEIEcqfX4XBSAfKGp+wqEDobSVXC3e4AWfYFsGq+LQe+V1JsqAiRkoG61i8vl7AbRiGGjEDt8CbNqbkoZgugVZFS1jeLH27Hqdb3mmIvm8OLW8Vs6l1jy2EuErSTTlETh4Mcor91AGbo+M2UstzNHZeKMGgcOUTIn7xx5yafwg/wL5l2P9zHyVc41b9W/iOn7iqBgQ9v0QFd6MIVb3v5qg/0CvDD9GHKPf2ame/4U8vEWuJ9bPofByNG3sOumGYoVQAAA==\",\"by Joel Fulgencio\",\"Photo by Joel Fulgencio\",\"react-hooks-whats-going-to-happen-to-react-context\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/react-hooks-whats-going-to-happen-to-react-context.mdx\",{\"_55\":3520,\"_57\":3521,\"_67\":3525,\"_103\":3539,\"_105\":3540},\"December 10th, 2018\",{\"_59\":214,\"_61\":3522,\"_63\":3523,\"_65\":3524},5.49,329400,1098,{\"_69\":3526,\"_71\":3527,\"_73\":3528,\"_78\":3529,\"_349\":3531,\"_93\":3534,\"_97\":3535,\"_99\":3536,\"_95\":3537,\"_101\":3538},\"React Hooks: What's going to happen to render props?\",\"2018-12-10T00:00:00.000Z\",\"What am I going to do with all these render props components now that react hooks solve the code reuse problem better than render props ever did?\",{\"_80\":3530},[297,1223,2621],[3532],{\"_352\":368,\"_354\":3533},\"https://edykim.com/ko/post/react-hooks-whats-going-to-happen-to-render-props\",\"unsplash/photo-1531871165793-30177cc75a44\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/anXB3AhQcJ0\\\"\u003eNadine Shaabana\u003c/a\u003e\",\"data:image/webp;base64,UklGRugAAABXRUJQVlA4INwAAABQCQCdASpkAEMAPrlMnksnLCmhsHOcOYAXCWkGcAzYCqEfpxhdS+HsVHNtjTeKL4MXSsdo3GxnIBFqn/Cia17Hzfk0qBKndjhJbtPPcoaL8IG9oAD+uiL3xkjbZYHeL0SexhiOp/W43zsV/L8RsgdxwHJX0T0dZGgdBJ2wA5rvSr697LBQFH9x5eYGjtIsvWk03JNEgctjKOfc8R0KNBJVFK26CH4/8rB3xhqCemk+qRcuGwOTAKc/QaD8eDL12iqI7xcplZqE6+tsxDBJypT/lMekEPsBkBXuhAAA\",\"by Nadine Shaabana\",\"Photo by Nadine Shaabana\",\"react-hooks-whats-going-to-happen-to-render-props\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/react-hooks-whats-going-to-happen-to-render-props.mdx\",{\"_55\":3542,\"_57\":3543,\"_67\":3547,\"_103\":3558,\"_105\":3559},\"December 3rd, 2018\",{\"_59\":214,\"_61\":3544,\"_63\":3545,\"_65\":3546},5.265,315900,1053,{\"_69\":3548,\"_71\":3549,\"_73\":3550,\"_78\":3551,\"_93\":3553,\"_97\":3554,\"_99\":3555,\"_95\":3556,\"_101\":3557},\"How Gratitude can make you a better developer\",\"2018-12-03T00:00:00.000Z\",\"What does gratitude have to do with software development?\",{\"_80\":3552},[340],\"unsplash/photo-1510022079733-8b58aca7c4a9\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/dBiIcdxMWfE\\\"\u003eSebastián León Prado\u003c/a\u003e\",\"data:image/webp;base64,UklGRnoBAABXRUJQVlA4IG4BAADwDQCdASpkAH0APp1Gm0ooLzIhqlOcAkATiWcGeSUA9+/9eXBN3qM9MSsY+odK70HG0d4MOXwW7Fuj5DlJj/2DLTnZEigb+WorJ5rdsxsx80+nHKypaRiivrdXSjcZaAsTymxVaiayLeeMsHa7VM8hlomdPQoB8AAA/mdEhUD9eunu//b+R2ELS1SYuL3l5Fe9H+PZOS8BF5aKasmJm6SL6im/a9/3RasAoFJRxXTfibEygOUwaK4kPR7pgPhpfavHXvPEzhk2MKvNn+MAQ2rNEUwFBREwldr1k/3nb6Y2Uqy44nu2BZf8dmHnkG07NGpMic9hQ8XFo5wGuLy8KHkkY7g+rbirSBAV1cxdsAVSNMorgz5t+o2A94qEEkIW5T1OolftpG3jJ3pk1G7wttWsIzDT/Qap3ddT+clIWhzdc00sj3VPxLPrzz9vyU5wlVFE4Cz0+Re/hLJwKUML2WKbWULcOZ/G2Zmc2FrFwAA=\",\"by Sebastián León Prado\",\"Photo by Sebastián León Prado\",\"how-gratitude-can-make-you-a-better-developer\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-gratitude-can-make-you-a-better-developer.mdx\",{\"_55\":3542,\"_57\":3561,\"_67\":3565,\"_103\":3573,\"_105\":3574},{\"_59\":214,\"_61\":3562,\"_63\":3563,\"_65\":3564},5.035,302100,1007,{\"_69\":3566,\"_71\":3549,\"_73\":3567,\"_78\":3568,\"_93\":3571,\"_99\":3572},\"Introducing a new course: Simplify React Apps with React Hooks and Suspense\",\"Learn about the massive improvements coming to function components in React via a fresh new course showing you how to refactor an existing...\",{\"_80\":3569},[297,1223,3570],\"react suspense\",\"kentcdodds.com/content/blog/introducing-a-new-course-simplify-react-apps-with-react-hooks-and-suspense/banner\",\"data:image/webp;base64,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\",\"introducing-a-new-course-simplify-react-apps-with-react-hooks-and-suspense\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/introducing-a-new-course-simplify-react-apps-with-react-hooks-and-suspense.mdx\",{\"_55\":3576,\"_57\":3577,\"_67\":3581,\"_103\":3597,\"_105\":3598},\"November 12th, 2018\",{\"_59\":214,\"_61\":3578,\"_63\":3579,\"_65\":3580},5.655,339300,1131,{\"_69\":3582,\"_71\":3583,\"_73\":3584,\"_349\":3585,\"_78\":3591,\"_93\":3593,\"_97\":3594,\"_99\":3595,\"_95\":3596,\"_101\":643},\"Common Testing Mistakes\",\"2018-11-12T00:00:00.000Z\",\"Today let's talk about some common mistakes that people make when testing JavaScript applications.\",[3586],{\"_352\":464,\"_354\":3587,\"_356\":3588},\"https://medium.com/@maxmedina05_93965/errores-comunes-de-testing-3df78d237846\",{\"_358\":3589,\"_354\":3590},\"Max Medina\",\"https://medium.com/@maxmedina05_93965\",{\"_80\":3592},[790,985],\"kentcdodds.com/content/blog/common-testing-mistakes/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/KputBgWH-Ek\\\"\u003eJeremy Bishop\u003c/a\u003e\",\"data:image/webp;base64,UklGRhIBAABXRUJQVlA4IAYBAACQCACdASpkAEsAPrVMm0o/uCkhszhra/AWiWUG+OaU0AW+R/G/gHxjpTv12hmvWgMnwDF7CGWjyNTbcNh4YrdiDVXIneF4xHIEys9YAAD+7jvxLPs46ip3NeJeDshytq/vx5Yuk+kKWHRNM4Qjn7ayAy5KxOON827Bpb6PnfASi4JNFWOgCTT9NeduRoX3rdy6LLIDOse+8pqUo8HPmj57PaAuGIxeJjhfaaEFowomFkgslcVhe5TENQABydKpkny1pNrNjXjbtWn6neLtQpxVwrWzJDtsuiJi/7u8zMa5Te2Mfvj2xplctqAgM+NE+zOX/iYMTMSz5fTYfwZK9QDMO3cvjvAA\",\"by Jeremy Bishop\",\"common-testing-mistakes\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/common-testing-mistakes.mdx\",{\"_55\":3600,\"_57\":3601,\"_67\":3605,\"_103\":3619,\"_105\":3620},\"November 8th, 2018\",{\"_59\":1137,\"_61\":3602,\"_63\":3603,\"_65\":3604},2.54,152400,508,{\"_69\":3606,\"_71\":3607,\"_73\":3608,\"_78\":3609,\"_349\":3611,\"_93\":3616,\"_97\":3617,\"_99\":3618,\"_95\":3450,\"_101\":3451},\"UI Testing Myths\",\"2018-11-08T00:00:00.000Z\",\"Some common myths around testing and what the reality is...\",{\"_80\":3610},[297,985],[3612,3614],{\"_352\":353,\"_354\":3613},\"https://makotot.dev/posts/ui-testing-myth-translation-ja\",{\"_352\":1617,\"_354\":3615},\"https://medium.com/@hzcorner/翻譯-ui-測試迷思-3ce1baf5d94a\",\"unsplash/photo-1541414779316-956a5084c0d4\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/KsMD_tAdjg0\\\"\u003eGeran de Klerk\u003c/a\u003e\",\"data:image/webp;base64,UklGRqIAAABXRUJQVlA4IJYAAADQBgCdASpkAEgAPp1InkulsymhpZK7CmATiWkA1jACuQbwom9rbwzLC4lyr05DzQQFl7WkunEvMwriADpALQAA/vS7c6ab2vvbjdYPOZCeD5n8Elcc8Gq+lA0eQsTFX+930I8N5zrbslserhLQGPP9/DJN/Pk8lgUC7g0n9kzAgc8LGAf/rKeSyk6HF1KBvHKvtcGsgAA=\",\"ui-testing-myths\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/ui-testing-myths.mdx\",{\"_55\":3622,\"_57\":3623,\"_67\":3627,\"_103\":3638,\"_105\":3639},\"November 5th, 2018\",{\"_59\":331,\"_61\":3624,\"_63\":3625,\"_65\":3626},3.275,196500,655,{\"_69\":3628,\"_71\":3629,\"_73\":3630,\"_78\":3631,\"_93\":3633,\"_97\":3634,\"_99\":3635,\"_95\":3636,\"_101\":3637},\"The Merits of Mocking\",\"2018-11-05T00:00:00.000Z\",\"What are you doing when you mock something, and when is it worth the cost?\",{\"_80\":3632},[790,985],\"unsplash/photo-1541364983171-a8ba01e95cfc\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/pOUA8Xay514\\\"\u003eCharles Deluvio 🇵🇭🇨🇦\u003c/a\u003e\",\"data:image/webp;base64,UklGRrYBAABXRUJQVlA4IKoBAACwFACdASpkAJYAPrFMm0oyuCMhslprewAWCWkG+ObJgCiiJRu1EsVEKj5Kb0vS+AGVJ+Z9wxxszk+Betqy1Wqgrrfo9UN5KJEWs15JhEwRVyegTNr+tdmqoFCPB3dVASwsAnN2z0WZaWiXJHSzcxgsRAVOncucLUWO9cbLBedJGxGVzi/S/aoe1peK2Zzm26uCmroMAZI2S7FTL5Kg307Dtej12fz9uAJa3Hg7A5wA/vCpSUo1dCCPddj9PIob0TVMTQHJN3wHdEocP1TKyEL+s+CfLVwkl0W7GwlriTbI2wlVfeX0VM+baLgHjhiIYLM6Qx8GHrC0ktBl1KgNo0MYNgI64hQ6ChHiazVnkh38Up6SWJ057GGz8eeWOV7x5gFT4NZJMitNktmLIwuaWiSc06LuuwcRW/qp2qICwtT4PWqjrQrhz7iL/Wgq/rdBev/NjMZjv7hv+rUZ9Z4RIUOT4qD8zupLC3uNxu/MURX/C1ibK31mshaDyuFFm1dg6PYxhs9vu0ux2oOxiKXG3U7ZHBqAkuYo9dVqAE2S1nvaLyaa+RH5XjigAAA=\",\"by Charles Deluvio 🇵🇭🇨🇦\",\"Photo by Charles Deluvio 🇵🇭🇨🇦\",\"the-merits-of-mocking\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/the-merits-of-mocking.mdx\",{\"_55\":3641,\"_57\":3642,\"_67\":3646,\"_103\":3658,\"_105\":3659},\"October 22nd, 2018\",{\"_59\":331,\"_61\":3643,\"_63\":3644,\"_65\":3645},3.645,218700,729,{\"_69\":3647,\"_71\":3648,\"_73\":3649,\"_78\":3650,\"_93\":3653,\"_97\":3654,\"_99\":3655,\"_95\":3656,\"_101\":3657},\"The time I messed up\",\"2018-10-22T00:00:00.000Z\",\"That time I went too far with Test Driven Development and forgot a very important step\",{\"_80\":3651},[3652,790,985],\"Tdd\",\"unsplash/photo-1533374206871-33b8f07c216c\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/kabtmcdcAbk\\\"\u003eJelleke Vanooteghem\u003c/a\u003e\",\"data:image/webp;base64,UklGRmQDAABXRUJQVlA4WAoAAAAgAAAAYwAARgAASUNDUCQCAAAAAAIkYXBwbAQAAABtbnRyUkdCIFhZWiAH4QAHAAcADQAWACBhY3NwQVBQTAAAAABBUFBMAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGzKGpWCJX8QTTiZE9XR6hWCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApkZXNjAAAA/AAAAGVjcHJ0AAABZAAAACN3dHB0AAABiAAAABRyWFlaAAABnAAAABRnWFlaAAABsAAAABRiWFlaAAABxAAAABRyVFJDAAAB2AAAACBjaGFkAAAB+AAAACxiVFJDAAAB2AAAACBnVFJDAAAB2AAAACBkZXNjAAAAAAAAAAtEaXNwbGF5IFAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29weXJpZ2h0IEFwcGxlIEluYy4sIDIwMTcAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAIPfAAA9v////7tYWVogAAAAAAAASr8AALE3AAAKuVhZWiAAAAAAAAAoOAAAEQsAAMi5cGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltzZjMyAAAAAAABDEIAAAXe///zJgAAB5MAAP2Q///7ov///aMAAAPcAADAblZQOCAaAQAAcAsAnQEqZABHAD6xSplKO6+rKTQa6xNwFglnBnANAR5MHJmRzXEryxk0M4DyRE5sPDzhzs/eqvm2HNtOwnEae1Sl5ZbT8E5uSOci10dTH+89YrZU3aJtZYR+rLaeGhMm/5POAAD+8sCO9OI712p0YdxUN2THm3jsAC39F/7KHrRucmQcjpQkp3AffvfsfnmAn6c6l1sGKqri+kxkMeS18GIUiHKod7kT5JIBku/ujsILvjq2CtlB9OI7y13An5Jv/h8cxgDn5LSwA4+4g+kGuKmAxf41J+gRbnKDte5KfJ9xye8WxGYB4y0H+oUFU/qxpIZ6hnxcyQX/cIksZcUkXTInmUG9/tBIkXcmXzqKYIUqr/eNdAj0AAAA\",\"by Jelleke Vanooteghem\",\"Photo by Jelleke Vanooteghem\",\"the-time-i-messed-up\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/the-time-i-messed-up.mdx\",{\"_55\":3661,\"_57\":3662,\"_67\":3666,\"_103\":3679,\"_105\":3680},\"October 20th, 2018\",{\"_59\":1137,\"_61\":3663,\"_63\":3664,\"_65\":3665},2.07,124200,414,{\"_69\":3667,\"_71\":3668,\"_73\":3669,\"_78\":3670,\"_93\":3674,\"_97\":3675,\"_99\":3676,\"_95\":3677,\"_101\":3678},\"React is an implementation detail\",\"2018-10-20T00:00:00.000Z\",\"...yep, you read that right. Most of the course actually has nothing to do with React specifically.\",{\"_80\":3671},[790,985,297,3672,3673],\"Vue\",\"Angular\",\"unsplash/photo-1507037102386-199766bac257\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/3ud_v3x1lZI\\\"\u003eAndrea Natali\u003c/a\u003e\",\"data:image/webp;base64,UklGRi4BAABXRUJQVlA4ICIBAABwCQCdASpkAEQAPrlWoU2psi4vKTM7gkAXCWUG+BpivuAT5jYL31LyfKbgA8uUlCwxbHFIObmgNdLbtxXoRHFA14aBoe7xrdwN3jbaEeLdOYwG9eAA/uKx7skP9sd6oU2dSc/+Gr7XlmYAPtRO03PLg8SJsADeYG8IzZMYymzPxeqbHxaQASx3dpZyMlXlBUCVJjczI2tDhXfrzap5ZWMtlpM4QQyghfRgB6zhEB+Z/ExBUqSv8Gvk40w2nEvDbzi8OuoW6w0bYGKfywHiUIYphXwOcAHcGXVxQKXuKiSLG8g00FG+wmgXpWUi+EMIBpUirsWnJK5oAiMqKxivQeqJgckQSD+TVSnTBg40qgFQFTStoZ5iXgUrqGhsC6ic/6AAAA==\",\"by Andrea Natali\",\"Photo by Andrea Natali\",\"react-is-an-implementation-detail\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/react-is-an-implementation-detail.mdx\",{\"_55\":3682,\"_57\":3683,\"_67\":3687,\"_103\":3698,\"_105\":3699},\"October 15th, 2018\",{\"_59\":331,\"_61\":3684,\"_63\":3685,\"_65\":3686},3.095,185700,619,{\"_69\":3688,\"_71\":3689,\"_73\":3690,\"_78\":3691,\"_93\":3693,\"_97\":3694,\"_99\":3695,\"_95\":3696,\"_101\":3697},\"Why you've been bad about testing\",\"2018-10-15T00:00:00.000Z\",\"Some common struggles people have with testing, and things you can do to improve.\",{\"_80\":3692},[985,790],\"unsplash/photo-1527455505333-9d3ac7adf523\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/DVzt7cvRKRo\\\"\u003eJonny Caspari\u003c/a\u003e\",\"data:image/webp;base64,UklGRlABAABXRUJQVlA4IEQBAACwDgCdASpkAJYAPqVOnku5uKMnqLXq0zAUiWkHBYAL2Cy1PVVRE2cd/IX4iJZHpj7+72/DxTEWBGybLOv1Q40JdO0abM0sTi4bt1gK7OlNMviOHTdigb0k52XIi7GKP4JSYybwHqdEALvTVgMSnmn+I86DRbaiq7BwJ3qPVAAA/vQ7VPZNdSre/71E5g/MDPPeQ6lRDB3Z/h0Jj+X1+C1ylSjeFd/cukpKOeTDoITBXoyuL3dbUJ6w/X/xeK5dr98jjfs4eLs+UrpJaM3Oehea0EwnQ+9VzPleoqn8C6CGthtukTZFjgQJVuWssP47ypsO8yoGYGUuIFf/MZvhiinjLuS8mf9+z6UyC45jtnBF5m8c64xwLkPu5MUFc18rPH4LFR601RgEdlR85o8AQlCBbzLsOErJLmZaTcdLW+dW7X4AAAA=\",\"by Jonny Caspari\",\"Photo by Jonny Caspari\",\"why-youve-been-bad-about-testing\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/why-youve-been-bad-about-testing.mdx\",{\"_55\":3701,\"_57\":3702,\"_67\":3706,\"_103\":3717,\"_105\":3718},\"October 11th, 2018\",{\"_59\":331,\"_61\":3703,\"_63\":3704,\"_65\":3705},3.425,205500,685,{\"_69\":3707,\"_71\":3708,\"_73\":3709,\"_78\":3710,\"_93\":3712,\"_97\":3713,\"_99\":3714,\"_95\":3715,\"_101\":3716},\"Demystifying Testing\",\"2018-10-11T00:00:00.000Z\",\"How to get from aimlessly testing or not testing at all to really understanding how and what to test.\",{\"_80\":3711},[790,985],\"unsplash/photo-1539213690067-dab68d432167\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/36plOdZK_uY\\\"\u003ePaul Gilmore\u003c/a\u003e\",\"data:image/webp;base64,UklGRvwAAABXRUJQVlA4IPAAAADQCACdASpkAH0APp1GnkyloyMiIdVbKLATiWkGgHUA+np6wBbMO/PeGWWDrmUbXlCrkjuyum8OsA3DTTmhNtkXhrkwe5UMIkobZrMa/GKwAP71MaxFBoPi246EcOM6Kst212SRUXs75nRPVUhd9ux4XdxnOoNETImBCtCP6vXTFhOKP7qP2Phrk8wSs5a40or0oRO1Z9mz+21/So7yYyi1Pe4VMtDY5YuNHyce8vTCb5PT4BruGAg8YdUvIGh7GqNfeCESKbkluSdSsxMlXsXx3yEOXb1ZqCuicyG/c0bjNOTGL1j17OmfYn2NthCPIAA=\",\"by Paul Gilmore\",\"Photo by Paul Gilmore\",\"demystifying-testing\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/demystifying-testing.mdx\",{\"_55\":3720,\"_57\":3721,\"_67\":3722,\"_103\":3733,\"_105\":3734},\"October 8th, 2018\",{\"_59\":331,\"_61\":2377,\"_63\":2378,\"_65\":2379},{\"_69\":3723,\"_71\":3724,\"_73\":3725,\"_78\":3726,\"_93\":3728,\"_97\":3729,\"_99\":3730,\"_95\":3731,\"_101\":3732},\"Confidently Shipping Code\",\"2018-10-08T00:00:00.000Z\",\"Why I care about testing\",{\"_80\":3727},[985,790],\"unsplash/photo-1535630110599-ba0211b78d02\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/xgP0GNl9Gzg\\\"\u003eVidar Nordli-Mathisen\u003c/a\u003e\",\"data:image/webp;base64,UklGRqQAAABXRUJQVlA4IJgAAADwBQCdASpkAD4APp1Ink0wp7oiIlgKK0ATiWkDsB3uAIWEXCVpn5av/3FujSG9E/zvkZdsAOQqAAD+8n9r21A62AJyK+MnG4EzA70DYp1g85JsailPtb+Khn1qqaUWnXV5relXE9bd7Dzz1s3xVAa+H7qyY3Q/mMF0y2/ydU75/2fEPgq5tyN+cuyN1Kx3O6VTDWdMPAAAAA==\",\"by Vidar Nordli-Mathisen\",\"Photo by Vidar Nordli-Mathisen\",\"confidently-shipping-code\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/confidently-shipping-code.mdx\",{\"_55\":3736,\"_57\":3737,\"_67\":3741,\"_103\":3753,\"_105\":3754},\"October 1st, 2018\",{\"_59\":191,\"_61\":3738,\"_63\":3739,\"_65\":3740},6.285,377100,1257,{\"_69\":3742,\"_71\":3743,\"_73\":3744,\"_78\":3745,\"_93\":3748,\"_97\":3749,\"_99\":3750,\"_95\":3751,\"_101\":3752},\"React/JSX as a server-side templating language\",\"2018-10-01T00:00:00.000Z\",\"Using React function components to render your website's skeleton index.html\",{\"_80\":3746},[297,3747],\"Jsx\",\"unsplash/photo-1538237764553-ebda033d524f\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/3vp_7D1xd2A\\\"\u003eDwinanda Nurhanif Mujito\u003c/a\u003e\",\"data:image/webp;base64,UklGRnoBAABXRUJQVlA4IG4BAAAQDQCdASpkAJYAPrlOnUu8uK+hrVwaW5AXCWlu4DV809QDG/5U5eoUxByZD9X25rx5+x2nlpcZse9o2pK5538Ymwjo+HExTuvlBpdtOwZY5pMuG2+K/lKDB21ay0udA6RHORr+u0/D80FO3HqD/Hl8AAD+9AUnyxiiSpUo2yagCc4O9oNzR0GjlD0i4gWBVj85oLlZZi0rOOXWRpIQwBziEoDRrDz0uR/MMfTugPwiluBrcC+AHsfCG7cPTVRfMAdUXScpf27CjS38x0F9zepBjIFIA86/BwCpPSeiTc9zhT7xVmnysiHO+t5zV+3icPV+T/Oiz8ENQ6/s6Zsbkiy/iAxANJAzGt4EzLseO9jjb2Yc5rn26PLuD8hNE4AIkM7R9mRTXURJ0Bjkq5Y2Ls5lcnVA0RYpKZCZ+8jzL5zpxuLL4wPyhFLnPghFMpVfl5/sv2zqnFVZOH6cjURILEZPC6iXGHeOrgT25ZYcAAA=\",\"by Dwinanda Nurhanif Mujito\",\"Photo by Dwinanda Nurhanif Mujito\",\"react-jsx-as-a-server-side-templating-language\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/react-jsx-as-a-server-side-templating-language.mdx\",{\"_55\":3756,\"_57\":3757,\"_67\":3761,\"_103\":3773,\"_105\":3774},\"September 24th, 2018\",{\"_59\":60,\"_61\":3758,\"_63\":3759,\"_65\":3760},15.96,957600,3192,{\"_69\":3762,\"_71\":3763,\"_73\":3764,\"_78\":3765,\"_93\":3768,\"_97\":3769,\"_99\":3770,\"_95\":3771,\"_101\":3772},\"How I am so productive\",\"2018-09-24T00:00:00.000Z\",\"People regularly ask me how I get so much done. Here's my secret...\",{\"_80\":3766},[790,1089,340,3767],\"self\",\"unsplash/photo-1536006222476-a83275cfa5b8\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/2p7BD4T5GSE\\\"\u003elalo Hernandez\u003c/a\u003e\",\"data:image/webp;base64,UklGRvoAAABXRUJQVlA4IO4AAAAQCgCdASpkAEMAPrlQoEwzMS2iqvVcgmAXCWcGcAznCqEEsNJ1LF0d0mE9XzZVVhJrqzG7r16zBp7/6V/S2CRwEL7h46nFb/xlu5bmLnIH0XTWByPkAy5wEAD++i0qWCasPUi0Js3oPo3XBAZcN4I2Z2CFW9ujjJ5cGvkm2VNfAAfHQ0X46iRBSJiHmmCFbeEuhZYY08BC1xq07TZ5iYopPagnlMJhQa1hP1v7gdGc2u3I+ynqrIoZEHexKQ0Bq1zFIirqwOGW6D45ibpE0XCv3tmY3+wdE0ioLiTImwnhcAmbQj7RCICGpLZyKMAA\",\"by lalo Hernandez\",\"Photo by lalo Hernandez\",\"how-i-am-so-productive\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-i-am-so-productive.mdx\",{\"_55\":3776,\"_57\":3777,\"_67\":3781,\"_103\":3792,\"_105\":3793},\"September 17th, 2018\",{\"_59\":60,\"_61\":3778,\"_63\":3779,\"_65\":3780},15.87,952200,3174,{\"_69\":3782,\"_71\":3783,\"_73\":3784,\"_78\":3785,\"_93\":3787,\"_97\":3788,\"_99\":3789,\"_95\":3790,\"_101\":3791},\"Getting Noticed and Widening Your Reach\",\"2018-09-17T00:00:00.000Z\",\"Some things you can do to gain a wider audience and get your stuff noticed\",{\"_80\":3786},[638,1918,340],\"unsplash/photo-1537095267667-f65b33e26331\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/i1Mf6EkLf9E\\\"\u003eTadeusz Lakota\u003c/a\u003e\",\"data:image/webp;base64,UklGRvIAAABXRUJQVlA4IOYAAABwDACdASpkAEMAPpU6lkgntiIhNBi7EsASiWkGcA1uCp6L6L9X0P4C0GXtR0Vfe1iRsBde4mQscjrr18Ri17SNCFDuOiy5z6+kf9KO4bkqQbwpYc0d+bzcjEAz0gxilQM8EluQN+AImupFrQAA/vJ5EKlC6b59z2H0FdpMp9ggeTqu4uz1N/UfJekf0Uiw+zvQ3AjsmfjFkSMXnl6oIAXdf6W3S0tTbauL41ZfWBofRRoJ7LpWebh5/fwR7kaHB6erUk/4VpIOVwZCQEZNJwtKtXSQNC0UjOzpkFxcd6sHeCLUakAAAA==\",\"by Tadeusz Lakota\",\"Photo by Tadeusz Lakota\",\"getting-noticed-and-widening-your-reach\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/getting-noticed-and-widening-your-reach.mdx\",{\"_55\":3795,\"_57\":3796,\"_67\":3800,\"_103\":3814,\"_105\":3815},\"September 10th, 2018\",{\"_59\":331,\"_61\":3797,\"_63\":3798,\"_65\":3799},3.595,215700,719,{\"_69\":3801,\"_71\":3802,\"_73\":3803,\"_78\":3804,\"_349\":3806,\"_93\":3809,\"_97\":3810,\"_99\":3811,\"_95\":3812,\"_101\":3813},\"Make Impossible States Impossible\",\"2018-09-10T00:00:00.000Z\",\"A simple trick to simplify your application and component state\",{\"_80\":3805},[790,434],[3807],{\"_352\":662,\"_354\":3808},\"https://duzgun.dev/blog/imkansiz-durumlari-imkansiz-hale-getirin\",\"unsplash/photo-1509815963-90cab26a868f\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/cWprUH8sZ9M\\\"\u003etom coe\u003c/a\u003e\",\"data:image/webp;base64,UklGRpgBAABXRUJQVlA4IIwBAACQDwCdASpkAGUAPqVInEo+Ny8kqnv748AUiWcG+OUBu3Fxj438xuAhxyN5zMhleKzf3XNR962e3oFdJcIqQF4JKsrOr6x8qQDjUT2G+ASmoFG6I0ON0kINGDTCJWaU2bC0nJDh0wXQBVc7C9qwaB6RXhS+qgM9eI1dkyYWUFl4SAe5sCEMAP7H0RFabzGwnXN387PevBG6me3C54IV6K+uLF7l3F2RQFe+3G0MOLNGiHN0JaQrQlPW9nbkTK7rZ0gq2301xK9QlLZJdhGxmBYEyzH7rDHfzKh95lJUz98JA2GXISD3yjgDNolWY/ox7YriOLFjo4QdZxObd89EoWpGvbpQyLZYYCIP4Nas3GrTx4JhdqvFPHtirFvdJSM+ZAUu6BKG83dnNjRsEZvz5uE6NrUgcCfrOXtMAlIi2KVA3uGZ5g2FtPy1QiIOITQjWyjTzl6Y+gc8Ab7K2PkLTpF3Am57mKKWMOjpAJx1egYuAZvOaqHW8Ci2yqZ9F2vwX08DMH5+1aQ/grPAAAA=\",\"by tom coe\",\"Photo by tom coe\",\"make-impossible-states-impossible\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/make-impossible-states-impossible.mdx\",{\"_55\":3817,\"_57\":3818,\"_67\":3822,\"_103\":3831,\"_105\":3832},\"September 3rd, 2018\",{\"_59\":261,\"_61\":3819,\"_63\":3820,\"_65\":3821},4.94,296400,988,{\"_69\":3823,\"_71\":3824,\"_73\":3825,\"_78\":3826,\"_93\":3828,\"_97\":3829,\"_99\":3830,\"_95\":1637,\"_101\":1638},\"How to make the most out of conferences\",\"2018-09-03T00:00:00.000Z\",\"Some specific things you can do as a conference attendee\",{\"_80\":3827},[340,434],\"kentcdodds.com/content/blog/how-to-make-the-most-out-of-conferences/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/75AhQoP-DW0\\\"\u003erawpixel\u003c/a\u003e\",\"data:image/webp;base64,UklGRhoBAABXRUJQVlA4IA4BAAAwCwCdASpkAEMAPq1GmUo/qyWhtBoti/AViWcGcBiyY6b6fj8J7ljN5lXEOoPoEUXSZMQc6Av0T0g6h40Cw0IREcqZFiWCWhSjhCqSHrdD7PXhHyPDzXCu11jvHxuh7L7kAAD+8JggHfcu88e6jGlKt3/6roZ8BnB0Hgh5VJXrlOfXXzLtk03uXjGR29UOuqbI08wPIJQn6vAvtvUJFfZxrr4tHCdOiNATzFRU45J8n0/AK+pFaYEI3/sWmS1V+a+mDCX4T1GMjpE7BD2O0oSwovk8Gl/a9IimUSVHhTOJVB5TUzSrf4U7FLUZVzvrCgLrMRHxkLs5Ishgq/9R/LvUgahwRAO5WUlFQcxAAAA=\",\"how-to-make-the-most-out-of-conferences\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-to-make-the-most-out-of-conferences.mdx\",{\"_55\":3834,\"_57\":3835,\"_67\":3839,\"_103\":3851,\"_105\":3852},\"August 27th, 2018\",{\"_59\":191,\"_61\":3836,\"_63\":3837,\"_65\":3838},6.015,360900,1203,{\"_69\":3840,\"_71\":3841,\"_73\":3842,\"_78\":3843,\"_93\":3846,\"_97\":3847,\"_99\":3848,\"_95\":3849,\"_101\":3850},\"Why and How I started public speaking\",\"2018-08-27T00:00:00.000Z\",\"Some stories and some advice from an international speaker and trainer\",{\"_80\":3844},[3845],\"Public Speaking\",\"unsplash/photo-1516280440614-37939bbacd81\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/ekHSHvgr27k\\\"\u003eBogomil Mihaylov\u003c/a\u003e\",\"data:image/webp;base64,UklGRsQAAABXRUJQVlA4ILgAAAAwBwCdASpkAEMAPnk8mUmkprChIfgK6hAPCWkA0CCtMBw28C8x7d0LukOVKGkqSiflhC5EozAmOzWrrUTmFwjZAAAA/veiK3piMNDgoWUHe7zuLnZRZAZ88x85C6hoc8v1yTPKdMtPE00tdu6MtMxHKH/AmvGfpJyAI2uGKv5WEE5APlgKX5mbcntG3iQXqgMyYuupkN3ezRYK0mn7H+zMZiUsG75DZZ+STbI3Xug0tx9+pCGlkAAA\",\"by Bogomil Mihaylov\",\"Photo by Bogomil Mihaylov\",\"why-and-how-i-started-public-speaking\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/why-and-how-i-started-public-speaking.mdx\",{\"_55\":3854,\"_57\":3855,\"_67\":3859,\"_103\":3870,\"_105\":3871},\"August 20th, 2018\",{\"_59\":261,\"_61\":3856,\"_63\":3857,\"_65\":3858},4.32,259200,864,{\"_69\":3860,\"_71\":3861,\"_73\":3862,\"_78\":3863,\"_93\":3865,\"_97\":3866,\"_99\":3867,\"_95\":3868,\"_101\":3869},\"mdx-deck: slide decks powered by markdown and react\",\"2018-08-20T00:00:00.000Z\",\"Why it's awesome, what it is, how it works, and how to use mdx-deck.\",{\"_80\":3864},[790,297],\"unsplash/photo-1515704089429-fd06e6668458\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/Koxa-GX_5zs\\\"\u003eAsh Edmonds\u003c/a\u003e\",\"data:image/webp;base64,UklGRvgAAABXRUJQVlA4IOwAAAAwCQCdASpkAEMAPqVEnkksqq0hLbiLmaAUiWcGcBjk4ycYe32Bw27FoDd8fU+gg9OS8dJrNsMn3EfaAy00DFv2Bk2gyvgHObybq16ArGtiZr4AAP73VV0FyydJQBEut0zqIQVsQvffJ3UWgwTW6xtIKNFbf+QDft8ccqC0HgQbDam9ZhLnFsqtnPMuWgglM5tQTTLRMLni8SkWj0XNjuEMokPTCyPx4lB480Vny0OTYz/gfs44si5IqAU6aOBW/zxMVtuMdffb0vzTrTZk4KW2bSOddTBxCMzCR1h9S61+s+WqGUnoQLn/JgAAAA==\",\"by Ash Edmonds\",\"Photo by Ash Edmonds\",\"mdx-deck-slide-decks-powered-by-markdown-and-react\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/mdx-deck-slide-decks-powered-by-markdown-and-react.mdx\",{\"_55\":3873,\"_57\":3874,\"_67\":3878,\"_103\":3889,\"_105\":3890},\"August 13th, 2018\",{\"_59\":331,\"_61\":3875,\"_63\":3876,\"_65\":3877},3.705,222300,741,{\"_69\":3879,\"_71\":3880,\"_73\":3881,\"_78\":3882,\"_93\":3884,\"_97\":3885,\"_99\":3886,\"_95\":3887,\"_101\":3888},\"unpkg: An open source CDN for npm\",\"2018-08-13T00:00:00.000Z\",\"Let's learn how unpkg the service and the open source project can improve performance for your company's apps.\",{\"_80\":3883},[790],\"unsplash/photo-1438382458652-54431bf59e01\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/TQVu4pnjTbc\\\"\u003eDavid Marcu\u003c/a\u003e\",\"data:image/webp;base64,UklGRvgAAABXRUJQVlA4IOwAAABwBwCdASpkAEIAPqVKn0wst6aiKTGrMvAUiWcG+IUEDnYewI4puNsaBpZXChHA0dnVzEn+lOhvU/+IZSpwEyr1i4tiuAD+6hrwtcnZmO2RZIjDIXYoBysrwr12emdTGTXaTM4ap++fS77oezKYVpuXsNXLkqp8GvfdobGVycw71F0nqqQ844pgL72fvgn8s8EvARWkUwfad75mwQoz9fAP9vKGp+17sgaY9F21Ouc0bYe7+J4jfYtBrcgvnPwIBShaFkXEuL9kyE9d88438cI0L3rM2G7f2qgRAmDwvYuhJwsO9YRZYVWmAAAAAA==\",\"by David Marcu\",\"Photo by David Marcu\",\"unpkg-an-open-source-cdn-for-npm\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/unpkg-an-open-source-cdn-for-npm.mdx\",{\"_55\":3892,\"_57\":3893,\"_67\":3897,\"_103\":3909,\"_105\":3910},\"August 6th, 2018\",{\"_59\":191,\"_61\":3894,\"_63\":3895,\"_65\":3896},6.275,376500,1255,{\"_69\":3898,\"_71\":3899,\"_73\":3900,\"_78\":3901,\"_93\":3904,\"_97\":3905,\"_99\":3906,\"_95\":3907,\"_101\":3908},\"Polyfill as needed with polyfill-service\",\"2018-08-06T00:00:00.000Z\",\"How to maximize the performance of loading polyfills for your application users.\",{\"_80\":3902},[790,3903],\"Polyfill\",\"unsplash/photo-1454537468202-b7ff71d51c2e\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/ImoVrhUBeFs\\\"\u003eSusan Yin\u003c/a\u003e\",\"data:image/webp;base64,UklGRlgDAABXRUJQVlA4WAoAAAAgAAAAYwAAQgAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCACAQAAEAoAnQEqZABDAD65TJxKOCwmKTFYaoMAFwlnANEN5IE6I1nd75e90RW28MKkcBOKP3r6XxZkRbblnn/OfeuNZ53sKxjMwflUir6LFHc5gWBr32b52m+6zgAA/fyp1qCrfWvP3IwAxGGOtnmNGI5uYVLQdDg3Mfs0GHo81JAzheA3XY0ODt/bFOziGHttrvvSq3FW8D1tNC7tqJPZdTxyYA7z+gyu2QCeDHsQCJrvhpu2mSG8d/tVZTPK45UP3PQgsif6hT8CoIYcmXeLzBYNC+baDz9lKdXQUhTtC7byv5Up5nMHAAYXcq6cQBe6yPfEpr2DTjspOR3dLYf+V9PmQAAA\",\"by Susan Yin\",\"Photo by Susan Yin\",\"polyfill-as-needed-with-polyfill-service\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/polyfill-as-needed-with-polyfill-service.mdx\",{\"_55\":3912,\"_57\":3913,\"_67\":3917,\"_103\":3928,\"_105\":3929},\"July 30th, 2018\",{\"_59\":331,\"_61\":3914,\"_63\":3915,\"_65\":3916},3.95,237000,790,{\"_69\":3918,\"_71\":3919,\"_73\":3920,\"_78\":3921,\"_93\":3923,\"_97\":3924,\"_99\":3925,\"_95\":3926,\"_101\":3927},\"What is a polyfill\",\"2018-07-30T00:00:00.000Z\",\"The difference between a polyfill and a code transform.\",{\"_80\":3922},[790,3903],\"unsplash/photo-1513735429658-5b2072a1cee6\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/2GW4S08kd-8\\\"\u003eEveraldo Coelho\u003c/a\u003e\",\"data:image/webp;base64,UklGRgABAABXRUJQVlA4IPQAAACQCACdASpkADgAPrlQoEynP6aoMBEqS/AXCWMAwFxu0vkDABso4NnsI3E1eqbHc/pbxw9QMvrXGkh0FaqbtrcBVw4Pznvleq/rFONMUAD+5WjVBBv7eaK/Z963xfYCR+jxy8duvBt4DH1kqkTY8H5Xeu7V/nP1sOraq12TezLqPOKoyBS0tF3bZhMeuyoqxQgs8WkrvwYGam8FWM8SQ6Qi065HVV4muKd6s0FHIwJcHOgUQLDFx5J8HQelON9l0Te8kV80akI84wJEG+f/WEtbWzGT7dXslbVkkMYFY38mTO0tFNd3cRAhuQEWVIuKw4iS/4AA\",\"by Everaldo Coelho\",\"Photo by Everaldo Coelho\",\"what-is-a-polyfill\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/what-is-a-polyfill.mdx\",{\"_55\":3931,\"_57\":3932,\"_67\":3936,\"_103\":3953,\"_105\":3954},\"July 23rd, 2018\",{\"_59\":110,\"_61\":3933,\"_63\":3934,\"_65\":3935},11.2,672000,2240,{\"_69\":3937,\"_71\":3938,\"_73\":3939,\"_78\":3940,\"_349\":3942,\"_93\":3948,\"_97\":3949,\"_99\":3950,\"_95\":3951,\"_101\":3952},\"Why I Never Use Shallow Rendering\",\"2018-07-23T00:00:00.000Z\",\"Tests should help me be confident that my application is working and there are better ways to do that than shallow rendering.\",{\"_80\":3941},[790,297,985],[3943],{\"_352\":353,\"_354\":3944,\"_356\":3945},\"https://zenn.dev/longrun_jp/articles/why-i-never-use-shallow-rendering\",{\"_358\":3946,\"_354\":3947},\"y-takebe\",\"https://github.com/y-takebe\",\"kentcdodds.com/content/blog/why-i-never-use-shallow-rendering/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/okavjRLgnjo\\\"\u003eTeddy Kelley\u003c/a\u003e\",\"data:image/webp;base64,UklGRjYBAABXRUJQVlA4ICoBAAAQDQCdASpkAEMAPrVSoko/uachsVQ7A/AWiWUAzFDEUqULCZ450BmdKqvYKqvylJiVmGHVD4tSw6ohldbSqrZ29x3buaIaWKJRXDukzctsc8PqrsgFChFHFbwyZ4EZ6EhbqOdzdCA6y5vJo1AS2GtoAAD+XD+nDeiL/uD7meVhPf/xaH72fsIK4OhBDmrNKy2Rte9LcpX7mnHtam9iQNyR4aQkAMQS22tIKFXG+vw2tK8+aznUIhun85vfWPsVBsIt0fRBRE2Zc0WgFq8KG/f1SLahY1OvSJXgMOb9RSEURrt/0KNzSjuBb2mQu3vCYSmkV7PH2JnpTwJmXqGsfjtkx2/nGD2/o1l4SiUiA/Gg4OlQjUmsp1Ca8C7CGfteM28SH1+d3dR8AAAA\",\"by Teddy Kelley\",\"Photo by Teddy Kelley\",\"why-i-never-use-shallow-rendering\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/why-i-never-use-shallow-rendering.mdx\",{\"_55\":3956,\"_57\":3957,\"_67\":3961,\"_103\":3978,\"_105\":3979},\"July 9th, 2018\",{\"_59\":331,\"_61\":3958,\"_63\":3959,\"_65\":3960},3.36,201600,672,{\"_69\":3962,\"_71\":3963,\"_73\":3964,\"_78\":3965,\"_349\":3967,\"_93\":3973,\"_97\":3974,\"_99\":3975,\"_95\":3976,\"_101\":3977},\"What is JSX?\",\"2018-07-09T00:00:00.000Z\",\"You may use it every day, but have you seen what happens after Babel compiles it?\",{\"_80\":3966},[297,790,3747],[3968,3970],{\"_352\":470,\"_354\":3969},\"https://medium.com/p/1399d9dd80b3\",{\"_352\":368,\"_354\":3971,\"_356\":3972},\"https://dkrnfls.tistory.com/414\",{\"_358\":3119,\"_354\":3120},\"unsplash/photo-1516052016015-6c951fdad2d1\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/Er3WYEslTBk\\\"\u003eMatt Bowden\u003c/a\u003e\",\"data:image/webp;base64,UklGRuIAAABXRUJQVlA4INYAAACQCQCdASpkAEMAPrlSnko4JSahrbiMAwAXCWkGcA1EQWZr1qpPUAW9poawbNSxu/6lk0IzZs+1TvGnQyeY3hIgQ2X/Vx4/aD/+QGBCSFiPOOxl4VvgAP7y23urXhEjMBNBIEimjR2boAXdOfDnOghzjrRaXztBnRdYK34kczpYb//KolZJHZfVKbNAt+U7N59Jfb8M6y2RkXxTn/MFpoWpYqZWHfiROHEMEV29VS3XiWC+JYJbyEusKv2GeBemZfZ7pI2Z6f7IheNqxOpWP0dwSMwNT/AA\",\"by Matt Bowden\",\"Photo by Matt Bowden\",\"what-is-jsx\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/what-is-jsx.mdx\",{\"_55\":3981,\"_57\":3982,\"_67\":3986,\"_103\":4005,\"_105\":4006},\"July 2nd, 2018\",{\"_59\":445,\"_61\":3983,\"_63\":3984,\"_65\":3985},8.15,489000,1630,{\"_69\":3987,\"_71\":3988,\"_73\":3989,\"_78\":3990,\"_349\":3992,\"_93\":4000,\"_97\":4001,\"_99\":4002,\"_95\":4003,\"_101\":4004},\"Test Isolation with React\",\"2018-07-02T00:00:00.000Z\",\"Why your tests should be completely isolated from one another and how to do that.\",{\"_80\":3991},[790,297,985],[3993,3995],{\"_352\":368,\"_354\":3994},\"https://jymini.tistory.com/73\",{\"_352\":464,\"_354\":3996,\"_356\":3997},\"https://www.redradix.com/insights/independencia-tests-con-react\",{\"_358\":3998,\"_354\":3999},\"María García de Lomana\",\"https://www.linkedin.com/in/mariagarciadelomana/\",\"unsplash/photo-1474393695727-b2a2b9772181\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/MMylZHPsO2I\\\"\u003eMika Matin\u003c/a\u003e\",\"data:image/webp;base64,UklGRgIBAABXRUJQVlA4IPYAAADQCQCdASpkAEMAPrlQoEszNS2lLNpLCqAXCWkGcA0ewPwyKxJ1SDPlCdRtLEZ9cf4/Szvuy+TSuj8MwWxvg2tt67nshRIp8K0/xwu6r8AY3wESrJ5RRwAA92LZikCODVO5P0uYw96+zYXLOmVQiEZHmpEDydHVpdIkQ2fSWkJJvRsNJQmdnC+GA7RS1psx30Ft+94SBGEIqAPCEl9Fnf69Rzui2ViU0jW9qvGtFu6pqpCyv4fqpllPik+xG7sl6SQ8h8Xfa39jK355H50Bdmr92VI85XaO45ueoYAX///vXuYARyMMTpsyF5bFFFNG6qRGNlVHAAA=\",\"by Mika Matin\",\"Photo by Mika Matin\",\"test-isolation-with-react\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/test-isolation-with-react.mdx\",{\"_55\":4008,\"_57\":4009,\"_67\":4013,\"_103\":4024,\"_105\":4025},\"June 25th, 2018\",{\"_59\":1137,\"_61\":4010,\"_63\":4011,\"_65\":4012},2.21,132600,442,{\"_69\":4014,\"_71\":4015,\"_73\":4016,\"_78\":4017,\"_93\":4019,\"_97\":4020,\"_99\":4021,\"_95\":4022,\"_101\":4023},\"JavaScript default parameters\",\"2018-06-25T00:00:00.000Z\",\"The expressive power of expressions in default values for parameters\",{\"_80\":4018},[790],\"kentcdodds.com/content/blog/javascript-default-parameters/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/YErQe8LQkyA\\\"\u003eJude Beck\u003c/a\u003e\",\"data:image/webp;base64,UklGRgABAABXRUJQVlA4IPQAAAAQCQCdASpkAEMAPrlWn0qpqTCnLbzKAhAXCWcGcAy3ofkDKKIq9+YA8feL8ign/+x5CG8VSS8ytsmqT8b4DefPs9b0iuFPGrOzVS+FUfvW/gAA/pFOtbv9bdPcud7q6JrWQMVBJgKBf17WiuxKm9slEhPTkUIjXOl8OU8eVVGfpTuJGUS0KEQ8CWuJT6ZxVdMtjg8Iq9/d+JwI9UwxYtBwtIndu9VAk5Mv5qb94O9sSKbAmsEfle9S5Xgq+BFXMHNfJ9NrwHTJG/Q4Avlq5NkK2OLV54F7gnENmTTRFdUBVFkUOA8KFhvhyqdfakXfGCcyeAAA\",\"by Jude Beck\",\"Photo by Jude Beck\",\"javascript-default-parameters\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/javascript-default-parameters.mdx\",{\"_55\":4027,\"_57\":4028,\"_67\":4032,\"_103\":4043,\"_105\":4044},\"June 18th, 2018\",{\"_59\":331,\"_61\":4029,\"_63\":4030,\"_65\":4031},3.21,192600,642,{\"_69\":4033,\"_71\":4034,\"_73\":4035,\"_78\":4036,\"_93\":4038,\"_97\":4039,\"_99\":4040,\"_95\":4041,\"_101\":4042},\"Dealing with FOMO\",\"2018-06-18T00:00:00.000Z\",\"What is \\\"Fear Of Missing Out\\\" and how to deal with this natural unhealthy tendency.\",{\"_80\":4037},[434],\"unsplash/photo-1494088644719-c75cad020cff\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/iVVBVb2RqLc\\\"\u003efrank mckenna\u003c/a\u003e\",\"data:image/webp;base64,UklGRhQBAABXRUJQVlA4IAgBAACwCQCdASpkAEMAPrVKnUoyu6+hslgLM3AWiWctgFGUarrqbFY7OZUOgTbW7EIUrbk5gnSvXpd9/Axo4YSfhwyG9VyDo3b29cqDhs+xE174N/ALx6bF9AD+7odQradhWGvEvUxq82gsbUhDOqWWm1ThE0hDrRPPMOWvMlloYE5LrJ0CJfmkIYAMz2r26A9hPv3xLuGfjQ385I3N3GqB75PnVNSDy+Di/rS2FAC+aCENQAHX/iDmcBY6qlRE/Jq6KweCYzCC9CkSpJSmuuFpkxCmCEBi5gJ+3GO2t21JhuxjZu88BUqW1XmIje4XYi0cY2lOiR2MFd9ipYNbyir+y97Ri8PiaO5wAAA=\",\"by frank mckenna\",\"Photo by frank mckenna\",\"dealing-with-fomo\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/dealing-with-fomo.mdx\",{\"_55\":4046,\"_57\":4047,\"_67\":4051,\"_103\":4064,\"_105\":4065},\"June 15th, 2018\",{\"_59\":331,\"_61\":4048,\"_63\":4049,\"_65\":4050},3.355,201300,671,{\"_69\":4052,\"_71\":4053,\"_73\":4054,\"_78\":4055,\"_93\":4059,\"_97\":4060,\"_99\":4061,\"_95\":4062,\"_101\":4063},\"🏎 downshift 2.0.0 released 🎉\",\"2018-06-15T00:00:00.000Z\",\"Even better accessibility, React Native and ReasonReact support, even simpler API, improved docs, new examples site, Flow and TypeScript...\",{\"_80\":4056},[297,4057,4058,790],\"preact\",\"react native\",\"unsplash/photo-1517405591683-0d4436276e8b\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/eQQfYv7bhwU\\\"\u003ePhilip Veater\u003c/a\u003e\",\"data:image/webp;base64,UklGRpoFAABXRUJQVlA4WAoAAAAgAAAAYwAAQQAASUNDUHwEAAAAAAR8bGNtcwIwAABtbnRyUkdCIFhZWiAH2AABAAoADwASADRhY3NwTVNGVAAAAABsY21zAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1kbW5kAAABIAAAAGVkZXNjAAABiAAAAGlkbWRkAAAB9AAAAGJ3dHB0AAACWAAAABRyWFlaAAACbAAAABRiWFlaAAACgAAAABRnWFlaAAAClAAAABRyVFJDAAACqAAAAA5nVFJDAAACuAAAAA5iVFJDAAACyAAAAA5jaHJtAAAC2AAAACRjcHJ0AAAC/AAAAWlia3B0AAAEaAAAABRkZXNjAAAAAAAAAAtsaXR0bGUgY21zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAAD3NSR0IgR2FtbWEgMi4yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAACHNSR0IyLjIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA8z4AAQAAAAEWo1hZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAACSdAAAPgwAAtr9YWVogAAAAAAAAYqUAALeQAAAY3WN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAGNocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXHRleHQAAAAAQ29weXJpZ2h0IChjKSAyMDA4LCBTYW5keSBNY0d1ZmZvZy4gU29tZSByaWdodHMgcmVzZXJ2ZWQuClRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbi1TaGFyZSBBbGlrZSAzLjAgVW5pdGVkIFN0YXRlcyBMaWNlbnNlLiBUbyB2aWV3IGEgY29weSBvZiB0aGlzIGxpY2Vuc2UsIHZpc2l0IGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzMuMC91cy8gb3Igc2VuZCBhIGxldHRlciB0byBDcmVhdGl2ZSBDb21tb25zLCAxNzEgU2Vjb25kIFN0cmVldCwgU3VpdGUgMzAwLCBTYW4gRnJhbmNpc2NvLCBDYWxpZm9ybmlhLCA5NDEwNSwgVVNBLgAAAABYWVogAAAAAAAAAAAAAAAAAAAAAFZQOCD4AAAAcAgAnQEqZABCAD6lSpxLqLOpJ6k2auJwFIlnATyavQt4IYPHrWVLsnjKpFkjGQWNhO9DnEr9/BJ3FAolqI64Y2IHTHnI+w7cwZz0AADM//9oxtp/N+dDsVtcPsaM/CVYAYzHnUKjmVC4UUOSFuK76Ow6CJwT2f4165+/ONR3HHT2gK502HvZJLNhzLL72F7dRZ4yh99dYIvUo3IompwcwN2QUxgZ/94C5Dv03JuVik9Jf6ljk+oBMnKl9sZDkYKNAucwZC0914F3DBVJJlcVuLR9zJUtr5Ag+FThYhFWEt5V9vJEuYzBuGmtPkmCV+/nX66R4iLAAAA=\",\"by Philip Veater\",\"Photo by Philip Veater\",\"downshift-2-0-0-released\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/downshift-2-0-0-released.mdx\",{\"_55\":4067,\"_57\":4068,\"_67\":4072,\"_103\":4082,\"_105\":4083},\"June 11th, 2018\",{\"_59\":331,\"_61\":4069,\"_63\":4070,\"_65\":4071},3.66,219600,732,{\"_69\":4073,\"_71\":4074,\"_73\":4075,\"_75\":4076,\"_78\":4077,\"_93\":4079,\"_97\":4080,\"_99\":4081,\"_95\":4080,\"_101\":4080},\"When to use Control Props or State Reducers\",\"2018-06-11T00:00:00.000Z\",\"Comparing two similar patterns that enable many of the same use cases.\",[297],{\"_80\":4078},[297,754],\"kentcdodds.com/content/blog/control-props-vs-state-reducers/banner\",\"unknown\",\"data:image/webp;base64,UklGRiYBAABXRUJQVlA4IBoBAAAQCwCdASpkAEMAPrlMnUsuPDYhr5S9U4AXCWUGcBjlons6uhb8Pnf6oavMerW3KPt59JV/mkuVJdjKtdnBui4U7sXnnbXl84hBkRlsajHmnfgFaKWmEMYMV1LrbT6N7h4AAP7uVqf+/qv3Kw/nD1l5GW3jfJh/yQYeaL+7Z4n0+L+9gdpPwbxZuPbt4kBQGGbs3wHR+8Q53H+frNVeyZASlbzNRqdoFjv82enicIW1jz6svrG42Ms6dBAknBKZ4jpTCoPYF4JaEUch8vQicX1gj4Yq6AfQmmHsWanYQdP90It76rSo+Oq4nq65nDFA0vthuJB02QgbGlZwRo1ybl0Qv34OoQG0agPFJa84XMDTE0+AOob1t8AAAAA=\",\"control-props-vs-state-reducers\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/control-props-vs-state-reducers.mdx\",{\"_55\":4085,\"_57\":4086,\"_67\":4090,\"_103\":4101,\"_105\":4102},\"June 4th, 2018\",{\"_59\":261,\"_61\":4087,\"_63\":4088,\"_65\":4089},4.105,246300,821,{\"_69\":4091,\"_71\":4092,\"_73\":4093,\"_78\":4094,\"_93\":4096,\"_97\":4097,\"_99\":4098,\"_95\":4099,\"_101\":4100},\"Write your own code transform for fun and profit\",\"2018-06-04T00:00:00.000Z\",\"How to write your own code macro with babel-plugin-macros 🎣\",{\"_80\":4095},[790,3466],\"kentcdodds.com/content/blog/write-your-own-code-transform-for-fun-and-profit/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/RFXxBTHze_M\\\"\u003eMervyn Chan\u003c/a\u003e\",\"data:image/webp;base64,UklGRjgBAABXRUJQVlA4ICwBAACQDwCdASpkAFUAPrVIm0o/p68hsZyK8/AWiWcAzYynOouNYIBbFrzgDlMzdVT9aLfI64x7GB3Nu47pyUZ5q6HGTRZL4Wd0nx764fztNd7XlXFb4gjfmljHTcqQYS5PZrh03bRfOgtwlZC6RWI3U8dKbFwCBFbkAvKSwjt5mC85KNpj0mgAAP700macqLxiYDUHXiHpI4kOAdQX9r9BbVRt51VxghyFg8nQOixxYAV6BUTudspD+jgdkKiTsTgFJjI8naKAhFiGi6QxITossLaYRe+oe2yI8wgNbdTQCE4KXmrfZjMwXJbkwFaa7kng6e+NXgZm7DMR9Yu2Sfpyt6sw/PD7dMNjknpMzx6kQkRBr6APpW58ZlgrKfJ06Er/a4xFJQTDD1B+57UAAAA=\",\"by Mervyn Chan\",\"Photo by Mervyn Chan\",\"write-your-own-code-transform\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/write-your-own-code-transform.mdx\",{\"_55\":4104,\"_57\":4105,\"_67\":4109,\"_103\":4119,\"_105\":4120},\"June 1st, 2018\",{\"_59\":331,\"_61\":4106,\"_63\":4107,\"_65\":4108},3.185,191100,637,{\"_2086\":2087,\"_69\":4110,\"_71\":4111,\"_73\":4112,\"_78\":4113,\"_93\":4115,\"_97\":4116,\"_99\":4117,\"_95\":4118,\"_101\":4118},\"💯 UPDATED: Advanced React Component Patterns ⚛️\",\"2018-06-01T00:00:00.000Z\",\"Now featuring the latest React APIs (like context) and entirely new patterns (like state reducer props).\",{\"_80\":4114},[790,297],\"kentcdodds.com/content/blog/updated-advanced-react-component-patterns/banner\",\"\u003ca href=\\\"http://kcd.im/advanced-react\\\"\u003eAdvanced React Component Patterns\u003c/a\u003e with \u003ca href=\\\"https://x.com/kentcdodds\\\"\u003eKent C. Dodds\u003c/a\u003e (art by \u003ca href=\\\"https://x.com/Mappletons\\\"\u003eMaggie Appleton\u003c/a\u003e)\",\"data:image/webp;base64,UklGRqAAAABXRUJQVlA4IJQAAAAQBwCdASpkADgAPp1MnUu4rCyhpvK6MxATiWcA0QgUrjukr968b5//A9sNtLVayzCNVSU1Rfm9YDO21hTKpDMcAAD+9VRrbcXbHtdNh4E9x9veSehWo1WvzQE2k0t2c04uYiHNVMbDW0Q7nlHKPVin/ybmndAgRtbyqPaP6nP70Kiwgb9q45QApwOaY3QyhhccYAAA\",\"Advanced React Component Patterns with Kent C. Dodds (art by Maggie Appleton)\",\"updated-advanced-react-component-patterns\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/updated-advanced-react-component-patterns.mdx\",{\"_55\":4122,\"_57\":4123,\"_67\":4128,\"_103\":4139,\"_105\":4140},\"May 28th, 2018\",{\"_59\":4124,\"_61\":4125,\"_63\":4126,\"_65\":4127},\"1 min read\",0.905,54300,181,{\"_69\":4129,\"_71\":4130,\"_73\":4131,\"_78\":4132,\"_93\":4134,\"_97\":4135,\"_99\":4136,\"_95\":4137,\"_101\":4138},\"React DevTools\",\"2018-05-28T00:00:00.000Z\",\"A quick demo of the browser extension you should definitely be using.\",{\"_80\":4133},[790,297],\"unsplash/photo-1508970057347-0524a45ebdff\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/_l4yffWjgt4\\\"\u003eAron Visuals\u003c/a\u003e\",\"data:image/webp;base64,UklGRtwAAABXRUJQVlA4INAAAABwCQCdASpkAEMAPnk2lUiwIyGhKTgJmgAPCWkAyrQOaUqpmFhk9zwKsfb2Zrc7U6XC6qxh6Zc4E+e+w5FlqrKlN2RyA/+9DDMfJalvdZN202S/GAAA/vWVecRuT9L0ghzDS1+yUBMpTJfshdP1YjKMTbyIUj/xTfbnGsqZuo9Z/jLPVnHO5Kpo79r4QxpYpmgTLKng/aYmzecjTAuHaIjYd7yBDaVxH0/oaSY07RM1fO5WKVfwyk3N1HPckIZT69Y4msMr3XI1vmPi7In22AAA\",\"by Aron Visuals\",\"Photo by Aron Visuals\",\"react-devtools\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/react-devtools.mdx\",{\"_55\":4142,\"_57\":4143,\"_67\":4147,\"_103\":4163,\"_105\":4164},\"May 21st, 2018\",{\"_59\":214,\"_61\":4144,\"_63\":4145,\"_65\":4146},5.785,347100,1157,{\"_69\":4148,\"_71\":4149,\"_73\":4150,\"_78\":4151,\"_349\":4153,\"_93\":4158,\"_97\":4159,\"_99\":4160,\"_95\":4161,\"_101\":4162},\"Prop Drilling\",\"2018-05-21T00:00:00.000Z\",\"What it is, why it's good, why it's bad, and how to avoid common problems with it\",{\"_80\":4152},[297,790],[4154,4156],{\"_352\":368,\"_354\":4155},\"https://edykim.com/ko/post/prop-drilling\",{\"_352\":1006,\"_354\":4157},\"https://zenn.dev/matazou/articles/9728f26b15de68\",\"kentcdodds.com/content/blog/prop-drilling/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/oJ7SV6vQfBA\\\"\u003eSimon Caspersen\u003c/a\u003e\",\"data:image/webp;base64,UklGRvYAAABXRUJQVlA4IOoAAACwCACdASpkAE8APp1Gm0o8ryYmqvlaG5ATiWcDsByrAopcvHPzCK8k7arhIjwAtN/8JcQ1SJcA2CAXTS+8415YHlvdssHdLxbeS98QUYgA/vbsm0RzwybfF9PWMAJHk6BVW8HUvn3TQqHAnVlEBb4SC5/rEpSfHhtyBHw1B/V01eWSaJkrqqtSq8K0e1jwegbUAZmTRkZc87Z0i01mtqeOv2HS6Oxc28lF3CcjsnxenjBsmjEy6/BteLtL1Pnl/852dBjBwAxiTLhisVL7G9L8Kk+v+O47dvXdJRh61tuJkRuv7ZinnGtYmAA=\",\"by Simon Caspersen\",\"Photo by Simon Caspersen\",\"prop-drilling\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/prop-drilling.mdx\",{\"_55\":4166,\"_57\":4167,\"_67\":4171,\"_103\":4182,\"_105\":4183},\"May 14th, 2018\",{\"_59\":331,\"_61\":4168,\"_63\":4169,\"_65\":4170},3.105,186300,621,{\"_69\":4172,\"_71\":4173,\"_73\":4174,\"_78\":4175,\"_93\":4177,\"_97\":4178,\"_99\":4179,\"_95\":4180,\"_101\":4181},\"How I learn an Open Source Codebase\",\"2018-05-14T00:00:00.000Z\",\"What I do to learn and understand an open source project to which I want to contribute.\",{\"_80\":4176},[638,434],\"unsplash/photo-1502086223501-7ea6ecd79368\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/tvc5imO5pXk\\\"\u003eRobert Collins\u003c/a\u003e\",\"data:image/webp;base64,UklGRgoBAABXRUJQVlA4IP4AAAAwCwCdASpkAEUAPqVGm0k5qywiLrUMozAUiWcGcAzuXnwJ1cHCG7Til84UkVfdb8xpmp5syqwchrNzWVvZdS8+2nURLKqv6ge01OLRoEd+87j5kpAY0dEEhV+55V6OxY/sQAD+66HBH5PB4TXny3LdmcntY2fA30/+FroH5jcYh5pzkOJ0NZRfIkzehyC03hLUeH8Dv9uwmyQe/6YlewURGBuPNO4Y6kd+m2B2QpznKDsTbTYho5T5ylJn/e/d3L/i9fmHNWNUSnbm5HPxUUPHhJhsWJ4/+v5VxwWlPEjtcAXvNSXHJiHbv/ozI6VvkJFFAGdt6YOt84DEwAAAAA==\",\"by Robert Collins\",\"Photo by Robert Collins\",\"how-i-learn-an-open-source-codebase\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-i-learn-an-open-source-codebase.mdx\",{\"_55\":4185,\"_57\":4186,\"_67\":4187,\"_103\":4198,\"_105\":4199},\"May 7th, 2018\",{\"_59\":331,\"_61\":3684,\"_63\":3685,\"_65\":3686},{\"_69\":4188,\"_71\":4189,\"_73\":4190,\"_78\":4191,\"_93\":4193,\"_97\":4194,\"_99\":4195,\"_95\":4196,\"_101\":4197},\"Mixing Component Patterns\",\"2018-05-07T00:00:00.000Z\",\"Let's make a component that supports Render Props, Component Injection, Compound Components, the Provider Pattern, and Higher Order...\",{\"_80\":4192},[297],\"kentcdodds.com/content/blog/mixing-component-patterns/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/AWX44zfMV-M\\\"\u003erawpixel.com\u003c/a\u003e\",\"data:image/webp;base64,UklGRvgAAABXRUJQVlA4IOwAAACQBgCdASpkAEMAPp1Mnk0lpCKiIOrQsBOJZwDBELgi0AF1sECXNwEyYC8i3Z/92aLotDjXJKp3TwlhkIIAAP7sDudpnCpvbYrQEq1DCyRsAYBqS5vDicqynESgc9J82dmMfAFk43+Ej3ZjkXSvQHtvseWBlQCNygcOk7i7HdwSvwGbbeAaCstlwbUTH8qLUvYjscP7/8+gNfv9ftfjosguZMMBHjKdFT1/nWllfDpIT+4mABJIQRW+h1Mm7faeU8Yej2v2jDIlWExV04kA2V0QhfdhZtjhYyET+O4ho3ZSsHcxl6A28w3ovM8wAA==\",\"by rawpixel.com\",\"Photo by rawpixel.com\",\"mixing-component-patterns\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/mixing-component-patterns.mdx\",{\"_55\":4201,\"_57\":4202,\"_67\":4203,\"_103\":4214,\"_105\":4215},\"April 30th, 2018\",{\"_59\":261,\"_61\":3819,\"_63\":3820,\"_65\":3821},{\"_69\":4204,\"_71\":4205,\"_73\":4206,\"_78\":4207,\"_93\":4209,\"_97\":4210,\"_99\":4211,\"_95\":4212,\"_101\":4213},\"Pure Modules\",\"2018-04-30T00:00:00.000Z\",\"How you write your ES Modules impacts the performance and maintainability of your code.\",{\"_80\":4208},[790],\"unsplash/photo-1523039918496-486825032d8a\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/aPUi7w4kKbI\\\"\u003eMohan Murugesan\u003c/a\u003e\",\"data:image/webp;base64,UklGRpQAAABXRUJQVlA4IIgAAADQBgCdASpkADgAPrFOoEw/pCaiKTYKa/AWCWkG+OfJ4IMsAB5N3zNOIfoEa/Am5jIHApBdDe2HjiqLLKiZwiYA/utZI+QQ8w8RW5L0wzjvY36bi3lu2i8c26Zvj1qzKpRQgfFdt+Hi7+OV9EppuBF1DXiX60A2ejS5s0LZcWhWmcgYUQxrPQAA\",\"by Mohan Murugesan\",\"Photo by Mohan Murugesan\",\"pure-modules\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/pure-modules.mdx\",{\"_55\":4217,\"_57\":4218,\"_67\":4222,\"_103\":4233,\"_105\":4234},\"April 23rd, 2018\",{\"_59\":214,\"_61\":4219,\"_63\":4220,\"_65\":4221},5.565,333900,1113,{\"_69\":4223,\"_71\":4224,\"_73\":4225,\"_78\":4226,\"_93\":4228,\"_97\":4229,\"_99\":4230,\"_95\":4231,\"_101\":4232},\"Migrating to React's New Context API\",\"2018-04-23T00:00:00.000Z\",\"Let's compare the before/after of React's new context API.\",{\"_80\":4227},[297],\"kentcdodds.com/content/blog/migrating-to-reacts-new-context-api/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/z_eFLP9aS6s\\\"\u003eMarion Michele\u003c/a\u003e\",\"data:image/webp;base64,UklGRjoBAABXRUJQVlA4IC4BAADwDgCdASpkAF0APpk+mEg8Iy0hLzv7o4ATCWkG+IUEEi2e6p9tMaXhYKi54aaB+vg/T6nth12E10Zr/di0bZ/67Wajq7d05rZRzrJ8/zF8+u+eOxgIIX4yx5cV7i4KVnh+0ypVhXv5JH82bVrEVJpkKySo45Ug7Uqa3W8qbhnuQAD+7s43mlOn7MThcqO/0tu+Pg2I4znRcMWGehhmF6C29x4DA+11QW69qjZ1va7SuSxzgxfEShDQaXCZGpR2+F4N8114oukIZWY4Y2wG0qZsANrfvD8hNz07aNW/OplmSIMNqJKyk5CDXHjM44M5ExFz2EYU6JIcgnDQqSrnA2uHfOyRkQfx4yOjNcNu62pt9cbfAsvzkuVM+dr66y+kiNXG2mbDCSQ9vcCAoQAAAA==\",\"by Marion Michele\",\"Photo by Marion Michele\",\"migrating-to-reacts-new-context-api\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/migrating-to-reacts-new-context-api.mdx\",{\"_55\":4236,\"_57\":4237,\"_67\":4241,\"_103\":4250,\"_105\":4251},\"April 9th, 2018\",{\"_59\":1137,\"_61\":4238,\"_63\":4239,\"_65\":4240},2.81,168600,562,{\"_69\":4242,\"_71\":4243,\"_73\":4244,\"_78\":4245,\"_93\":4247,\"_97\":4248,\"_99\":4249,\"_95\":4196,\"_101\":4197},\"Compose Render Props\",\"2018-04-09T00:00:00.000Z\",\"One of the reasons I'm so excited about render props\",{\"_80\":4246},[790,297,2621],\"kentcdodds.com/content/blog/compose-render-props/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/noorSVMhuPU\\\"\u003erawpixel.com\u003c/a\u003e\",\"data:image/webp;base64,UklGRpoAAABXRUJQVlA4II4AAACQBgCdASpkAEoAPp1Mnk0sJCmioOrRgBOJaQcIaDyEpIuAD/9GOTbXxfg6rvJFDUcgIl4ANLwT1dJzP9YAAP7vOCe47oJnmYpOTyUzCAHZJtZonDSZTAd4iN+KSawrwzu9dZlfgH8nd/XF+Md5UVUlWQq1XZhilIpeKj8lNK3hSbCvZfDEl3L9wEoAAAAA\",\"compose-render-props\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/compose-render-props.mdx\",{\"_55\":4253,\"_57\":4254,\"_67\":4258,\"_103\":4269,\"_105\":4270},\"April 2nd, 2018\",{\"_59\":709,\"_61\":4255,\"_63\":4256,\"_65\":4257},9.175,550500,1835,{\"_69\":4259,\"_71\":4260,\"_73\":4261,\"_78\":4262,\"_93\":4264,\"_97\":4265,\"_99\":4266,\"_95\":4267,\"_101\":4268},\"Introducing the react-testing-library 🐐\",\"2018-04-02T00:00:00.000Z\",\"A simpler replacement for enzyme that encourages good testing practices.\",{\"_80\":4263},[297,790,985],\"kentcdodds.com/content/blog/introducing-the-react-testing-library/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/mrZVkCKyaPk\\\"\u003eRob Potter\u003c/a\u003e\",\"data:image/webp;base64,UklGRsgAAABXRUJQVlA4ILwAAADwCACdASpkAFAAPp1EnEq4o6whqhdLAxATiWkA0XC/AFeH334nTDaUy0444o6awuT+GpFPShqxHUXjmu30BUoblGlOhqLbPyAxNAGDoPlUAAD+8diYefwrnoCgow8/1gUezUVgZ+XeowQHCKvSpU+ixrxByG3KGD+nD0uyHqAZgz5l7OSdfiBjrWxErtJq9IMAS8EjFgerI1S7HEAPZy2XvZRYfWvRvugGPOGRcrX2yoqxvyTQHDWbzgoAAA==\",\"by Rob Potter\",\"Photo by Rob Potter\",\"introducing-the-react-testing-library\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/introducing-the-react-testing-library.mdx\",{\"_55\":4272,\"_57\":4273,\"_67\":4277,\"_103\":4288,\"_105\":4289},\"March 26th, 2018\",{\"_59\":214,\"_61\":4274,\"_63\":4275,\"_65\":4276},5.03,301800,1006,{\"_2086\":2087,\"_69\":4278,\"_71\":4279,\"_73\":4280,\"_78\":4281,\"_93\":4283,\"_97\":4284,\"_99\":4285,\"_95\":4286,\"_101\":4287},\"When to NOT use Render Props\",\"2018-03-26T00:00:00.000Z\",\"Let's back up from the hype and think critically about the render props pattern\",{\"_80\":4282},[297,790,2621],\"unsplash/photo-1504344977555-430929e2c4ba\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/h-ACUrBngrw\\\"\u003eErwan Hesry\u003c/a\u003e\",\"data:image/webp;base64,UklGRt4AAABXRUJQVlA4INIAAADwBwCdASpkAEMAPp1Amkm4pqihLbZrMxATiWkB2fyPgC/kXBXrtnqNDaFXDcZ4rWof3XJM1Yp46qXEX1eHQ/01fEIaGzOheAAA/vVqWH7oZ976PUUhPluVxRbyWiijlhoAPJrB9pQUrxWXhrJnUvSAjErvACk5d01S5l81EG0WvIXDKyQAbUgmNs1yPXfFfzO4ByfnjtkwdhsxoMagHyR+9NTmWlQpHbEKr3l21u2mV30FoxER7p1IBcABbExO7efdNpZFcHSuI6c+YiZp/Xj4sAA=\",\"by Erwan Hesry\",\"Photo by Erwan Hesry\",\"when-to-not-use-render-props\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/when-to-not-use-render-props.mdx\",{\"_55\":4291,\"_57\":4292,\"_67\":4296,\"_103\":4308,\"_105\":4309},\"March 19th, 2018\",{\"_59\":649,\"_61\":4293,\"_63\":4294,\"_65\":4295},10.13,607800,2026,{\"_69\":4297,\"_71\":4298,\"_73\":4299,\"_78\":4300,\"_93\":4303,\"_97\":4304,\"_99\":4305,\"_95\":4306,\"_101\":4307},\"But really, what is a JavaScript mock?\",\"2018-03-19T00:00:00.000Z\",\"Let's take a step back and understand what mocks are and how to use them to facilitate testing in JavaScript.\",{\"_80\":4301},[790,985,4302],\"mocking\",\"kentcdodds.com/content/blog/but-really-what-is-a-javascript-mock/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/cnOlhGQY-SI\\\"\u003eDmitri Popov\u003c/a\u003e\",\"data:image/webp;base64,UklGRioBAABXRUJQVlA4IB4BAACwDACdASpkAEIAPp1Cm0ksNSwkLNbbaqATiWUAxyjeI3Tsg3BFhDy0n0gnfV0hegdwW92sKMFhTu3gvnHo48KEIA+cX/FK6WB0VkzDXt2o1POxhhp346fgRwg5tktSZ/WOMW//0MaKhrX4Bs3wAABKS/yS4ZcMR3/+Gn+uPrik/LyCA7rceQFkCG0y1rPlYWn/S54wwQXyhyzv+Kmt+OEEl2yWfC21h2S1WWiC7BNkr/zQGy2N9zJDbFUzbZcwHl6BRmH51YCwoKUKJe8Nm1to8+pSwoeA7CgZihgirq+1JbePpmG7IBIFmAgoopqbdNM2zj92IXkGubuUsq16oqZ2LvYNlatm5ab7SoerydtYmPIP0qKHmcrgs9vZ68AA\",\"by Dmitri Popov\",\"Photo by Dmitri Popov\",\"but-really-what-is-a-javascript-mock\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/but-really-what-is-a-javascript-mock.mdx\",{\"_55\":4311,\"_57\":4312,\"_67\":4316,\"_103\":4327,\"_105\":4328},\"March 12th, 2018\",{\"_59\":331,\"_61\":4313,\"_63\":4314,\"_65\":4315},3.78,226800,756,{\"_69\":4317,\"_71\":4318,\"_73\":4319,\"_78\":4320,\"_93\":4322,\"_97\":4323,\"_99\":4324,\"_95\":4325,\"_101\":4326},\"Increase your marketability\",\"2018-03-12T00:00:00.000Z\",\"Some tips of things that I've done that have helped me get where I want to be in the industry.\",{\"_80\":4321},[790,340],\"unsplash/photo-1513568917837-e5be8262f18f\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/Dj5evF5JCjI\\\"\u003eGeoff Greenwood\u003c/a\u003e\",\"data:image/webp;base64,UklGRvQAAABXRUJQVlA4IOgAAADQBgCdASpkADYAPp1KnUwwp6YiI3qq4hATiWUGfAQBvmUUjNAS7BhdEXSX2GamCu8X5Hhf0IVDeSRgt7dnBLAA/u1edgbi7q5Mj8v8YRxgYALZ7eSgHKpLD3i5nV29+IQSQa0z9rljl3YOuJ5X8NXF3wGSGm0uSwRt1ARO2aw3Frj9YCgwuQWi5j83NfuOMMJ1pT4wBFFijWI7G1ejz+Ghuqm9SiKBit+NDVuZGeWJAs+YpFj3i159e1Ab2QLxWUL+16BWfGaxklDm9CBKXWNF9tdhKFHAXmhk/JBJL/uw/Q7xIA7eKgAA\",\"by Geoff Greenwood\",\"Photo by Geoff Greenwood\",\"increase-your-marketability\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/increase-your-marketability.mdx\",{\"_55\":4330,\"_57\":4331,\"_67\":4332,\"_103\":4351,\"_105\":4352},\"March 5th, 2018\",{\"_59\":331,\"_61\":2548,\"_63\":2549,\"_65\":2550},{\"_69\":4333,\"_71\":4334,\"_73\":4335,\"_349\":4336,\"_78\":4342,\"_93\":4346,\"_97\":4347,\"_99\":4348,\"_95\":4349,\"_101\":4350},\"Solidifying what you learn\",\"2018-03-05T00:00:00.000Z\",\"Teaching is nature's way of letting you know how sloppy your understanding is.\",[4337],{\"_352\":464,\"_354\":4338,\"_356\":4339},\"https://posts.rafaeldavis.dev/solidificando-lo-que-aprendes\",{\"_358\":4340,\"_354\":4341},\"Rafael D. Hernandez\",\"https://x.com/RafaelDavisH\",{\"_80\":4343},[4344,4345],\"Learning\",\"Teaching\",\"unsplash/photo-1489718199993-da7196b7f1b4\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/BojuZpqw4zM\\\"\u003eAaron Burden\u003c/a\u003e\",\"data:image/webp;base64,UklGRmIDAABXRUJQVlA4WAoAAAAgAAAAYwAASgAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCAMAQAAMA0AnQEqZABLAD6tSJpKP6uuLbUZDKvwFYlpANDR44D3eN/RuwBsk5+p3QQ5tkmLUY7SHrIrd2oBHOMWDQ1y5Xtcb4kuglvV1MvJ/P0BktwIEyewIWfrnQQlDzQcX9gQZkeTgDT/oJWl4/XX7dIwvN4AAM0WZ7bW6z2oB+H0cV8hzv+tu9Xhl/l5cnPg3Vd2g5+MWGOWRPqHLVkWe4F0XaDfCAJSzUlC/EgRgQNDkdXufImIAIJkr+KTwSfx3L9q7nf8LMfbWU13qcgZUoQTXXPJaz9fF5gUcxNwigJ4/NLJ/YdtcpXsd0jy9JiUuPh+/1cV2JumYX7moPvUaL+pjFSo/kyQY+vpzF1wAA==\",\"by Aaron Burden\",\"Photo by Aaron Burden\",\"solidifying-what-you-learn\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/solidifying-what-you-learn.mdx\",{\"_55\":4354,\"_57\":4355,\"_67\":4359,\"_103\":4375,\"_105\":4376},\"February 19th, 2018\",{\"_59\":214,\"_61\":4356,\"_63\":4357,\"_65\":4358},5.8,348000,1160,{\"_2086\":2087,\"_69\":4360,\"_71\":4361,\"_73\":4362,\"_75\":4363,\"_78\":4364,\"_93\":4370,\"_97\":4371,\"_99\":4372,\"_95\":4373,\"_101\":4374},\"The state reducer pattern ⚛️ 🏎\",\"2018-02-19T00:00:00.000Z\",\"A new pattern has been implemented in downshift and it's awesome. Use the state reducer pattern to make your components more useful.\",[297],{\"_80\":4365,\"_349\":4366},[297,2619,790],[4367,4368],{\"_352\":368},{\"_354\":4369},\"https://dkrnfls.tistory.com/402\",\"unsplash/photo-1506017669510-0bcbe8003d70\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/IliTEyruu7U\\\"\u003eDaniel Wallace\u003c/a\u003e\",\"data:image/webp;base64,UklGRtoAAABXRUJQVlA4IM4AAACQCQCdASpkAEMAPp1Em0q8ta8hqTZq45ATiWkGcGbNPij0ARn0CyB+ZNDpRn9iJ2w4KWsiiuL04jFey1K9FvSw3nHK3XwfVwZcfxzdDIo1cnpiLepAAP7ybq2zUaQxnM8zhm+5PqcFad5cu9Uqzrm0ayqrnC4Npjza1BDOlzQkHnGe54nsTumVlkxJfy0TjWXIzEYI5fsjrSS93LoQ4fo1I5CKyzCkcRr6aqj9j+BCYEyp//Oosgn53J3Ac78XwYTYENuZCzh1DcnirAAAAA==\",\"by Daniel Wallace\",\"Photo by Daniel Wallace\",\"the-state-reducer-pattern\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/the-state-reducer-pattern.mdx\",{\"_55\":4378,\"_57\":4379,\"_67\":4383,\"_103\":4394,\"_105\":4395},\"February 12th, 2018\",{\"_59\":261,\"_61\":4380,\"_63\":4381,\"_65\":4382},4.075,244500,815,{\"_69\":4384,\"_71\":4385,\"_73\":4386,\"_78\":4387,\"_93\":4389,\"_97\":4390,\"_99\":4391,\"_95\":4392,\"_101\":4393},\"Answers to common questions about render props\",\"2018-02-12T00:00:00.000Z\",\"Because there's a ton of hype, and a bunch of questions ⚛️\",{\"_80\":4388},[790,297],\"unsplash/photo-1516383074327-ac4841225abf\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/gYxVSeZazXU\\\"\u003eSharon McCutcheon\u003c/a\u003e\",\"data:image/webp;base64,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\",\"by Sharon McCutcheon\",\"Photo by Sharon McCutcheon\",\"answers-to-common-questions-about-render-props\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/answers-to-common-questions-about-render-props.mdx\",{\"_55\":4397,\"_57\":4398,\"_67\":4402,\"_103\":4411,\"_105\":4412},\"February 5th, 2018\",{\"_59\":191,\"_61\":4399,\"_63\":4400,\"_65\":4401},6.69,401400,1338,{\"_2086\":2087,\"_69\":4403,\"_71\":4404,\"_73\":4405,\"_78\":4406,\"_93\":4408,\"_97\":4409,\"_99\":4410,\"_95\":1859,\"_101\":1860},\"React's ⚛️ new Context API\",\"2018-02-05T00:00:00.000Z\",\"It's way more ergonomic, it's no longer \\\"experimental,\\\" and it's now a first-class API! OH, AND IT USES A RENDER PROP!\",{\"_80\":4407},[790,297],\"unsplash/photo-1491895200222-0fc4a4c35e18\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/7JX0-bfiuxQ\\\"\u003eJJ Ying\u003c/a\u003e\",\"data:image/webp;base64,UklGRj4DAABXRUJQVlA4TDEDAAAvY4ASABcgEEj8LRN5DoFs4s95jtrD/ec/8KtASbXtMJIUCVnzENj7qe6WepwCX8FfwP9g78eGr3kK/NdpO3MJEf1X2LZtY7XK+oSP150vAL4jtoiI9pS/CwBqh3jEswogZu7fP+U9AeDuYucPqguAHrr7CF4PTBMTtCZNxJ6TS6UqqnqojfKUuS4FdprQ3J/0N5cZEPVd9ND5IV9TBZQd3UXkKaUuADRrtsOfh7lmgHYoO7I/5WsCaKiYOZDumUoF0V12dxHh455aATDt7grp837JGXZMzMy6M7/uVKDprmZmBp93vf9UQKy7u/vj5V0XVNWvav/f6ysXYPcb8HF/eYLWml1p5V7/vivgajfmh3WtqOrT8HrfhwU47pEHfeUKh96HVj7ybT0VBLlfDj7fn9c5L+CXOlazxkfJ88fr9fc9A7u7u699M2NK6Z0+Xq+SF1SamfWxDhdKTiXnV75I3d3H2t1d6kzOeUqlLnDoRWc3Y14uL399gurh7tbjPN2AlFJKM0Azsy3OCDNpQMk55wT47u4+eu/uAFNKaS6gamZjXIsBZYFaF9h3dz/POPvpLlBzzjkDJmZbj9jCzLQxA6QKmNlxrj2iDxelXLSAivs5IsZYux8CACkBh9ixjogYa7d2Uwbk8LVvfYtt6OqwAHOq7OpqY8TZe3drlJRSqpdDO9wiIlYzv6nkT8DVThtb9O5db0oVXC86+2o2pF3XJS8gYt49zu7SlbnknPOUADW3cVFzgQqQUoXWzMP76U53ypRSSpQF1NXGFtalmUF5EOa+DgszujSuYgJVG72Hu2AGdblLj93P08OsdRpzyTkvZNjFrPfNrDFWWOpFAIffhLUHLeCqY4xwF1YBqDepmG2bRXcOFZjnlCjArtbHGX011gOgLOQFMPO124juciAAJVcAEYuIOIeZO40HDh1mI3p0N0Qf4u5bRJyxhclBE67sqt/ePS7siO4Ps29xxhVxF3MA1MRGjxu76pBmzdXa/h39XkO0i7tqE9TCH37srsPMDleLsHhC3NdwX0dEf+ovOodH9O4/dBE61oju5xk/snvv8Tvcz/glOuK3HL+u4b8XAA==\",\"reacts-new-context-api\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/reacts-new-context-api.mdx\",{\"_55\":4414,\"_57\":4415,\"_67\":4419,\"_103\":4436,\"_105\":4437},\"January 29th, 2018\",{\"_59\":649,\"_61\":4416,\"_63\":4417,\"_65\":4418},10.365,621900,2073,{\"_69\":4420,\"_71\":4421,\"_73\":4422,\"_78\":4423,\"_349\":4425,\"_93\":4431,\"_97\":4432,\"_99\":4433,\"_95\":4434,\"_101\":4435},\"Concerning toolkits 🛠 📦\",\"2018-01-29T00:00:00.000Z\",\"The merits and use cases of consolidating tools into one \\\"zero config\\\" toolkit.\",{\"_80\":4424},[790],[4426],{\"_352\":464,\"_354\":4427,\"_356\":4428},\"https://medium.com/@enbonnet/juegos-de-herramientas-toolkits-8f3df94404e9\",{\"_358\":4429,\"_354\":4430},\"Ender Bonnet\",\"https://x.com/enBonnet\",\"unsplash/photo-1478359900967-91ec0c6edc60\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/LUP8Tnwy7Ro\\\"\u003eelizabeth lies\u003c/a\u003e\",\"data:image/webp;base64,UklGRgABAABXRUJQVlA4IPQAAADQCQCdASpkAGQAPrlao0y/pbKiKTtp0/AXCWkA1FXkwOI7hMHNtEQHdNmMovGBboB7uHnsYXFI49tstHMew53Rlnd1VNUvd5fZYDUHO6BhSlHM495oFgAA/vRnXk9KCYZZTcgOqatYW3eV7WmWxv8UOU+jvaa5/RS7eAnSXPLBmSAuFo8dsELtTD8luZXU0SyhwKbw5/u7rfZbshQf7+WleXSgo3hqMcUggAQUFCMfYVHngrJm3IEbLxsZruuwkFeD71GoLi8B9+QA7qA1nno9DXcEtUA44PXA7FpMHVkE224j11CDQb+gT0zGO9vgl+aynAAA\",\"by elizabeth lies\",\"Photo by elizabeth lies\",\"concerning-toolkits\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/concerning-toolkits.mdx\",{\"_55\":4439,\"_57\":4440,\"_67\":4444,\"_103\":4456,\"_105\":4457},\"January 22nd, 2018\",{\"_59\":138,\"_61\":4441,\"_63\":4442,\"_65\":4443},7.83,469800,1566,{\"_69\":4445,\"_71\":4446,\"_73\":4447,\"_78\":4448,\"_93\":4451,\"_97\":4452,\"_99\":4453,\"_95\":4454,\"_101\":4455},\"Spelunking in node_modules 👷\",\"2018-01-22T00:00:00.000Z\",\"Deep dive into Jest, React, and jsdom: A story about how I go about finding and fixing bugs in my dependencies.\",{\"_80\":4449},[790,4450],\"Nodejs\",\"kentcdodds.com/content/blog/spelunking-in-node-modules/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/uDiyX2bdpp4\\\"\u003eColin Rex\u003c/a\u003e\",\"data:image/webp;base64,UklGRi4BAABXRUJQVlA4ICIBAACQCgCdASpkAEMAPrlQoEu8rLEqK/sai5AXCWcAxKHkAJdJ+JEMFjwN0YZeL7dMr/MJAkFrpcovWtrMcsKGFC8YdcNjBZmTEx6fyXDZ6LjOqKngEWGRlCUO1Uo7oQAA/Qr1ManqEBEx2ukD9DeenTv2ucv2BwWYscqT7zenuMy4Oy6VgGnloyEdWBDpBNXYbL5TRLso5Bmq3WLv3sXjNuI2jcSW1PGEz0w5H1Qmys6eOREuFAyYTaEdF7atB720CQwKwUHG021NnOqHeux+DfH0P2b1hQtnD7UkpvNd33QAxeCLtR0emvkQ8ZDwnZO9zQhJTFocFjiFO2H8wui8vvh0riaWHQ951fONkwYAWT4M69yef4Swt9nHV0kGOppJa4AAAA==\",\"by Colin Rex\",\"Photo by Colin Rex\",\"spelunking-in-node-modules\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/spelunking-in-node-modules.mdx\",{\"_55\":4459,\"_57\":4460,\"_67\":4464,\"_103\":4475,\"_105\":4476},\"January 15th, 2018\",{\"_59\":261,\"_61\":4461,\"_63\":4462,\"_65\":4463},4.665,279900,933,{\"_69\":4465,\"_71\":4466,\"_73\":4467,\"_78\":4468,\"_93\":4470,\"_97\":4471,\"_99\":4472,\"_95\":4473,\"_101\":4474},\"Building Production Apps 100% in the browser\",\"2018-01-15T00:00:00.000Z\",\"How I built \u0026 deployed 2 production apps without downloading any source code.\",{\"_80\":4469},[297],\"unsplash/photo-1511732351157-1865efcb7b7b\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/azsk_6IMT3I\\\"\u003eBRUNO CERVERA\u003c/a\u003e\",\"data:image/webp;base64,UklGRgoBAABXRUJQVlA4IP4AAAAQCwCdASpkAEMAPrVInEo8K6YmtRb6A4AWiWcAyRXmAO1K0h87K46gQvUSFc7+moJG0qttyrvWzR/qcdzyBAVRmlDZjw3NUde5V321b03bLpi9yJ6gW+E7eTX9nUKoo0s4AP7EiBTOFWpWCDsT0rxoUc6lVH5vQzZqY7LOjqcF7DCwFQ27ErJJgKDTOOTwM5py3w+e+0PNcunq8wEH8N1T1gc9Xx4Py8V/uRv6e5yni+kWlHX5CwBGTZBkprNiUtzrUfOQvdTs+ovu9Hv7M4dVpE9p971N0xFkyqrD+H/BmIIfh33+2KlNukY6RrYgYTFg/tuzlujPui9gAeY4AA==\",\"by BRUNO CERVERA\",\"Photo by BRUNO CERVERA\",\"building-production-apps-100-in-the-browser\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/building-production-apps-100-in-the-browser.mdx\",{\"_55\":4478,\"_57\":4479,\"_67\":4480,\"_103\":4491,\"_105\":4492},\"January 8th, 2018\",{\"_59\":191,\"_61\":2671,\"_63\":2672,\"_65\":2673},{\"_69\":4481,\"_71\":4482,\"_73\":4483,\"_78\":4484,\"_93\":4486,\"_97\":4487,\"_99\":4488,\"_95\":4489,\"_101\":4490},\"Testing ⚛️ components using render props\",\"2018-01-08T00:00:00.000Z\",\"Let's look at how we can write tests for React components that use render props!\",{\"_80\":4485},[790,985,297],\"unsplash/photo-1500479694472-551d1fb6258d\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/CQl3Y5bV6FA\\\"\u003eScott Walsh\u003c/a\u003e\",\"data:image/webp;base64,UklGRhIBAABXRUJQVlA4IAYBAAAwCgCdASpkAEMAPrlQoUsnNTGnqvgMgqAXCWcGcAzFAv2KqU8rGA4fV0u9KnReDu9B5HxhMFLQQSo1+Nr3a/I8ds5gpvdHoAppdA6rlyAHNHRhLUDYWyovlgAA/u/Cw7TENGoTMfUv2pslNpC5qroxonWl+67XBKuGwxr+LryG7w6DyVnH/0TNpgGVDZ3Tetq/+rFt0LcUq/zNlfdhTrS8nNrFrBHb4ML2itnkNcx4UnUjZ1bO5M8AZ3k/2PhDjpTM3yZsGA7kkB0TIrZ7l/EzTw5wkeYSUpvCiN48rbcLSiqyVepp3M0cXxRU0B7whY4ZKbxh7d+yFtoBtC1kjBYQI8A0TIwA\",\"by Scott Walsh\",\"Photo by Scott Walsh\",\"testing-components-using-render-props\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/testing-components-using-render-props.mdx\",{\"_55\":4494,\"_57\":4495,\"_67\":4499,\"_103\":4514,\"_105\":4515},\"January 1st, 2018\",{\"_59\":445,\"_61\":4496,\"_63\":4497,\"_65\":4498},8.96,537600,1792,{\"_69\":4500,\"_71\":4501,\"_73\":4502,\"_78\":4503,\"_349\":4505,\"_93\":4511,\"_97\":4512,\"_99\":4513,\"_95\":2523,\"_101\":2524},\"But really, what is a JavaScript test?\",\"2018-01-01T00:00:00.000Z\",\"Let's take a step back and understand automated testing of JavaScript from square one.\",{\"_80\":4504},[790,985,434],[4506],{\"_352\":368,\"_354\":4507,\"_356\":4508},\"https://codesnapmag.hashnode.dev/javascript-test\",{\"_358\":4509,\"_354\":4510},\"Hyunji Seok\",\"https://somebodylovesusall.medium.com/\",\"unsplash/photo-1478001517127-fccc92f54906\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/xEh4hvxRKXM\\\"\u003eJoshua Earle\u003c/a\u003e\",\"data:image/webp;base64,UklGRjADAABXRUJQVlA4WAoAAAAgAAAAYwAAQgAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCDaAAAAkAcAnQEqZABDAD6dRJ1KKDIvoak029JAE4lnBvjnyeBGZU/AEHfLgdmV8yNcSIw4WfWBVlLOdDKFZXXRX+ETHtMurVgYAP66PJTj95GbPDcFfvbt7pyUVNdz7F2OAZ4PscAtnekolq21SLf8zt8lS18htQAvCpTezH/k5v3+9R+GC/bxEpN7fpZAhwCO5RNpJ1xCQsqppruxxMZM3k7UVtHAESwzD2uTm9i5SqQ2bC5Zjp3piLn7tMEQikJkwoqsWdGz60MoLdEjUkr9nTlE4x2sSWS6fltiAAA=\",\"but-really-what-is-a-javascript-test\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/but-really-what-is-a-javascript-test.mdx\",{\"_55\":4517,\"_57\":4518,\"_67\":4522,\"_103\":4534,\"_105\":4535},\"December 25th, 2017\",{\"_59\":1137,\"_61\":4519,\"_63\":4520,\"_65\":4521},2.66,159600,532,{\"_69\":4523,\"_71\":4524,\"_73\":4525,\"_78\":4526,\"_93\":4530,\"_97\":4531,\"_99\":4532,\"_95\":4533,\"_101\":4533},\"Merry Christmas!\",\"2017-12-25T00:00:00.000Z\",\"As I write this, it's Christmas Eve. My kids have fallen asleep and I've wrapped up the last few presents I've made or purchased for them...\",{\"_80\":4527},[4528,4529],\"Christmas\",\"Light The World\",\"kentcdodds.com/content/blog/merry-christmas/banner\",\"\u003ca href=\\\"https://www.mormon.org/christmas/25-ways-25-days\\\"\u003e#LightTheWorld\u003c/a\u003e\",\"data:image/webp;base64,UklGRsAAAABXRUJQVlA4ILQAAAAQBgCdASpkADgAPp1InUultymnpvK6iuATiWkAyywDcLsz1yBzEu2yz3EwyDcFmtBCn5JZox1MhoAA/u5QbvBCR3J+lZcfY6+vwca/REPIqS9I3KoPlCNtrB8/3ngjn1yaathaQxENAR4IWBmLjA1Jk/CTDNhRZztfMdJ9MzwW/B68tRuoWwcwI6adiAQ79vkelOpCGymsUPh3u+HtfDlxG3uUvTUytATckbNhVKzYldAAAAA=\",\"#LightTheWorld\",\"merry-christmas\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/merry-christmas.mdx\",{\"_55\":4537,\"_57\":4538,\"_67\":4542,\"_103\":4551,\"_105\":4552},\"December 18th, 2017\",{\"_59\":1137,\"_61\":4539,\"_63\":4540,\"_65\":4541},2.585,155100,517,{\"_69\":4543,\"_71\":4544,\"_73\":4545,\"_93\":4546,\"_97\":4547,\"_99\":4548,\"_95\":4549,\"_101\":4550},\"The Beginner's Guide to ReactJS\",\"2017-12-18T00:00:00.000Z\",\"The course is free forever on egghead.io! Let's talk about how it teaches even developers experienced with React ⚛️\",\"unsplash/photo-1469026140142-cb239ea68152\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/5x4U6InVXpc\\\"\u003eMathias Jensen\u003c/a\u003e\",\"data:image/webp;base64,UklGRjQDAABXRUJQVlA4WAoAAAAgAAAAYwAAQgAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCDeAAAAMAsAnQEqZABDAD65SJ5KLieiobFbyQHAFwlpANOh5EHSfQbkMvfBI4ljVQdmOHgHES9G5KE0AHlwqQuT8MD3seX64rFabN+JdAm5HOAcgQXGgvvoSV8HdH4UcYrv/cQfJYAA/vMf7GjJzpB1hCHxvtVBpvE6RytGyjz4g81pXPJ0btqEcA7mJZb+nAAnKqAR8u4qlGVW7/psgqZVqmlcI4uTOxINTBsdnBOkAdp6OpF7Vn8mKmz1DunRoV0L6D7wAdCT/dU4vx9ToBAiHmqoZ9bQwX44032KW/1OPCwA\",\"by Mathias Jensen\",\"Photo by Mathias Jensen\",\"the-beginners-guide-to-reactjs\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/the-beginners-guide-to-reactjs.mdx\",{\"_55\":4554,\"_57\":4555,\"_67\":4559,\"_103\":4570,\"_105\":4571},\"December 11th, 2017\",{\"_59\":261,\"_61\":4556,\"_63\":4557,\"_65\":4558},4.04,242400,808,{\"_69\":4560,\"_71\":4561,\"_73\":4562,\"_78\":4563,\"_93\":4565,\"_97\":4566,\"_99\":4567,\"_95\":4568,\"_101\":4569},\"Giving good demos\",\"2017-12-11T00:00:00.000Z\",\"I gave a pretty good demo and here are some things I did that might help you give good demos too.\",{\"_80\":4564},[340],\"unsplash/photo-1494253188410-ff0cdea5499e\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/UdURxHDhrgY\\\"\u003eMartin Jernberg\u003c/a\u003e\",\"data:image/webp;base64,UklGRugAAABXRUJQVlA4INwAAADQCACdASpkAEMAPrlOn0u/vKoqLNpLC/AXCWkGWAMF7FOd9H0zt3t5hHgL2+LE5mnMtZutvEhUWC3UPhoRwOSYOa94QvfnlaX3Hm6I1ReAAP7woxGzsVGzLFZS0loWPTRvo5XgmRWWLLunGtXeAhdkh3WAE7NsXkHpO2TjFcavVLFwYmU2RQszrNV91RavPDPIl3tawKhx17Tl4iRrJxhH60/FuiNkpIf1JcHZb+sqb2w3HDvYEdVSqp2wLzQJ63EXaEGkTCrb+yeq10Z5rZE2I8EJWf1IwG3MAAAA\",\"by Martin Jernberg\",\"Photo by Martin Jernberg\",\"giving-good-demos\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/giving-good-demos.mdx\",{\"_55\":4573,\"_57\":4574,\"_67\":4578,\"_103\":4584,\"_105\":4585},\"December 5th, 2017\",{\"_59\":191,\"_61\":4575,\"_63\":4576,\"_65\":4577},6.11,366600,1222,{\"_69\":4579,\"_71\":4580,\"_73\":4581,\"_78\":4582,\"_93\":3447,\"_97\":3448,\"_99\":3449,\"_95\":3450,\"_101\":3451},\"Advanced React Component Patterns\",\"2017-12-05T00:00:00.000Z\",\"An overview of some of the patterns covered in my recently released egghead.io course (free until Friday).\",{\"_80\":4583},[790,297],\"advanced-react-component-patterns\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/advanced-react-component-patterns.mdx\",{\"_55\":4587,\"_57\":4588,\"_67\":4592,\"_103\":4602,\"_105\":4603},\"December 4th, 2017\",{\"_59\":261,\"_61\":4589,\"_63\":4590,\"_65\":4591},4.775,286500,955,{\"_69\":4593,\"_71\":4594,\"_73\":4595,\"_78\":4596,\"_93\":4598,\"_97\":4599,\"_99\":4600,\"_95\":4601,\"_101\":4601},\"Learn React Fundamentals 🆓 and Advanced Patterns ⚛️ 🎁\",\"2017-12-04T00:00:00.000Z\",\"Two and a half hours of new beginner (free) and advanced React material are now available egghead.io!\",{\"_80\":4597},[297,790],\"kentcdodds.com/content/blog/learn-react-fundamentals-and-advanced-patterns/banner\",\"Artwork for egghead.io is created by the amazing \u003ca href=\\\"https://x.com/Mappletons\\\"\u003eMaggie_Appleton\u003c/a\u003e\",\"data:image/webp;base64,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\",\"Artwork for egghead.io is created by the amazing Maggie_Appleton\",\"learn-react-fundamentals-and-advanced-patterns\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/learn-react-fundamentals-and-advanced-patterns.mdx\",{\"_55\":4605,\"_57\":4606,\"_67\":4610,\"_103\":4621,\"_105\":4622},\"November 20th, 2017\",{\"_59\":331,\"_61\":4607,\"_63\":4608,\"_65\":4609},3.345,200700,669,{\"_69\":4611,\"_71\":4612,\"_73\":4613,\"_78\":4614,\"_93\":4616,\"_97\":4617,\"_99\":4618,\"_95\":4619,\"_101\":4620},\"Becoming an Open Source Project Maintainer\",\"2017-11-20T00:00:00.000Z\",\"Some tips and tricks that have worked for me.\",{\"_80\":4615},[638],\"unsplash/photo-1496355723323-30286a0b340d\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/GtYFwFrFbMA\\\"\u003eWill Oey\u003c/a\u003e\",\"data:image/webp;base64,UklGRmQBAABXRUJQVlA4IFgBAADQDACdASpkAEMAPqVAmUo/sTCiN7p8c/AUiWUAyQirw/DLXhgxGcSTKQukG4PbQ13p+oUuLWbgEHUHRe2r4EFan6T5xSHoS6EDvafVz9PcnqvscB9O5w91m70Vmo2+a2PUcPF3HSlYGSbOv1ylegQA/uxWv7Q4vx/+BE5zKqBBmon1hcP3nA5su6f72Mn1uD36yRjFqHYVuB87iRuhJL+Qj0ONrC6jMiez8AavqWzDP/UtiXARY0NKNB88vU8PQ3xhU6owzq5o2BqKTzTYKmbRkTMw0RGy/HCTwRwdNzUxXemG+LMLMxj/cA1w4yisYOjcIY1iSlyh4w68UoOSSsz2WQYOQNicn/tZhkxD1GaUf0NNlCT6VBZWSHS7dUxJkkEJLB07SapxAgUKzo87UsNLf3w6FKYWxIM75fh2RNd9X2ndl9BQPUZY6S4q1mz1eFaChbWybMxAAA==\",\"by Will Oey\",\"Photo by Will Oey\",\"becoming-an-open-source-project-maintainer\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/becoming-an-open-source-project-maintainer.mdx\",{\"_55\":4624,\"_57\":4625,\"_67\":4626,\"_103\":4639,\"_105\":4640},\"November 13th, 2017\",{\"_59\":214,\"_61\":1303,\"_63\":1304,\"_65\":1305},{\"_2086\":2087,\"_69\":4627,\"_71\":4628,\"_73\":4629,\"_78\":4630,\"_93\":4634,\"_97\":4635,\"_99\":4636,\"_95\":4637,\"_101\":4638},\"Rendering a function with React\",\"2017-11-13T00:00:00.000Z\",\"How I tricked React into rendering a function (not call it... render it)\",{\"_80\":4631},[790,297,4632,4633],\"Iterators\",\"ES6\",\"unsplash/photo-1475518845976-0fd87b7e4e5d\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/Ovn1hyBge38\\\"\u003epaul morris\u003c/a\u003e\",\"data:image/webp;base64,UklGRoADAABXRUJQVlA4WAoAAAAgAAAAYwAAQgAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCAqAQAAsAsAnQEqZABDAD6lRptJvjKpLy63C1vAFIllBnqc1wfyLgCkNEG67pRlk5SP7ITb8xbipv1rIqXyoqugeom0VCrIIdGKb85eGb+QmEN3oR9OPrvI2u5KrVNQ8nWWt/oEC0x9algAAP7vg7J1qOyLq6QnjzkVdNhOP/IbheJl+ABkHbIQFeZUPL6ZKd43TFixKvIkPYFGtmsjeQACysjcFxJP4Z528TrL01dcy0gznUdM5AYdZA2nbMbcLLyjzRqxW9wppXIsUDSOfjZfZhZ0zzPp96olT86nYA9b4thfRYe5CE6TYGYUdDnFoqh7j33bTR0gQP7CEIaY4iVVmCFOs5w00K8QY8AQN921M9badGe8fsgFLFuJ7AAOGxTB6iBwadWhZJknjiAAAA==\",\"by paul morris\",\"Photo by paul morris\",\"rendering-a-function-with-react\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/rendering-a-function-with-react.mdx\",{\"_55\":4642,\"_57\":4643,\"_67\":4647,\"_103\":4658,\"_105\":4659},\"November 6th, 2017\",{\"_59\":191,\"_61\":4644,\"_63\":4645,\"_65\":4646},6.29,377400,1258,{\"_69\":4648,\"_71\":4649,\"_73\":4650,\"_78\":4651,\"_93\":4653,\"_97\":4654,\"_99\":4655,\"_95\":4656,\"_101\":4657},\"Improving the usability of your modules\",\"2017-11-06T00:00:00.000Z\",\"How to make your modules more generically useful and easier to test.\",{\"_80\":4652},[790,638],\"unsplash/photo-1462331940025-496dfbfc7564\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/rTZW4f02zY8\\\"\u003eNASA\u003c/a\u003e\",\"data:image/webp;base64,UklGRkwBAABXRUJQVlA4IEABAABwCwCdASpkAF8APp1GnUssOi+vJ7M7g0ATiWUG+OZLyIc9j7H/QIbJhUk2fXR4WfTUzpDj3Iz+jP9500+SWDM4wC+b6cIR/ChK1DA14L+AmvXf06ll2JyF7ZhIVsJSUELvnLQAAP7rrdCQKI9b4XwF+RKd7H8OiO4xbA1isHEIush/pM4E0P+MTX9lTVlMN3yTyMdD5PZm8xm5VKWt747ebxTu6S31B+iu33jx6QOcxiMuQLujvL+W6c8WbUGdQjshvEsQ3tXkpmNAP7mcQO+Bz9JEZjnVXrNcMmpG9r8rHDFQztDth27t1MmCswYd2shEOsPws4xJas+0/VGAgHQpJR7Ok734cF77h1NMDdXdyOFHVdTQ0/+7q6MbDoGMtHhqbrmfquCZmRtY3vP4z65h/aEg2pLHUwj2kArEKwQAAA==\",\"by NASA\",\"Photo by NASA\",\"improving-the-usability-of-your-modules\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/improving-the-usability-of-your-modules.mdx\",{\"_55\":4661,\"_57\":4662,\"_67\":4666,\"_103\":4677,\"_105\":4678},\"October 30th, 2017\",{\"_59\":709,\"_61\":4663,\"_63\":4664,\"_65\":4665},9.01,540600,1802,{\"_69\":4667,\"_71\":4668,\"_73\":4669,\"_78\":4670,\"_93\":4672,\"_97\":4673,\"_99\":4674,\"_95\":4675,\"_101\":4676},\"Effective Snapshot Testing\",\"2017-10-30T00:00:00.000Z\",\"Snapshot testing can be useless, or super useful. Your choice. Let's talk about how to make them useful.\",{\"_80\":4671},[790,985,2068],\"unsplash/photo-1453728013993-6d66e9c9123a\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/7KLa-xLbSXA\\\"\u003ePaul Skorupskas\u003c/a\u003e\",\"data:image/webp;base64,UklGRjgBAABXRUJQVlA4ICwBAABwCgCdASpkAEMAPqVIn0w/tzeiqTM6O/AUiWUAxQy/S/oE+zJa/9nrZ+E1FPENRZBk6ZGNfui2pQ/9Sop8T6pe5JcuGfDs5bAuPKFryybMa+mJ/brB8zMd4NtnAAD+8fbwp+88yaitl6sjflnYpWBfIB2dD/x82FFcWKhcz0HiIwXzOUUKqv4i31qVdttPRCQWx5X9N901O0cwwOvrB+yIj8c3i2hx697wBC1NDByv7BOYa7O6dTWCHW3L4vM2DO6YTp/MXt39mK0bIsDnevtbvtuKKKcFT0KqyDDQUO/XTGbTYTpq7ywQT835Nb6AjoWsH8kN9hTLkgb3mM4rmxojZ88Ul94uab4xCFuZRpuz3Nq0aKx2EGXZI4W5QAAGJvKVZfbMW6iagWIAAAA=\",\"by Paul Skorupskas\",\"Photo by Paul Skorupskas\",\"effective-snapshot-testing\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/effective-snapshot-testing.mdx\",{\"_55\":4680,\"_57\":4681,\"_67\":4685,\"_103\":4697,\"_105\":4698},\"October 9th, 2017\",{\"_59\":1137,\"_61\":4682,\"_63\":4683,\"_65\":4684},2.72,163200,544,{\"_69\":4686,\"_71\":4687,\"_73\":4688,\"_78\":4689,\"_93\":4692,\"_97\":4693,\"_99\":4694,\"_95\":4695,\"_101\":4696},\"Make maintainable workarounds with codegen 💥\",\"2017-10-09T00:00:00.000Z\",\"Sometimes you need to workaround issues in other libraries. These workarounds can often lead to messy code. codegen is a tool that helps...\",{\"_80\":4690},[790,3466,2539,4691],\"Macros\",\"kentcdodds.com/content/blog/make-maintainable-workarounds-with-codegen/banner\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/4NwJVVrsULk\\\"\u003eAlexandre Godreau\u003c/a\u003e\",\"data:image/webp;base64,UklGRvIAAABXRUJQVlA4IOYAAAAwCgCdASpkAEMAPqlKnkoopK0hsVvM+aAVCWkAzygbAAsz/F+M4pYhl6zNSpwHtlCWl6IjXbW9VD3x5auYtcO8/418EVxZLyiaQ1qI2C+pjg9oTpoFZaMS2hAA/vNzBAQ6Nk5nt2eNzbyHaBCmSjn/n3JWSLo7SVdVId/aov+hvFQ4Annav+vPRoU4hvyD6CHfBDpD47cp5f4+PvPIyBnO6ZSsTQAmgxqUbzrPPmDqaM8WqSiMTslzIM/wQCxJOZYNxJewUSf8SWXDXowVoVdE45m7zT6YkX2v4afL5jjkAmADTmQAAA==\",\"by Alexandre Godreau\",\"Photo by Alexandre Godreau\",\"make-maintainable-workarounds-with-codegen\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/make-maintainable-workarounds-with-codegen.mdx\",{\"_55\":4700,\"_57\":4701,\"_67\":4705,\"_103\":4716,\"_105\":4717},\"October 2nd, 2017\",{\"_59\":214,\"_61\":4702,\"_63\":4703,\"_65\":4704},5.55,333000,1110,{\"_69\":4706,\"_71\":4707,\"_73\":4708,\"_78\":4709,\"_93\":4711,\"_97\":4712,\"_99\":4713,\"_95\":4714,\"_101\":4715},\"How to give rendering control to users with prop getters\",\"2017-10-02T00:00:00.000Z\",\"Render props are awesome, put it together with prop getters and you have an awesome combination to give users of your React components...\",{\"_80\":4710},[790,297],\"unsplash/photo-1464348123218-0ee63dfd2746\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/rx1iJ59jRyU\\\"\u003eAnnie Spratt\u003c/a\u003e\",\"data:image/webp;base64,UklGRq4AAABXRUJQVlA4IKIAAABQBwCdASpkADwAPp1GnUosKyyhqTYLMZATiWkAzjgJ9byCEPTvVldSk8V9gvj0OpTMnL0UApvf0YMLV7pk+YCjkGwAAP7zJgSxJnHpYhlUX/55WYajbaXrBsPBgNdQo4r4V68Ekul69cYmy/PGYJPXhHM29DHmrqrns/i6hPGMm/6ZtBLfuOOuDiSqPXrtTkIIgBhFg0HGcB38G18Oj+0AAAA=\",\"by Annie Spratt\",\"Photo by Annie Spratt\",\"how-to-give-rendering-control-to-users-with-prop-getters\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-to-give-rendering-control-to-users-with-prop-getters.mdx\",{\"_55\":4719,\"_57\":4720,\"_67\":4724,\"_103\":4737,\"_105\":4738},\"September 26th, 2017\",{\"_59\":331,\"_61\":4721,\"_63\":4722,\"_65\":4723},3.955,237300,791,{\"_69\":4725,\"_71\":4726,\"_73\":4727,\"_78\":4728,\"_93\":4732,\"_97\":4733,\"_99\":4734,\"_95\":4735,\"_101\":4736},\"Tools without config 🛠📦\",\"2017-09-26T00:00:00.000Z\",\"TL;DR/Spoiler alert: I'm working on a tool at PayPal called paypal-scripts and a personal one called kcd-scripts. You should try it too!\",{\"_80\":4729},[790,4730,2430,4731],\"Toolboxes\",\"Create React App\",\"unsplash/photo-1489386659872-204f4f861691\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/E3rMBrxqKRo\\\"\u003eLoboStudio Hamburg\u003c/a\u003e\",\"data:image/webp;base64,UklGRvAAAABXRUJQVlA4IOQAAAAQCgCdASpkAEMAPqVKnUsoq7MnqTgL0mAUiWcGcBjlopeXVChB4U6tJwCzADFo3406ZoP94PR84K/dhKdDUZZR1Kidctj6qEMVXqkwcsQ236ZIDpjJ5rk+wAD+8n1fGZ+wmMtK+BwnR3LUZTXwRVJQbLoR2ZCuvLCPfZZ26jTYq2r2JyrajupwdNUU0xQhcxZi29SlgRibUZGf6c9p1ydtONf7I41tKtRH0q2BQYHbBsROzECdI8LGfK9m1+fb0VlRjn4ygIK0pe1AjNwcYIJo+3hcOU4UDNTpjPkejYX82pAAAAA=\",\"by LoboStudio Hamburg\",\"Photo by LoboStudio Hamburg\",\"tools-without-config\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/tools-without-config.mdx\",{\"_55\":4740,\"_57\":4741,\"_67\":4745,\"_103\":4756,\"_105\":4757},\"August 23rd, 2017\",{\"_59\":709,\"_61\":4742,\"_63\":4743,\"_65\":4744},9.11,546600,1822,{\"_69\":4746,\"_71\":4747,\"_73\":4748,\"_78\":4749,\"_93\":4751,\"_97\":4752,\"_99\":4753,\"_95\":4754,\"_101\":4755},\"Introducing downshift 🏎 for React ⚛️\",\"2017-08-23T00:00:00.000Z\",\"downshift 🏎 is the primitive you need to build simple, flexible, WAI-ARIA compliant React...\",{\"_80\":4750},[790,297,4057,638],\"unsplash/photo-1487445277584-73aff2146611\",\"Photo by \u003ca href=\\\"https://unsplash.com/photos/j7lTi6MtYgk\\\"\u003eIsaac Jenks\u003c/a\u003e\",\"data:image/webp;base64,UklGRuYAAABXRUJQVlA4INoAAABQCACdASpkAEMAPqVInUq+MyYhrNbaS8AUiWkGcAzQAPqt2xPEcRAmz024mxnIAN9t+rkZMbeHSPxrPuvl3N2O9TmA6vNeeN0rvLAA/vB7oK2Knnlqla802QcWivZhKJBdkDZSAIXTATmh8yf3BIAXgx/aN/WBuRVYMLsztcvjg8Kp2nCu0jglNRJgcTHAKlM/B4ZYMnp5Nwb17yH4iyvRAQyoHvy6brLNtxd6bpBTDTrHfrZihMMBxzZSYoyqrdhzJxZR8c70Z5VBPvdTTtlaUrAfB0QUVgAgAA==\",\"by Isaac Jenks\",\"Photo by Isaac Jenks\",\"introducing-downshift-for-react\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/introducing-downshift-for-react.mdx\",{\"_55\":4759,\"_57\":4760,\"_67\":4764,\"_103\":4775,\"_105\":4776},\"July 17th, 2017\",{\"_59\":138,\"_61\":4761,\"_63\":4762,\"_65\":4763},7.44,446400,1488,{\"_69\":4765,\"_71\":4766,\"_73\":4767,\"_78\":4768,\"_93\":4770,\"_97\":4771,\"_99\":4772,\"_95\":4773,\"_101\":4774},\"How writing custom Babel \u0026 ESLint plugins can increase productivity \u0026 improve user experience\",\"2017-07-17T00:00:00.000Z\",\"And it's way more approachable than you think...\",{\"_80\":4769},[790,3466],\"kentcdodds.com/content/blog/how-writing-custom-babel-and-eslint-plugins-can-increase-productivity-and-improve-user-experience/banner\",\"Person exploring a forest of \u003cstrong\u003etrees\u003c/strong\u003e (source: \u003ca href=\\\"https://unsplash.com/photos/ZDhLVO5m5iE\\\"\u003ehttps://unsplash.com/photos/ZDhLVO5m5iE\u003c/a\u003e)\",\"data:image/webp;base64,UklGRsQAAABXRUJQVlA4ILgAAADQBwCdASpkAEMAPp1Inkwlq6miJJM6aXATiWkA0JACugkYQ6E7WmU1YYUf3hN7Ak5VydDqTNBp+bib9mFj1kOY583sF6J2gAD+8P5yXXiaVhQeOh3h0jc964JxX1SplaHA1NyxgGFfTiqgb03dPTKnxkici3IuWJAIHUvSPaaneFfjBZR2AZmYmyjsXzUHO7/Iqkmonj4U6bgWTlums7AUZmPeGmBTUXFF2Juv5SMwmx6qxMkDWGAA\",\"Person exploring a forest of trees (source: https://unsplash.com/s/ZDhLVO5m5iE)\",\"Person exploring a forest of trees (source: https://unsplash.com/photos/ZDhLVO5m5iE)\",\"how-writing-custom-babel-and-eslint-plugins-can-increase-productivity-and-improve-user-experience\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-writing-custom-babel-and-eslint-plugins-can-increase-productivity-and-improve-user-experience.mdx\",{\"_55\":4778,\"_57\":4779,\"_67\":4783,\"_103\":4794,\"_105\":4795},\"June 6th, 2017\",{\"_59\":649,\"_61\":4780,\"_63\":4781,\"_65\":4782},10.11,606600,2022,{\"_69\":4784,\"_71\":4785,\"_73\":4786,\"_78\":4787,\"_93\":4789,\"_97\":4790,\"_99\":4791,\"_95\":4792,\"_101\":4793},\"Classes, Complexity, and Functional Programming\",\"2017-06-06T00:00:00.000Z\",\"When I use classes, when I don't, what I do instead, and why\",{\"_80\":4788},[790],\"unsplash/photo-1453791052107-5c843da62d97\",\"Obligatory semi-to-not-related header image via: \u003ca href=\\\"https://unsplash.com/photos/sMQiL_2v4vs\\\"\u003ehttps://unsplash.com/photos/sMQiL_2v4vs\u003c/a\u003e\",\"data:image/webp;base64,UklGRtgAAABXRUJQVlA4IMwAAACwBwCdASpkAEMAPp1GnEultqknpZK72tATiWcGcBi8opuAbxkDeB4+Ggkx6cNOplxu2PU0RqzLNmVPSJ5JFTS7OvDIeX6AAP7xaLpaeGOpcK7b5YbwDBrXe88i4PYidIY5qmj01ZpyXbutckIfTj7i6P8MPeA+uRtAN1D8NTIKOn6PnhGdBguMTH4vNGli7zC9XxZ35WiYPaNCbzU1cTur8geyqHej6Z1HI0qGieh5553TtkT/rc4rRzPEd3L9thjejaUOIsvt3IjUgAA=\",\"Obligatory semi-to-not-related header  via: https://unsplash.com/photos/sMQiL_2v4vs\",\"Obligatory semi-to-not-related header image via: https://unsplash.com/photos/sMQiL_2v4vs\",\"classes-complexity-and-functional-programming\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/classes-complexity-and-functional-programming.mdx\",{\"_55\":4797,\"_57\":4798,\"_67\":4802,\"_103\":4811,\"_105\":4812},\"April 4th, 2017\",{\"_59\":261,\"_61\":4799,\"_63\":4800,\"_65\":4801},4.98,298800,996,{\"_69\":4803,\"_71\":4804,\"_73\":4805,\"_78\":4806,\"_93\":4808,\"_97\":4809,\"_99\":4810,\"_95\":4809,\"_101\":4809},\"Introducing glamorous 💄\",\"2017-04-04T00:00:00.000Z\",\"A styled-components 💅 and jsxstyle inspired solution for styling ⚛️ React Components from PayPal\",{\"_80\":4807},[297,790,724],\"kentcdodds.com/content/blog/introducing-glamorous/banner\",\"The glamorous logo, shamelessly inspired (with permission) by styled-components\",\"data:image/webp;base64,UklGRhgBAABXRUJQVlA4IAwBAADQDACdASpkAGQAPqVInUqmJDMpqxWrQmAUiWkA1FipwFR/91u4rIFCYMIkuRQKWZ2KC4z0dy/DJCbHzqVgysRlxt2Vxr1GPgU11q3/enNPYwHPlB4Op/meh7hFQaDUHUiIVVVRZAw7rRWxg81QjYAA/iwUezwH5Yi+rwAuGUE8DHTprxN1e44NlBhr0+RXSz23hHBLihDHY+j54E4N8BmLyb19uODejk5XEWeu+HEz2hsfnyxJzE1Mi9f/7KvxxEV3Rzt4xjgziBvVMl3aqB8+9/FgbuuGKZdKzu68M6ss7NU9sUtMxXUYiTZigYy31n0TwZXTWmGh2DSq68TWds0oUQnix7ypl/RVpAAA\",\"introducing-glamorous\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/introducing-glamorous.mdx\",{\"_55\":4814,\"_57\":4815,\"_67\":4819,\"_103\":4831,\"_105\":4832},\"November 18th, 2016\",{\"_59\":1137,\"_61\":4816,\"_63\":4817,\"_65\":4818},2.495,149700,499,{\"_69\":4820,\"_71\":4821,\"_73\":4822,\"_78\":4823,\"_93\":4829,\"_99\":4830},\"Tips for making a CLI-based tool with node\",\"2016-11-18T00:00:00.000Z\",\"I got this question on my AMA and decided to turn the answer into a formal blogpost.\",{\"_80\":4824},[790,4825,4826,4827,4828],\"NPM\",\"Cli\",\"Command Line\",\"Node\",\"kentcdodds.com/content/blog/tips-for-making-a-cli-based-tool-with-node/banner\",\"data:image/webp;base64,UklGRjABAABXRUJQVlA4ICQBAADwDQCdASpkAEMAPqFAlUo5o6Iht767izAUCWkAzJQ5sjiXKux+sGCcQ/sKFoG6YVwGTeH590H35o2h1WLD20L6PAN1eocHSvf5Bu8DJ5SbNpqMTF/rf9bAo/50Chj2KyXpu9VaHV/XJl3xSlObON4KyecVJYmDLgAA/vUH9/K3/QWF9VaqMkgnEK4oAgthsezkzs77ZWjo9O27x8e/KrzQGE3N4aiWSbj8namqkSjXZa8JnTjLF6nXbacM8LSIa109EE/7R4P30hM6UfvAwy5entNbSL/6opcWL7YcssA3ipAMgwCfxOn07Unwa6I5UxUyMNrYA+E5QuIw6H0aVvARsHq5Z0bSm9TBnD+OZINa49HYvyLMYKNhUwV5io19Lrz1AAAA\",\"tips-for-making-a-cli-based-tool-with-node\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/tips-for-making-a-cli-based-tool-with-node.mdx\",{\"_55\":4834,\"_57\":4835,\"_67\":4839,\"_103\":4850,\"_105\":4851},\"November 14th, 2016\",{\"_59\":138,\"_61\":4836,\"_63\":4837,\"_65\":4838},7.915,474900,1583,{\"_69\":4840,\"_71\":4841,\"_73\":4842,\"_78\":4843,\"_93\":4845,\"_97\":4846,\"_99\":4847,\"_95\":4848,\"_101\":4849},\"Migrating to Jest\",\"2016-11-14T00:00:00.000Z\",\"on the P2P team at PayPal\",{\"_80\":4844},[790,297,2068,985,4450],\"unsplash/photo-1470175369463-7bb9f41e614b\",\"\u003ca href=\\\"https://unsplash.com/photos/_dwwHrYRWcM\\\"\u003ehttps://unsplash.com/photos/_dwwHrYRWcM\u003c/a\u003e\",\"data:image/webp;base64,UklGRggDAABXRUJQVlA4WAoAAAAgAAAAYwAAQQAASUNDUDACAAAAAAIwQURCRQIQAABtbnRyUkdCIFhZWiAHzwAGAAMAAAAAAABhY3NwQVBQTAAAAABub25lAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUFEQkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApjcHJ0AAAA/AAAADJkZXNjAAABMAAAAGt3dHB0AAABnAAAABRia3B0AAABsAAAABRyVFJDAAABxAAAAA5nVFJDAAAB1AAAAA5iVFJDAAAB5AAAAA5yWFlaAAAB9AAAABRnWFlaAAACCAAAABRiWFlaAAACHAAAABR0ZXh0AAAAAENvcHlyaWdodCAxOTk5IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkAAAAZGVzYwAAAAAAAAARQWRvYmUgUkdCICgxOTk4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAGN1cnYAAAAAAAAAAQIzAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAFhZWiAAAAAAAACcGAAAT6UAAAT8WFlaIAAAAAAAADSNAACgLAAAD5VYWVogAAAAAAAAJjEAABAvAAC+nFZQOCCyAAAAsAcAnQEqZABCAD65VJ5KvKUzoa27usuQFwlpANLoHNwhbynn32R3xno5qt7Veng7SooUr+bfT49f/VfeSywkODyc4lZEAAD+9DCa2CLwOW+rzCRQ//0y4HliScBdyLZ+CML4umF4kq+5ngSjnc2l2RaCiGSXoIy6n6K2Q56X022eqEZfEuKyvoYPexxmIs0xREKXBz3BxEJFLiVF2NQENw1ff83Uz1EaagNZn6s+pKUAAA==\",\"https://unsplash.com/s/_dwwHrYRWcM\",\"https://unsplash.com/photos/_dwwHrYRWcM\",\"migrating-to-jest\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/migrating-to-jest.mdx\",{\"_55\":4853,\"_57\":4854,\"_67\":4858,\"_103\":4869,\"_105\":4870},\"October 28th, 2016\",{\"_59\":331,\"_61\":4855,\"_63\":4856,\"_65\":4857},3.27,196200,654,{\"_2086\":2087,\"_69\":4859,\"_71\":4860,\"_73\":4861,\"_78\":4862,\"_93\":4865,\"_97\":4866,\"_99\":4867,\"_95\":4868,\"_101\":4868},\"🌆 Sunsetting JavaScript Air 🌆\",\"2016-10-28T00:00:00.000Z\",\"for now... 🌇\",{\"_80\":4863},[790,638,4864,434],\"Podcast\",\"kentcdodds.com/content/blog/sunsetting-javascript-air/banner\",\"\u003ca href=\\\"https://javascriptair.com\\\"\u003ehttps://javascriptair.com\u003c/a\u003e\",\"data:image/webp;base64,UklGRooBAABXRUJQVlA4IH4BAADwDACdASpkAGQAPqVKnkosp7OhqxlrAnAUiWUDsBz+50k5A45ikAZ855nDmC8n/FLV1uSZz+219zqDZ+FZ65jvJ0TzOdDAF1SLFqqD7Mn0ZZPMFaVPOtRBIvt+A0ztFLN5DUN05XFarmGiuJ5VFBCAAP7w5lK1pf/5+Z/yjv9Y+RZ/kcD9G043fqeKhncbCEAXE1PIHiooD2/toXxgxN9PvBbnJM+28mLC9k5M7eK+eHt8oPbhzT+zaSVdC/r5AAD+uuH4J0cy40j+WUsiI0AWEUF3+sZSfdwfax/the58mkR6w5b2PKY+0mdQ/kyjkRMa9/ZjUOxY+U3F3LC6oTOLoYNOWkirEgtcqLPFL3JWLu9xK2gj66grNWEtO/JiQEfmRNMSlq3wTH3DAdghqxq6Qyj0rCtuHy3SdD6jODZNe1iJ0EIjkA+zOYEC6hyDkNqH09bwZcWJH/V23e4Nf6dNSWLmTyDEVzYncvKxyuhGKp1BTpHesj23D1/3oAAA\",\"https://javascriptair.com\",\"sunsetting-javascript-air\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/sunsetting-javascript-air.mdx\",{\"_55\":4872,\"_57\":4873,\"_67\":4877,\"_103\":4889,\"_105\":4890},\"May 31st, 2016\",{\"_59\":331,\"_61\":4874,\"_63\":4875,\"_65\":4876},3.18,190800,636,{\"_2086\":2087,\"_69\":4878,\"_71\":4879,\"_73\":4880,\"_78\":4881,\"_93\":4885,\"_97\":4886,\"_99\":4887,\"_95\":4888,\"_101\":4886},\"Kent OOO (Out Of the Office)\",\"2016-05-31T00:00:00.000Z\",\"Why this week's episode of JavaScript Air is canceled and where I'm going...\",{\"_80\":4882},[4883,790,4884],\"Tech\",\"Pioneers\",\"kentcdodds.com/content/blog/kent-ooo-out-of-the-office/banner\",\"Some of the photos I took for my wife to help me choose what hat to get (we chose the one on the_left)\",\"data:image/webp;base64,UklGRqwBAABXRUJQVlA4IKABAADwDgCdASpkAIUAPrlcokw/qbIlKDv7O/AXCWcG+OgL3BwppBHBg87JcZGcFwraRFFEjCktxH/XI8xHxyEoUAlYrMYuH5A1rvIvXJgzuNXqRTyIh0d6LGZKcQxgNmz6MY0xmCdvv/RtQzN4oBAYXw9ytMiS8ZOUJrpLgrKyqXLv4AD+7fMq5P0sXwaXpYjPvCdlUvOMCvqHMqKaD5rvhpBK0G7AwXzG90CCAfz07Hqv8RG69so0uRrLdtEVYnp/5ytdM5I+8lX778uKBZmZh62FutchbLPdB5tPnRVvK1GceK8Gy1T8fQ5zm/ShsxZ9PY7IvXzfwzK+Ma3W8BjUiW6ohpE/yjlZSYSvy/6FVI4LP3dbzC2VxBttLR1+s/M5kPlCPmFoblUCawYQrIjRxigrou4G9yAGWh5DuklwuDEedQZoZt/5gwGi6AZvGFgX/k++u8wPd5ocgsoo/WYUBVowqoeUN4MXeosxIu9oc5pxU0kKMCO4ee4cV5hPEWRrqLTQWdnE3okK5eOHZGDn3AaY1PIVnw4DNuh89HueaoAAAA==\",\"Some of the s I took for my wife to help me choose what hat to get (we chose the one on the_left)\",\"kent-ooo-out-of-the-office\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/kent-ooo-out-of-the-office.mdx\",{\"_55\":4892,\"_57\":4893,\"_67\":4894,\"_103\":4902,\"_105\":4903},\"February 8th, 2016\",{\"_59\":2590,\"_61\":2591,\"_63\":2592,\"_65\":2593},{\"_69\":4895,\"_71\":4896,\"_73\":4897,\"_78\":4898,\"_93\":4900,\"_99\":4901},\"Introducing: How to Contribute to Open Source\",\"2016-02-08T00:00:00.000Z\",\"My free, first-timer friendly egghead.io series all about how to contribute to open source projects on GitHub.\",{\"_80\":4899},[638,790,637],\"kentcdodds.com/content/blog/introducing-how-to-contribute-to-open-source/banner\",\"data:image/webp;base64,UklGRsoJAABXRUJQVlA4WAoAAAAQAAAAYwAAYwAAQUxQSAoIAAABGbVt27Ahp21MRP8DjUM/DYht2wiS1t9/zR9gIzl7HURMAAW3kSRJEjoi0zMyMovmfezxhGc83q/YI7/+tCMcMP3yNcZ7NcY/HnffXr0aHh9YxxzvsRCwzsgy/VCMddG/UWIF69RzWOebDgbyNIJwP53qm8b7XBnSlr6oRX4+thUAFNXXe+EwODvkKKo41xQ2yt5o6YuxUEqH8KxvCRF6Tk4fWruiCdqMOkt7cEVDnbtSskc7P2wPcqI9GspTCs0H06Ao9+QaJ7HTA4aIR1lZBlkjPr+IKXBLjOHAe/IAHX6Ujz/cC9yfoZaOgnRnRpSVGKXSOrCyBoRBNa9coZEjjhYLHPumnQ7kRx+DAPusDaVVlCCJV6CwGnF9xAMTFYeO20vBYrTz4lEwiYoGWec1zB3harRPcVxOLJCtMP3KErzp298WhWgC7bNruaFhQHnpnxLTt3j6cq7jHzwgaV+pZS9Jgoz3I2XpbWa1iM3DdQ4onJTvGUohZvC1tPgDUF+DTVg8P0W3BiQMJMGAr5QlAyIh5/If8eH+zw8XhEVRwLFQnIOK4ArXG21IynMMAFQQUQvEhpjIHoIcocpK2Xu8OJSkfhosyvo+W93jWuHHYoa/kRSWZ7GPFTIpTgxVihN2H9XgCH2ACj961KMQFEf3pBPkHG1foYxrhvaW2bo10LEraTDIemIY4FtDqgek5Rb4VECJraywgAwgoeBliKgs5bSQWGi7p9Dk9KzuwGOA0d5d0MX/YbhR8Iaj0A/UAEkpeqbW3+PXkhlK0RaEOl7WTh9+qsajbkeCEFP6ODtqBtITrcx89DE+3VpV68guy1B3sTi3figVo39c9RBy0W0IdyC+5Ylhl9cHmom4/Zt16j/1KbTww3u//WEWdtUNN/wvI8bULOBIcyZQbi8+BuHoJI8+k7LFsH+Bnxr2haEQDdV61iy8N6J3ShTcUh+iNeGn70tpS80kEBtRIkdJsX3RcGuClpoGkHJobAkKKPZYKgIfX77OJlMXG3N8aaYsbJLjBOaXagOIR2iU77NyNooag7hRbD0IDUczRpVVa2EprGVFHQDX1OAWfB1r+HKpNEuKy4agFshQI3351QB9+NEAclQf5B86UXLYGJUSfW/guLewtQdCBjaht6LgLmMogyhRO+0ZBT16I374h4gD11tRx1FZOwQ+G2GrVTEMrSHi2vdhPMLPtqxsxCMoIHnE6hC7FatgfkMLoDVglAoGi4Bk1l1B3haoFRpaKJbrhLSwjodj8gpKeWslGRXiqQFlUFhoFIxDEwgLYyz/yxu4DzLdK/u2We29kAFBjtdXNMwulc5eqW+7Vup168AYD89LvUq/SR01rfXIVWihN4SG2g08Oh7KGX26mzIWgkCPYCQXtB+dQnfYn6EV1xKArth7ZUAMZMKjAQYXlHyshFJKHqUjwPsS5oeVDSaGA41YaRhi92iN7OMhFXXtULAxDAwo8D6+Dk78Jev8Yn6PgX0qWnUVo/dCkyuCNsDYqoRcXWHXPAuCfKjo4hEYFK5Bz5ZurIz2Zj2+YYpDQ+v0YrmPltY18eJq/d66AGPxzhGiG9ejj87pt5SSQvBat602fC1XK6psAFnmsVA0yIPD3ckCqcjxQncfriBour5wzWiRrg942B2jNKEfNqil0kV/7fDr2ARniCGreyr2Aq7XHq8GapQVhShVsBVUlknAg2LnpDQ+9AGtUg9KxSxHsTIHcpiv/wIss+If0kdZuD7NssKtTWmBJGlJLgKFa7CIkCHA8lCKt1NQCq4spUs3pBLaqI0cuhpdp3ZYoqSLa70U5/GomBbJfRluGRW8V54rMWN1mAyMNE4BIx/96WusHWjyG9L8lqPnceRKKz067tWCMO2348phdBAcBVnjwNghZ073glcFqKgj1sIsCi1koxfrxwm3YzRjtJ6UHSGB0sZoNQgKcD37HRF2OHA3LQatGDvctyNlwQTtfS8UbX3E0ZyQI/Q6DKK0oEAkGE3hvaPGBZ0wEGVW1JbFs+yI7/+BjhzllmNuYw5ufZR5ug8N/WVlxaUp6saKS4FMZeX8Jg4bfhzIgijLLi3Zos+jYFt8TzHX/HXF39zB50hmj8aRqO4P8mqWw/DT1tLu2vBaIv4GLTxbRzELtj34+oe0zvI6IbUjrA4N5xilN6r6VsW/umAzY4YrCiw+Pgapv7dqrfa5bcpLLEVbIaqHMEBDBOLX78bua23zB6jo+WMdGo84f4zKsz8sOlJ1lLQtRrR95fzTV+kP6yPSaKHNQ4v0rAy9/NJRg0cghhYcUjnrIG+deHYBSFoWYomKcnxj/DrF8DpR/zxkfnDIzr3WtIWv339V3Fc/IIx4XOYoUQxAy/pC/Z4AjRTGaEGjCDd+a9oICZx0/FGKFfYf2W4YCzwqTgseapD5vhrcv/s02InznpuEMLs1MHb5NbUD4PZz6nVChLKjE/ftzcPhBWRdo+/VVUQhYgUM48IKSweSLgZ7y/oo/2NsNOX9wxS8FQrEiiHHw0UhD34AcjBQ2wvtKJ3gVj3bTkz0583ECto6y15mqEMO96CWbYGzAR5ljPLs2qOe9qdr4AorTVRvxLgTCUFCOZ8XSLNRsF4EL6bOox5O5KuxiHEP6yIgoAWR3q9/yORnFxHtuRhKpAoKIYBUc4qtR31g8ooKnSUVcASfQ5iGf5P729hP0MkRCLA18+wtrPADgh/gOcqvSWnSEEArSy6mRxlDon9ONNZyHq6O/5EAU29S8QBWUDggmgEAAFAUAJ0BKmQAZAA+oUabSLUkMiIvvKrioBQJZwZ71QUKcm1VqZob/gsOk+1zH6fRKDQtq0QXbtgMuq/g+ZOhDqOnBp9dWcZG7u1ACryZ3BzUoBj8vs4sC5qsWOGYCNhuLgHNPG7mCX0QRu/OhNfpZmHd3pXIrgKv0QwVy1XrONzXQJWOINnpe0fpM6j7JoMnYjtCW8iLQe9mBrIXifuT0MTrDTHlErOcUfPgIAD+9V8PKFRPjBqQOq+PUy4uIxeYxW4D5jE/PDEroCRSqm0gmTAR2mF1tO3mnucB2l30Yw3UuZftO3B7pmcb0qlRYDfXpaibJmlQ69Ub1zJAQjKNJJlX72ARBv5vTz6ig5tHqWYpzZ0Y24UBupJMZLBhBD+di7lM7Y0x8Iy0QytgBczsqqh29BPy5k//vvocqSSPW1H1HHfM3wKOEKI1axjFqJuyRTejffad9vagcKzwcvqwq3xH9cZVjb/TKMReZd8deo70UvUjz9Vb8qWW3vgsDExS6KBqmaVbixycLAYVtkNPZ3yywSFULCVSAAAA\",\"introducing-how-to-contribute-to-open-source\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/introducing-how-to-contribute-to-open-source.mdx\",{\"_55\":4905,\"_57\":4906,\"_67\":4910,\"_103\":4920,\"_105\":4921},\"December 23rd, 2015\",{\"_59\":191,\"_61\":4907,\"_63\":4908,\"_65\":4909},6.725,403500,1345,{\"_69\":4911,\"_71\":4912,\"_73\":4913,\"_78\":4914,\"_93\":4917,\"_97\":4918,\"_99\":4919,\"_95\":4918,\"_101\":4918},\"Misunderstanding ES6 Modules, Upgrading Babel, Tears, and a Solution\",\"2015-12-23T00:00:00.000Z\",\"On October 29th, 2015, Sebastian McKenzie, James Kyle, and the rest of the Babel team dropped a huge major release for frontend developers...\",{\"_80\":4915},[790,4633,4916],\"babeljs\",\"kentcdodds.com/content/blog/misunderstanding-es6-modules-upgrading-babel-tears-and-a-solution/banner\",\"Those are supposed to be_tears...\",\"data:image/webp;base64,UklGRh4EAABXRUJQVlA4WAoAAAAQAAAAYwAALAAAQUxQSGoDAAAFT6AgABmG/o3ZX4mISPDV3aAba1sYvUIOcArsjOMVmnHsEbpuQLsdbAFEH+mNQB3odweu93vfD7cQ0X+IkqyGbR6Cx0NISVvJ7jc8QoxrTGmNcVmCqw5qccEtGmG1Vi/SpHXpUqW6JUbNUlbEKZZAra468i5NrYtU78Frynklosw58mBZFL210btgLGvUTJGVXPBIAjSL6kTRehtD64IR2LecUkJwzhuECffexxhttNbES4x53fO25YdSINBM4E7vRbmp32MQ+aC87/u27WtiOGd40ZqX2mX0cQNjoFm1ZqXse14tlBGITe26b4wm3yWmPRfYnlOMbqnMZgY1+K12XYom8ly3vZRDR84ArSQOvEvDDtf1dX3dJH3MWynneSqlpJiJ4Dx2aaPf4+v+0jGujqA4jtd5EsgXgDTNN82BL1AXWbPyS2PZHunbwoM0dXfBZ2lm0Bpwnq+XouQUAXsM6NTQRxD+KG6c0KfqF4wa6S9D1cVqWsPAYhXAR3EQFjDXNCia4b8kSexFK+/PcZQtpRDAFLArVk/0HwoqiuKjxNAqSdrVd8HOpP9qvAkr8H5/Xqc5OtTiaDVpC7NQ2q/9mGKxE2am0a4XOm25reUk8d9R9pXuGSW0+n/pBEs3QOGj9CrTQOaFT8EwJ402aq3/ovB6H8e2rYzAXue44XQOjMDJ2R7YyDB3Ni6jdJEGnnTU3tq55/gtOhPqBCBcgYvQu9Cy1+s46M6EYLQ3l7gBN66ZufwNwDj5JuPMTLR9eI0LD4txAV3kWc7zAG8ZRy0YrzYA1DDIG1COg5gu2aS7Vi9d2ugDiirEzT+3Uwe6McM8ewaDtNhM1pqG33spmiump6ASqMxJH806bjJsy3ldItUWC/sqGTrVkBHq71w29S2nSJqGZ5Ds0oz1LvJd/DOXfSt5S4nedP8oYwATRe+Un3lTy9Tt5vDipWPQOuli3Ie8aXzgYY+dJ+bp6Ngv2MVY9f7nmnfNwRMPlV+7JGVmVbzUqsh5VY/WgxFe6rTXZB4hIU+LAS+uVnrOOCJ3CliMrD2OweR82lE9z3m16gL/D2F2rlSj72xk1cQrKrmG+iOuGnWXWS3YTSe/BWOoOf8jxpgWy+j4RzPtDXNY5ZUdEIPZ2TMWM4HpOutndw4ZvW5ngpSnZsqnFe8cVlA4II4AAACwBACdASpkAC0APp1On00lpCKiIYmYsBOJZwb4GoRAoPjXHnbfZBe1XycF4kUwAP7twe0/+YJ/7/f9/vN77s7RaYs4Jk1KXtVmbcTXbr8aKA+cYWV4y6I3A2WW3IfxrXHo9eOJZqarf7ZrjyH3IlvaxO5iRaAQ/hKM4O8S+8WCSAe5w/w+IN1M8FEEAAAA\",\"misunderstanding-es6-modules-upgrading-babel-tears-and-a-solution\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/misunderstanding-es6-modules-upgrading-babel-tears-and-a-solution.mdx\",{\"_55\":4923,\"_57\":4924,\"_67\":4928,\"_103\":4939,\"_105\":4940},\"November 16th, 2015\",{\"_59\":331,\"_61\":4925,\"_63\":4926,\"_65\":4927},3.08,184800,616,{\"_69\":4929,\"_71\":4930,\"_73\":4931,\"_78\":4932,\"_93\":4934,\"_97\":4935,\"_99\":4936,\"_95\":4937,\"_101\":4938},\"Semicolons in JavaScript: A preference\",\"2015-11-16T00:00:00.000Z\",\"An argument for why use of semicolons in JavaScript source is a preference\",{\"_80\":4933},[790,4633],\"kentcdodds.com/content/blog/semicolons-in-javascript-a-preference/banner\",\"\u003ca href=\\\"http://www.imagegenerator.net/create/clippy\\\"\u003eImageGenerator.net\u003c/a\u003e\",\"data:image/webp;base64,UklGRgQBAABXRUJQVlA4IPgAAADQCACdASpkAGUAPp1GnUylry+iIhVcAfATiWcA0WIfYAwzmsfl3F3i9JIZqmATDgC2W4m1OAPLzUyrDWOS0NVXyQdI56Js8Pqc9wKWUj8AAP70tysml+oi1HlPWHdKNiSm9YMMS/fNRGrAuJvJFXmkSW6BFy1rgXSMTUlRVWeuXPMNGEa5xbvMa7eVYxgii0p+5jQZmasAzxYuO1XEJNZlY4UdvFcrJo3mOyIjPQFPw39Z0dSnXl4mlvOf60d3vA6xzu6w04zrInp08vFcq3Ua4kWx9YNFw7v/Tg9G/RnSrRAzi0G6+XwDA02FFkvDY/FbRMzVdNQAAA==\",\"Generator.net\",\"ImageGenerator.net\",\"semicolons-in-javascript-a-preference\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/semicolons-in-javascript-a-preference.mdx\",{\"_55\":4942,\"_57\":4943,\"_67\":4944,\"_103\":4954,\"_105\":4955},\"October 27th, 2015\",{\"_59\":261,\"_61\":3819,\"_63\":3820,\"_65\":3821},{\"_69\":4945,\"_71\":4946,\"_73\":4947,\"_78\":4948,\"_93\":4951,\"_97\":4952,\"_99\":4953,\"_95\":4952,\"_101\":4952},\"Please, don't commit commented out code\",\"2015-10-27T00:00:00.000Z\",\"Some solid reasons you should delete code that is not used\",{\"_80\":4949},[4950,637,2539],\"Git\",\"kentcdodds.com/content/blog/please-dont-commit-commented-out-code/banner\",\"git diff contains the knowledge we_seek\",\"data:image/webp;base64,UklGRgIGAABXRUJQVlA4WAoAAAAQAAAAYwAAbwAAQUxQSCUFAAAFGQVt2zBS//hDHomI/ueNww+4A0CxjSRJkpTegqys18KuHAFkmHtmxv0fEDEBEmVbqRuKGEVEuw9peh+f8ONPUmRZlp1XcFJBvBEWKUvHB64ixp3AM7f8JItsE8GMCK0VNASY8MJFOR3xeFnS3iW1hQ0sb+0s6UI0HCtUkX2Z17MCpVMmhSa2SQpggtmj+4AI91L6tvcb7DC4/ilhvfQStJiO4Pk0tPcr0SWn0ABkX7C8z/Yaw1ugBElNUAQWoCxOnoWREATJppSQe21fX42e8n2f2HkdxFoS9LFniwQQzEbOZkYyo0Ezit73sRXlw4U8MvdeSj9wRNhh7PRUUUR4UjiCPIvMjLYo+IzGMKcwYGvxpGaU0Nx9TfZ9NotbhAv+bnLV0qy/v0/4YiuBU9yoASjdwjQibMqB19FXOYOaRgFQsVRTZPOYPGGgTuFFjJU0S3G6wxMJS4U2dZBTlmg+in9XUs1ogVGGDhLQM44YCNq3FMdiS+e02r4nxo63ItIHWrEzw8xK9mHt4MmTj/1hkMXH7C5UYlrYLwY3eVDAE+M2WE82DaedS2j5/ciSIkuCTE74EnqRXU1whUE3ufulD8dJSwiOM5MVVqghENGWROMZt7u+giVQ96TAdZnL8YNCDSTtvU8oBAuO8bct8PhVSeclPeKK31/92Azb4HGeFTLJ8H1uY79hmfGjiAR0O7+EOZgy2FTjqtsVuFiV4aRksiaw11+wRUrkJHtkleAXAKWJCIBC5DngdmJfCo2LASjWGNTy3i0S8Qya3GHMz4tIgc8Zh0egfvRJgecjIOA8Ixw+6HIigVcarBhDuXkZMs5ZZbngm78gOvFKUnOL0pCb9fwpxnGHcwB8K84c4My/nGaRpAwAS3mqZEadwMNjmxuHoKRMET5xztVhiinl/mrO35BLyvK//0t+BSvyK9iv0v25WZHfjhX5dfDktzoWiSgyyl7kV5Msc1Upg2W4oJAB1AxbJPIsMneKDH+zbmXelCPbi1OWr5tKDlaA/9YVZoz8R+aGvH0gRS6kFzmTydC7OIZVxGbn6xl8kavao3c9cnCKGBlxAqA8RJaAB9aCY3gHuIsyE9XCRQYWUAxAoioHfgry1MZyTdOdlQsijuxd3ayzJE2HriOPXVlSd2KneHEPUu6udF9jPQC7n4plFf5VWpFbz6rKSt5qGgwHvCKnBpdEAQR0Lnv5NbYZrgklrsRc1gBE+x4MX57T4Kn2EqqFBm96AYW6PYH3YlrKIVUsfao7lMMeQe93kAB9un/9bacG7MaAnnAeauC1aG9g8JpnzCY4RXzppjgDrXTuTcGREALFA6iCCUVNykQXAYvXId0CANyQ1PFyLMtgh7yDKyYbmlt5kXSMkf4KXVwSJ5KAUtJss1Cw4TrlfUZDhUIEDwBCXMmICWWrFoOQ5a394uv8qhTyosU4K3Zy0MQ43v86RC3mHumLwLv6ktheb++ZiTwshgYYTpOVjgEK2mfefcZDeWIL4GXBZlTBcttEyoyF/YjL4SlsciMJRMxy476JSXPxzItVkktrLlyKqbmSAxOchi6CE50ABU9xz1hogwsrMpSGljjsjSc32blGnCWOAJn/Z7GhhlyhJ+0UIUI5j4MDYEPE8w7sDuUjsUZSvC1xmbVnT7hCRlfkjxTO0GPZ3oHW1gzA4SJsYpSA8eKad7jDXiulFEcqnkBgsXtmHXmZUWQJ2B9bQ2Gu+LP0GofI1KJECjEZXp9UBHtR3D/dYypdg8SXTgAAVlA4ILYAAACQCACdASpkAHAAPp1KnEuoM6MhqJJ6AnATiWkA1FAC8Qzuv533Bcp8KvZGmK8wXxjpT6tz+98tU1OGOmt6x5xIhRZDY4fpCx5kc7QyoAD+uZuXZZoMRyUrBYEKt51kBB2Sv3pvbZ6wTBjJRBJEGlPRS2MQ7uKmauakUMWRV4RA4dIKPvV54imZdUGsk/9kKzDBpjScKDgzkwvN0MupVXjxowToIb7zLR/sOZdKlZ4s9C3o4IAAAA==\",\"please-dont-commit-commented-out-code\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/please-dont-commit-commented-out-code.mdx\",{\"_55\":4957,\"_57\":4958,\"_67\":4959,\"_103\":4967,\"_105\":4968},\"October 22nd, 2015\",{\"_59\":1137,\"_61\":4539,\"_63\":4540,\"_65\":4541},{\"_69\":4960,\"_71\":4961,\"_73\":4962,\"_78\":4963,\"_93\":4965,\"_99\":4966},\"Open Source Stamina\",\"2015-10-22T00:00:00.000Z\",\"You contribute best to something you use regularly.\",{\"_80\":4964},[4450,790,638],\"kentcdodds.com/content/blog/open-source-stamina/banner\",\"data:image/webp;base64,UklGRoADAABXRUJQVlA4THQDAAAvY4APADegEEAAxJ+54VCQIADyf7OBggQBkP+bDeY//iqACqQAGCAEYBs3Whk8DJIyeBh0Y7Adg40/Bkt2e0UgRfTfgSSpcSNYLiHiAyl+w+MGGkDTaD9uIivWTvaI1JuMwQGZArdBkwwSEnxLDDUSyXdhKmmUbmCbRsu4T88gSj7nIa7t9LeS1WTic8CzBieI7Oau1ufGRYeTjnrg1UlRlr1pFKEpvJmKFKC6nuj6PEkUFem5zV3SrH7SPLgRaTQEddeIq3JGC26WB6nswQfmLNmWJKUfJBsIdsV8hbDt4hIEC0iM5LF8mXiBJ23FSbRKPCEPcu5yZJwTJRFWqOTUPVh0VTHY0mIbgh8sRYZJPNebcD8SRSTibYVgLjT3FHhGW3Uu24m2xd5WoOiDiS2ZcqVGqWodFddNttfsOGl+uB2yeId8Eau9LQHTDadCqMI9eIXWZSNa08xoVzph3ewLiKDUNCVB/ZiszYtNlybRc0vDENwGKMRNSBmIFFO8bpeSmHPjkAbSpdkpwtZhJUE+OO1uKV+b5ESSnrK0OYX5NI7VPGv7kJ62dyYfu2354IWTndoAfcv2zlcm25ijq3YWvGXYwZrNNq5NJpJronfWWATbM2tKe5Os6IXLVuZCkN7pwvx5O+J0zS/JFkIb2pMXGoOyDyUokR2QwCTmYgt4FqoARQRrq195mhaSQFH2d9ifi+TnbuqddBrH0Groj6Sv9LP1+ftIsU6CooXJNQ4v6pqwCX+/L/Igv0RQqajSv0pTXwJ4wHF1BjEoDyaaJ50XlOwuVAH0KwmwSZXuYKn1mAHEOJtyjFckw+XmweDsqH+Fajdtf488E/rniyyIvDeFVuCZqHh1hMgNms+Yri1mAvrHeCNc9XTD+IewRI1wlEcfZdL81RQgbYLUbiEOONd9pZTU0iRo/BPeVTlotT3G3/cyJMZCKaW4DtLegrtSqbxMVyp80ibzxjoLSrnSzZ+wMnYXmgWzTlbFRk7YBazufOaP7nlbloVpLtXIfcaQPbRi62eDzy6OeC/B7Wz11YfYlGSbTrr3swJZmnv6lGmYcPCLjuF0T4VFNVKFdCRNfK7qeUa7dGwu0mZJSp9QjQ+xvTDklMvoqYbSdxKfrKu3ivbyHzJZ01x9WNF/I/E5rYikVW1iY5CkR/pOWqp6tipC5OxjXg==\",\"open-source-stamina\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/open-source-stamina.mdx\",{\"_55\":4970,\"_57\":4971,\"_67\":4975,\"_103\":4984,\"_105\":4985},\"October 5th, 2015\",{\"_59\":261,\"_61\":4972,\"_63\":4973,\"_65\":4974},4.66,279600,932,{\"_69\":4976,\"_71\":4977,\"_73\":4978,\"_78\":4979,\"_93\":4981,\"_97\":4982,\"_99\":4983,\"_95\":4982,\"_101\":4982},\"Why I don't commit generated files to master\",\"2015-10-05T00:00:00.000Z\",\"for libraries...\",{\"_80\":4980},[4950,637],\"kentcdodds.com/content/blog/why-i-dont-commit-generated-files-to-master/banner\",\"React.js 0.13.3 minified\",\"data:image/webp;base64,UklGRl4BAABXRUJQVlA4TFEBAAAvY8ANABcgJk1D1zCSZNK2qavtHE0smOJrKTX/8d8CIDkBHEmSIqH6P1d61GnAHErI+beg5M8e0n8FJTsXMsaDiP4jTNs2zuaR7JNfVxEJkY5Tc4upLrkfvy/by3RKhxqhiIcczZ2Y05c8w2tfwlTkjvRry5W++jOiiISJ3JD7t9x0jidcVvtcvvqNLCHyhMo9Zjr7DVlMbHaAuqHr/ZnC6pz9IEvIe+NK/qeioktIhc0BUi7CFpuDJEI6Ode1hJ1D2FI66RJLSJnJYOekVTZphdBzrh+o30hyCa9xIKlZZ2+kSuRAUKw5gOtiSFrxPZ8b0jj1hmBKrDkO/MsfiHjObxmAByOd44AmIQ3pDWftn6g1B+BKlFB5btAkPs4QAfzc3yyXZ0CTOKHSG6VIlzvgrrWPSgceee1nd3lucK3dibKQATw898olz8CKc4uFzt4AAA==\",\"why-i-dont-commit-generated-files-to-master\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/why-i-dont-commit-generated-files-to-master.mdx\",{\"_55\":4987,\"_57\":4988,\"_67\":4992,\"_103\":5000,\"_105\":5001},\"September 8th, 2015\",{\"_59\":2590,\"_61\":4989,\"_63\":4990,\"_65\":4991},1.795,107700,359,{\"_69\":4993,\"_71\":4994,\"_73\":4995,\"_78\":4996,\"_93\":4998,\"_99\":4999},\"How to Write a JavaScript Library\",\"2015-09-08T00:00:00.000Z\",\"There are so many reasons to open source your code. But knowing how to do it can be a real challenge.\",{\"_80\":4997},[790,638],\"kentcdodds.com/content/blog/how-to-write-a-javascript-library/banner\",\"data:image/webp;base64,UklGRgABAABXRUJQVlA4IPQAAADQCgCdASpkADcAPqVEnEospCMht/25IZAUiWcAyYCxC9Anf1EZr5x44spqt0x8KAuBoEBfkV2h4kNtafhp0MqsBzM/Tge5wjyq2EyfeZm2Ie7Zbj5z13Ys8c7WD72NgAD+9xFrM4rDyCI1r2/ei74rQ4p1Lg7w/zZaANm1lvNxvBGa9ssOXuVC5ze418o68Nw9R7nKNZkr5DS1qhLrxK1TYiGPKzypyfTN/F5gZmq+pskQoxwGMOvV6kdPbTKeBYY0svBCeLtaZxuQhQvevO/YEzsw9QHV4mPOzOJTKKdLc/IskchPo+UQKmid1k0L0r/JIAAA\",\"how-to-write-a-javascript-library\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/how-to-write-a-javascript-library.mdx\",{\"_55\":5003,\"_57\":5004,\"_67\":5008,\"_103\":5022,\"_105\":5023},\"August 4th, 2015\",{\"_59\":214,\"_61\":5005,\"_63\":5006,\"_65\":5007},5.06,303600,1012,{\"_69\":5009,\"_71\":5010,\"_73\":5011,\"_78\":5012,\"_349\":5014,\"_93\":5020,\"_99\":5021},\"First Timers Only\",\"2015-08-04T00:00:00.000Z\",\"A suggestion to Open Source project maintainers...\",{\"_80\":5013},[638],[5015],{\"_352\":368,\"_354\":5016,\"_356\":5017},\"https://krafton-jungle-essay.tistory.com/entry/%EB%B2%88%EC%97%AD-%EC%B2%AB-%EA%B2%BD%ED%97%98%EC%9E%90%EB%A7%8C-First-Timers-only\",{\"_358\":5018,\"_354\":5019},\"KyungHyun SO\",\"https://github.com/dev-diver\",\"kentcdodds.com/blog/first-timers-only/banner_ghk1m8\",\"data:image/webp;base64,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\",\"first-timers-only\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/first-timers-only.mdx\",{\"_55\":5025,\"_57\":5026,\"_67\":5030,\"_103\":5036,\"_105\":5037},\"May 18th, 2015\",{\"_59\":214,\"_61\":5027,\"_63\":5028,\"_65\":5029},5.935,356100,1187,{\"_69\":5031,\"_2086\":2087,\"_71\":5032,\"_73\":5033,\"_93\":5034,\"_99\":5035},\"Newspaper Code Structure\",\"2015-05-18T00:00:00.000Z\",\"Your code should read like a newspaper article. Important stuff at the top, details at the bottom. I have a particular convention for my...\",\"kentcdodds.com/content/blog/newspaper-code-structure/banner\",\"data:image/webp;base64,UklGRsAAAABXRUJQVlA4ILQAAADwBgCdASpkADgAPp1EnUu8ta+vJJgMA5ATiWkGcGarr5CBPbgma0TkiM//nt/UTfD8lBki8ijilKrjatpLeBWoAP7wjfqqSfIE4mO2QsAI0zMUVqL4nzlovFnQ2/lFkp+I199zIRHE8xkfwXl4PfRIvTq+S+kLqF7kJ8YVJ7nAAg7o9ITliJYojulhXzT+C0S87dEtrdUX8YHl239BUM5jEHKVGK11dsf333IXGqz7YUAAAAA=\",\"newspaper-code-structure\",\"https://github.com/kentcdodds/kentcdodds.com/edit/main/services/site/content/blog/newspaper-code-structure.mdx\",\"recommended\",{\"_55\":1480,\"_57\":5040,\"_67\":5041,\"_103\":1511,\"_105\":1512},{\"_59\":1137,\"_61\":1482,\"_63\":1483,\"_65\":1484},{\"_69\":1486,\"_71\":1487,\"_73\":1488,\"_78\":5042,\"_349\":5044,\"_93\":1506,\"_97\":1507,\"_99\":1508,\"_95\":1509,\"_101\":1510},{\"_80\":5043},[297,790,1223],[5045,5047,5049],{\"_352\":368,\"_354\":1493,\"_356\":5046},{\"_358\":818,\"_354\":819},{\"_352\":470,\"_354\":1496,\"_356\":5048},{\"_358\":1498,\"_354\":1499},{\"_352\":1501,\"_354\":1502,\"_356\":5050},{\"_358\":1504,\"_354\":1505},\"readRankings\",[5053,5062,5067],{\"_5054\":5055,\"_5056\":5057,\"_5058\":5059,\"_5060\":5061},\"team\",\"YELLOW\",\"totalReads\",2845,\"ranking\",2.2143,\"percent\",1,{\"_5054\":5063,\"_5056\":5064,\"_5058\":5065,\"_5060\":5066},\"RED\",3642,1.1053,0.16,{\"_5054\":5068,\"_5056\":5069,\"_5058\":5070,\"_5060\":5071},\"BLUE\",7487,0.8947,0,\"allPostReadRankings\",{\"_104\":5074,\"_133\":5078,\"_163\":5083,\"_186\":5087,\"_210\":5091,\"_235\":5098,\"_256\":5102,\"_279\":5108,\"_304\":5112,\"_326\":5119,\"_378\":5123,\"_398\":5130,\"_420\":5134,\"_440\":5140,\"_488\":5144,\"_510\":5151,\"_534\":5155,\"_555\":5161,\"_574\":5167,\"_602\":5174,\"_622\":5180,\"_644\":5187,\"_684\":5193,\"_704\":5199,\"_739\":5205,\"_772\":5210,\"_796\":5216,\"_841\":5222,\"_872\":5228,\"_894\":5233,\"_931\":5238,\"_972\":5244,\"_1025\":5251,\"_1047\":5257,\"_1076\":5262,\"_1106\":5268,\"_1132\":5273,\"_1158\":5277,\"_1182\":5282,\"_1207\":5287,\"_1238\":5291,\"_1261\":5297,\"_1298\":5302,\"_1322\":5306,\"_1347\":5311,\"_1375\":5316,\"_1400\":5321,\"_1417\":5327,\"_1437\":5331,\"_1460\":5335,\"_1477\":5339,\"_1511\":5343,\"_1537\":5353,\"_1558\":5357,\"_1580\":5361,\"_1601\":5365,\"_1639\":5369,\"_1658\":5375,\"_1680\":5379,\"_1718\":5388,\"_1759\":5392,\"_1787\":5399,\"_1837\":5403,\"_1861\":5410,\"_1883\":5414,\"_1905\":5418,\"_1963\":5422,\"_1981\":5428,\"_2008\":5432,\"_2036\":5436,\"_2053\":5440,\"_2077\":5445,\"_2104\":5449,\"_2125\":5453,\"_2157\":5457,\"_2180\":5464,\"_2202\":5468,\"_2226\":5473,\"_2255\":5477,\"_2283\":5481,\"_2301\":5485,\"_2325\":5490,\"_2345\":5494,\"_2372\":5499,\"_2393\":5503,\"_2415\":5507,\"_2430\":5511,\"_2454\":5515,\"_2481\":5520,\"_2504\":5526,\"_2525\":5530,\"_2543\":5534,\"_2564\":5538,\"_2585\":5542,\"_2606\":5546,\"_2646\":5550,\"_2666\":5554,\"_2688\":5561,\"_2709\":5565,\"_2724\":5569,\"_2751\":5573,\"_2772\":5577,\"_2793\":5581,\"_2820\":5586,\"_2843\":5591,\"_2868\":5595,\"_2889\":5600,\"_2920\":5604,\"_2945\":5608,\"_2965\":5612,\"_2997\":5616,\"_3022\":5621,\"_3048\":5628,\"_3074\":5633,\"_3091\":5637,\"_3126\":5641,\"_2808\":5647,\"_3206\":5651,\"_3226\":5657,\"_3248\":5662,\"_3277\":5666,\"_3310\":5670,\"_3331\":5674,\"_3350\":5678,\"_3369\":5682,\"_3395\":5686,\"_3412\":5691,\"_3433\":5695,\"_3452\":5699,\"_3475\":5703,\"_3497\":5707,\"_3517\":5711,\"_3539\":5715,\"_3558\":5719,\"_3573\":5723,\"_3597\":5727,\"_3619\":5732,\"_3638\":5736,\"_3658\":5740,\"_3679\":5744,\"_3698\":5748,\"_3717\":5752,\"_3733\":5756,\"_3753\":5760,\"_3773\":5764,\"_3792\":5768,\"_3814\":5772,\"_3831\":5777,\"_3851\":5781,\"_3870\":5785,\"_3889\":5789,\"_3909\":5793,\"_3928\":5797,\"_3953\":5801,\"_3978\":5805,\"_4005\":5810,\"_4024\":5814,\"_4043\":5818,\"_4064\":5822,\"_4082\":5826,\"_4101\":5830,\"_4119\":5834,\"_4139\":5838,\"_4163\":5843,\"_4182\":5847,\"_4198\":5851,\"_4214\":5855,\"_4233\":5859,\"_4250\":5863,\"_4269\":5867,\"_4288\":5871,\"_4308\":5875,\"_4327\":5880,\"_4351\":5884,\"_4375\":5888,\"_4394\":5892,\"_4411\":5896,\"_4436\":5900,\"_4456\":5904,\"_4475\":5908,\"_4491\":5912,\"_4514\":5916,\"_4534\":5921,\"_4551\":5925,\"_4570\":5929,\"_4584\":5933,\"_4602\":5937,\"_4621\":5941,\"_4639\":5945,\"_4658\":5949,\"_4677\":5953,\"_4697\":5957,\"_4716\":5961,\"_4737\":5965,\"_4756\":5969,\"_4775\":5973,\"_4794\":5977,\"_4811\":5981,\"_4831\":5985,\"_4850\":5989,\"_4869\":5993,\"_4889\":5997,\"_4902\":6001,\"_4920\":6005,\"_4939\":6009,\"_4954\":6013,\"_4967\":6017,\"_4984\":6021,\"_5000\":6025,\"_5022\":6029,\"_5036\":6033},[5075,5076,5077],{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},[5079,5081,5082],{\"_5054\":5063,\"_5056\":5061,\"_5058\":5080,\"_5060\":5061},0.0526,{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},[5084,5085,5086],{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},[5088,5089,5090],{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},[5092,5094,5097],{\"_5054\":5055,\"_5056\":5061,\"_5058\":5093,\"_5060\":5061},0.0714,{\"_5054\":5063,\"_5056\":5061,\"_5058\":5095,\"_5060\":5096},0.0556,0.78,{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},[5099,5100,5101],{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},[5103,5104,5107],{\"_5054\":5055,\"_5056\":5061,\"_5058\":5093,\"_5060\":5061},{\"_5054\":5068,\"_5056\":5105,\"_5058\":5080,\"_5060\":5106},2,0.74,{\"_5054\":5063,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},[5109,5110,5111],{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},[5113,5116,5118],{\"_5054\":5068,\"_5056\":5114,\"_5058\":5115,\"_5060\":5061},3,0.0789,{\"_5054\":5055,\"_5056\":5061,\"_5058\":5093,\"_5060\":5117},0.68,{\"_5054\":5063,\"_5056\":5061,\"_5058\":5095,\"_5060\":5071},[5120,5121,5122],{\"_5054\":5063,\"_5056\":5105,\"_5058\":5095,\"_5060\":5061},{\"_5054\":5068,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},[5124,5127,5129],{\"_5054\":5068,\"_5056\":5125,\"_5058\":5126,\"_5060\":5061},24,0.0263,{\"_5054\":5055,\"_5056\":5128,\"_5058\":5071,\"_5060\":5071},10,{\"_5054\":5063,\"_5056\":5128,\"_5058\":5071,\"_5060\":5071},[5131,5132,5133],{\"_5054\":5063,\"_5056\":17,\"_5058\":5095,\"_5060\":5061},{\"_5054\":5068,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},[5135,5137,5139],{\"_5054\":5055,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},4,{\"_5054\":5068,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},8,{\"_5054\":5063,\"_5056\":12,\"_5058\":5071,\"_5060\":5071},[5141,5142,5143],{\"_5054\":5055,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},[5145,5147,5149],{\"_5054\":5068,\"_5056\":5146,\"_5058\":5071,\"_5060\":5071},75,{\"_5054\":5063,\"_5056\":5148,\"_5058\":5071,\"_5060\":5071},46,{\"_5054\":5055,\"_5056\":5150,\"_5058\":5071,\"_5060\":5071},40,[5152,5153,5154],{\"_5054\":5063,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},[5156,5157,5159],{\"_5054\":5055,\"_5056\":1111,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5158,\"_5058\":5071,\"_5060\":5071},54,{\"_5054\":5063,\"_5056\":5160,\"_5058\":5071,\"_5060\":5071},17,[5162,5164,5166],{\"_5054\":5063,\"_5056\":5163,\"_5058\":5071,\"_5060\":5071},9,{\"_5054\":5068,\"_5056\":5165,\"_5058\":5071,\"_5060\":5071},20,{\"_5054\":5055,\"_5056\":1111,\"_5058\":5071,\"_5060\":5071},[5168,5170,5172],{\"_5054\":5055,\"_5056\":5169,\"_5058\":5071,\"_5060\":5071},19,{\"_5054\":5068,\"_5056\":5171,\"_5058\":5071,\"_5060\":5071},67,{\"_5054\":5063,\"_5056\":5173,\"_5058\":5071,\"_5060\":5071},36,[5175,5176,5178],{\"_5054\":5063,\"_5056\":1111,\"_5058\":5095,\"_5060\":5061},{\"_5054\":5055,\"_5056\":5177,\"_5058\":5071,\"_5060\":5071},11,{\"_5054\":5068,\"_5056\":5179,\"_5058\":5071,\"_5060\":5071},27,[5181,5183,5185],{\"_5054\":5063,\"_5056\":5182,\"_5058\":5071,\"_5060\":5071},37,{\"_5054\":5068,\"_5056\":5184,\"_5058\":5071,\"_5060\":5071},63,{\"_5054\":5055,\"_5056\":5186,\"_5058\":5071,\"_5060\":5071},18,[5188,5189,5191],{\"_5054\":5063,\"_5056\":5182,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5190,\"_5058\":5071,\"_5060\":5071},64,{\"_5054\":5055,\"_5056\":5192,\"_5058\":5071,\"_5060\":5071},26,[5194,5195,5197],{\"_5054\":5055,\"_5056\":5173,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5196,\"_5058\":5071,\"_5060\":5071},104,{\"_5054\":5063,\"_5056\":5198,\"_5058\":5071,\"_5060\":5071},42,[5200,5202,5204],{\"_5054\":5068,\"_5056\":5201,\"_5058\":5071,\"_5060\":5071},114,{\"_5054\":5063,\"_5056\":5203,\"_5058\":5071,\"_5060\":5071},43,{\"_5054\":5055,\"_5056\":5198,\"_5058\":5071,\"_5060\":5071},[5206,5207,5208],{\"_5054\":5063,\"_5056\":5184,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5198,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5209,\"_5058\":5071,\"_5060\":5071},115,[5211,5212,5214],{\"_5054\":5063,\"_5056\":5158,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5213,\"_5058\":5071,\"_5060\":5071},109,{\"_5054\":5055,\"_5056\":5215,\"_5058\":5071,\"_5060\":5071},50,[5217,5219,5220],{\"_5054\":5055,\"_5056\":5218,\"_5058\":5071,\"_5060\":5071},32,{\"_5054\":5063,\"_5056\":5182,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5221,\"_5058\":5071,\"_5060\":5071},73,[5223,5224,5226],{\"_5054\":5063,\"_5056\":5171,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5225,\"_5058\":5071,\"_5060\":5071},69,{\"_5054\":5068,\"_5056\":5227,\"_5058\":5071,\"_5060\":5071},152,[5229,5231,5232],{\"_5054\":5068,\"_5056\":5230,\"_5058\":5071,\"_5060\":5071},66,{\"_5054\":5063,\"_5056\":5192,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5169,\"_5058\":5071,\"_5060\":5071},[5234,5235,5236],{\"_5054\":5055,\"_5056\":5186,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5215,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5237,\"_5058\":5071,\"_5060\":5071},23,[5239,5241,5243],{\"_5054\":5055,\"_5056\":5240,\"_5058\":5071,\"_5060\":5071},45,{\"_5054\":5068,\"_5056\":5242,\"_5058\":5071,\"_5060\":5071},116,{\"_5054\":5063,\"_5056\":5215,\"_5058\":5071,\"_5060\":5071},[5245,5247,5249],{\"_5054\":5068,\"_5056\":5246,\"_5058\":5126,\"_5060\":5061},185,{\"_5054\":5055,\"_5056\":5248,\"_5058\":5071,\"_5060\":5071},71,{\"_5054\":5063,\"_5056\":5250,\"_5058\":5071,\"_5060\":5071},84,[5252,5253,5255],{\"_5054\":5063,\"_5056\":5173,\"_5058\":5080,\"_5060\":5061},{\"_5054\":5055,\"_5056\":5254,\"_5058\":5071,\"_5060\":5071},29,{\"_5054\":5068,\"_5056\":5256,\"_5058\":5071,\"_5060\":5071},97,[5258,5259,5261],{\"_5054\":5063,\"_5056\":5169,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5260,\"_5058\":5071,\"_5060\":5071},33,{\"_5054\":5055,\"_5056\":1111,\"_5058\":5071,\"_5060\":5071},[5263,5265,5267],{\"_5054\":5063,\"_5056\":5264,\"_5058\":5095,\"_5060\":5061},28,{\"_5054\":5055,\"_5056\":5266,\"_5058\":5071,\"_5060\":5071},21,{\"_5054\":5068,\"_5056\":5260,\"_5058\":5071,\"_5060\":5071},[5269,5271,5272],{\"_5054\":5055,\"_5056\":5270,\"_5058\":5071,\"_5060\":5071},15,{\"_5054\":5068,\"_5056\":5237,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5160,\"_5058\":5071,\"_5060\":5071},[5274,5275,5276],{\"_5054\":5068,\"_5056\":5182,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":1111,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5163,\"_5058\":5071,\"_5060\":5071},[5278,5279,5281],{\"_5054\":5063,\"_5056\":5160,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5280,\"_5058\":5071,\"_5060\":5071},14,{\"_5054\":5068,\"_5056\":5240,\"_5058\":5071,\"_5060\":5071},[5283,5284,5285],{\"_5054\":5055,\"_5056\":1111,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5165,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5286,\"_5058\":5071,\"_5060\":5071},13,[5288,5289,5290],{\"_5054\":5068,\"_5056\":5198,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5286,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":1111,\"_5058\":5071,\"_5060\":5071},[5292,5293,5295],{\"_5054\":5055,\"_5056\":5179,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5294,\"_5058\":5071,\"_5060\":5071},48,{\"_5054\":5068,\"_5056\":5296,\"_5058\":5071,\"_5060\":5071},94,[5298,5299,5300],{\"_5054\":5055,\"_5056\":5173,\"_5058\":5093,\"_5060\":5061},{\"_5054\":5063,\"_5056\":5150,\"_5058\":5095,\"_5060\":5096},{\"_5054\":5068,\"_5056\":5301,\"_5058\":5071,\"_5060\":5071},72,[5303,5304,5305],{\"_5054\":5055,\"_5056\":5186,\"_5058\":5093,\"_5060\":5061},{\"_5054\":5068,\"_5056\":5254,\"_5058\":5080,\"_5060\":5106},{\"_5054\":5063,\"_5056\":5270,\"_5058\":5071,\"_5060\":5071},[5307,5308,5309],{\"_5054\":5063,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":1111,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5310,\"_5058\":5071,\"_5060\":5071},6,[5312,5314,5315],{\"_5054\":5068,\"_5056\":5313,\"_5058\":5071,\"_5060\":5071},22,{\"_5054\":5063,\"_5056\":5310,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":12,\"_5058\":5071,\"_5060\":5071},[5317,5318,5319],{\"_5054\":5063,\"_5056\":5169,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5128,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5320,\"_5058\":5071,\"_5060\":5071},38,[5322,5324,5326],{\"_5054\":5055,\"_5056\":5323,\"_5058\":5093,\"_5060\":5061},16,{\"_5054\":5068,\"_5056\":5325,\"_5058\":5071,\"_5060\":5071},34,{\"_5054\":5063,\"_5056\":5286,\"_5058\":5071,\"_5060\":5071},[5328,5329,5330],{\"_5054\":5063,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},[5332,5333,5334],{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[5336,5337,5338],{\"_5054\":5063,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":12,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5270,\"_5058\":5071,\"_5060\":5071},[5340,5341,5342],{\"_5054\":5063,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[5344,5347,5351],{\"_5054\":5055,\"_5056\":5345,\"_5058\":5346,\"_5060\":5061},105,0.2857,{\"_5054\":5063,\"_5056\":5348,\"_5058\":5349,\"_5060\":5350},123,0.1053,0.3,{\"_5054\":5068,\"_5056\":5352,\"_5058\":5126,\"_5060\":5071},254,[5354,5355,5356],{\"_5054\":5055,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5163,\"_5058\":5071,\"_5060\":5071},[5358,5359,5360],{\"_5054\":5063,\"_5056\":12,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},[5362,5363,5364],{\"_5054\":5055,\"_5056\":5310,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5160,\"_5058\":5071,\"_5060\":5071},[5366,5367,5368],{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5310,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},[5370,5372,5374],{\"_5054\":5068,\"_5056\":5371,\"_5058\":5126,\"_5060\":5061},96,{\"_5054\":5063,\"_5056\":5373,\"_5058\":5071,\"_5060\":5071},47,{\"_5054\":5055,\"_5056\":5260,\"_5058\":5071,\"_5060\":5071},[5376,5377,5378],{\"_5054\":5068,\"_5056\":5128,\"_5058\":5126,\"_5060\":5061},{\"_5054\":5063,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":1111,\"_5058\":5071,\"_5060\":5071},[5380,5383,5386],{\"_5054\":5055,\"_5056\":5381,\"_5058\":5382,\"_5060\":5061},59,0.1429,{\"_5054\":5068,\"_5056\":5384,\"_5058\":5080,\"_5060\":5385},158,0.37,{\"_5054\":5063,\"_5056\":5387,\"_5058\":5071,\"_5060\":5071},76,[5389,5390,5391],{\"_5054\":5063,\"_5056\":5182,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5230,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5186,\"_5058\":5071,\"_5060\":5071},[5393,5395,5397],{\"_5054\":5055,\"_5056\":5394,\"_5058\":5093,\"_5060\":5061},51,{\"_5054\":5068,\"_5056\":5396,\"_5058\":5071,\"_5060\":5071},108,{\"_5054\":5063,\"_5056\":5398,\"_5058\":5071,\"_5060\":5071},55,[5400,5401,5402],{\"_5054\":5055,\"_5056\":5182,\"_5058\":5382,\"_5060\":5061},{\"_5054\":5068,\"_5056\":5394,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5186,\"_5058\":5071,\"_5060\":5071},[5404,5406,5408],{\"_5054\":5063,\"_5056\":5405,\"_5058\":5071,\"_5060\":5071},89,{\"_5054\":5068,\"_5056\":5407,\"_5058\":5071,\"_5060\":5071},223,{\"_5054\":5055,\"_5056\":5409,\"_5058\":5071,\"_5060\":5071},70,[5411,5412,5413],{\"_5054\":5063,\"_5056\":5163,\"_5058\":5095,\"_5060\":5061},{\"_5054\":5068,\"_5056\":5286,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},[5415,5416,5417],{\"_5054\":5055,\"_5056\":12,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5237,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5163,\"_5058\":5071,\"_5060\":5071},[5419,5420,5421],{\"_5054\":5055,\"_5056\":5310,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5286,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5323,\"_5058\":5071,\"_5060\":5071},[5423,5424,5426],{\"_5054\":5063,\"_5056\":5230,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5425,\"_5058\":5071,\"_5060\":5071},138,{\"_5054\":5055,\"_5056\":5427,\"_5058\":5071,\"_5060\":5071},49,[5429,5430,5431],{\"_5054\":5063,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[5433,5434,5435],{\"_5054\":5055,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5286,\"_5058\":5071,\"_5060\":5071},[5437,5438,5439],{\"_5054\":5068,\"_5056\":5158,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5125,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5179,\"_5058\":5071,\"_5060\":5071},[5441,5442,5443],{\"_5054\":5063,\"_5056\":5270,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5160,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5444,\"_5058\":5071,\"_5060\":5071},25,[5446,5447,5448],{\"_5054\":5055,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5128,\"_5058\":5071,\"_5060\":5071},[5450,5451,5452],{\"_5054\":5063,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},[5454,5455,5456],{\"_5054\":5055,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5192,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},[5458,5460,5462],{\"_5054\":5068,\"_5056\":5459,\"_5058\":5071,\"_5060\":5071},88,{\"_5054\":5063,\"_5056\":5461,\"_5058\":5071,\"_5060\":5071},41,{\"_5054\":5055,\"_5056\":5463,\"_5058\":5071,\"_5060\":5071},31,[5465,5466,5467],{\"_5054\":5063,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5128,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},[5469,5471,5472],{\"_5054\":5068,\"_5056\":5470,\"_5058\":5071,\"_5060\":5071},35,{\"_5054\":5063,\"_5056\":5160,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5128,\"_5058\":5071,\"_5060\":5071},[5474,5475,5476],{\"_5054\":5063,\"_5056\":5320,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5405,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5237,\"_5058\":5071,\"_5060\":5071},[5478,5479,5480],{\"_5054\":5055,\"_5056\":1111,\"_5058\":5093,\"_5060\":5061},{\"_5054\":5063,\"_5056\":5270,\"_5058\":5095,\"_5060\":5096},{\"_5054\":5068,\"_5056\":5325,\"_5058\":5071,\"_5060\":5071},[5482,5483,5484],{\"_5054\":5063,\"_5056\":5163,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5470,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5186,\"_5058\":5071,\"_5060\":5071},[5486,5488,5489],{\"_5054\":5068,\"_5056\":5487,\"_5058\":5071,\"_5060\":5071},57,{\"_5054\":5063,\"_5056\":5313,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5169,\"_5058\":5071,\"_5060\":5071},[5491,5492,5493],{\"_5054\":5063,\"_5056\":5266,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5203,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5160,\"_5058\":5071,\"_5060\":5071},[5495,5496,5497],{\"_5054\":5055,\"_5056\":5198,\"_5058\":5093,\"_5060\":5061},{\"_5054\":5063,\"_5056\":5225,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5498,\"_5058\":5071,\"_5060\":5071},129,[5500,5501,5502],{\"_5054\":5068,\"_5056\":5371,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5182,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5148,\"_5058\":5071,\"_5060\":5071},[5504,5505,5506],{\"_5054\":5063,\"_5056\":12,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},[5508,5509,5510],{\"_5054\":5068,\"_5056\":5218,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5186,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5323,\"_5058\":5071,\"_5060\":5071},[5512,5513,5514],{\"_5054\":5068,\"_5056\":5163,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},[5516,5518,5519],{\"_5054\":5068,\"_5056\":5517,\"_5058\":5071,\"_5060\":5071},60,{\"_5054\":5063,\"_5056\":5237,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5192,\"_5058\":5071,\"_5060\":5071},[5521,5523,5524],{\"_5054\":5068,\"_5056\":5522,\"_5058\":5126,\"_5060\":5061},82,{\"_5054\":5063,\"_5056\":5173,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5525,\"_5058\":5071,\"_5060\":5071},30,[5527,5528,5529],{\"_5054\":5055,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":12,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5313,\"_5058\":5071,\"_5060\":5071},[5531,5532,5533],{\"_5054\":5063,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},[5535,5536,5537],{\"_5054\":5068,\"_5056\":5165,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5177,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5270,\"_5058\":5071,\"_5060\":5071},[5539,5540,5541],{\"_5054\":5055,\"_5056\":5163,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5165,\"_5058\":5071,\"_5060\":5071},[5543,5544,5545],{\"_5054\":5068,\"_5056\":5160,\"_5058\":5126,\"_5060\":5061},{\"_5054\":5063,\"_5056\":5163,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},[5547,5548,5549],{\"_5054\":5063,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":1111,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":12,\"_5058\":5071,\"_5060\":5071},[5551,5552,5553],{\"_5054\":5068,\"_5056\":5158,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5266,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5150,\"_5058\":5071,\"_5060\":5071},[5555,5557,5559],{\"_5054\":5055,\"_5056\":5556,\"_5058\":5093,\"_5060\":5061},58,{\"_5054\":5063,\"_5056\":5558,\"_5058\":5080,\"_5060\":5071},62,{\"_5054\":5068,\"_5056\":5560,\"_5058\":5080,\"_5060\":5071},148,[5562,5563,5564],{\"_5054\":5055,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},[5566,5567,5568],{\"_5054\":5063,\"_5056\":5310,\"_5058\":5095,\"_5060\":5061},{\"_5054\":5055,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5165,\"_5058\":5071,\"_5060\":5071},[5570,5571,5572],{\"_5054\":5068,\"_5056\":12,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},[5574,5575,5576],{\"_5054\":5063,\"_5056\":5177,\"_5058\":5080,\"_5060\":5061},{\"_5054\":5055,\"_5056\":5286,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5237,\"_5058\":5071,\"_5060\":5071},[5578,5579,5580],{\"_5054\":5055,\"_5056\":5179,\"_5058\":5093,\"_5060\":5061},{\"_5054\":5063,\"_5056\":5444,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5394,\"_5058\":5071,\"_5060\":5071},[5582,5583,5585],{\"_5054\":5055,\"_5056\":5260,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5584,\"_5058\":5071,\"_5060\":5071},44,{\"_5054\":5068,\"_5056\":5409,\"_5058\":5071,\"_5060\":5071},[5587,5589,5590],{\"_5054\":5068,\"_5056\":5588,\"_5058\":5071,\"_5060\":5071},107,{\"_5054\":5055,\"_5056\":5218,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5381,\"_5058\":5071,\"_5060\":5071},[5592,5593,5594],{\"_5054\":5068,\"_5056\":5444,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5163,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5286,\"_5058\":5071,\"_5060\":5071},[5596,5597,5599],{\"_5054\":5055,\"_5056\":5203,\"_5058\":5093,\"_5060\":5061},{\"_5054\":5068,\"_5056\":5598,\"_5058\":5126,\"_5060\":5385},111,{\"_5054\":5063,\"_5056\":5171,\"_5058\":5071,\"_5060\":5071},[5601,5602,5603],{\"_5054\":5055,\"_5056\":5237,\"_5058\":5093,\"_5060\":5061},{\"_5054\":5063,\"_5056\":5218,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5381,\"_5058\":5071,\"_5060\":5071},[5605,5606,5607],{\"_5054\":5063,\"_5056\":5128,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5266,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5310,\"_5058\":5071,\"_5060\":5071},[5609,5610,5611],{\"_5054\":5063,\"_5056\":5270,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5186,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5215,\"_5058\":5071,\"_5060\":5071},[5613,5614,5615],{\"_5054\":5063,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5177,\"_5058\":5071,\"_5060\":5071},[5617,5619,5620],{\"_5054\":5068,\"_5056\":5618,\"_5058\":5071,\"_5060\":5071},56,{\"_5054\":5063,\"_5056\":5169,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5286,\"_5058\":5071,\"_5060\":5071},[5622,5624,5627],{\"_5054\":5055,\"_5056\":5623,\"_5058\":5382,\"_5060\":5061},39,{\"_5054\":5068,\"_5056\":5625,\"_5058\":5126,\"_5060\":5626},86,0.18,{\"_5054\":5063,\"_5056\":5487,\"_5058\":5071,\"_5060\":5071},[5629,5631,5632],{\"_5054\":5068,\"_5056\":5630,\"_5058\":5080,\"_5060\":5061},99,{\"_5054\":5055,\"_5056\":5313,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5394,\"_5058\":5071,\"_5060\":5071},[5634,5635,5636],{\"_5054\":5055,\"_5056\":5177,\"_5058\":5093,\"_5060\":5061},{\"_5054\":5063,\"_5056\":5280,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5260,\"_5058\":5071,\"_5060\":5071},[5638,5639,5640],{\"_5054\":5063,\"_5056\":5266,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5463,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5128,\"_5058\":5071,\"_5060\":5071},[5642,5644,5646],{\"_5054\":5055,\"_5056\":5394,\"_5058\":5643,\"_5060\":5061},0.2143,{\"_5054\":5068,\"_5056\":5645,\"_5058\":5115,\"_5060\":5385},134,{\"_5054\":5063,\"_5056\":5190,\"_5058\":5071,\"_5060\":5071},[5648,5649,5650],{\"_5054\":5055,\"_5056\":5240,\"_5058\":5093,\"_5060\":5061},{\"_5054\":5068,\"_5056\":5201,\"_5058\":5126,\"_5060\":5385},{\"_5054\":5063,\"_5056\":5487,\"_5058\":5071,\"_5060\":5071},[5652,5654,5655],{\"_5054\":5063,\"_5056\":5653,\"_5058\":5080,\"_5060\":5061},112,{\"_5054\":5055,\"_5056\":5409,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5656,\"_5058\":5071,\"_5060\":5071},224,[5658,5660,5661],{\"_5054\":5068,\"_5056\":5659,\"_5058\":5126,\"_5060\":5061},92,{\"_5054\":5055,\"_5056\":5260,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5584,\"_5058\":5071,\"_5060\":5071},[5663,5664,5665],{\"_5054\":5055,\"_5056\":5280,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5125,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5248,\"_5058\":5071,\"_5060\":5071},[5667,5668,5669],{\"_5054\":5068,\"_5056\":5556,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5270,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5266,\"_5058\":5071,\"_5060\":5071},[5671,5672,5673],{\"_5054\":5068,\"_5056\":5320,\"_5058\":5126,\"_5060\":5061},{\"_5054\":5055,\"_5056\":5280,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5280,\"_5058\":5071,\"_5060\":5071},[5675,5676,5677],{\"_5054\":5055,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":12,\"_5058\":5071,\"_5060\":5071},[5679,5680,5681],{\"_5054\":5063,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[5683,5684,5685],{\"_5054\":5055,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":1111,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},[5687,5689,5690],{\"_5054\":5068,\"_5056\":5688,\"_5058\":5126,\"_5060\":5061},103,{\"_5054\":5063,\"_5056\":5394,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5173,\"_5058\":5071,\"_5060\":5071},[5692,5693,5694],{\"_5054\":5063,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5310,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},[5696,5697,5698],{\"_5054\":5055,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},[5700,5701,5702],{\"_5054\":5063,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},[5704,5705,5706],{\"_5054\":5068,\"_5056\":5173,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5286,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5177,\"_5058\":5071,\"_5060\":5071},[5708,5709,5710],{\"_5054\":5068,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[5712,5713,5714],{\"_5054\":5068,\"_5056\":5163,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},[5716,5717,5718],{\"_5054\":5063,\"_5056\":5280,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5254,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5177,\"_5058\":5071,\"_5060\":5071},[5720,5721,5722],{\"_5054\":5068,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[5724,5725,5726],{\"_5054\":5068,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},[5728,5729,5730],{\"_5054\":5063,\"_5056\":5323,\"_5058\":5095,\"_5060\":5061},{\"_5054\":5055,\"_5056\":5186,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5731,\"_5058\":5071,\"_5060\":5071},52,[5733,5734,5735],{\"_5054\":5068,\"_5056\":5165,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5128,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},[5737,5738,5739],{\"_5054\":5063,\"_5056\":5373,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5522,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5125,\"_5058\":5071,\"_5060\":5071},[5741,5742,5743],{\"_5054\":5063,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},[5745,5746,5747],{\"_5054\":5063,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":1111,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},[5749,5750,5751],{\"_5054\":5068,\"_5056\":1111,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},[5753,5754,5755],{\"_5054\":5063,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5169,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},[5757,5758,5759],{\"_5054\":5063,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":1111,\"_5058\":5071,\"_5060\":5071},[5761,5762,5763],{\"_5054\":5063,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[5765,5766,5767],{\"_5054\":5055,\"_5056\":5128,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5125,\"_5058\":5071,\"_5060\":5071},[5769,5770,5771],{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},[5773,5774,5776],{\"_5054\":5063,\"_5056\":5286,\"_5058\":5095,\"_5060\":5061},{\"_5054\":5068,\"_5056\":5313,\"_5058\":5126,\"_5060\":5775},0.47,{\"_5054\":5055,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},[5778,5779,5780],{\"_5054\":5068,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[5782,5783,5784],{\"_5054\":5068,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},[5786,5787,5788],{\"_5054\":5068,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[5790,5791,5792],{\"_5054\":5068,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},[5794,5795,5796],{\"_5054\":5063,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},[5798,5799,5800],{\"_5054\":5068,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},[5802,5803,5804],{\"_5054\":5068,\"_5056\":5165,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":1111,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":12,\"_5058\":5071,\"_5060\":5071},[5806,5807,5809],{\"_5054\":5055,\"_5056\":5254,\"_5058\":5643,\"_5060\":5061},{\"_5054\":5068,\"_5056\":5808,\"_5058\":5071,\"_5060\":5071},83,{\"_5054\":5063,\"_5056\":5461,\"_5058\":5071,\"_5060\":5071},[5811,5812,5813],{\"_5054\":5063,\"_5056\":1111,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5463,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":1111,\"_5058\":5071,\"_5060\":5071},[5815,5816,5817],{\"_5054\":5068,\"_5056\":5138,\"_5058\":5126,\"_5060\":5061},{\"_5054\":5055,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5128,\"_5058\":5071,\"_5060\":5071},[5819,5820,5821],{\"_5054\":5055,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5128,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},[5823,5824,5825],{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},[5827,5828,5829],{\"_5054\":5068,\"_5056\":5286,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},[5831,5832,5833],{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},[5835,5836,5837],{\"_5054\":5068,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},[5839,5840,5842],{\"_5054\":5063,\"_5056\":5313,\"_5058\":5095,\"_5060\":5061},{\"_5054\":5068,\"_5056\":5841,\"_5058\":5126,\"_5060\":5775},53,{\"_5054\":5055,\"_5056\":5169,\"_5058\":5071,\"_5060\":5071},[5844,5845,5846],{\"_5054\":5055,\"_5056\":5173,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5394,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5625,\"_5058\":5071,\"_5060\":5071},[5848,5849,5850],{\"_5054\":5055,\"_5056\":5310,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5310,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},[5852,5853,5854],{\"_5054\":5068,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},[5856,5857,5858],{\"_5054\":5068,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},[5860,5861,5862],{\"_5054\":5068,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[5864,5865,5866],{\"_5054\":5063,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},[5868,5869,5870],{\"_5054\":5068,\"_5056\":5286,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5310,\"_5058\":5071,\"_5060\":5071},[5872,5873,5874],{\"_5054\":5068,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[5876,5878,5879],{\"_5054\":5068,\"_5056\":5877,\"_5058\":5071,\"_5060\":5071},80,{\"_5054\":5063,\"_5056\":5461,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5179,\"_5058\":5071,\"_5060\":5071},[5881,5882,5883],{\"_5054\":5063,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[5885,5886,5887],{\"_5054\":5063,\"_5056\":1111,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5177,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5254,\"_5058\":5071,\"_5060\":5071},[5889,5890,5891],{\"_5054\":5068,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},[5893,5894,5895],{\"_5054\":5063,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[5897,5898,5899],{\"_5054\":5063,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},[5901,5902,5903],{\"_5054\":5068,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},[5905,5906,5907],{\"_5054\":5063,\"_5056\":5310,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[5909,5910,5911],{\"_5054\":5063,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},[5913,5914,5915],{\"_5054\":5055,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":12,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5160,\"_5058\":5071,\"_5060\":5071},[5917,5919,5920],{\"_5054\":5068,\"_5056\":5918,\"_5058\":5071,\"_5060\":5071},79,{\"_5054\":5063,\"_5056\":5470,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5125,\"_5058\":5071,\"_5060\":5071},[5922,5923,5924],{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[5926,5927,5928],{\"_5054\":5068,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[5930,5931,5932],{\"_5054\":5055,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5310,\"_5058\":5071,\"_5060\":5071},[5934,5935,5936],{\"_5054\":5068,\"_5056\":12,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},[5938,5939,5940],{\"_5054\":5055,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},[5942,5943,5944],{\"_5054\":5055,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},[5946,5947,5948],{\"_5054\":5068,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[5950,5951,5952],{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},[5954,5955,5956],{\"_5054\":5063,\"_5056\":12,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5192,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":1111,\"_5058\":5071,\"_5060\":5071},[5958,5959,5960],{\"_5054\":5063,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},[5962,5963,5964],{\"_5054\":5068,\"_5056\":5323,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":1111,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},[5966,5967,5968],{\"_5054\":5068,\"_5056\":5177,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":12,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},[5970,5971,5972],{\"_5054\":5063,\"_5056\":12,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},[5974,5975,5976],{\"_5054\":5068,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},[5978,5979,5980],{\"_5054\":5068,\"_5056\":12,\"_5058\":5126,\"_5060\":5061},{\"_5054\":5055,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},[5982,5983,5984],{\"_5054\":5063,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[5986,5987,5988],{\"_5054\":5055,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":12,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},[5990,5991,5992],{\"_5054\":5068,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[5994,5995,5996],{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},[5998,5999,6000],{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[6002,6003,6004],{\"_5054\":5063,\"_5056\":5310,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5128,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},[6006,6007,6008],{\"_5054\":5068,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},[6010,6011,6012],{\"_5054\":5063,\"_5056\":12,\"_5058\":5095,\"_5060\":5061},{\"_5054\":5055,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5286,\"_5058\":5071,\"_5060\":5071},[6014,6015,6016],{\"_5054\":5068,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5061,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},[6018,6019,6020],{\"_5054\":5063,\"_5056\":5310,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},[6022,6023,6024],{\"_5054\":5068,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5071,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},[6026,6027,6028],{\"_5054\":5063,\"_5056\":5138,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},[6030,6031,6032],{\"_5054\":5063,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5068,\"_5056\":17,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5136,\"_5058\":5071,\"_5060\":5071},[6034,6035,6036],{\"_5054\":5068,\"_5056\":5114,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5055,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},{\"_5054\":5063,\"_5056\":5105,\"_5058\":5071,\"_5060\":5071},\"postReadCounts\",{\"_6039\":5061,\"_6040\":5061,\"_6041\":5061,\"_6042\":5061,\"_6043\":5061,\"_6044\":5061,\"_6045\":5061,\"_6046\":5061,\"_6047\":5061,\"_6048\":5061,\"_6049\":5061,\"_6050\":12,\"_2525\":6051,\"_3452\":5286,\"_1437\":5182,\"_555\":6052,\"_420\":6053,\"_304\":6054,\"_6055\":5061,\"_6056\":5061,\"_6057\":5061,\"_6058\":6059,\"_644\":6060,\"_4584\":6061,\"_6062\":5061,\"_6063\":5061,\"_1963\":6064,\"_3310\":6065,\"_378\":6066,\"_6067\":5186,\"_4394\":6068,\"_6069\":5061,\"_1759\":6070,\"_6071\":5114,\"_1076\":6072,\"_6073\":5061,\"_3242\":5061,\"_6074\":5128,\"_3248\":6075,\"_2430\":6076,\"_6077\":5136,\"_2997\":6078,\"_3226\":6079,\"_6080\":5061,\"_4621\":6081,\"_1347\":2262,\"_872\":6082,\"_4475\":6083,\"_210\":6084,\"_2724\":6085,\"_1460\":6086,\"_4308\":6087,\"_4514\":6088,\"_4794\":6089,\"_2808\":6090,\"_6091\":5061,\"_6092\":5105,\"_6093\":5061,\"_6094\":5061,\"_6095\":5105,\"_6096\":5061,\"_6097\":5061,\"_6098\":5061,\"_6099\":5061,\"_2157\":6100,\"_6101\":5105,\"_3597\":6102,\"_4250\":6103,\"_6104\":5218,\"_6105\":5128,\"_6106\":5061,\"_3395\":6107,\"_4436\":6108,\"_3733\":6109,\"_6110\":5061,\"_4082\":6111,\"_4043\":6112,\"_6113\":5270,\"_1417\":1382,\"_3717\":6114,\"_1106\":6115,\"_2585\":6116,\"_6117\":5105,\"_2793\":6118,\"_6119\":5105,\"_4064\":5398,\"_4677\":6120,\"_2125\":6121,\"_6122\":5061,\"_1601\":6123,\"_5022\":6124,\"_2454\":6125,\"_2868\":6126,\"_534\":6127,\"_3412\":6128,\"_2255\":6129,\"_6130\":5061,\"_6131\":5061,\"_841\":6132,\"_6133\":5061,\"_6134\":5061,\"_3792\":5409,\"_4570\":5196,\"_3369\":4927,\"_6135\":5061,\"_235\":5841,\"_1477\":5387,\"_1658\":6136,\"_3558\":6137,\"_3773\":6138,\"_931\":6139,\"_704\":6140,\"_398\":6141,\"_4182\":6142,\"_1981\":6143,\"_1861\":6144,\"_3091\":6145,\"_256\":6146,\"_6147\":5186,\"_894\":4418,\"_6148\":5061,\"_6149\":5148,\"_2709\":6150,\"_2688\":6151,\"_2945\":6152,\"_3331\":6153,\"_4716\":6154,\"_2889\":6155,\"_6156\":5061,\"_3277\":6157,\"_6158\":5061,\"_3831\":5398,\"_6159\":5061,\"_1238\":6160,\"_6161\":5105,\"_796\":6162,\"_2301\":6163,\"_6164\":5105,\"_6165\":5105,\"_6166\":5148,\"_972\":6167,\"_6168\":5061,\"_1207\":6169,\"_5000\":6170,\"_6171\":12,\"_1261\":6172,\"_4775\":6173,\"_622\":6174,\"_6175\":5061,\"_602\":6176,\"_6177\":5061,\"_2504\":6178,\"_104\":5409,\"_2077\":6179,\"_4658\":5225,\"_4327\":6180,\"_2053\":6181,\"_3573\":6084,\"_4756\":6182,\"_4811\":6183,\"_4902\":6184,\"_6185\":6174,\"_4269\":6186,\"_2646\":6187,\"_4024\":6188,\"_1182\":6189,\"_6190\":5061,\"_6191\":5061,\"_6192\":5105,\"_1837\":6193,\"_4889\":5313,\"_440\":6194,\"_4602\":6195,\"_1322\":6196,\"_3814\":6197,\"_6198\":5237,\"_4697\":6199,\"_6200\":5105,\"_2415\":6201,\"_2393\":6111,\"_2751\":6202,\"_6203\":5114,\"_3870\":6204,\"_4534\":5160,\"_4850\":6143,\"_4233\":6205,\"_163\":6206,\"_4920\":6207,\"_4198\":6208,\"_574\":6209,\"_6210\":5114,\"_6211\":6212,\"_5036\":6213,\"_6214\":5061,\"_186\":6215,\"_4967\":6216,\"_6217\":5061,\"_3126\":6218,\"_6219\":5061,\"_4954\":6220,\"_3433\":6188,\"_3909\":6221,\"_2843\":6222,\"_6223\":5061,\"_4163\":6224,\"_3074\":6225,\"_4214\":6226,\"_6227\":5061,\"_297\":5136,\"_4139\":6228,\"_6229\":5105,\"_3475\":6230,\"_2965\":561,\"_3497\":6231,\"_3517\":6232,\"_3539\":6233,\"_3679\":6234,\"_3753\":6235,\"_2325\":2209,\"_3350\":6236,\"_4411\":6237,\"_684\":6238,\"_4639\":5146,\"_6239\":5061,\"_6240\":5061,\"_6241\":5061,\"_6242\":5105,\"_2283\":6243,\"_6244\":5061,\"_510\":6245,\"_6246\":6247,\"_4939\":6248,\"_2345\":6249,\"_2008\":2400,\"_133\":6250,\"_4351\":4170,\"_6251\":5105,\"_2772\":6252,\"_4456\":6253,\"_2820\":6254,\"_1025\":6255,\"_6256\":5061,\"_488\":6257,\"_6258\":5061,\"_2036\":6259,\"_2202\":6260,\"_6261\":5061,\"_2372\":6262,\"_4869\":5487,\"_1580\":6263,\"_6264\":5061,\"_1158\":6265,\"_2481\":6266,\"_1537\":6267,\"_1558\":6268,\"_2180\":6269,\"_1132\":6270,\"_4005\":6271,\"_985\":5323,\"_4491\":6272,\"_6273\":5310,\"_1639\":6274,\"_6275\":5264,\"_6276\":5105,\"_6277\":5105,\"_6278\":5114,\"_4551\":6279,\"_279\":6280,\"_3638\":6281,\"_326\":6282,\"_772\":6283,\"_6284\":5061,\"_4375\":6285,\"_6286\":5061,\"_2226\":6287,\"_6288\":17,\"_6289\":5061,\"_6290\":5184,\"_1047\":6291,\"_6292\":5105,\"_3658\":6293,\"_4831\":6294,\"_4737\":6295,\"_2104\":6296,\"_6297\":5061,\"_1298\":4646,\"_3619\":6298,\"_6299\":5061,\"_2666\":6300,\"_6301\":5323,\"_3889\":6302,\"_4119\":6303,\"_1787\":6304,\"_1680\":6305,\"_6306\":5061,\"_6307\":5061,\"_6308\":5061,\"_1718\":6309,\"_6310\":5105,\"_6311\":5323,\"_6312\":5114,\"_1511\":6313,\"_6314\":5061,\"_3206\":6315,\"_6316\":5105,\"_1375\":6317,\"_3928\":6054,\"_3978\":6318,\"_1883\":6319,\"_1905\":6320,\"_6321\":5061,\"_6322\":5061,\"_3022\":6323,\"_4288\":6324,\"_3851\":6325,\"_2564\":6326,\"_4984\":6327,\"_739\":6328,\"_3953\":6329,\"_2543\":6330,\"_2606\":6331,\"_3698\":6332,\"_1400\":6333,\"_6334\":5061,\"_2920\":6335,\"_6336\":5061,\"_6337\":5280,\"_3048\":6338,\"_6339\":5136,\"_4101\":6340},\"(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'\\\"+(select(0)from(select(sleep(15)))v)+\\\"*/\",\"-1 OR 2+11-11-1=0+0+0+1 -- \",\"-1 OR 2+811-811-1=0+0+0+1\",\"-1\\\" OR 2+610-610-1=0+0+0+1 -- \",\"-1' OR 2+184-184-1=0+0+0+1 or 'nmuvgUwu'='\",\"-1' OR 2+537-537-1=0+0+0+1 -- \",\"0\\\"XOR(if(now()=sysdate(),sleep(15),0))XOR\\\"Z\",\"0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z\",\"1\\u0000����%2527%2522\",\"1 waitfor delay '0:0:15' -- \",\"1'\\\"\",\"2010s\",652,1016,643,324,\"@@SlwFw\",\"X2csoxE6' OR 975=(SELECT 975 FROM PG_SLEEP(15))--\",\"XY6G2kSK\",\"__metronome\",238,3232,1834,\"aha-progra\",\"aha-programmin\",20867,2520,3033,\"an-ai-powered-kentcdodds-com\",269,\"ap\",17198,\"application-state-management-with-react.\",2025,\"auth\",\"authentication-in-react\",5618,467,\"avoid-nesting-in-tests\",9574,6577,\"b\",328,2644,110,124,156,489,3352,2834,482,16219,\"common-\",\"common-mistakes\",\"common-mistakes-wit\",\"common-mistakes-with\",\"common-mistakes-with-re\",\"common-mistakes-with-react-\",\"common-mistakes-with-react-test\",\"common-mistakes-with-react-testing\",\"common-mistakes-with-react-testing-\",39795,\"common-mistakes-with-react-testing-library.\",3345,293,\"compound-components\",\"compound-components-with-react\",\"compound-components-with-react-\",21380,61,1584,\"control-props\",691,180,\"define\",1019,2158,6800,\"dont-sync-state-derive-i\",4414,\"dont-sync-state-derive-it.\",4947,1248,\"eo7DFe8d') OR 980=(SELECT 980 FROM PG_SLEEP(15))--\",245,3960,17986,13988,4463,176,1898,\"get-a-catch-block-error-message-with\",\"get-a-catch-block-error-message-with-typescr\",53684,\"get-a-catch-block-error-message-with-typescript'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'\",\"get-a-catch-block-error-message-with-typescript.\",\"hY29Eg4g')) OR 257=(SELECT 257 FROM PG_SLEEP(15))--\",884,222,710,11589,4284,1752,1466,171,1751,852,413,\"how-remix-makes-css-clashes-impossible\",\"how-remix-makes-css-clashes-predictable.mdx\",\"how-remix-makes-css-clashes-unsurprising\",1708,300,1436,160,1885,2688,\"how-to-know-what-to-tes\",7459,\"how-to-know-what-to-test.\",\"how-to-optimize-your-context-valu\",18670,\"how-to-optimize-your-context-value.\",3651,13717,\"how-to-use-react\",\"how-to-use-react-context\",\"how-to-use-react-context-effectivel\",44051,\"how-to-use-react-context-effectively.\",2108,396,\"how-to-write-a-react-component\",7301,242,3002,\"i-migrated\",2356,\"if(now()=sysdate(),sleep(15),0)\",5046,632,144,1716,1083,77,1121,\"introducing-the-new-kentcdodds.com\",3020,3980,506,1640,\"javascript-to\",\"javascript-to-know-\",\"javascript-to-know-for-reac\",15238,308,145,673,1520,\"make-impossible-states-impossible)\",128,\"make-your-\",1712,14560,\"making-your-ui-tests-resilient-to-change.\",451,474,192,218,494,6172,\"my-modern\",\"my-modern-frontends-live-experience\",3158,574,\"o3AJYiPy'; waitfor delay '0:0:15' -- \",389,395,\"optimize-react-re-render\",15359,\"paraminer8dd9a2\",963,203,3564,\"prop-\",16427,2649,305,\"r\",2261,\"react-hooks\",2347,1646,394,2528,604,600,416,136,11326,\"replace-axios\",\"replace-axios-with\",\"replace-axios-with-a-simple-custom-fetch\",\"replace-axios-with-a-simple-custom-fetch-wrappe\",5821,\"replace-axios-with-a-simple-custom-fetch-wrapper.\",468,\"rss.xml\",1543,336,6926,133,\"speed-up-your-app-with-web-worker\",2243,229,6370,14225,\"stop-being-a-junio\",14385,\"stop-mocking\",13801,2051,\"stop-using-isloading\",5574,592,\"super-simple-start-to-es-modules-in\",1725,2504,663,432,787,1907,3756,1304,\"testing-implementation-detail\",19354,\"testing-implementation-details):\",\"testing-implementation-details.\",\"the-beginner-s-guide-to-remix\",\"the-beginners-guide-to-react\",241,178,5098,724,7221,\"the-state-reducer\",726,\"the-state-reducer-pattern-with-react\",5142,\"the-testing-trophy\",\"the-testing-trophy-and-testing-classi\",\"the-testing-trophy-and-testing-classification\",12430,\"the-testing-trophy-and-testing-classifications.\",197,257,1010,333,\"type-script-function-syntaxes\",1323,\"un\",12995,\"unpkg-\",1641,840,11844,12291,\"use-terna\",\"use-ternaries\",\"use-ternaries-rather-\",18430,\"use-ternaries-rather-than-and-and-in-jsx.\",\"useeffect\",\"useeffect-vs-uselayouteffec\",61498,\"useeffect-vs-uselayouteffect.\",38617,\"using-fetch-with\",15339,4966,1162,1582,\"when-to-break\",\"when-to-break-up-a-component\",10828,784,126,769,236,7062,4016,828,539,682,2598,\"write\",3806,\"write-t\",\"write-test\",33288,\"write-tests.\",202,\"956.59k\",\"totalBlogReaders\",\"757.75k\",\"userReads\",[],\"tags\",[77,119,147,270,292,340,297,523,588,414,809,725,724,985,790,1089,638,1918,458,1733,180,1976],\"overallLeadingTeam\",\"actionData\"]\n");</script><!--$--><script nonce="1cd53d475d910a07e6469e66c4a00309">window.__reactRouterContext.streamController.close();</script><!--/$--><!--/$--></body></html>