CINXE.COM

JavaScript Books and Courses | SitePoint Premium

<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="twitter:card" content="summary"/><meta name="twitter:site" content="@sitepointdotcom"/><meta name="twitter:creator" content="@sitepointdotcom"/><meta property="og:url" content="https://www.sitepoint.com/premium/library/all/javascript/"/><meta property="og:type" content="website"/><meta property="og:image" content="https://www.sitepoint.com/wp-content/themes/sitepoint/assets/images/icon.sitepoint.png"/><meta property="og:site_name" content="SitePoint Premium"/><link rel="icon" href="/favicons/32x32.png" type="image/png"/><link rel="apple-touch-icon" href="/favicons/48x48.png" sizes="48x48" type="image/png"/><link rel="apple-touch-icon" href="/favicons/72x72.png" sizes="72x72" type="image/png"/><link rel="apple-touch-icon" href="/favicons/96x96.png" sizes="96x96" type="image/png"/><link rel="apple-touch-icon" href="/favicons/144x144.png" sizes="144x144" type="image/png"/><link rel="apple-touch-icon" href="/favicons/192x192.png" sizes="192x192" type="image/png"/><link rel="apple-touch-icon" href="/favicons/256x256.png" sizes="256x256" type="image/png"/><link rel="apple-touch-icon" href="/favicons/384x384.png" sizes="384x384" type="image/png"/><link rel="apple-touch-icon" href="/favicons/512x512.png" sizes="512x512" type="image/png"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" class="jsx-4121743997"/><script type="text/javascript" class="jsx-4121743997">window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'GTM-KL8PMMW', { page_path: window.location.pathname, });</script><title>JavaScript Books and Courses | SitePoint Premium</title><meta name="robots" content="index,follow"/><meta name="description" content="Learn JavaScript with our collection of books and courses."/><meta property="og:title" content="JavaScript Books and Courses | SitePoint Premium"/><meta property="og:description" content="Learn JavaScript with our collection of books and courses."/><link rel="canonical" href="https://www.sitepoint.com/premium/library/all/javascript/"/><link rel="preconnect" href="https://cdn.sanity.io" crossorigin="anonymous"/><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https://www.sitepoint.com/","name":"SitePoint"}},{"@type":"ListItem","position":2,"item":{"@id":"https://www.sitepoint.com/premium/","name":"Premium"}},{"@type":"ListItem","position":3,"item":{"@id":"https://www.sitepoint.com/premium/library/","name":"Library"}},{"@type":"ListItem","position":4,"item":{"name":"JavaScript"}}]}</script><link rel="preload" href="https://cdn.sanity.io/images/708bnrs8/production/92a19538a8bd357e0d1436bd2e8e07a75ffb7622-717x900.jpg?rect=87,36,544,680&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format" as="image" fetchpriority="high"/><meta name="next-head-count" content="28"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="dns-prefetch" href="https://cmp.inmobi.com"/><link rel="dns-prefetch" href="https://www.googletagmanager.com"/><link rel="dns-prefetch" href="https://www.gstatic.com"/><link rel="dns-prefetch" href="https://www.google-analytics.com"/><link rel="dns-prefetch" href="https://connect.facebook.net"/><script src="https://script.tapfiliate.com/tapfiliate.js" type="text/javascript" async=""></script><script type="text/javascript"> (function(t,a,p){t.TapfiliateObject=a;t[a]=t[a]||function(){ (t[a].q=t[a].q||[]).push(arguments)}})(window,'tap'); tap('create', '10694-267423', { integration: 'javascript' }); tap('detect'); </script><noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=721455246308784&amp;ev=PageView&amp;noscript=1" alt=""/></noscript><link rel="preload" href="/premium/_next/static/media/e0e418e0c2fc8a84-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/premium/_next/static/media/7c7db451c1a82f61-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/premium/_next/static/media/b5c08a795ae281ca-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/premium/_next/static/media/2744aa005c8cf586-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/premium/_next/static/media/8fa52275b6c22437-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/premium/_next/static/media/46b92c15a48f3318-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/premium/_next/static/media/e7814bd1d06a39b6-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/premium/_next/static/media/7f5a4bbe7ec7be95-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/premium/_next/static/media/1134cdf9e1aa59a5-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/premium/_next/static/media/f5852452a44b5033-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/premium/_next/static/media/279b47070a5d5877-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/premium/_next/static/media/045832894acda0e9-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/premium/_next/static/media/f1df6186c8d69644-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/premium/_next/static/media/120a5a1920781bd0-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/premium/_next/static/media/674abd25bb7be96f-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/premium/_next/static/media/da897b99eb1fe4a1-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/premium/_next/static/media/7a7012758df5a81e-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/premium/_next/static/media/6ebb97b5c9fa4e03-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/premium/_next/static/media/550cf1913d99b09c-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/premium/_next/static/media/c714540e49ad5111-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/premium/_next/static/css/b70bd40de3f8a112.css" as="style"/><link rel="stylesheet" href="/premium/_next/static/css/b70bd40de3f8a112.css" data-n-g=""/><link rel="preload" href="/premium/_next/static/css/45f44dd807b5f3b1.css" as="style"/><link rel="stylesheet" href="/premium/_next/static/css/45f44dd807b5f3b1.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/premium/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/premium/_next/static/chunks/webpack-3b816d76c4294a30.js" defer=""></script><script src="/premium/_next/static/chunks/framework-2645a99191cfc5e9.js" defer=""></script><script src="/premium/_next/static/chunks/main-c648b7b1b60f81e4.js" defer=""></script><script src="/premium/_next/static/chunks/pages/_app-e346b4737907b327.js" defer=""></script><script src="/premium/_next/static/chunks/7516-c1af08c5ae8d2940.js" defer=""></script><script src="/premium/_next/static/chunks/5675-6b772a634a5fbe90.js" defer=""></script><script src="/premium/_next/static/chunks/6803-9cc5d26f086e3606.js" defer=""></script><script src="/premium/_next/static/chunks/8849-5bd62b218e070801.js" defer=""></script><script src="/premium/_next/static/chunks/5531-6ea3ef36985b03a4.js" defer=""></script><script src="/premium/_next/static/chunks/8764-cead85e9ddff61f2.js" defer=""></script><script src="/premium/_next/static/chunks/3858-0913a834432e08fb.js" defer=""></script><script src="/premium/_next/static/chunks/8216-b3fcd2a607f00062.js" defer=""></script><script src="/premium/_next/static/chunks/5341-873f6bb01c05030c.js" defer=""></script><script src="/premium/_next/static/chunks/pages/library/%5B%5B...filters%5D%5D-8689eabb3e3a2d34.js" defer=""></script><script src="/premium/_next/static/p8djBJdr9ow-W6E7uh0-p/_buildManifest.js" defer=""></script><script src="/premium/_next/static/p8djBJdr9ow-W6E7uh0-p/_ssgManifest.js" defer=""></script><style id="__jsx-4121743997">:root{--font-base:'__Roboto_2e4f63', '__Roboto_Fallback_2e4f63'}</style></head><body><noscript><iframe title="Google Tag Manager" src="https://www.googletagmanager.com/ns.html?id=GTM-KL8PMMW" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><div id="__next"><div style="position:fixed;z-index:9999;top:16px;left:16px;right:16px;bottom:16px;pointer-events:none"></div><header class="fixed top-0 z-40 w-full"><nav id="nav-bar" class="Navbar_nav__vVzDp relative bg-gray-800 border-b border-gray-700" aria-label="Main navigation"><div class="container relative flex items-center justify-between h-full mx-auto"><a href="/" aria-label="SitePoint" class="flex items-center px-gs-1"><svg viewBox="0 0 123 27" class="fill-white Navbar_logo__PiZmU"><title>SitePoint</title><g fill-rule="evenodd"><path d="M0.67,11.87 L2.62,13.76 L8.76,19.50 L11.41,16.94 C11.65,16.61 11.64,16.16 11.36,15.84 L8.94,13.72 L8.95,13.72 L6.34,11.19 C6.04,10.84 6.04,10.32 6.37,9.99 L13.38,3.21 L10.20,0.12 L0.68,9.31 C-0.05,10.02 -0.05,11.17 0.67,11.87" class=""></path><path d="M21.60,15.15 L19.66,13.27 L13.51,7.53 L10.86,10.08 C10.62,10.42 10.64,10.87 10.91,11.19 L13.33,13.31 L13.33,13.31 L15.93,15.84 C16.24,16.19 16.23,16.70 15.91,17.04 L8.89,23.82 L12.08,26.91 L19.65,19.60 L21.60,17.71 C22.33,17.01 22.33,15.86 21.60,15.15" class=""></path><path d="M31.36,16.75 C31.56,17.07 31.82,17.31 32.14,17.50 C32.46,17.68 32.82,17.82 33.23,17.89 C33.63,17.97 34.05,18.01 34.48,18.01 C34.81,18.01 35.16,17.99 35.52,17.94 C35.89,17.89 36.22,17.81 36.53,17.68 C36.83,17.55 37.08,17.36 37.28,17.11 C37.48,16.87 37.58,16.55 37.58,16.17 C37.58,15.64 37.37,15.24 36.96,14.97 C36.55,14.69 36.03,14.47 35.41,14.31 C34.79,14.14 34.12,13.99 33.39,13.85 C32.66,13.71 31.99,13.52 31.37,13.27 C30.75,13.03 30.23,12.68 29.82,12.23 C29.41,11.78 29.20,11.16 29.20,10.36 C29.20,9.73 29.34,9.20 29.63,8.75 C29.92,8.30 30.30,7.94 30.75,7.66 C31.20,7.38 31.72,7.17 32.29,7.03 C32.86,6.90 33.42,6.83 33.99,6.83 C34.71,6.83 35.38,6.89 35.99,7.01 C36.61,7.13 37.15,7.34 37.62,7.63 C38.09,7.93 38.46,8.33 38.75,8.83 C39.03,9.34 39.19,9.96 39.24,10.72 L37.13,10.72 C37.10,10.32 36.99,9.98 36.81,9.72 C36.63,9.46 36.40,9.25 36.12,9.08 C35.84,8.92 35.53,8.81 35.19,8.74 C34.85,8.66 34.51,8.63 34.16,8.63 C33.84,8.63 33.53,8.65 33.20,8.70 C32.88,8.75 32.59,8.83 32.32,8.95 C32.06,9.07 31.84,9.23 31.68,9.43 C31.51,9.63 31.43,9.89 31.43,10.21 C31.43,10.56 31.56,10.86 31.82,11.09 C32.07,11.32 32.40,11.51 32.80,11.66 C33.19,11.82 33.64,11.95 34.13,12.05 C34.63,12.15 35.13,12.26 35.62,12.37 C36.15,12.49 36.67,12.62 37.17,12.78 C37.67,12.94 38.12,13.15 38.51,13.42 C38.90,13.68 39.21,14.01 39.45,14.41 C39.69,14.81 39.81,15.31 39.81,15.90 C39.81,16.66 39.65,17.28 39.33,17.77 C39.01,18.27 38.58,18.67 38.06,18.98 C37.54,19.28 36.96,19.49 36.30,19.61 C35.65,19.73 35.00,19.79 34.36,19.79 C33.65,19.79 32.97,19.72 32.32,19.58 C31.68,19.43 31.11,19.20 30.61,18.87 C30.12,18.54 29.72,18.11 29.42,17.57 C29.13,17.03 28.96,16.38 28.93,15.61 L31.03,15.61 C31.05,16.06 31.16,16.44 31.36,16.75"></path><path d="M42.27,7.12 L44.37,7.12 L44.37,19.53 L42.27,19.53 L42.27,7.12 Z"></path><path d="M53.13,7.12 L53.13,8.92 L50.57,8.92 L50.57,16.62 C50.57,16.86 50.59,17.05 50.63,17.20 C50.67,17.34 50.75,17.46 50.87,17.54 C50.99,17.62 51.15,17.67 51.35,17.69 C51.56,17.71 51.83,17.73 52.16,17.73 L53.13,17.73 L53.13,19.53 L51.51,19.53 C50.97,19.53 50.50,19.49 50.11,19.42 C49.72,19.35 49.41,19.22 49.17,19.02 C48.93,18.83 48.75,18.56 48.64,18.21 C48.52,17.86 48.46,17.39 48.46,16.81 L48.46,8.92 L46.28,8.92 L46.28,7.12 L48.46,7.12 L48.46,3.39 L50.57,3.39 L50.57,7.12 L53.13,7.12"></path><path d="M64.53,18.73 C63.57,19.44 62.36,19.79 60.91,19.79 C59.89,19.79 59.00,19.63 58.25,19.31 C57.49,18.99 56.86,18.54 56.35,17.97 C55.84,17.39 55.45,16.70 55.20,15.90 C54.94,15.10 54.80,14.23 54.76,13.29 C54.76,12.34 54.91,11.48 55.21,10.69 C55.51,9.91 55.92,9.23 56.46,8.65 C57.00,8.08 57.63,7.63 58.37,7.31 C59.11,6.99 59.91,6.83 60.79,6.83 C61.93,6.83 62.87,7.05 63.63,7.51 C64.38,7.97 64.98,8.55 65.44,9.25 C65.89,9.96 66.20,10.73 66.38,11.56 C66.55,12.39 66.62,13.18 66.59,13.93 L56.99,13.93 C56.98,14.48 57.04,14.99 57.19,15.48 C57.34,15.97 57.58,16.40 57.91,16.78 C58.24,17.16 58.66,17.46 59.18,17.68 C59.69,17.90 60.29,18.01 60.98,18.01 C61.88,18.01 62.61,17.82 63.18,17.41 C63.75,17.02 64.13,16.41 64.31,15.59 L66.39,15.59 C66.11,16.98 65.49,18.03 64.53,18.73 L64.53,18.73 Z M64.02,10.76 C63.83,10.33 63.58,9.96 63.25,9.65 C62.93,9.34 62.55,9.09 62.11,8.90 C61.68,8.72 61.19,8.63 60.66,8.63 C60.12,8.63 59.62,8.72 59.19,8.90 C58.75,9.09 58.37,9.34 58.06,9.66 C57.75,9.98 57.50,10.35 57.32,10.78 C57.13,11.20 57.03,11.65 56.99,12.13 L64.36,12.13 C64.32,11.65 64.21,11.20 64.02,10.76 L64.02,10.76 Z"></path><path d="M70.95,7.12 L70.95,8.80 L71.00,8.80 C71.35,8.11 71.89,7.61 72.64,7.30 C73.38,6.98 74.20,6.83 75.09,6.83 C76.09,6.83 76.95,7.00 77.68,7.36 C78.42,7.71 79.03,8.18 79.52,8.78 C80.01,9.38 80.37,10.08 80.62,10.86 C80.87,11.65 80.99,12.48 80.99,13.36 C80.99,14.24 80.87,15.07 80.63,15.85 C80.39,16.64 80.03,17.32 79.54,17.91 C79.06,18.49 78.44,18.95 77.71,19.29 C76.97,19.62 76.12,19.79 75.14,19.79 C74.83,19.79 74.48,19.76 74.09,19.70 C73.70,19.63 73.32,19.53 72.94,19.38 C72.56,19.24 72.20,19.04 71.86,18.79 C71.52,18.55 71.23,18.24 71.00,17.87 L70.95,17.87 L70.95,24.26 L68.84,24.26 L68.84,7.12 L70.95,7.12 L70.95,7.12 Z M78.53,11.52 C78.37,10.97 78.13,10.48 77.81,10.04 C77.49,9.61 77.07,9.27 76.57,9.01 C76.06,8.76 75.47,8.63 74.79,8.63 C74.08,8.63 73.48,8.76 72.98,9.04 C72.49,9.31 72.08,9.67 71.77,10.10 C71.46,10.55 71.23,11.05 71.09,11.60 C70.95,12.17 70.88,12.73 70.88,13.31 C70.88,13.92 70.95,14.51 71.10,15.07 C71.25,15.64 71.48,16.14 71.81,16.57 C72.13,17.01 72.55,17.35 73.06,17.62 C73.57,17.88 74.19,18.01 74.92,18.01 C75.65,18.01 76.25,17.88 76.74,17.61 C77.23,17.34 77.62,16.98 77.92,16.53 C78.22,16.08 78.43,15.57 78.56,14.99 C78.70,14.41 78.76,13.82 78.76,13.21 C78.76,12.64 78.68,12.07 78.53,11.52 L78.53,11.52 Z"></path><path d="M83.17,10.78 C83.44,9.98 83.84,9.30 84.36,8.71 C84.89,8.13 85.55,7.67 86.33,7.33 C87.10,7.00 87.99,6.83 89.00,6.83 C90.03,6.83 90.92,7.00 91.69,7.33 C92.46,7.67 93.11,8.13 93.64,8.71 C94.17,9.30 94.56,9.98 94.83,10.78 C95.09,11.57 95.23,12.42 95.23,13.33 C95.23,14.25 95.09,15.09 94.83,15.88 C94.56,16.66 94.17,17.35 93.64,17.93 C93.11,18.52 92.46,18.97 91.69,19.30 C90.92,19.63 90.03,19.79 89.00,19.79 C87.99,19.79 87.10,19.63 86.33,19.30 C85.55,18.97 84.89,18.52 84.36,17.93 C83.84,17.35 83.44,16.66 83.17,15.88 C82.91,15.09 82.78,14.25 82.78,13.33 C82.78,12.42 82.91,11.57 83.17,10.78 L83.17,10.78 Z M85.32,15.34 C85.53,15.92 85.81,16.41 86.18,16.80 C86.54,17.19 86.96,17.49 87.45,17.70 C87.94,17.91 88.46,18.01 89.00,18.01 C89.55,18.01 90.06,17.91 90.55,17.70 C91.04,17.49 91.46,17.19 91.83,16.80 C92.19,16.41 92.48,15.92 92.68,15.34 C92.89,14.75 92.99,14.09 92.99,13.33 C92.99,12.58 92.89,11.91 92.68,11.33 C92.48,10.75 92.19,10.25 91.83,9.85 C91.46,9.45 91.04,9.15 90.55,8.94 C90.06,8.73 89.55,8.63 89.00,8.63 C88.46,8.63 87.94,8.73 87.45,8.94 C86.96,9.15 86.54,9.45 86.18,9.85 C85.81,10.25 85.53,10.75 85.32,11.33 C85.11,11.91 85.01,12.58 85.01,13.33 C85.01,14.09 85.11,14.75 85.32,15.34 L85.32,15.34 Z"></path><path d="M97.83,7.12 L99.94,7.12 L99.94,19.53 L97.83,19.53 L97.83,7.12 Z"></path><path d="M105.19,7.12 L105.19,9.08 L105.24,9.08 C106.12,7.58 107.51,6.83 109.41,6.83 C110.25,6.83 110.95,6.94 111.51,7.16 C112.08,7.39 112.53,7.70 112.88,8.10 C113.23,8.50 113.47,8.98 113.61,9.53 C113.75,10.08 113.82,10.69 113.82,11.36 L113.82,19.53 L111.71,19.53 L111.71,11.12 C111.71,10.36 111.48,9.75 111.02,9.30 C110.56,8.85 109.92,8.63 109.11,8.63 C108.46,8.63 107.91,8.72 107.43,8.92 C106.96,9.11 106.57,9.38 106.26,9.73 C105.94,10.08 105.71,10.50 105.55,10.97 C105.39,11.44 105.32,11.96 105.32,12.52 L105.32,19.53 L103.21,19.53 L103.21,7.12 L105.19,7.12"></path><path d="M122.47,7.12 L122.47,8.92 L119.92,8.92 L119.92,16.62 C119.92,16.86 119.94,17.05 119.98,17.20 C120.02,17.34 120.10,17.46 120.22,17.54 C120.33,17.62 120.49,17.67 120.70,17.69 C120.91,17.71 121.18,17.73 121.50,17.73 L122.47,17.73 L122.47,19.53 L120.86,19.53 C120.32,19.53 119.85,19.49 119.46,19.42 C119.07,19.35 118.76,19.22 118.52,19.02 C118.28,18.83 118.10,18.56 117.99,18.21 C117.87,17.86 117.81,17.39 117.81,16.81 L117.81,8.92 L115.63,8.92 L115.63,7.12 L117.81,7.12 L117.81,3.39 L119.92,3.39 L119.92,7.12 L122.47,7.12"></path><path d="M44.55,4.58 C44.55,5.24 44.00,5.77 43.32,5.77 C42.64,5.77 42.09,5.24 42.09,4.58 C42.09,3.93 42.64,3.39 43.32,3.39 C44.00,3.39 44.55,3.93 44.55,4.58"></path><path d="M100.11,4.58 C100.11,5.24 99.56,5.77 98.88,5.77 C98.20,5.77 97.65,5.24 97.65,4.58 C97.65,3.93 98.20,3.39 98.88,3.39 C99.56,3.39 100.11,3.93 100.11,4.58"></path></g></svg></a><button class="border-2 rounded-sm font-medium transition-colors cursor-pointer disabled:cursor-not-allowed disabled:pointer-events-none border-none text-black dark:text-white dark:hover:text-gray-300 disabled:text-gray-100 text-sm px-2 py-1 Navbar_toggler__DW8GI h-full px-gs-1 border-transparent bg-transparent lg:hidden mr-2 pt-0.5" type="button" data-toggle="main-nav" aria-label="Toggle navigation" aria-controls="main-nav" aria-expanded="false"><span aria-hidden="true" class="relative block w-7 rounded-lg bg-white"></span></button><ul id="main-nav" class="Navbar_navbarItems__T3gna absolute mb-0 left-0 flex flex-grow flex-col justify-end w-full list-none bg-gray-800 origin-top-center transform translate-y-0 ease-in invisible scale-y-0 opacity-0 lg:static lg:flex lg:flex-row lg:h-full lg:w-auto lg:items-center lg:visible lg:opacity-100 lg:transform-none"><li class="flex items-center px-gs-1 lg:relative lg:h-full"><a href="/blog/" data-text="Blog" class="Navbar_navLink__WmfVb inline-block relative w-full font-normal text-gray-200 cursor-pointer hover:text-gray-200 focus:text-gray-200">Blog</a></li><li class="flex items-center px-gs-1 lg:relative lg:h-full"><a href="/community/" data-text="Forum" class="Navbar_navLink__WmfVb inline-block relative w-full font-normal text-gray-200 cursor-pointer hover:text-gray-200 focus:text-gray-200">Forum</a></li><li class="flex items-center px-gs-1 lg:relative lg:h-full"><a data-text="Library" class="Navbar_navLink__WmfVb inline-block relative w-full font-normal text-gray-200 cursor-pointer hover:text-gray-200 focus:text-gray-200" href="/premium/library/">Library</a></li><li class="flex items-center px-gs-1 lg:relative lg:h-full"><a data-text="Login" class="Navbar_navLink__WmfVb inline-block relative w-full font-normal text-gray-200 cursor-pointer hover:text-gray-200 focus:text-gray-200" href="/premium/sign-in/">Login</a></li></ul><a class="border-2 border-solid rounded-sm font-medium transition-colors cursor-pointer disabled:cursor-not-allowed disabled:pointer-events-none text-center bg-primary-700 border-primary-700 text-white hover:bg-primary-500 hover:border-primary-500 hover:text-white focus-visible:bg-primary-500 focus-visible:border-primary-500 focus-visible:text-white dark:hover:bg-primary-200 dark:hover:border-primary-200 dark:hover:text-body dark:focus-visible:bg-primary-200 dark:focus-visible:border-primary-200 dark:focus-visible:text-body disabled:bg-primary-100 disabled:border-primary-100 disabled:text-primary-400 text-sm px-2 hidden py-1 mx-4 lg:block dark:bg-primary-700 dark:border-primary-700 dark:text-white" id="join-premium" href="/premium/pricing/?ref_source=premium&amp;ref_medium=topnav">Join Premium</a></div></nav></header><div class="flex-auto flex-shrink-0 w-full navbar-offset container-full overflow-hidden mb-20"><div class="bg-gray-700 pl-1.5"><div class="container px-6"><div class="bg-transparent py-4"><div class="mb-4"><h1 class="mb-0 font-bold text-3xl text-white">JavaScript Books and Courses</h1><p class="mb-0 text-white">Learn JavaScript with our collection of books and courses.</p></div><div class="flex text-sm flex-row sm:flex-col"><form class="bg-gray-500 text-white border border-gray-300 input-group rounded flex items-stretch w-full bg-clip-content overflow-hidden focus-within:border-primary-400" action="/premium/search/" method="GET"><input name="q" id="search" class="form-control min-w-0 block w-full px-3 py-2 bg-transparent rounded focus-visible:outline-none"/><input name="firstSearch" class="hidden" aria-hidden="true" readonly="" value="true"/><button class="border-2 border-solid font-medium transition-colors cursor-pointer disabled:cursor-not-allowed disabled:pointer-events-none text-center text-white hover:bg-primary-400 hover:border-primary-400 hover:text-white focus-visible:bg-primary-400 focus-visible:border-primary-400 focus-visible:text-body dark:bg-primary-300 dark:border-primary-300 dark:text-body dark:hover:bg-primary-200 dark:hover:border-primary-200 dark:hover:text-body dark:focus-visible:bg-primary-200 dark:focus-visible:border-primary-200 dark:focus-visible:text-body disabled:bg-primary-100 disabled:border-primary-100 disabled:text-primary-400 text-sm py-1 leading-tight rounded-none px-3 bg-primary-600 border-primary-600">Search</button></form><a class="border-solid font-medium transition-colors cursor-pointer disabled:cursor-not-allowed disabled:pointer-events-none text-center border-primary-300 text-primary-300 hover:bg-transparent hover:border-primary-200 hover:text-primary-200 focus-visible:bg-transparent focus-visible:border-primary-200 focus-visible:text-primary-200 dark:bg-transparent dark:border-primary-200 dark:text-primary-200 dark:hover:bg-transparent dark:hover:border-primary-100 dark:hover:text-primary-100 dark:focus-visible:bg-transparent dark:focus-visible:border-primary-100 dark:focus-visible:text-primary-100 disabled:bg-primary-100 disabled:border-primary-100 disabled:text-primary-400 text-sm py-1 ml-2 sm:hidden flex items-center px-2 pt-1.5 rounded border bg-gray-500 leading-tight" href="/premium/library/"><span><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="xmark" class="svg-inline--fa fa-xmark " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"></path></svg></span></a><div class="my-4 hidden sm:flex flex justify-between"><div class="MoreItemsContainer_spacing__cxs1b flex flex-wrap justify-start overflow-hidden h-8"><a href="/premium/library/" class="py-1 px-2 h-min font-medium rounded border bg-primary-300 border-primary-300 text-gray-800 hover:text-primary-900 focus:text-primary-900">JavaScript</a><a href="/premium/library/all/php/" class="py-1 px-2 h-min font-medium rounded border bg-transparent border-gray-300 hover:border-primary-300 focus:border-primary-400 text-white hover:text-primary-400 focus:text-primary-400">PHP</a><a href="/premium/library/all/ruby/" class="py-1 px-2 h-min font-medium rounded border bg-transparent border-gray-300 hover:border-primary-300 focus:border-primary-400 text-white hover:text-primary-400 focus:text-primary-400">Ruby</a><a href="/premium/library/all/mobile/" class="py-1 px-2 h-min font-medium rounded border bg-transparent border-gray-300 hover:border-primary-300 focus:border-primary-400 text-white hover:text-primary-400 focus:text-primary-400">Mobile</a><a href="/premium/library/all/workflow/" class="py-1 px-2 h-min font-medium rounded border bg-transparent border-gray-300 hover:border-primary-300 focus:border-primary-400 text-white hover:text-primary-400 focus:text-primary-400">Workflow</a><a href="/premium/library/all/wordpress/" class="py-1 px-2 h-min font-medium rounded border bg-transparent border-gray-300 hover:border-primary-300 focus:border-primary-400 text-white hover:text-primary-400 focus:text-primary-400">WordPress</a><a href="/premium/library/all/back-end/" class="py-1 px-2 h-min font-medium rounded border bg-transparent border-gray-300 hover:border-primary-300 focus:border-primary-400 text-white hover:text-primary-400 focus:text-primary-400">Back End</a><a href="/premium/library/all/htmlcss/" class="py-1 px-2 h-min font-medium rounded border bg-transparent border-gray-300 hover:border-primary-300 focus:border-primary-400 text-white hover:text-primary-400 focus:text-primary-400">HTML &amp; CSS</a><a href="/premium/library/all/designux/" class="py-1 px-2 h-min font-medium rounded border bg-transparent border-gray-300 hover:border-primary-300 focus:border-primary-400 text-white hover:text-primary-400 focus:text-primary-400">Design &amp; UX</a><a href="/premium/library/all/python/" class="py-1 px-2 h-min font-medium rounded border bg-transparent border-gray-300 hover:border-primary-300 focus:border-primary-400 text-white hover:text-primary-400 focus:text-primary-400">Python</a><a href="/premium/library/all/web/" class="py-1 px-2 h-min font-medium rounded border bg-transparent border-gray-300 hover:border-primary-300 focus:border-primary-400 text-white hover:text-primary-400 focus:text-primary-400">Web</a><a href="/premium/library/all/blockchain/" class="py-1 px-2 h-min font-medium rounded border bg-transparent border-gray-300 hover:border-primary-300 focus:border-primary-400 text-white hover:text-primary-400 focus:text-primary-400">Blockchain</a><a href="/premium/library/all/devops/" class="py-1 px-2 h-min font-medium rounded border bg-transparent border-gray-300 hover:border-primary-300 focus:border-primary-400 text-white hover:text-primary-400 focus:text-primary-400">Cloud &amp; DevOps</a></div><button class="ml-2 mb-auto h-min whitespace-nowrap rounded py-1 px-2 bg-transparent text-white border border-gray-300 hover:border-primary-300 focus:border-primary-400 hover:text-primary-400 focus:text-primary-400"><span class="mr-2">More</span><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="caret-down" class="svg-inline--fa fa-caret-down transition-transform ease-in-out rotate-0" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"></path></svg></button></div></div></div></div></div><div class="bg-gray-500 pl-1.5"><div class="container px-6"><div class="bg-gray-500 text-xs flex justify-start overflow-x-auto undefined"><a href="/premium/library/all/javascript/" class="px-3 pb-2 pt-3 font-medium bg-transparent hover:border-b-2 hover:border-primary-300 border-b-2 border-primary-300 hover:text-primary-400 focus:text-primary-300 text-primary-300"><div class="flex items-center h-full"><span class="hidden sm:inline"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="layer-group" class="svg-inline--fa fa-layer-group " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M264.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 149.8C37.4 145.8 32 137.3 32 128s5.4-17.9 13.9-21.8L264.5 5.2zM476.9 209.6l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 277.8C37.4 273.8 32 265.3 32 256s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0l152-70.2zm-152 198.2l152-70.2 53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 405.8C37.4 401.8 32 393.3 32 384s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0z"></path></svg></span><span class="sm:ml-1 whitespace-nowrap">All</span></div></a><a href="/premium/library/books/javascript/" class="px-3 pb-2 pt-3 font-medium bg-transparent hover:border-b-2 hover:border-primary-300 hover:text-primary-400 focus:text-primary-300 text-gray-200"><div class="flex items-center h-full"><span class="hidden sm:inline"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="book-open" class="svg-inline--fa fa-book-open " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5V78.6c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C93.5 32 46.3 45.3 18.1 56.1C6.8 60.5 0 71.7 0 83.8V454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5V83.8c0-12.1-6.8-23.3-18.1-27.6C529.7 45.3 482.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11V456c0 11.4 11.7 19.3 22.4 15.5z"></path></svg></span><span class="sm:ml-1 whitespace-nowrap">Text</span></div></a><a href="/premium/library/courses/javascript/" class="px-3 pb-2 pt-3 font-medium bg-transparent hover:border-b-2 hover:border-primary-300 hover:text-primary-400 focus:text-primary-300 text-gray-200"><div class="flex items-center h-full"><span class="hidden sm:inline"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="video" class="svg-inline--fa fa-video " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2V384c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1V320 192 174.9l14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z"></path></svg></span><span class="sm:ml-1 whitespace-nowrap">Video</span></div></a><a href="/premium/library/paths/javascript/" class="px-3 pb-2 pt-3 font-medium bg-transparent hover:border-b-2 hover:border-primary-300 hover:text-primary-400 focus:text-primary-300 text-gray-200"><div class="flex items-center h-full"><span class="hidden sm:inline"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="wave-square" class="svg-inline--fa fa-wave-square " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M128 64c0-17.7 14.3-32 32-32H320c17.7 0 32 14.3 32 32V416h96V256c0-17.7 14.3-32 32-32H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H512V448c0 17.7-14.3 32-32 32H320c-17.7 0-32-14.3-32-32V96H192V256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h96V64z"></path></svg></span><span class="sm:ml-1 whitespace-nowrap">Learning Path</span></div></a><a href="/premium/library/free/javascript/" class="px-3 pb-2 pt-3 font-medium bg-transparent hover:border-b-2 hover:border-primary-300 hover:text-primary-400 focus:text-primary-300 text-gray-200"><div class="flex items-center h-full"><span class="hidden sm:inline"><div class="fa-layers fa-fw"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="slash" class="svg-inline--fa fa-slash " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M5.1 9.2C13.3-1.2 28.4-3.1 38.8 5.1l592 464c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2z"></path></svg><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="dollar-sign" class="svg-inline--fa fa-dollar-sign " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M160 0c17.7 0 32 14.3 32 32V67.7c1.6 .2 3.1 .4 4.7 .7c.4 .1 .7 .1 1.1 .2l48 8.8c17.4 3.2 28.9 19.9 25.7 37.2s-19.9 28.9-37.2 25.7l-47.5-8.7c-31.3-4.6-58.9-1.5-78.3 6.2s-27.2 18.3-29 28.1c-2 10.7-.5 16.7 1.2 20.4c1.8 3.9 5.5 8.3 12.8 13.2c16.3 10.7 41.3 17.7 73.7 26.3l2.9 .8c28.6 7.6 63.6 16.8 89.6 33.8c14.2 9.3 27.6 21.9 35.9 39.5c8.5 17.9 10.3 37.9 6.4 59.2c-6.9 38-33.1 63.4-65.6 76.7c-13.7 5.6-28.6 9.2-44.4 11V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.1c-.4-.1-.9-.1-1.3-.2l-.2 0 0 0c-24.4-3.8-64.5-14.3-91.5-26.3c-16.1-7.2-23.4-26.1-16.2-42.2s26.1-23.4 42.2-16.2c20.9 9.3 55.3 18.5 75.2 21.6c31.9 4.7 58.2 2 76-5.3c16.9-6.9 24.6-16.9 26.8-28.9c1.9-10.6 .4-16.7-1.3-20.4c-1.9-4-5.6-8.4-13-13.3c-16.4-10.7-41.5-17.7-74-26.3l-2.8-.7 0 0C119.4 279.3 84.4 270 58.4 253c-14.2-9.3-27.5-22-35.8-39.6c-8.4-17.9-10.1-37.9-6.1-59.2C23.7 116 52.3 91.2 84.8 78.3c13.3-5.3 27.9-8.9 43.2-11V32c0-17.7 14.3-32 32-32z"></path></svg></div></span><span class="sm:ml-1 whitespace-nowrap">Free</span></div></a><a href="/premium/library/tech-talks/javascript/" class="px-3 pb-2 pt-3 font-medium bg-transparent hover:border-b-2 hover:border-primary-300 hover:text-primary-400 focus:text-primary-300 text-gray-200"><div class="flex items-center h-full"><span class="hidden sm:inline"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="tv" class="svg-inline--fa fa-tv " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M64 64V352H576V64H64zM0 64C0 28.7 28.7 0 64 0H576c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM128 448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H128c-17.7 0-32-14.3-32-32s14.3-32 32-32z"></path></svg></span><span class="sm:ml-1 whitespace-nowrap">Tech Talk</span></div></a></div></div></div><div class="bg-white"><div class="container px-6"><main class="mt-8"><article class="flex flex-col space-y-12"><section><header class="flex flex-row items-baseline mb-2"><h2 class="font-bold text-base mb-0">Popular JavaScript Books</h2></header><div><div class="splide Carousel_splide__p2P5n"><div class="splide__track -mx-8"><ul class="splide__list"><li class="splide__slide"><a href="/premium/books/beginning-reactjs-foundations-building-user-interfaces-with-reactjs-an-approachable-guide/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Beginning ReactJS Foundations Building User Interfaces with ReactJS cover" fetchpriority="high" loading="eager" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAMEBQYIB//EACwQAAEDBAADBQkAAAAAAAAAAAIBAwUABAYREiFxBxQVFjEiMjNBQlFhcoH/xAAWAQEBAQAAAAAAAAAAAAAAAAACAAP/xAAcEQEBAQABBQAAAAAAAAAAAAABABECAxMUIVH/2gAMAwEAAhEDEQA/AOpSHaLYx+O+LR9s9IMcSBtv2URV9NqtJ4ZlkhMtEUXCPoDxK4br7uwEvsn4qIgICS8rJDZFaq8JEim2zoR6cqukE2kJYBZx0Y4xbh6ANUj1WaEO9cjmyk2W2bpd8QAW0T+0VErJyHyj3lT9koqp1dqOWWwHeiMJu0VFLaaeSnKZfDkPEeSWzfPkiupWKG/fHrTm7+GPWm8cQh5XP4W3rTO8caZQHcgsnCT6lcSisL0U+2WT1ldy/9k=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/92a19538a8bd357e0d1436bd2e8e07a75ffb7622-717x900.jpg?rect=87,36,544,680&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#648404"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Beginning ReactJS Foundations Building User Interfaces with ReactJS</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">5.0</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/learn-to-code-with-javascript/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Learn to Code with JavaScript Cover" loading="eager" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAaABQDASIAAhEBAxEB/8QAGgAAAgIDAAAAAAAAAAAAAAAAAAYEBQECB//EACYQAAEEAQMDBAMAAAAAAAAAAAEAAgMEEQUTIQciMQYSQWFCUXH/xAAYAQACAwAAAAAAAAAAAAAAAAACAwEEBf/EABsRAAIDAAMAAAAAAAAAAAAAAAABAhESEyJB/9oADAMBAAIRAxEAPwDnrQXEADkq2raNe4LYmEOH5HwsaJHbJe6tButI57c4VzBdfXr7lmCTbYcOeBwD+luSk/C62Ll+nPXsFkzWtfjOG+EKRrF6G5c3Yg4N9oGMIRK6JHPpr6ho6ZO0Wa4Bxgvbzn6IR1E1XT7NdsWlQmKF7jLJ8dx+Eg03Fr+0kfwre9I9wAc9xH2UrjW9A57WQ0IQnBn/2Q==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/2c87f8e33ddb9de695a262ebd81aacd357305968-1306x1712.jpg?rect=377,871,553,691&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#4c246d"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Learn to Code with JavaScript</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">5.0</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/node-js-novice-to-ninja/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Node.js: Novice to Ninja cover" loading="eager" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYBBAUD/8QAIBAAAgICAgIDAAAAAAAAAAAAAQIDEQAEEiEFMSIyQf/EABcBAAMBAAAAAAAAAAAAAAAAAAADBgL/xAAbEQACAwEBAQAAAAAAAAAAAAAAAQISQQMRQv/aAAwDAQACEQMRAD8ATRoE9Ad5dXwO3Gpd9YstX2cY9XVCSIVKcmsAMLzu888Z+VGvyspXD1+Rwg11qlKeiRteOljlpouBIusMZtt2nm5si3VYYLmwfdYWoNtghKqrWOrwn2GkUWoBruj7zGT1knGbYV80LEs3FyGq8Mz5PscMLMzRH//Z&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/153fce8cc1efa957775b725b92bae96ca6c8cf0f-1021x1278.jpg?rect=286,638,450,562&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#04728a"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Node.js: Novice to Ninja</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">5.0</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/unleashing-the-power-of-typescript/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Unleashing the Power of TypeScript cover" loading="eager" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAZCAYAAAAxFw7TAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAEKUlEQVQ4jYVV6XbaZhTknRobkNglJCQBEosECDCExcYstuMkjbGNjZeTkyax26Qv0DednrnUOO7pSX9c7d98c2fuvYq82onhZ7GzG38R//d95Gcgu1GG8jJ244jGFCSSGWSyukQqnYOipmRN5JdXUfwYT4AEi0YVWRyNqc8RVRBXEsjm8jALjoSeLyCZysqGkWeAzcK4koSiJqGqKSQSaWHCUBPpTagpKEoSaiK1fR5XkrJWUo7FE8hpeVh2EY5TRrHoolh6jlLZQ9mtouxW4BTLwoYbcR3Z7/xL10gimYYfNHEwmaL/eohWq42w3ZVoNEM5j8cH8r7d2RNggjI0zUA6nUMmq0nKoiEp7/VeY3l+icXRCYajfRxO55jNj+R8dPwGl6trXK9v5XowHEvw3WQyxWh8gMPDGVphR4yJMPe638Dp6Tsszy9we3uP3z5/wZevD3h8/AMPD79LfPv2pzy/ul5jdXWN+/uP+PrwKN99+vQZ09lC3I7QDNJnaicnp7i5ucPd/UdcXa1xcbnC2fIc7389w/nFJZbLC9l4NlsI2/XNHVZXaxwfvxGGTFsA6aqum6jVA9GJ4Lx23eomvBoq1To8ryYa2jSv5CFohPI8bxRESxolgEyb5ZDJaMI2b1iygaab23uGYdowTAt63kROM6QWk6nstmykDnmIxVVhSQ0KVhFepSblYwqALcXLkqn7TXH+yel0ZuMuzSCGAEajKuLxBFQ1DV0rImyMsT9aoNvtw6vUYTslFCwH1aqPyWQm2lEWbiCpZjTJbguoKBlk0zYyaRO2GWDSW+PD4hFH0wv0e2NUa4GAshLmi+MtoB+0pH4LVlE6ZguYUHVY+QB5rYy8VkLHP8b7w+84W3zHZPQOQRCKCQQe70/Q7w/gelVJfTjcF9BsVn8GjMWSyGYs5HUHuVwBtlVBL5xjPl5h2D9Gvd6UtqSb7CQCUVen6EpDdLo9MYwOS6fwQJf0nAPb8GEVPNGr3e4jDHuoVOqw7JKUUXevL2c6zGDanW4PZsEWhgLIhpYBkbVhGT4KpicuN1vtraPUqVrz5Z4Dg0YwaFqz1YZhWM/Thgcy1DQThlGEYdiyiNoEjRZKJU/qzrZLAs70aALLhd/V6oHUK/XbApIhH/IDLtqMrApcYefIVNZ0Q1LjqHuaiyzysluRZy8AecMuIRBZsS8bjVBajcVNVqw7aklHmRFJ8Np2NjOS9y/+KWKMboqbFHo0mmA0mKMZ9OF5vmhFGciK0zoWU//pLEcKnOtfAD65zaFJU3q9EeaTJcb9U1QrDfh+C532ALVaUxwmI2pJKWjQ1pQff06iZ0zdpF+qoBMO0W4N4Tgu3HKAQfstRt0P8Eoh1ERGCGy6ZJMucf7zr0dN6SL/MRxdTMstNzHt3WN58BcGjRUyKVtYEezJEAL+DZIwrlFmcDYcAAAAAElFTkSuQmCC&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/5fd75bb7ed78541494a1ec40662e913cd67c7838-1600x2000.png?w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#38295a"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Unleashing the Power of TypeScript</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">5.0</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/unleashing-the-power-of-astro/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Unleashing the Power of Astro cover" loading="eager" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAwADAQAAAAAAAAAAAAAAAAIHAwQFBv/EACUQAAEEAAYCAgMAAAAAAAAAAAEAAgMEBQYREiExB0EyURMiYf/EABgBAAIDAAAAAAAAAAAAAAAAAAABAgME/8QAGBEBAQEBAQAAAAAAAAAAAAAAAAEREiH/2gAMAwEAAhEDEQA/AIHQyhPboxWWl+17N/AC5d7DqtKw+CxPKyVnYLEuGNuWbMNSCabWRwaGtJOmp+lQPL3jqLKdXDLdWW3N+dm2d0zOnADkH65Wr2XKEskDQ8hhJb6JQnMR9IUsoejydefhWP1bUU7a5adrpnt3BoPZ0VH8lZ4kxvL5qx4428D+hidDodn8PrpSaP4lMruJbptUs54OiFkf8ihGE//Z&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/9b180f1df344a8047cf3ee91c33acd20d5481d6d-1600x2000.jpg?w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#0c043c"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Unleashing the Power of Astro</h3></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/build-your-own-developer-portfolio-in-react/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Build Your Own Developer Portfolio in React cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAEDBAUGB//EACIQAAICAgEEAwEAAAAAAAAAAAECAwQAEQUGISIxEhNxQf/EABkBAAIDAQAAAAAAAAAAAAAAAAIDAAEEBv/EABkRAAMBAQEAAAAAAAAAAAAAAAABAhEDIf/aAAwDAQACEQMRAD8AzIq23jWRY/FhsHfvEWK3Ft2i8V947U5uKOvHG8bEqNA9smcVFy3LGw9GIGONDISY9jQ/n7nRPra9ZTr0qjZZu4AH5hkazblaZvvVVkHYgLrWGOXV4FpVrLrN30h1yeOqNTvP8ayIVX608m37Bznx94h95juVSxglhyFiKe7NLXVkiZiVVjsgYZBwxiIf/9k=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/114ad234c4569b4484d4c89fc6fdaca16baf9b62-1600x2000.jpg?w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#352c66"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Build Your Own Developer Portfolio in React</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.8</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/designing-react-hooks-the-right-way/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Designing React Hooks the Right Way cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYCBAUD/8QAJBAAAgICAQMEAwAAAAAAAAAAAQIDBAARBRIhQQYTMTMVInH/xAAWAQEBAQAAAAAAAAAAAAAAAAAFAQT/xAAhEQABAgYCAwAAAAAAAAAAAAABAAMCBAUSMVERFRNBYf/aAAwDAQACEQMRAD8AQq1H36YllnBMoDN+w3vKXIxWePIKzxsm9KAwJ1mlS4TkHLQodMiksOrxlduEtWpAmgZSekbObbJn6jS9J+yFCjBNarLL1L37d8Ma6vpt+PrRwW1VpQOolfjvhijTgsF2UG+IvJFbjlZqcyIY3sLYb3ZD06A+Vzn+YhWu04sFbAbSjXjFhPqTIWPrw/sXNBL9Qzspok9VTSkNLZfq1rDE9/H8wyCoOaCppDPOSv/Z&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/acc986b72da688d522cdc8a5d92ae7ad73377260-810x1000.jpg?rect=5,0,800,1000&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#0e5483"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Designing React Hooks the Right Way</h3></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/hands-on-javascript-high-performance/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Hands-On JavaScript High Performance cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAUCBAYH/8QAKxAAAQMDAwMACwAAAAAAAAAAAQIDBAAFEQYTIRIiMTM1NlNhcnOBkaHB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAwUE/8QAJREAAQMCBQQDAAAAAAAAAAAAAQACAwQFEiFBYZEUIjFSgdHw/9oADAMBAAIRAxEAPwDIWq1wHoEZx7lakZUA4kc/epLsNt7XCHCMnqAeT+qovQ7Exsh9UttbpwEkjigwrOJG0UXAp94MFP5rIyqY49rTwqZtVSRolFyFuTKUmFv7QGO/Gc0VqIembbLZDrJkFBOOSKKTqR6n98oRbZTqOUvguxJZdenRUEkYT1q8fGtDpJ2I7cW4AaQtrJVyeDxXPHPQpp9oD2gb+U1Oq6FrYXuxHIKtSXmSWZsYaBiyP2nN2tc+2z3WI09hpokrSgnxmioa09dH6af7RQQQmSNryfOwWiouEsMjo2nIbr//2Q==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/9d8ca4186f557f1384a7ffb8bb0dc38f76a0d5b2-810x1000.jpg?rect=5,0,800,1000&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#603927"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Hands-On JavaScript High Performance</h3></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/clean-code-in-javascript/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Clean Code in JavaScript cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGwAAAQQDAAAAAAAAAAAAAAAAAAEEBQYCAwf/xAArEAAABQMBBAsAAAAAAAAAAAAAAQIDBAUGESESEyJBFTE0NTZScoGDocH/xAAXAQADAQAAAAAAAAAAAAAAAAABAwQC/8QAHREAAgICAwEAAAAAAAAAAAAAAQIAAwSRFDFiIf/aAAwDAQACEQMRAD8Ap1PtWPMgx3t7ISpxOdEkZBX7WiR4TsiQ/JQTZa8JHqIdqo0IyJKHKlkuRKxgJKqNCaSpDjlSPmaTVnIUbyPhQ6lHF9ruMJyIqH8Q3VuNYLVScHkAy6UtzyT/AKAByPB1Bxva7jM464sN8mFqcJ5ONlSNS9xpolty67VGYbZ7jaSZmtZ5D5fZyE7YPiBv0mG5mTYtLOOwJrFRL70Rh8JlUuGyp9HqJxd6TvCStpHVqAdBvPvn40/oBBj5NllasT3LcnGqrtZAOjP/2Q==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/aaee9a42c5dff7423353497b1636e8e1e6afb71b-810x1000.jpg?rect=138,530,297,371&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#a13406"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Clean Code in JavaScript</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">5.0</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/build-a-blog-with-react-and-next-js/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Build a Blog with React and Next.js Cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAUCAwQG/8QAHxAAAgICAgMBAAAAAAAAAAAAAQIAAwQRBRIhMVEy/8QAGAEBAAMBAAAAAAAAAAAAAAAABAMFBgf/xAAbEQACAwEBAQAAAAAAAAAAAAABAgADERIhBP/aAAwDAQACEQMRAD8Aa149ti9krZl9bAk0xrgTuhm0PREd8LWcYMbAzK3gCar8taEYipix+zbNc3WAbOXJ8y8hmOTmLarFbTVFT8hNWZmi63tphoahJQWz0Q7Km+GPUKutfRtaPkfZTyti9DoeAJRR+RMnIfkwyVgPsdZcTXkWOdsTCRhGyrn/2Q==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/828ff1753d9431718d39d25baac148d4beae1110-1021x1278.jpg?rect=108,708,381,476&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#166d8c"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Build a Blog with React and Next.js</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.0</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/build-a-rock-paper-scissors-game-from-scratch-with-react/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Build a Rock Paper Scissors Game from Scratch with React Cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAIDBAYHBf/EACcQAAICAgECBAcAAAAAAAAAAAECAAMEBREHEhMhIlEUFTIzQWFx/8QAFwEBAQEBAAAAAAAAAAAAAAAABAUGB//EABwRAAIDAAMBAAAAAAAAAAAAAAECAAMEESFBYf/aAAwDAQACEQMRAD8AvwS10Dp2hT7xyqq3u9XYZEry7EQKAvAlT2XU/Ta/atr77+bEIV2VeVQ/szUvaU7Y8TnlWdbekUk/Jd3+o8gCEh42UL6VtRg6v6gw/IhEA9QLKQZHI5BExzedPdrbn5dOFRjvVk3eJ8Sx8wCfMETZIqv7i/2FuzpeAHlDLtsyEtX7EaHXfLdPiYZYuaawnd78CE6UIoAAcCT2csSx9n//2Q==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/cc4bc5d2f04ba18217d8abd12c4d77ed5c1cc88c-1600x2000.jpg?rect=553,951,839,1049&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#234352"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Build a Rock Paper Scissors Game from Scratch with React</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.2</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/javascript-the-new-toys/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="JavaScript: The New Toys Cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAQHBgX/xAAnEAABAwMDAwQDAAAAAAAAAAABAgMEAAUGERIxFCFhEyIzQkFRkf/EABcBAQADAAAAAAAAAAAAAAAAAAMBBAX/xAAhEQABBAEEAwEAAAAAAAAAAAABAAIDIQQRMVFxBRIVQf/aAAwDAQACEQMRAD8A38jL7LjMZi1sOpU/HZCNOQCBxU/yC8RZ8iA7KdiSkBxTj6fUKiAfqP0Kz0ebEuEVMiSelmLVq7qndu8g0tcbbaunV0r6kPk6q7c0fsLtascL4nMIjcCN9Nb6qlTEYdieRMtXCA0W2Vp27fI5oqbsZ5kNoYbhWtiMmK0kJT2580VIe3lHJi5j3FwY6+1zbblVqZhMNqmMBQPuCkan+04MstiXzunxikjsotfnzUE+1MSviRVN2DETY3T/AGJT+Kmzr7CclurEppQJ11HbWipTRTiAAaApB5ybgL//2Q==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/6add5114ce77947ae2515be10fe83c70967aede9-718x900.jpg?rect=209,111,300,375&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#882e06"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">JavaScript: The New Toys</h3></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/9-practical-node-js-projects/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="9 Practical Node.js Projects Cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAZCAYAAAAxFw7TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD1ElEQVQ4jZ1V20+bdRjenzQOLaf2owcKLV8LtJR+5VBoofRAR2nIvMRlg2XxwrEIxa0akJhoIlm88UJtu4lGdzEHyYoXkh1ky3TqhdELQ/TiWZ63fN/aTg3x4u3v/LzP8x6+nmluacFpram52Zi3tLai1WQyjGvun/k/gO0dHbA7HOhxucQ47+jsfAlY6/k0RkCH0wlXb68Y53WA/8Tkv4x3TGYzzG1tYpwbkv/tAS/olxrj1rjfVKPQkMxLbe3t6LJYoHR3o7evD57+fhmdPT1wOBxijJnb7RapjJ3NbofdbofFahW2BiAXbo8HwZERhEIhRGMxpNJpJFMpzMTjmIpGoWkaQpqGaDRaXYfDCIfDiExOyjun01kP6BsYwEQkIofDwSDGJyYQj8eRSqWQTCYFZGx8XJzFZ2cRm57G5NSUOKSNhEL1kimVkqyKIpmk/H5VlUeJZFKMD+mEc4IGg0GER0eRSCSEeV3Z1CZCjyljSMC5TEZCQCCOXJO1pmmIRCISmumZmWqWG0uFa7INDA9X2SUS8pgSKTc9NydGhtFYDLOJhDh6hWFteVA6L89ns8hmswJKcIJmyDaVkvXo2JjEnXdpBkMd+GxTk8xZBiybwaEhSRDZcu4PBCRpXDOJfW63hEX1ejHk99czZMwURZE2qm18vSt4zmRx1M180in6uQHIh2SytLSEXC4nXimdZyZT9UFjrKnm7InpewYgG/zKG1dwb+9bFEtFnJufN1iwmJmEwHBAGOq9TCWdXV2yR0JGL9N7fDaOUvkz/P7Hbzg8PMTFS5dgsVigelXk317Hrd0i3lpbhW/AJ/XJImbCFhcXpS6ZRAOQvXp19U08PnqAv/4+xqNHD7G8vCKXFnLz+PrOLp7/8hSffv4JYtNRBIMjyOc3UCqVUCwWcaNQEBUtOiAztPXeJn76+RmOj//E/v6+eKbE9Y1rqHy3J2e3b99CMlUt7HK5hKOjx6hU7mNzaxOBQOAlQ6/Ph3feLeCHJw/x7Mcn2N7elvIYnxjD+x9s4e7eNzg4qGBnZ0dqLp1JY/erMp7/+hR3793BhQuvo9tmqyaFP6yl1WuruH+wjy++LCNzLiMBH/IP4uLKEq4X1rCeX8NCLgdnj1Mc3fz4I3z/oIKdmx8iPKqdtOwJIIPMyr9RuI6Vy8vw9Hska1bFCo/qwaB/AKpPhc1mk6y7XC6cf+088hvrWMgtSBPoDWH8BXCT0lVVlY8m11arIqBKtyK9TaM0nlOV1+uVvdrmMOpQN5YQGRNQH6tgNgOUxjNzm7nug2LEsPFPSv+MncYa374AZI7JmYEjdZkAAAAASUVORK5CYII=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/14e9ee1b13d40314ffa99be655ee3abdbf5fd9ea-922x1158.png?rect=243,593,436,545&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#4c5b28"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">9 Practical Node.js Projects</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.3</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/build-an-app-with-typescript-and-the-pexels-api/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Build an App with TypeScript and the Pexels API Cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAEDBAUGAv/EACQQAAEDAwMEAwAAAAAAAAAAAAEAAgMEBRESEyEGIkFRFDJh/8QAFQEBAQAAAAAAAAAAAAAAAAAABAb/xAAbEQEAAgMBAQAAAAAAAAAAAAABAAIDESEEQf/aAAwDAQACEQMRAD8AroaCeaFssZZpPjPKcZbahpy7bPGcZUaC5zQQCJgZpHsKir+r4W1kjXyy9hDZHxtOhh/SrC+Vp2yBJmuMvypuXch7jloaR4Qo8U26wPDtQdyD7QkjyHR3G1kZLXdoKO6Wyl23UtfKHmRwGWjytclZ9gh5/NT0AX+ROHPbCrWc22l+JQQQF2rbYG59oUpCZWoGiFbK7Z//2Q==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/7d77f32176942d246560ca97a170892e45b0b552-1600x2000.jpg?rect=681,961,710,888&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#042c5d"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Build an App with TypeScript and the Pexels API</h3></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/svelte-a-beginner-s-guide/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Svelte: A Beginner&#x27;s Guide Cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAIDBAUGB//EACEQAAEEAgMAAwEAAAAAAAAAAAEAAgMEERIFITEGE0FR/8QAGAEAAgMAAAAAAAAAAAAAAAAAAgMEBQb/xAAbEQADAAMBAQAAAAAAAAAAAAAAAQIDESFRQf/aAAwDAQACEQMRAD8A5XVoTWZNII3PfjOAp8XDW49XSU3Oa7obddqz4aOxWs/bXjc9wBBDR+K7F+1JHh9dxYPT30r5y/hlVc66ZCzxViOTD65jOM6oWos2DM9rnRHIbr2UIlNeAvJPppfj3Nx8Jx0kdSpG65JkGZ4zqP4AoM163M1wfKdXegAAKGxOnxPWKU966Raz5GlO+IYMYQlO9QjFn//Z&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/39d0a41ce6655b8dad811cbbe6731b4a3ca8f0d0-1021x1278.jpg?rect=219,619,525,656&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#0c516f"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Svelte: A Beginner&#x27;s Guide</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">5.0</span></div></div></div></div></div></a></li></ul></div><div class="splide__arrows"><button class="splide__arrow splide__arrow--prev Carousel_splideArrow__oJOEm Carousel_splideArrowPrev__FGBFc"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" width="40" height="40" focusable="false"><path d="m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z"></path></svg></button><button class="splide__arrow splide__arrow--next Carousel_splideArrow__oJOEm Carousel_splideArrowNext__uHmgk"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" width="40" height="40" focusable="false"><path d="m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z"></path></svg></button></div></div></div></section><section><header class="flex flex-row items-baseline mb-2"><h2 class="font-bold text-base mb-0">Popular JavaScript Courses</h2></header><div><div class="splide Carousel_splide__p2P5n"><div class="splide__track -mx-8"><ul class="splide__list"><li class="splide__slide"><a href="/premium/courses/react-js-masterclass-zero-to-job-ready-with-10-projects-3203/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="React JS Masterclass: Zero To Job Ready With 10 Projects cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADVElEQVQokT2SbVATBByH97W84rwjO6AwiJhbW9BZEcFZkYqKeOlRAXXKNd4OCo55URiMcMg2BgxQ3tY2GToGLLZBYPFiZSLLkxPGkWFOQUDQKxz0An57OofXh+fu/+m53/1+f8GmQ0b8Ui08lekkqGCI4GMjhJRfJbxmGnHLPBFnltn+zRqv2NeJtK4gMSwirL/B8yo3wcUuggoGCEy3siXFgF+SAcFDYcCRdt4utvO+boCYylHCKsZ9wpf080RZl3nDsUZMzwNe71ohwrTItv+Fo4R+YkP6XgnSffkEHahA8PhBI6LsdpT60zjOtZJj/hFxpdsnjDu7QPqQl5yRNXJG1sn8YZWd1iVE9TcIVbnZWjyKMKeNmAOZxMZ9QFhCEQL/ZDPRR7s5YTTT5tQjMw4h0kwgqbtOWu8iX0+tYL35tw/DtVU+7r9LZINnQ1gySkheNy8mKxElFhL4rhZBdL6drNqLZDWcJ0HTR6TyAkLVOLtMHo5fukf3LS+9c1565rzYZ7yUu/4gvm2GcM3kow4HCcjoxD/VxJNJRgQ7C3v5rPkymc1j7FC72Fb2C5LKCdIds1h+u++Ttd9a9tFz24tl+j4ZPXNIqiZ5tthFoHwY/6xe/D7qYFNSK4Kth88SW9iPrPkKcts08Y2TSCsnSOmcocX9J85ZL7bZZR+OWS/N7mVSbbcRazeEAfJhgrMdSNNMSJIbN0Z5+kgHe9Q/k2u9RnyDm3DVOFFNvyMfvkuXZ4W++VUfD2/5+XtE628S9qjDZ+SDROVayM6pIVdWsfE2mz+0EJrXx8ulFxCVuQgtv4q4dppDtjuornipm/qH2ql/UY2tkmRfQnJyY+WQkktIC78l8aiJ7E91pMm0CB47aOSJFAub051syRskqGiE55TjvKC7zqumBfY6vCR+v07iwAP29f7Fa+YlhPUeQiomfQkji86x+1gXcfJ2pDIzAuHhBsQZBiLyLWz/wk5U2XfEVP7Em6cu845xkj1WDwn2BfY777C3c4Zdrb/yVtMYsdUXiS4fJFbhZLeii/2KDnYUtCL4vKyUohNKvtRqUNTp+KrpFEqjnoozrag7LWgdNqr7nNT091Dl7EbTZUVlMVN+2kBZSyOKk7WU6qo4Xq2mVK3kP7S4c1RneuyCAAAAAElFTkSuQmCC&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=529,0,943,1179&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">34:49:53</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#083470"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">React JS Masterclass: Zero To Job Ready With 10 Projects</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.5</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/javascript-fundamentals-3092/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="JavaScript Fundamentals cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAMABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAQDBQb/xAAhEAABBAEEAwEAAAAAAAAAAAACAQMEEQAFEiExBiJBYf/EABcBAAMBAAAAAAAAAAAAAAAAAAQFBgf/xAAaEQADAQEBAQAAAAAAAAAAAAABAgMAEQQh/9oADAMBAAIRAxEAPwDVg3Hh6Y7Kdv1Fekvn5lL4/LlytYZZnKZtus3tQKQF/ceiOkYq0S2C9pjfEZdzKbSqrzL5VRJMpXpOrfRGrWBDaGXHBt8hFeMMTdcMzVSJbwwPmaqrAfTv/9k=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/1453c9c11d73b0bd06f44eae6d304b4136d52f00-750x442.jpg?rect=198,0,354,442&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">1:43:48</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#e07a04"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">JavaScript Fundamentals</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.7</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/advanced-react-with-typescript-3201/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Advanced React with TypeScript cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAMABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAMEBQYH/8QAIhAAAgICAgAHAAAAAAAAAAAAAQIDBAAFESEGEhMxQVFh/8QAFgEBAQEAAAAAAAAAAAAAAAAABQME/8QAGxEAAgMAAwAAAAAAAAAAAAAAAQIABBEDFCH/2gAMAwEAAhEDEQA/AMF4B0se/wBZ6gBLhiOPNwMTf1lWIbgyXlgeieFhbsufrOcanf7PV1xHQtyQoTyQp+cTPdsW5ZZbErvI/bMT7n9x3uMUAByHLWVXLN6JLtWzJMzMezhlI8jFjycMyG0xOy44hk//2Q==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/e3b9af0c05a1b88a96a90097022495f26287cbe4-750x442.jpg?rect=158,0,354,442&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">5:43:36</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#043682"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Advanced React with TypeScript</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.7</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/the-complete-nodejs-mysql-login-system-3154/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="The Complete Nodejs MySQL Login System cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAALABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAYHA//EACEQAAEEAgICAwAAAAAAAAAAAAIAAQMEERIGMQUHEyJx/8QAFwEAAwEAAAAAAAAAAAAAAAAAAgUGB//EAB8RAAICAQQDAAAAAAAAAAAAAAECABEDBAUGIRIxwf/aAAwDAQACEQMRAD8Ar9qe3C2tej8v2wz74yyR+Q0qs3I5DsCzG4tlnfpUIDLTt1FPYlmaPl87RyELaD0kvF3XJrAqCj4n5D3kFMFt32Jh5rx9Ab5sBDjCEn3LMxTk5SE7/qFpKoQKuSJcE+p//9k=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/3e433ba26f9254427ee4bbb4bbdd16f03d2b69ca-1280x720.jpg?rect=352,0,576,720&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">3:22:28</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#125a9b"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">The Complete Nodejs MySQL Login System</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.7</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/write-clean-pure-code-by-following-functional-javascript-principles-2922/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Write Clean, Pure Code by Following Functional JavaScript Principles cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACDUlEQVQokVWS7W/SUBTG91/6yWWJiUv0izF+MJqYxQTFzBE3ymAvMjNgCigbFFjX0pa+7AVWEEisGHWM0XtLkZHNjXtbP5lbGNHkfLn3PE+ec345U6yB/i0BYrVryxBzAHEAj8r9xEWIuf/FU6yBeIBFiAsAcwbet+z6wNH6jgAx2xmynevd1gXbGqjwSjbHGrdcMweQZOJDy5ZIDykmKpuXymkv3zTSjZ90Xc9UqtulEl3TmZO+CNGh5ahdmwd4nCxCEqiYJJ85OX+vljdzO9tidm8/Kxyk5KO4oETiu9GopPKt88bgT7XvFOGNmQNkctnEsmWn9TN/PBxafbSX91bLwYa29LnkLctPM6kH68nFndq3cs8p9WxhYiZ+ko8Uy87oZ8F4KBSYTkZuS8ysJt2tKHcq0oyQm4l89CS1RhHioklwujsbiIeEJ9m85+SbkIpvvV64v+q/lU9NK+y9IvOQzT5JfngWjAUTx18kV3ljBuQhd8nYB5bD/Pi1TPOeN/MLvscb4blYzBd+56dWluYp6tXb2NaRLhhDySRhHHCTBTdZhEgy7ULnOllvL6e5F4GV575FD7X2ci3q3Uj4PzGbopbWIdsZjvTcGJhbgstMhJjrDOmvMCxqAVpa54+jpWaidsp8t2TjUgTDEeDx2JNzGTEvAFQAWACIaf/OtS6Y9pXbIpDU7hjy5ML+Aq5tEBc6JeiVAAAAAElFTkSuQmCC&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/2ed4a94dc9d65c6b4e6614ba767d9dca81bf5a4d-600x330.png?rect=168,0,264,330&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">3:07:53</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#4b4820"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Write Clean, Pure Code by Following Functional JavaScript Principles</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.6</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/setting-up-and-kick-starting-typescript-2933/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Setting Up and Kick Starting TypeScript cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACLklEQVQokWPY9eQbMtr99PvOx99W3f48+dy7hsOv8nY8Sdv0uP3oq433v+xGVbnryTcGZG27nn7f/fT71kffuk6+8V56V2/KdfW+K/oTrqZueLT85kfcmh9/3Xb/4/rrL1dffLjs/KOKXQ/0Jl+V6bik0nNZf+LVqNX3F1z9sPsZyGgsmrfe+7Di3L1pO453rtzauXpn4ZqzVjOu2sy8EbTkTsyq+7lbn0w/83ztlScbrj3b/uATuubNd94uOXlz+q4T/Rv2TNy0r3bLBZd5N2xm3QxefCt+5a28jbca1p+sn7Gsf9mm9VeewO2Hat7x6POWu+823Xq17tqTNZfuTz1xP2HNLf/FN8LnngloWhXXsqRsysrcipaalgmrTt/a/ewHVPPuJ99BCBRUIKF1V5/N3nemb/ORpo0nG9afruxanO4WU+QY2lHV1Vjb2VRSv2T7sZ2PvuwB62LY+fgTBO14/Gn7ww/Lzt3uWr2tadGa/o17Jy5a1xGZ3i2lPUlKu9M7oiwsodg9qL9r2vorD3c++bzz8SeGOVe3wdHsq9umnl3bvmd2y47pnfvm1k6vKXKyrBGVq5FTyLLVCLTX8DbVTiuI692/cM617XOubmPI2O2OjNJ3u6ftckvf5Za60zV6gYl/lpy7i4x7oIxPmZhThZhltoxnp07CRoeMPR4Zu90Z/NeLIKOA9SIBG0QhyG+tiOc8UbtOccd+ce9lIr6rRDyXivqsFPVfB1UMAOspq2GO2VmvAAAAAElFTkSuQmCC&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/cb6421d509c9c3fbeefcdb6a0c4eef891f8b597a-600x330.png?rect=168,0,264,330&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">44:08</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#2c8404"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Setting Up and Kick Starting TypeScript</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.5</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/learn-javascript-syntax-and-programming-principles-2908/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Learn JavaScript Syntax and Programming Principles cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACqklEQVQokQGfAmD9ANYEfdgIfdoOfeAUfuQaf+kgf+klfeAodc0sacUwYdA0ZeQ8b+9Dc/FIcu9Mb+1Qa+lSZ+VUZOVXYeRaXwDXBH7aCX7fEIDkFoHpG4HqH4DWJHG0NVKmUzqoYzKnVzi3Q07cP2jxSHLzTXDxUW3uVGrqVmbnWGLlW18A2gV/3gqB5BGD6BeD7RuD3x55tDJUp28rxakd1bwcxKkdp3IquEVN5kRs901x9VJv81Zs71lp61tk51xgAN0GguILhOcRhewXhO4Zg88fbqVROcasHe/bHPbfHuvZHMKqHKddNNFCX/VKcfdSb/ZXbfNbau9dZepeYgDfCIPkDIXpEYbtFoXtGIPHIWimYTHXwBz03x7jzhzWwxrGsxmneiS5R03pR2z4UXD2V230XGvwXmfrX2MA4AiE5Q2G6hKH7xaG7xiFzR5tplQ4zrQd5dIcu6sXno8TpJQUoIIbo0w83URl+VJx+Fhu9l1r82Bn7mFjANoHgd8Mg+QRhOcVg+kYg9MZdaY6R7eTIdC9GaqZFY6AEYl8EIZpGZdAPNI/ZO1Mb+xRbepWauZYZuFZYgC9B3TBC3XED3fGEXfHE3e8EXKYIlKcbybItRm9rheVhRRzYBVsPyWKJ0yvJ2a3L2m0MWixM2WsNGGnNF0AoAdmoQlnogtpogxqog1qnQtqhBRTgVAqtKIZt6oZgmkcYCwuZBZDdw5ZgQ5kfxBjehBidRBfbg9baQ1YAJgHYZcIYpcJZJcKZZYLZpQKZ4EOWG8pOYBTKYFXKGkwMmkOTXUIXncJYnQJYnAJYGoIX2QHXF4FWVkEVwCYBmGWB2GUCGKUCWSUCmWTC2aKDGF6DVZzEU9wEU5wDVN4CV58CmN5CmN0CmJuCl9oCF1iBlpeBVhbBFaP/CNnsx19PAAAAABJRU5ErkJggg==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/7885782d7e83823f895c6900abfd9f21ac0af084-600x330.png?rect=168,0,264,330&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">5:25:07</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#950964"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Learn JavaScript Syntax and Programming Principles</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.6</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/a-playful-intro-to-react-3180/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="A Playful Intro to React cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAALABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABgADB//EACQQAAEEAQMDBQAAAAAAAAAAAAMBAgQRAAUGEhMxQQcUIVGR/8QAFgEBAQEAAAAAAAAAAAAAAAAAAwIE/8QAGhEBAAMBAQEAAAAAAAAAAAAAAQACEQMSIf/aAAwDAQACEQMRAD8ALTtQLAhkMKZ0xOZSJxtbXEPphtUWv6YaZOOeUxz6GvJW0id/jC+qgF7DlwS+N5rtTUZkOEroskolTtwdSfmNxuVdTZN6Nj5OoH2sKEd4Qsl9NFtKt3j7yxDtefKLoMMhDOc9zLcq+VyzS8WzuwC/kxJ//9k=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/25fbc3c04aee2fbc4da14d1d10e8105d5e6566a2-1550x872.jpg?rect=426,0,698,872&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">47:51</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#0a1627"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">A Playful Intro to React</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.2</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/getting-started-with-node-js-2979/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Getting Started with Node.js cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACfUlEQVQokR3OfVPScADA8b0S5TrRCthg7JEhj2OwsY1nMEJ8SDmrE8vM1PJ6OM+sOzv9o+tOU2g4fttgAzGv7ip7Dz28n9I38P18IQyW03h2i0krchYsz+n1WUMuAkpojhKNYeRoGDm2EwoabTqYYxvSHIJboxQI5UGq1pbmIQxOpZmJnena0d7iwelKo7du7K4a+Ypyg27Y4IYNadjxFsoqzvHmCNYaozSMMxMVI1ZWcQFCXVImNPn6xeMP358d/dpR/+x3vr0zl+63nExzGP5kcytjFKAEQCYAGtUxrkOLZjgPvJxyDYNQl5gOT26/enJw8Vz5vav9fW9e7FvL9RMkqIxg6nUaoLEuW+qGcjrGaa4AcAZ0LK46xptDCORxCZK/tL2wqBxuKD+21J9vrMZ2v1bXGBngcYPkO/6UxZU7Pgk4/KqdADcZneTbnqhixyEUEQS68FKYat9ZMN9u9ve2Bo82BpUlKzltxctmpNgN5izudjeY7fjEjk/qMLLJloxgBnhZCEWSAl3YDBRbocJpdenz3GovNWvxVSt2a5CtnRXvWeyEFS2Z4fypPHNervf4SjdS0P1yG2UhFBZ5qviUTB17WEuc7mdrGp3UCF4nhUF2/rz60AzlDVrUCb6frH6dX+tLUxoltD3RE1cQ8sACT+Y3MPGjI2CECyZfARineWM6KZwV755PPjAYScfjmjfWi5e/zKxYiTLAONUdUd1hyA3zCSK3jkuHziCgRD2QAV5OxxMGLQ4yc4NszaCTOpHQMc6MFPry7OUwFlMv5QDkdvFxIrdGpA6QqIrxbZwHV6yGxw2fbPhkzcsZJK9dFTVKBN5YG+dUlP2//Q8cJgj7EkYnSQAAAABJRU5ErkJggg==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/a18d236f1005f76da43e17f2d1654967e1d5764a-600x330.png?rect=168,0,264,330&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">1:32:25</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#a00c2d"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Getting Started with Node.js</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.5</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/master-javascript-closures-data-structures-and-map-reduce-2921/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Master JavaScript Closures, Data Structures and Map/Reduce cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACeElEQVQokSWSa0/TYBiG+1fYRruWceh6fjc2tm7ARruubw+jjm0dGyPRcT4sJqBCDBjURaJECMHAghjjicTFeIgmJpoofBofQBPib9HN5P7wfLly38lzIU464aSaQZkkzmsdwCAEA2+FAGZXwKLEEUoc6QoME0DHWLWdUpxe2eGV20gJcdEJF610+o1QcixmTQjxPOEzMV7HBKOz12KjNogVfPEiLWbIYIoNWz1+DaWk/3wTxrhkGI7PV/dWDt9mrt/lBm0CmDhIkaEMN5CnxByIF0SlaGTLM5WV7NgcGdBdrb2Ii052AE0tLm4cf9k+/X3z4NVwqQIG82QoS4k5Jmp3B9NROD5dWa1uPtp7sl9ZXgcDmeZ+JomgjOrx6dro7Hrt9e7nH7vH79bub5n5eRAr0i2Yi+as0enNh4/3a7WN6ma6ME2FLFzQMRYiGAc7gK5lp7b3jz5+/fb958n7D5+WV6v92lUmarPRfEgulMqVtfWNpRsrI8VJ0J8mgN6EOYjgvOYBulWYe3Ncvzg//3N52Wg0tnYOhswyE7HZiN0by10ZncyXZmLQ5sUUG9D4AOwCKsqqiLvVnExP1J6+ODtr/Lq4ODk5vfdgp08uEr5hj9/y+Ew6bDFhy+M3vD6YkdRZE0bCSjutIC5aQVlVGMguLN159vxlvV6vHR5NLdxixHQ7q6OcgXIGxhluwcAEk/HDMlRvZ2A8knB6ZcThlZ1UAudhcMi2S7Nzi0ula/OyWeoJplBOx3jDLTTfhgPTLRidgtYXVAbDcg8vOUgJaSMlh1d2UQrGKHQQ9sUtTjS7ew0CNNv+q4YLzdvN624OokzLMFL6Z9hfk9bdpa9u8CMAAAAASUVORK5CYII=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/d70fbbed6a5833a06601ca85ab4c11f1533e0f59-600x330.png?rect=168,0,264,330&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">3:07:36</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#243454"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Master JavaScript Closures, Data Structures and Map/Reduce</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.7</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/introduction-to-es6-2980/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Introduction to ES6 cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACRUlEQVQokUWS3U/aYBSH+/cuuzGZc4648VFgTkDAAgWGU4dCKZR+vLSdmBhd3FyIIzFTCNO2lPaltKWg3e6XwsySc3FunuSc3+9BpNuq0ifUAQklyhwxzhjMTf7REh5NwbVE1xZdb+dnRmuqc6bKQJlSB6TSJ6TbKiIvSZmyRuwUAlvjJirjQOBa4oMpWDpn6+BhIriW8DDhHQisEbvk5T6BqIMalClbY6c6J/fJi7OS0Mp8OS32rivdzqf251xbzN10j2YG/8c5di1xbvCWtuRriC41TJWeGS1VplluJ50NJPKheC6QL4UzeDBdQJP5MElu3/dIQ2WhzEx14IyBqTK61EDGStPW2LnJ3/br6SLqj64VK/FcNRHJBn2RtVQBxY8SR/XkSRun6RRgscFPwhkDW2PHSnMB65xjtDpXh7GMPxzz0ULuolupHRc2i2E0/TaGo8XyViob8IVeJDB/53LfgWCqcx4MZQ/WVZYTcXTrdWl/8+Ly4Ov3g3I9WajEU/vv16Ov1iNrKxsrz1afR2K+zre92RjYOjeWm4h23zBHjKowzXYhlHyTxkOHRDz/MRrc8sUyAWw3+m7Hv5lDN7Y3XoZWMTx4fVV24OLn+wYyHNSgRMEh070hqZPiXiN1UE8SDEaAbJneqTJY+/TD5Y8Kd75bYbGz89LozisVSou05d6/nuGQURR6cEf9umuqQxZqQBmyssxMdOBMBE3jJInWh4zpZb7ouUcg/w3zPHkybKHXb9sb1xIfJ/zcaHnXPhmyNOwvoD/rHrs1/9kAAAAASUVORK5CYII=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/1965c5d7364b659f1c447b9355ea81e941df4a4e-600x330.png?rect=168,0,264,330&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">3:00:19</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#5c4428"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Introduction to ES6</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.6</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/introduction-to-react-2983/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Introduction to React cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACY0lEQVQokSXNTW/SYAAA4P4yLyYmxpgs0Xgw2WFXDyaejSdN1HiZh5kdxOnWMWBAKaWU0pZ+0g8YtB0FgbWlLWvffr3+BmO8PpcHcbCLtTq8m0u+QgW9qz3ViPu1uP0zIS5B5zwla4DFEvoa6MPk9+R+oXoiuR3Tm4W2dnTEQU/XRNUXeiHX2bd/xdh5yrYLfViaYjnlwAj32udB8wzweDrhYoEI+g1/PHAX2mapI6vrH2scDdRhrNGAvMr5LrRlOBPK8QDOBGApW6azwy5ynclvxyHXCalGJPX8CXdnyohrsKtR1x0PgUTmTBtacqlQycmn+3dvkq8fMr4LTBmwWKFQqSn5Kr03RWDLoTpwBQIJtjPvht/RrQRHC7EHLRlUjoOj5/7Bw93hQXLyGc7FUqVzspYybWBKeejke+felj2qgUSeFdtKTNVB66xQKDgX4+P3uxeP/ScP/GeP4o9v4YQrJ1yGozlZg4vxn2RTgnW80n2qgYRLI55yQOmnTKsQCGgrWaMSvT7avXwavjpML75BSy5kqmDapTaElgQ9K/fm99ORz7QQl8VCFgNzITPYjG6WBgtv+Kx5Bk6/ZPXv5YSDMz7/7yuj0OhMHSQGE6q0Z7DICj11O2ikUInST7qXWb9e6sy/wZSgrcAbPh+2MhwtFKqci2DUiXrVQO77tnLn6MiyXtlynZ3GRAKx76IJUU3pZs5hhUjkIzxn2hnVSHtXmURmlhQZjE3WLZ7YLNTtUkcc/HIz5d3VJDClSCBibQimHKDq8XUF9Kq5weYzPh0PgKOmwa3r6AJRHxH1xVzaONpfOi7936bvE0kAAAAASUVORK5CYII=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/85b4ec5231a2e1a6d2cd46ee95641c0ff2d1489d-600x330.png?rect=168,0,264,330&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">3:08:48</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#6e1b15"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Introduction to React</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">3.8</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/sound-synthesis-with-the-web-audio-api-2937/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Sound Synthesis with the Web Audio API cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACnUlEQVQokWP4+nbnp1fbP77e/vXdrm/vdn16vePDq+1f3uz8BuJCSJyI4fPrHdcvLzp9etbj+2ueP95w4dzcc2fmvHiw/u3TzW+ebPzwYtvXtyAjvr7d9enV9jdPNr95sunDi60QQYY3TzZt29HROzt98ZrK5etre2anL1pZef3Sose3Vz+6ter1k01f3uz4+nbX17c73z3b8vj2moc3V71+vPHLmx0gzQ9vr563vCyxxiWkwCoo1zKs1KZtavKJo9NvX152+8rSlw83fHm789uH3V/f73r7bMu96ytuXV76/P66L292fH+/i+HZ/XUrNtelNHtYx2qYhCiHlFv3zE3fuKF91ZLmZQsb9++cfPvaiqcPNzy4u/bUsTlrV7QtW9hwYNfk5/fXg2z+9Gr7ufOz++ZlBmdYu8ca1/RHb9jWMmtaRVJ8cFiod15OTHdnwYyplZMnlFWVJ8dGB0SE+7Y1ZV8+uxCk+eu7XTcuLZ4xuSApziUixLa9KWnHpu6JvSXeXq5W1tb2dtb29pZOjjYODtY2NpY2NtaOjvbFBQlnjs/99n4Xw+OTc46sam3OCk30sIl1sSyN8VrSk99Rnebn6+no7GxmZqauoaGuoaGhqamrp2fnYO/p6ZGfFrF3RcuTk3MZNsZ7Lwx2qrAzSrE3SXYwy7c17PKwKnC18rS1cbazNzcw0FFWMlBWMlBVMdTUdLCy8nByjHWwnBLouDHei6FbiL9diL9ITChJRS5BXT5LWqxcWCBNVNhfWtpXTs5TXNydn9+Pj8+bn99dWNhHRsZPXj5GXKxaiL9biJ+hjYWlhYWlmpUln4M9h5O9mJ21moWlgpW1kJW1gJW1kIWlmJm5jJm5hJm5iIWlgJW1gI2tjJW1kYWllYUFAKOKV3z21N3BAAAAAElFTkSuQmCC&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/f602eecafd59ad3faad06fe80ee729a35fb8816b-600x330.png?rect=168,0,264,330&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">1:04:54</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#830404"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Sound Synthesis with the Web Audio API</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.2</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/concurrent-rendering-adventures-in-react-18-3183/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Concurrent Rendering Adventures in React 18 cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAMABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAQGCP/EACMQAAICAgECBwAAAAAAAAAAAAEEAgMABRESEwYVISIxQVL/xAAWAQEBAQAAAAAAAAAAAAAAAAAAAQL/xAAZEQEAAwEBAAAAAAAAAAAAAAABAAIRITH/2gAMAwEAAhEDEQA/AM96bQ7F1SNyys7Kj9jKTZ+EX2K6jr9bZX0RHcMiAOTkOi+3TV26mLYQ/MZEDHfO9nUD23mI88c+85nb9DIyqixDbJ3a9+xZmPTbD5AwxVxm5pmdzFkrLJHkykfU4ZTzsT//2Q==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/577ec0a5cf23d3e12fc305a7f2510ae3790cb01b-1801x1050.jpg?rect=481,0,840,1050&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">1:16:31</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#04947c"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Concurrent Rendering Adventures in React 18</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">5.0</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/creating-a-rest-api-with-node-js-2992/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Creating a REST API with Node.js cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACqklEQVQokQGfAmD9AKC20K3B1rfJ3LDD2pKx0HCdyluTyVGPyEeKyECIyjKBySp8xkOGxVyRxF+QwVSIvEuBtzRwsBhcqQ9UpACWstObt9WattWVstOAqNBXlc1IjcxOj8tMj8tFi8wygsosfcdBhcVEhMM9f783erwsc7cgZ7EUXKoQVqUAk7PWl7XXmLbXk7PWfKjUS5LSN4nRPozQOorPMITOLIDLRYvJVZDHM37DHnG/G268Fmi3E2OyElysEVenAKjC3rDH37PI4KbB3YSv2UiU1iiF1CWE0yOB0iF/0DWGz2Wdzmabyy59xhVvwhluvxdquhJjtRJesBNbrAC3xdK5ydi5zN6vyd+Mt91IldclhNQjg9Qkg9MshdJIkdFfms9Mj8wtf8krfsI8hrk9hbQtdLMkZ6siYaIAfYGChI2Tlqawqr7Mnb7ZZ6PWTZbUUprYWJ3YYKDYb6bXcaTSZZrLYJnAZqStdbOYebSYaZycSnGEMlJnACkqJzs+PHB1cqCmpKWzuJWtvZKuxJy3zaO80afA1KvC16S5yZWmro2nl46/iJfOhp7RjI+4hlxyWSk0KAATEw4nJyJnZ2CMjIOGiH6NkIianZehpJ+kqKOrsK2zuLehpZ2BhXB+kWaRvnij1I2n1pOWvoNecU4mLhgAKSghNDQtW1pTcG5mcXBmgoF2j42CkpCFlJKGm5iKo5+MlI9ycnFMc31RjKtxm8eFm8qHh6l1UWFBJC0UAFxaUWJgV3FuZXt4b4B9dIuJf5WRhZ2WhqWchamdfqeacZmOXoV9S397TIWLW46kcIymdml6VDlEJR4mDgCKhnyPi4GTj4OLiH19enGBf3SUjn2mm320pHu1o3OnmGOXjFSRhk+Ng06Gfk2Kh2GChGpXXD8yOhkiKg+KHVqa24T2qAAAAABJRU5ErkJggg==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/959882765651df91944b3398d57b56d71e6cb9a6-600x330.png?rect=168,0,264,330&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">2:46:17</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#0e53a5"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Creating a REST API with Node.js</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.2</span></div></div></div></div></div></a></li></ul></div><div class="splide__arrows"><button class="splide__arrow splide__arrow--prev Carousel_splideArrow__oJOEm Carousel_splideArrowPrev__FGBFc"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" width="40" height="40" focusable="false"><path d="m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z"></path></svg></button><button class="splide__arrow splide__arrow--next Carousel_splideArrow__oJOEm Carousel_splideArrowNext__uHmgk"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" width="40" height="40" focusable="false"><path d="m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z"></path></svg></button></div></div></div></section><section><header class="flex flex-row items-baseline mb-2"><h2 class="font-bold text-base mb-0">Latest JavaScript Books</h2><a href="/premium/library/books/javascript/" class="text-primary-700 text-sm font-medium ml-auto">See all</a></header><div><div class="splide Carousel_splide__p2P5n"><div class="splide__track -mx-8"><ul class="splide__list"><li class="splide__slide"><a href="/premium/books/unleashing-the-power-of-astro/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Unleashing the Power of Astro cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAwADAQAAAAAAAAAAAAAAAAIHAwQFBv/EACUQAAEEAAYCAgMAAAAAAAAAAAEAAgMEBQYREiExB0EyURMiYf/EABgBAAIDAAAAAAAAAAAAAAAAAAABAgME/8QAGBEBAQEBAQAAAAAAAAAAAAAAAAEREiH/2gAMAwEAAhEDEQA/AIHQyhPboxWWl+17N/AC5d7DqtKw+CxPKyVnYLEuGNuWbMNSCabWRwaGtJOmp+lQPL3jqLKdXDLdWW3N+dm2d0zOnADkH65Wr2XKEskDQ8hhJb6JQnMR9IUsoejydefhWP1bUU7a5adrpnt3BoPZ0VH8lZ4kxvL5qx4428D+hidDodn8PrpSaP4lMruJbptUs54OiFkf8ihGE//Z&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/9b180f1df344a8047cf3ee91c33acd20d5481d6d-1600x2000.jpg?w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#0c043c"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Unleashing the Power of Astro</h3></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/unleashing-the-power-of-typescript/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Unleashing the Power of TypeScript cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAZCAYAAAAxFw7TAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAEKUlEQVQ4jYVV6XbaZhTknRobkNglJCQBEosECDCExcYstuMkjbGNjZeTkyax26Qv0DednrnUOO7pSX9c7d98c2fuvYq82onhZ7GzG38R//d95Gcgu1GG8jJ244jGFCSSGWSyukQqnYOipmRN5JdXUfwYT4AEi0YVWRyNqc8RVRBXEsjm8jALjoSeLyCZysqGkWeAzcK4koSiJqGqKSQSaWHCUBPpTagpKEoSaiK1fR5XkrJWUo7FE8hpeVh2EY5TRrHoolh6jlLZQ9mtouxW4BTLwoYbcR3Z7/xL10gimYYfNHEwmaL/eohWq42w3ZVoNEM5j8cH8r7d2RNggjI0zUA6nUMmq0nKoiEp7/VeY3l+icXRCYajfRxO55jNj+R8dPwGl6trXK9v5XowHEvw3WQyxWh8gMPDGVphR4yJMPe638Dp6Tsszy9we3uP3z5/wZevD3h8/AMPD79LfPv2pzy/ul5jdXWN+/uP+PrwKN99+vQZ09lC3I7QDNJnaicnp7i5ucPd/UdcXa1xcbnC2fIc7389w/nFJZbLC9l4NlsI2/XNHVZXaxwfvxGGTFsA6aqum6jVA9GJ4Lx23eomvBoq1To8ryYa2jSv5CFohPI8bxRESxolgEyb5ZDJaMI2b1iygaab23uGYdowTAt63kROM6QWk6nstmykDnmIxVVhSQ0KVhFepSblYwqALcXLkqn7TXH+yel0ZuMuzSCGAEajKuLxBFQ1DV0rImyMsT9aoNvtw6vUYTslFCwH1aqPyWQm2lEWbiCpZjTJbguoKBlk0zYyaRO2GWDSW+PD4hFH0wv0e2NUa4GAshLmi+MtoB+0pH4LVlE6ZguYUHVY+QB5rYy8VkLHP8b7w+84W3zHZPQOQRCKCQQe70/Q7w/gelVJfTjcF9BsVn8GjMWSyGYs5HUHuVwBtlVBL5xjPl5h2D9Gvd6UtqSb7CQCUVen6EpDdLo9MYwOS6fwQJf0nAPb8GEVPNGr3e4jDHuoVOqw7JKUUXevL2c6zGDanW4PZsEWhgLIhpYBkbVhGT4KpicuN1vtraPUqVrz5Z4Dg0YwaFqz1YZhWM/Thgcy1DQThlGEYdiyiNoEjRZKJU/qzrZLAs70aALLhd/V6oHUK/XbApIhH/IDLtqMrApcYefIVNZ0Q1LjqHuaiyzysluRZy8AecMuIRBZsS8bjVBajcVNVqw7aklHmRFJ8Np2NjOS9y/+KWKMboqbFHo0mmA0mKMZ9OF5vmhFGciK0zoWU//pLEcKnOtfAD65zaFJU3q9EeaTJcb9U1QrDfh+C532ALVaUxwmI2pJKWjQ1pQff06iZ0zdpF+qoBMO0W4N4Tgu3HKAQfstRt0P8Eoh1ERGCGy6ZJMucf7zr0dN6SL/MRxdTMstNzHt3WN58BcGjRUyKVtYEezJEAL+DZIwrlFmcDYcAAAAAElFTkSuQmCC&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/5fd75bb7ed78541494a1ec40662e913cd67c7838-1600x2000.png?w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#38295a"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Unleashing the Power of TypeScript</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">5.0</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/clean-code-in-javascript/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Clean Code in JavaScript cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGwAAAQQDAAAAAAAAAAAAAAAAAAEEBQYCAwf/xAArEAAABQMBBAsAAAAAAAAAAAAAAQIDBAUGESESEyJBFTE0NTZScoGDocH/xAAXAQADAQAAAAAAAAAAAAAAAAABAwQC/8QAHREAAgICAwEAAAAAAAAAAAAAAQIAAwSRFDFiIf/aAAwDAQACEQMRAD8Ap1PtWPMgx3t7ISpxOdEkZBX7WiR4TsiQ/JQTZa8JHqIdqo0IyJKHKlkuRKxgJKqNCaSpDjlSPmaTVnIUbyPhQ6lHF9ruMJyIqH8Q3VuNYLVScHkAy6UtzyT/AKAByPB1Bxva7jM464sN8mFqcJ5ONlSNS9xpolty67VGYbZ7jaSZmtZ5D5fZyE7YPiBv0mG5mTYtLOOwJrFRL70Rh8JlUuGyp9HqJxd6TvCStpHVqAdBvPvn40/oBBj5NllasT3LcnGqrtZAOjP/2Q==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/aaee9a42c5dff7423353497b1636e8e1e6afb71b-810x1000.jpg?rect=138,530,297,371&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#a13406"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Clean Code in JavaScript</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">5.0</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/build-your-own-developer-portfolio-in-react/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Build Your Own Developer Portfolio in React cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAEDBAUGB//EACIQAAICAgEEAwEAAAAAAAAAAAECAwQAEQUGISIxEhNxQf/EABkBAAIDAQAAAAAAAAAAAAAAAAIDAAEEBv/EABkRAAMBAQEAAAAAAAAAAAAAAAABAhEDIf/aAAwDAQACEQMRAD8AzIq23jWRY/FhsHfvEWK3Ft2i8V947U5uKOvHG8bEqNA9smcVFy3LGw9GIGONDISY9jQ/n7nRPra9ZTr0qjZZu4AH5hkazblaZvvVVkHYgLrWGOXV4FpVrLrN30h1yeOqNTvP8ayIVX608m37Bznx94h95juVSxglhyFiKe7NLXVkiZiVVjsgYZBwxiIf/9k=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/114ad234c4569b4484d4c89fc6fdaca16baf9b62-1600x2000.jpg?w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#352c66"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Build Your Own Developer Portfolio in React</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.8</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/beginning-reactjs-foundations-building-user-interfaces-with-reactjs-an-approachable-guide/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Beginning ReactJS Foundations Building User Interfaces with ReactJS cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAMEBQYIB//EACwQAAEDBAADBQkAAAAAAAAAAAIBAwUABAYREiFxBxQVFjEiMjNBQlFhcoH/xAAWAQEBAQAAAAAAAAAAAAAAAAACAAP/xAAcEQEBAQABBQAAAAAAAAAAAAABABECAxMUIVH/2gAMAwEAAhEDEQA/AOpSHaLYx+O+LR9s9IMcSBtv2URV9NqtJ4ZlkhMtEUXCPoDxK4br7uwEvsn4qIgICS8rJDZFaq8JEim2zoR6cqukE2kJYBZx0Y4xbh6ANUj1WaEO9cjmyk2W2bpd8QAW0T+0VErJyHyj3lT9koqp1dqOWWwHeiMJu0VFLaaeSnKZfDkPEeSWzfPkiupWKG/fHrTm7+GPWm8cQh5XP4W3rTO8caZQHcgsnCT6lcSisL0U+2WT1ldy/9k=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/92a19538a8bd357e0d1436bd2e8e07a75ffb7622-717x900.jpg?rect=87,36,544,680&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#648404"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Beginning ReactJS Foundations Building User Interfaces with ReactJS</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">5.0</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/hands-on-javascript-high-performance/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Hands-On JavaScript High Performance cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAUCBAYH/8QAKxAAAQMDAwMACwAAAAAAAAAAAQIDBAAFEQYTIRIiMTM1NlNhcnOBkaHB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAwUE/8QAJREAAQMCBQQDAAAAAAAAAAAAAQACAwQFEiFBYZEUIjFSgdHw/9oADAMBAAIRAxEAPwDIWq1wHoEZx7lakZUA4kc/epLsNt7XCHCMnqAeT+qovQ7Exsh9UttbpwEkjigwrOJG0UXAp94MFP5rIyqY49rTwqZtVSRolFyFuTKUmFv7QGO/Gc0VqIembbLZDrJkFBOOSKKTqR6n98oRbZTqOUvguxJZdenRUEkYT1q8fGtDpJ2I7cW4AaQtrJVyeDxXPHPQpp9oD2gb+U1Oq6FrYXuxHIKtSXmSWZsYaBiyP2nN2tc+2z3WI09hpokrSgnxmioa09dH6af7RQQQmSNryfOwWiouEsMjo2nIbr//2Q==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/9d8ca4186f557f1384a7ffb8bb0dc38f76a0d5b2-810x1000.jpg?rect=5,0,800,1000&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#603927"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Hands-On JavaScript High Performance</h3></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/a-frontend-web-developer-s-guide-to-testing/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="A Frontend Web Developer&#x27;s Guide to Testing cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAgIDAAAAAAAAAAAAAAAAAAQGBwEDBf/EACUQAAEDAwQCAgMAAAAAAAAAAAECAwUABAYREhMhMUEygRQ0cf/EABcBAAMBAAAAAAAAAAAAAAAAAAMEBQL/xAAfEQABBAICAwAAAAAAAAAAAAABAAIDERIUBEEhMVH/2gAMAwEAAhEDEQA/AI/ESs4i3bfZk+IODXTYKzJZbltiFL/P3MjwvaO64zMbIJAYFwkJSjd8utKZRjk1IRqnbd1NwyOlICtSPqjgS9WlnCE+TSs3CszNxjzDknzu3RJ3LS2SDRUKx7Ir6CjER6XLUcROoWOwaKoRuGItSpOOczXpIScnbtBZs3Erb3khe3yDWqKyRqMf5bW4Un2U+jUSH6/1SlICdwNquYWkUVaTmW49dK5ZCNacuD8lBPmiqwV6/lFb23fAg6jB2V//2Q==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/7c77abe4464fc9d04f68b396c327d5d4e3a0e6a9-810x1000.jpg?rect=5,0,800,1000&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#3b2b0d"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">A Frontend Web Developer&#x27;s Guide to Testing</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">5.0</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/designing-react-hooks-the-right-way/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Designing React Hooks the Right Way cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYCBAUD/8QAJBAAAgICAQMEAwAAAAAAAAAAAQIDBAARBRIhQQYTMTMVInH/xAAWAQEBAQAAAAAAAAAAAAAAAAAFAQT/xAAhEQABAgYCAwAAAAAAAAAAAAABAAMCBAUSMVERFRNBYf/aAAwDAQACEQMRAD8AQq1H36YllnBMoDN+w3vKXIxWePIKzxsm9KAwJ1mlS4TkHLQodMiksOrxlduEtWpAmgZSekbObbJn6jS9J+yFCjBNarLL1L37d8Ma6vpt+PrRwW1VpQOolfjvhijTgsF2UG+IvJFbjlZqcyIY3sLYb3ZD06A+Vzn+YhWu04sFbAbSjXjFhPqTIWPrw/sXNBL9Qzspok9VTSkNLZfq1rDE9/H8wyCoOaCppDPOSv/Z&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/acc986b72da688d522cdc8a5d92ae7ad73377260-810x1000.jpg?rect=5,0,800,1000&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#0e5483"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Designing React Hooks the Right Way</h3></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/real-world-next-js/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Real-World Next.js cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAUGAwf/xAAkEAACAQQCAgEFAAAAAAAAAAABAgMABAURBjESIRMUM0Fhcf/EABcBAQEBAQAAAAAAAAAAAAAAAAMCAQT/xAAaEQACAwEBAAAAAAAAAAAAAAAAAQIDE1Eh/9oADAMBAAIRAxEAPwCJgyebaFJEuEVXHo+NLrjN5GCcH6lHfvajdPTxvkNnagMrCNF6DjQqUMG5YleMqZvIqxO+u6vSXQ848OscQvrvI4OK4uB8khJBbVFJ+McjkwuHhsxYyzhdt5qno7opVekg3T6S2N5bf2diyzLLN579u34NTi5KdXsXEB3bl97Pe61f7IrCuVVob0prTmF/FaxRrGqhV1puz+6KnJOx/KKjGLNbl0//2Q==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/46ea506ab877a9c8ab0b327280c4ca395ce7291f-800x1000.jpg?w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#ad3717"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Real-World Next.js</h3></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/typescript-4-design-patterns-and-best-practices/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="TypeScript 4 Design Patterns and Best Practices cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAMEBQYHAv/EACcQAAIBAwQBAgcAAAAAAAAAAAECAwAEBQYREiETIkFEUVJTYXGR/8QAFwEBAQEBAAAAAAAAAAAAAAAAAgMAAf/EABwRAAMAAwADAAAAAAAAAAAAAAABAgMRMRJCYf/aAAwDAQACEQMRAD8Az/H4MTWy3SzRguN2HAHjSWQt7zHzJN6JEj6DFQR/Knsbpi7dOEeTtY+vukA11daVyXjlRcjayKFJ4+U9iiql8FTv2HenseuUxcV1KY1dydwI1oqd0XfwYvT8FrctA0ikk9jrv80VB5Vsye10rE+axC3MDR2qvGfSzDkAgpe51Bg94Y40QgtxYjlxVfnVC+Hpv7Vecangbvz6abHdaRAIlki5b/Q1FZo/t+qK7r6B6R//2Q==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/576f7ef32b02e7f5354d4ec44498b63beebf7f0c-810x1000.jpg?rect=5,0,800,1000&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#7d272a"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">TypeScript 4 Design Patterns and Best Practices </h3></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/deno-web-development/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Deno Web Development cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGQAAAwEBAQAAAAAAAAAAAAAAAAMEBQIH/8QAJhAAAgIBBAAFBQAAAAAAAAAAAQIAAxEEBRIhEyJBUXExMjNhkf/EABYBAQEBAAAAAAAAAAAAAAAAAAMBAP/EABwRAAIBBQEAAAAAAAAAAAAAAAABEQIDEhMhIv/aAAwDAQACEQMRAD8A8wGw2HRrqFtoKlOQXl5v5Ik8ap1cIwK9jInL7yulqr5m3GMDB+ka26C+kmuxyuMdmbhfRZUTcgsYDk3Zx1CRUXBa8MrZB9IQWujqYMtNv1dqBjST7fuPNL01AGplce806vxLF6r7TGdKA2Mh5XKAMY+YRz+nxCTFFdxn/9k=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/e3a1b80f75cd69f4bc52d314396dbd7baa8ba468-810x1000.jpg?rect=5,0,800,1000&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#843414"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Deno Web Development</h3></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/jumpstart-jamstack-development/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Jumpstart Jamstack Development cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGwAAAgEFAAAAAAAAAAAAAAAAAAYFAgMEBwj/xAAlEAABBAEDBAIDAAAAAAAAAAABAgMEBQAGERIHITFBEzNhcZH/xAAXAQEBAQEAAAAAAAAAAAAAAAAAAwEC/8QAGxEAAgMAAwAAAAAAAAAAAAAAAAEREiECMWH/2gAMAwEAAhEDEQA/AKImvdZPxW3jeFPNPLb4hkJK6r6zZdUg2auIOwJbA3zDa09bNVKJTMlKmQnsEr8fjIyTSzpIBccQsgdgpXjMhdDYk6I6a6olW+kosy0lJclLUoKUdh7wzSdJOfqa9uI7DdWpBJ5IWdj/ADDOaIXaJR6fWO0yIEef8cffkSAQVYvSajTvEqcs5CT53StWKrX1jLb3nKpwSfBPRiVHqGjxbvbAJ9dzhiyr1+sMWFPT/9k=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/6400300ba4438178763f87b77304fe3d96378b48-810x1000.jpg?rect=40,86,731,914&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#23595a"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Jumpstart Jamstack Development</h3></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/node-js-novice-to-ninja/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Node.js: Novice to Ninja cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYBBAUD/8QAIBAAAgICAgIDAAAAAAAAAAAAAQIDEQAEEiEFMSIyQf/EABcBAAMBAAAAAAAAAAAAAAAAAAADBgL/xAAbEQACAwEBAQAAAAAAAAAAAAAAAQISQQMRQv/aAAwDAQACEQMRAD8ATRoE9Ad5dXwO3Gpd9YstX2cY9XVCSIVKcmsAMLzu888Z+VGvyspXD1+Rwg11qlKeiRteOljlpouBIusMZtt2nm5si3VYYLmwfdYWoNtghKqrWOrwn2GkUWoBruj7zGT1knGbYV80LEs3FyGq8Mz5PscMLMzRH//Z&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/153fce8cc1efa957775b725b92bae96ca6c8cf0f-1021x1278.jpg?rect=286,638,450,562&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#04728a"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Node.js: Novice to Ninja</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">5.0</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/svelte-a-beginner-s-guide/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Svelte: A Beginner&#x27;s Guide Cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAIDBAUGB//EACEQAAEEAgMAAwEAAAAAAAAAAAEAAgMEERIFITEGE0FR/8QAGAEAAgMAAAAAAAAAAAAAAAAAAgMEBQb/xAAbEQADAAMBAQAAAAAAAAAAAAAAAQIDESFRQf/aAAwDAQACEQMRAD8A5XVoTWZNII3PfjOAp8XDW49XSU3Oa7obddqz4aOxWs/bXjc9wBBDR+K7F+1JHh9dxYPT30r5y/hlVc66ZCzxViOTD65jOM6oWos2DM9rnRHIbr2UIlNeAvJPppfj3Nx8Jx0kdSpG65JkGZ4zqP4AoM163M1wfKdXegAAKGxOnxPWKU966Raz5GlO+IYMYQlO9QjFn//Z&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/39d0a41ce6655b8dad811cbbe6731b4a3ca8f0d0-1021x1278.jpg?rect=219,619,525,656&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#0c516f"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Svelte: A Beginner&#x27;s Guide</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">5.0</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/books/build-a-weather-app-from-scratch-with-next-js/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Build a Weather App from Scratch with Next.js Cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYCAwQF/8QAIxAAAgICAgEEAwAAAAAAAAAAAQIAAwQFERJRByJBcRQzwf/EABgBAAIDAAAAAAAAAAAAAAAAAAQFAwYH/8QAHBEAAgIDAQEAAAAAAAAAAAAAAQIAAwQRIUFh/9oADAMBAAIRAxEAPwB+CW2IHTqAfMtrqtDDv0MxJlOlYQAcD5ifsvUPT6/ZnCvybi6t0exVJRD4Jlqewp1jqZ3XQLeVqSfkfbB1bj2n6hMOHkLbjpZWwdGHKsPkQk4PIEyncoI5BER11m0wddtNHTptfm4Wwtaz8u0++vt/RHmSr/Yv3BbsdLwA8YYubZiEtX7IaHXDW6fEwyxY01hOfPEJ0oQoAAaEXs5Ylj7P/9k=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/f4491f51d401113206f8e66eee8685aee34949f8-1600x2000.jpg?rect=551,891,887,1109&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#1a4255"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Build a Weather App from Scratch with Next.js</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">5.0</span></div></div></div></div></div></a></li></ul></div><div class="splide__arrows"><button class="splide__arrow splide__arrow--prev Carousel_splideArrow__oJOEm Carousel_splideArrowPrev__FGBFc"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" width="40" height="40" focusable="false"><path d="m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z"></path></svg></button><button class="splide__arrow splide__arrow--next Carousel_splideArrow__oJOEm Carousel_splideArrowNext__uHmgk"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" width="40" height="40" focusable="false"><path d="m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z"></path></svg></button></div></div></div></section><section><header class="flex flex-row items-baseline mb-2"><h2 class="font-bold text-base mb-0">Latest JavaScript Courses</h2><a href="/premium/library/courses/javascript/" class="text-primary-700 text-sm font-medium ml-auto">See all</a></header><div><div class="splide Carousel_splide__p2P5n"><div class="splide__track -mx-8"><ul class="splide__list"><li class="splide__slide"><a href="/premium/courses/react-js-masterclass-zero-to-job-ready-with-10-projects-3203/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="React JS Masterclass: Zero To Job Ready With 10 Projects cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADVElEQVQokT2SbVATBByH97W84rwjO6AwiJhbW9BZEcFZkYqKeOlRAXXKNd4OCo55URiMcMg2BgxQ3tY2GToGLLZBYPFiZSLLkxPGkWFOQUDQKxz0An57OofXh+fu/+m53/1+f8GmQ0b8Ui08lekkqGCI4GMjhJRfJbxmGnHLPBFnltn+zRqv2NeJtK4gMSwirL/B8yo3wcUuggoGCEy3siXFgF+SAcFDYcCRdt4utvO+boCYylHCKsZ9wpf080RZl3nDsUZMzwNe71ohwrTItv+Fo4R+YkP6XgnSffkEHahA8PhBI6LsdpT60zjOtZJj/hFxpdsnjDu7QPqQl5yRNXJG1sn8YZWd1iVE9TcIVbnZWjyKMKeNmAOZxMZ9QFhCEQL/ZDPRR7s5YTTT5tQjMw4h0kwgqbtOWu8iX0+tYL35tw/DtVU+7r9LZINnQ1gySkheNy8mKxElFhL4rhZBdL6drNqLZDWcJ0HTR6TyAkLVOLtMHo5fukf3LS+9c1565rzYZ7yUu/4gvm2GcM3kow4HCcjoxD/VxJNJRgQ7C3v5rPkymc1j7FC72Fb2C5LKCdIds1h+u++Ttd9a9tFz24tl+j4ZPXNIqiZ5tthFoHwY/6xe/D7qYFNSK4Kth88SW9iPrPkKcts08Y2TSCsnSOmcocX9J85ZL7bZZR+OWS/N7mVSbbcRazeEAfJhgrMdSNNMSJIbN0Z5+kgHe9Q/k2u9RnyDm3DVOFFNvyMfvkuXZ4W++VUfD2/5+XtE628S9qjDZ+SDROVayM6pIVdWsfE2mz+0EJrXx8ulFxCVuQgtv4q4dppDtjuornipm/qH2ql/UY2tkmRfQnJyY+WQkktIC78l8aiJ7E91pMm0CB47aOSJFAub051syRskqGiE55TjvKC7zqumBfY6vCR+v07iwAP29f7Fa+YlhPUeQiomfQkji86x+1gXcfJ2pDIzAuHhBsQZBiLyLWz/wk5U2XfEVP7Em6cu845xkj1WDwn2BfY777C3c4Zdrb/yVtMYsdUXiS4fJFbhZLeii/2KDnYUtCL4vKyUohNKvtRqUNTp+KrpFEqjnoozrag7LWgdNqr7nNT091Dl7EbTZUVlMVN+2kBZSyOKk7WU6qo4Xq2mVK3kP7S4c1RneuyCAAAAAElFTkSuQmCC&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=529,0,943,1179&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">34:49:53</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#083470"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">React JS Masterclass: Zero To Job Ready With 10 Projects</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.5</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/advanced-react-with-typescript-3201/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Advanced React with TypeScript cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAMABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAMEBQYH/8QAIhAAAgICAgAHAAAAAAAAAAAAAQIDBAAFESEGEhMxQVFh/8QAFgEBAQEAAAAAAAAAAAAAAAAABQME/8QAGxEAAgMAAwAAAAAAAAAAAAAAAQIABBEDFCH/2gAMAwEAAhEDEQA/AMF4B0se/wBZ6gBLhiOPNwMTf1lWIbgyXlgeieFhbsufrOcanf7PV1xHQtyQoTyQp+cTPdsW5ZZbErvI/bMT7n9x3uMUAByHLWVXLN6JLtWzJMzMezhlI8jFjycMyG0xOy44hk//2Q==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/e3b9af0c05a1b88a96a90097022495f26287cbe4-750x442.jpg?rect=158,0,354,442&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">5:43:36</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#043682"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Advanced React with TypeScript</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.7</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/concurrent-rendering-adventures-in-react-18-3183/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Concurrent Rendering Adventures in React 18 cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAMABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAQGCP/EACMQAAICAgECBwAAAAAAAAAAAAEEAgMABRESEwYVISIxQVL/xAAWAQEBAQAAAAAAAAAAAAAAAAAAAQL/xAAZEQEAAwEBAAAAAAAAAAAAAAABAAIRITH/2gAMAwEAAhEDEQA/AM96bQ7F1SNyys7Kj9jKTZ+EX2K6jr9bZX0RHcMiAOTkOi+3TV26mLYQ/MZEDHfO9nUD23mI88c+85nb9DIyqixDbJ3a9+xZmPTbD5AwxVxm5pmdzFkrLJHkykfU4ZTzsT//2Q==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/577ec0a5cf23d3e12fc305a7f2510ae3790cb01b-1801x1050.jpg?rect=481,0,840,1050&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">1:16:31</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#04947c"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Concurrent Rendering Adventures in React 18</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">5.0</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/react-hooks-tips-only-the-pros-know-3182/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="React Hooks Tips Only the Pros Know cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAALABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABwAEBf/EAB4QAAICAgMBAQAAAAAAAAAAAAECAxEABAYSQQVR/8QAFgEBAQEAAAAAAAAAAAAAAAAABAAB/8QAHBEAAgEFAQAAAAAAAAAAAAAAAAEDAhESEyEy/9oADAMBAAIRAxEAPwBBXkevLEjyOhry8zwfdhLSuQGVLNX5gvpzSX17tX5edXR2Zo5ZAjkBkIOKk88ARNqrruKM3J42YGNU617lg3JtTByBI2Wbii2M/9k=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/27789a9cbe736927a4dcd8fcec40034da26d6d42-750x422.jpg?rect=206,0,338,422&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">2:23:34</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#14445c"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">React Hooks Tips Only the Pros Know</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">5.0</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/a-playful-intro-to-react-3180/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="A Playful Intro to React cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAALABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABgADB//EACQQAAEEAQMDBQAAAAAAAAAAAAMBAgQRAAUGEhMxQQcUIVGR/8QAFgEBAQEAAAAAAAAAAAAAAAAAAwIE/8QAGhEBAAMBAQEAAAAAAAAAAAAAAQACEQMSIf/aAAwDAQACEQMRAD8ALTtQLAhkMKZ0xOZSJxtbXEPphtUWv6YaZOOeUxz6GvJW0id/jC+qgF7DlwS+N5rtTUZkOEroskolTtwdSfmNxuVdTZN6Nj5OoH2sKEd4Qsl9NFtKt3j7yxDtefKLoMMhDOc9zLcq+VyzS8WzuwC/kxJ//9k=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/25fbc3c04aee2fbc4da14d1d10e8105d5e6566a2-1550x872.jpg?rect=426,0,698,872&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">47:51</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#0a1627"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">A Playful Intro to React</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.2</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/how-to-fetch-api-data-with-react-3178/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="How to Fetch API Data with React cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAALABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAUGBP/EAB8QAAEEAgMBAQAAAAAAAAAAAAECAwQRAAUGITESUf/EABUBAQEAAAAAAAAAAAAAAAAAAAUG/8QAHREAAgEFAQEAAAAAAAAAAAAAAQIAAwQREqEUYf/aAAwDAQACEQMRAD8AqmYKNdoBOZcQ+6U/QaKgAT+XizQ7pW1gra2aokSeF0llK+6PmSPNnnUcMmFDik1VUfO8ycfjMzNimTJbDj6WWyFn26xi6QeoLgZPyT1nTQ2jO8sthqHG5KgHmVg92F4YqkEl1XZwxtUcADbkHZ6ZOdez/9k=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/0792db2a2b5b941072a2062d34d3a859ae061c6e-1280x720.jpg?rect=352,0,576,720&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">1:10:12</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#184464"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">How to Fetch API Data with React</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.7</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/the-complete-nodejs-mysql-login-system-3154/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="The Complete Nodejs MySQL Login System cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAALABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAYHA//EACEQAAEEAgICAwAAAAAAAAAAAAIAAQMEERIGMQUHEyJx/8QAFwEAAwEAAAAAAAAAAAAAAAAAAgUGB//EAB8RAAICAQQDAAAAAAAAAAAAAAECABEDBAUGIRIxwf/aAAwDAQACEQMRAD8Ar9qe3C2tej8v2wz74yyR+Q0qs3I5DsCzG4tlnfpUIDLTt1FPYlmaPl87RyELaD0kvF3XJrAqCj4n5D3kFMFt32Jh5rx9Ab5sBDjCEn3LMxTk5SE7/qFpKoQKuSJcE+p//9k=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/3e433ba26f9254427ee4bbb4bbdd16f03d2b69ca-1280x720.jpg?rect=352,0,576,720&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">3:22:28</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#125a9b"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">The Complete Nodejs MySQL Login System</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.7</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/build-a-single-page-application-with-react-3109/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Build a Single Page Application with React cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAALABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAUGB//EACQQAAEEAgEEAgMAAAAAAAAAAAECAwQFABESBgcUMRNRIUFh/8QAFwEAAwEAAAAAAAAAAAAAAAAAAAIDBf/EABoRAAICAwAAAAAAAAAAAAAAAAECAAMRElH/2gAMAwEAAhEDEQA/AF9BBYNc351e0lQOubratq+j+MrO2tJDlXF0qZXoDLTIU0CnQV/RvMpFxY8AjzHuA1ocvWsedM3VkkTkiY7p1vivZ3sfWbN9JdGXsmrakGPe6ldDh9U/HEYS00Y7auKfWzvDJnqSfKlWCFSHlOKS0lAJ/QHoYY9NeiBeQY5OZ//Z&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/5254670c3797fdd4c336cca5de1f77aa82b91a43-1280x720.jpg?rect=352,0,576,720&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">2:02:17</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#1c3c7c"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Build a Single Page Application with React</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.5</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/javascript-fundamentals-3092/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="JavaScript Fundamentals cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAMABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAQDBQb/xAAhEAABBAEEAwEAAAAAAAAAAAACAQMEEQAFEiExBiJBYf/EABcBAAMBAAAAAAAAAAAAAAAAAAQFBgf/xAAaEQADAQEBAQAAAAAAAAAAAAABAgMAEQQh/9oADAMBAAIRAxEAPwDVg3Hh6Y7Kdv1Fekvn5lL4/LlytYZZnKZtus3tQKQF/ceiOkYq0S2C9pjfEZdzKbSqrzL5VRJMpXpOrfRGrWBDaGXHBt8hFeMMTdcMzVSJbwwPmaqrAfTv/9k=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/1453c9c11d73b0bd06f44eae6d304b4136d52f00-750x442.jpg?rect=198,0,354,442&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">1:43:48</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#e07a04"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">JavaScript Fundamentals</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.7</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/build-a-shopping-cart-with-react-redux-3083/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Build a Shopping Cart with React &amp; Redux cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAALABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAUGAv/EAB8QAAICAwADAQEAAAAAAAAAAAECAwQABRESEyEGgf/EABYBAQEBAAAAAAAAAAAAAAAAAAMFBv/EABoRAAMBAAMAAAAAAAAAAAAAAAABEQIDUZH/2gAMAwEAAhEDEQA/ACPQ1pNekzNEgK9JZjiOzpdZJZgjazXCu4DFXPQMxNsLZqen3v6uc8e/Ml9ixDEg/c0C4Y7X6ydrVUQy/TabV09tJFStqYeAjh8uf3DJZ2JYkkk4YyoSy+z/2Q==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/8bb78f8206736610c6948619783e259fe34f00d1-1280x720.jpg?rect=352,0,576,720&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">2:53:52</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#133d74"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Build a Shopping Cart with React &amp; Redux</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">3.7</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/build-your-first-react-app-3080/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Build Your First React App cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAMABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAUGBP/EACMQAAICAQMDBQAAAAAAAAAAAAECAAMEBRESEyFxIzJBUYL/xAAVAQEBAAAAAAAAAAAAAAAAAAAFA//EACARAAEDAwUBAAAAAAAAAAAAAAEAAgMEBRESITFB8HH/2gAMAwEAAhEDEQA/ALTXasKzWmOeqMFpBUN5i6+3Q68WzoVrz4nYbfMrs7Ex72DXUo7AbAsN4tvSqpfTopX8CJUdUGsDNOffEbdbRJLUOmEmAevFIcRueJS32gMJps957AeIRRvCgRuv/9k=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/b8de443e874370608a76cc42a56cf047e1a418ef-750x442.jpg?rect=198,0,354,442&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">55:06</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#09607a"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Build Your First React App</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.5</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/build-a-shopping-cart-in-javascript-3069/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Build a Shopping Cart in JavaScript cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAMABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYCAwQF/8QAIhAAAQQCAQQDAAAAAAAAAAAAAQIDBAUAERIGISIxE1Fx/8QAFgEBAQEAAAAAAAAAAAAAAAAABQQG/8QAHhEAAgICAgMAAAAAAAAAAAAAAQMAAgQREiExMlH/2gAMAwEAAhEDEQA/AI1fTXT1vRKtLtTvL5ijbR9n8xQgdGR7S9s2q97jGjr0gKUAdYvRrWdFjJjsSXEsg8uG+2/vK25kht9bqHlpW4fIg+8Rw8DMVmNc1vKlvUd9QO7khFF1rojyfs6M2rjRpLjKni4pB0VDDMKvM8lE7Pvvhmg2RItif//Z&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/2c7c15c2965f79f742b6099319eb1f4aaf0167be-750x442.jpg?rect=198,0,354,442&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">2:36:19</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#054080"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Build a Shopping Cart in JavaScript</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.0</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/learn-angular-5-3000/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Learn Angular 5 cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACqklEQVQokQGfAmD9AMWAYb0pH8ABAscCBskMEMssLtFPU9ZibNhic9YyUNIOM9MqTNhtetuTktydmt2XlddfX9AYHs8CGtEFMgDLim7BLiTDAwPLBgnPHybTS1DVW2DXXGXXTVrUIjHRCRnUN0bck5XfrajeoZ3dk5HXWlrRFhrQAQ3SAhoAz5R3wzQpxAcHzBMX0zU9119l2Ghs2F9l1kJI0xcb0AoM1EVF3JeU2oeE1mFe1UpL0SYo0AgK0QEF0gMJANCae8I5LcIMC8wjJdROUddkZ9dhZNdZXNQ7PNATFM4REdRUUd2jnduWkdh8eNZhYNArLM4ICc8GCNAPEgDPnXzBPjG+CgnIHR3QSkjTT0/SOjzSODnRMzPNISDNKSfTXlvanJbal5LalpDcpZ/WcGzNHx/LCwzLFxkAzZ97vkM0ugoIwQ8Pyi0szSwryxgZzSEgzTMyzDk3zEA9zUxJzlVRzEE+zlBM2ZyW2p2WzTk2xggIxgoKAMyheLtJNrUMCbsICMMcGscgHscYFsghH8ktKsk3NMg2M8k+O8tIRMYsKcg2MtaQidqknMs/PMMFBcICAgDJonO4TjivDwu0BQS9FRPCIx/DHxzEIB7FJSPEKCbCIB7JRkPSg3vQeHDQdW7YpZzUjYXGLSu/AgK9AQEAxqZtuGVAsC8bsyATuikcvzUpwC0jwS0kwzQswCYfvRUQwjAqzXJq05WL1JuQ0o2Fx1FMvhMSugEBuAEBAMWwa8CXXb5/T8F2TcR4Ucd7VsdxUMduUMhsUcVYQMJKMsJJM8VaRclzXcp4YsVfTb88LbsoGboiFbghFQDHuXTKu4DPvYjSwY7UxJLVxZTUwpPUv5HTuozRsYPRqnzQpHbNnXDLmGrKkWLIhlrGfVLEdUnBbkS/akN/yS1e+6WNcAAAAABJRU5ErkJggg==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/4b842f3e5e7609192524949c5c6cb4ae9cad2f43-600x330.png?rect=168,0,264,330&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">4:28:43</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#bc0404"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Learn Angular 5</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">3.8</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/building-a-node-js-application-on-ios-2999/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Building a Node.js Application on iOS cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACKUlEQVQokSWSPW/TUBiFrXOJgDYSFIHYEAMDYxdQKhAVqFWpm9hxnDixk9hxHH/b+aqbkEJDm0IbUSIIIFQGWBgqMbKwAANiKBtC8H/QdaW7vfc55z33XAb9NjaaWA/RDtD0EHjwHNgWTBOGAbMB14LvwLcROmi56PqIAvRDPGgy6LUQhegECD16ybYpo+vQdGg12BZpxnJWA7ZJJU74jQC9kEHURDf2dG3qU4sZw0hYVtL3kuvtRNSisK7TUcOAa6LpoOOh68dwJ0DgUrJShVIh9fpMN7wy6qemWwtvHl/dG8xELdKIp1UVhg7HhG8hcBh0Q7R8aqvVIErIF0+79rX9zcLRqPd1Z/DtSfnT3vX9wRnDQL6IgkwlajXUddR1hr5T6MEyIVdIRiC8eM53F98OH37ffvf76Yc/B+Ofk/uvh3PlKmF5wuchySiVUVIgyQxa8c6NBkoKWcuSdPa8ay8dDnd/7H78Ozn692p6POUOdy5oGmE5khEgFpEvISeBExm680lgpUI4kbD8rKrOjwfB5/GL44Ppr2fRl+epl9tJ2yS8SNICxcQihAIyFPYQOLQGVaOp2OwpPjdnGfOjKHu4WXi/dXPy6GKvnVBVZASkcxTOSRTOFpj4Y7hwLOh1miQjYJklK+xZjr9UlC5rldmaSmQFnIBVHpxIbQsyPZISO4dxyYaBcgXZPJZWsbCIG7dI6g65fZfcW8Eyi+U1sDw1LMpQqie1/QdhWL/MrKSIpwAAAABJRU5ErkJggg==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/d80d8aa4b2cacf49d87d65ba59a190c0e3ed46c2-600x330.png?rect=168,0,264,330&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">4:41:32</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#04746c"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Building a Node.js Application on iOS</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.8</span></div></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/courses/building-a-node-js-application-on-android-2998/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Building a Node.js Application on Android cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACqklEQVQokQGfAmD9AIstFIovF4xCKZBgRI1hR4JKM3g9JHNAI2xHKF9JKVlJJGhQHnlaHH1bGntaGXtZF3pYFnhWF3RVGHBTGQCSMBeWSi6We1CVoGWVnmeSeFOGUTR7RSh0SyxqUTBeUS9bTylnUyJ2Vx17Wht8Whl6WRd5WBh5WRp5Wh0AmjMbnm1HmLBtm82CoMyHn6x3lG1LhEwvfE8wdVg3aVs6W1g5VlMxYFEnb1Ufelkce1oZe1kZfVwcf18gAKIzHKN4Tpq/d6PXkKjXl6W+hpt7V4tSNIFTNHtbO3NiQWZjRFVcQktTOVJPKmhTIndZHXxbHX9eIIFgIwCrMhytZ0alqXGiyIWmyYiqqXqicFKUVDiLWTuEYkR8a05wbVFfZ05OX0pHWUZTV0BnWDF3WiV/XyOCYSUAnCsZr0Mts21MqpFip5NmqHNWpFhBnVg+l2ZKj29Vh3RafHVbb3NcZXVoX3p5Xnd9X2plaV9Cd14tgWEnAGQeEZkrG7Y9Kq5OOZhNOYxDMpRLNqBdRKBsUpl0W5F3Xol/a4GLgn2UmXqYqHeXq3OQoGp7fGhkT3FeNAAuFQxsIxaoNieqOyyIMiN3MiCCQzCeXUepbVWkemWdjH6XnJyQp7KMqbqKqb2MrMCJqr56matrgIhkbGQAHhcLPB0TgDImqEE0mTwuiTkpkEk4qGhXs4N1r5yWqrK3o7rInLnLmrfKnLnLmrjKj6/Dh6e8gKCzc5CgAB8YCyQaD0smHJE9M7VLQLNRRrRnXbyPiL2xsrjEzbLI163G16zG16/J2a3I2KC9z5Szx5Szx46vw4CiuAAeFQogGw8rIBdqMiu3TkbOaGDKkY/IvsPE0t690+K2zt6zzN280uG/1eS0zd2ivtGeu8+fvNCTssaFp7xdRyH4jo1sSwAAAABJRU5ErkJggg==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/40e306a813f16de9e9fb859c7a0173391bb54f49-600x330.png?rect=168,0,264,330&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"><div class="rounded-2xl text-sm text-white inline-flex items-center bg-gray-700 bg-opacity-50 drop-shadow transition-all ease-out z-50 m-2 pl-0.5 pr-2 py-px"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle-play" class="svg-inline--fa fa-circle-play rounded-full border border-transparent" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z"></path></svg><span class="VideoCard_textShadow__E79AJ pl-px font-medium text-2xs z-40">4:56:15</span></div></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#76550a"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Building a Node.js Application on Android</h3><div class="pr-3 ml-auto text-xs font-medium text-white self-end flex items-center"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star text-yellow-500" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"></path></svg><span class="pl-0.5 text-2xs">4.5</span></div></div></div></div></div></a></li></ul></div><div class="splide__arrows"><button class="splide__arrow splide__arrow--prev Carousel_splideArrow__oJOEm Carousel_splideArrowPrev__FGBFc"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" width="40" height="40" focusable="false"><path d="m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z"></path></svg></button><button class="splide__arrow splide__arrow--next Carousel_splideArrow__oJOEm Carousel_splideArrowNext__uHmgk"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" width="40" height="40" focusable="false"><path d="m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z"></path></svg></button></div></div></div></section><section><header class="flex flex-row items-baseline mb-2"><h2 class="font-bold text-base mb-0">JavaScript Learning Paths</h2><a href="/premium/library/paths/javascript/" class="text-primary-700 text-sm font-medium ml-auto">See all</a></header><div><div class="splide Carousel_splide__p2P5n"><div class="splide__track -mx-8"><ul class="splide__list"><li class="splide__slide"><a href="/premium/paths/full-stack-javascript-developer/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Full Stack JavaScript Developer cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAAsTAAALEwEAmpwYAAAC50lEQVQokXWSW08bVxSF599BHM+ZOSMD5laUUIlSQ4xnIMYxdxzfDcYyMMbBOMXcUwJVkpZIadoKJWqC3YarzV+p+FQZCG95WNra++HTWltL6W86ujLbK1gdFXxtZbzu8vUc/K7CYOfN3eyoMNBaps91hMf4xCPjA6bxO8PGK0blDtPyOVFpk9TTKFZnhdDACYnAGdGhUyb7j+/2mZFzUsFzEsNnTPYdY7Z+wmscYhnvbmHbTMsiUbnIjJ4io4dR6g7C5inZ6SrzoSrpsQvSY+fXey5aYyl+iR2tkhr+QqDjkCF5QFC+ZEKu81Q+I6FnSGtR5sU4OeFHGXCXmfaekA1VsaO1Oy1GauRiNQqpGsuxM+b8fzPZ+RujxteIiyS1FGkxhS2fUHRZlAwPSv1/9ag3gEuWEpfXIDtSJR+7oJg8ZSVSxg78Sbr3F2a61kg1LZDSIsw6g2SdPtY7Bzjw+njzsBtlqOsfkk/Or13VQfl4DTt8gR06ZSX+hbXkEVupj2zH37M59YpVq4TdniDtfEzmXi95Zzc7P/p4G5vktdl743DCc0zEOiVinRAf+pek9ZlZ85Cs9Y6c9Zqif4+14S3WrQKlnlmeNQVYcPRgN7Sz7GjB/sFiLprFNgMo9Sp4W47wuT9juT/gd//BiPtXpty7hJtLJJrzzDVnWGiOkXeNs2IMUhQ9FBxtFBo0Co1Okg8eEBwJkvB4UOq96jM+4pV/MSjfEpD7jOkbhPRlYnqWWS1OVkyQE49ZEf2URDebahvrDp1So4PnjQ1kWlXC/c1kHxoo9V6Zxnv8xhtGjRdMyVUiMkdKn73u1aI2wrJm8pPoZUN08UK0sKtKdp2Cnfv32XTcY1V3UGxxsuFyogwZB1cBY59xuUlIFojXXekJstokS5qfFfGIkvieLdHOz8LFnqqzrwr2VZU9VeXlrfaEyr4QKEG5+9+43Lh6KpdvYXHmtYlbWD9roptt0cauarCnanewb+l/0XxhfMHoSXEAAAAASUVORK5CYII=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/d6f315a4e461293667850794413bd5c95ee8488c-704x405.png?rect=470,137,214,268&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#842c4c"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Full Stack JavaScript Developer</h3></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/paths/web-development-basics/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Web Development Basics cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAAsTAAALEwEAmpwYAAADEElEQVQokW2S209bBRzHz4BC7z3tKXjJiA/T+OCID/iwdHsguokmOrVjbIaHEbOH6Vyim2YkQ2QqRVouLae055Se0/V+pdAOxloIcZWVJfuTDJ8YYRpjfPi+/B4++fySj7DdefHwsfkSTfEKTdfnNGxX2Ooa4eGJUeodY9Q6x1nvuk6160vWDLeodN+m1H2XYs89CsZp8qYZsiY/GfMiacsyQsMywpPTNzl47x4Hwz/SGvyObXGc2okxNjqusd5xnbXOG1S6blE2/A2bpGC8T97kI2v2k7EskbaGSVmjCA3HKPue73l+eY7nVxd4Ouyj+fpttnq/ZuvVO2ydnGCzf5J6/zS1/l+ovuKj6PCRtcySsvrRbfNothCaPUrCriE0XWPsn53g2Wd+nnkXOfAGaV0I8NtQgNaHYVoXVVpenSfeJHsfJdn2xCmdDJGwB1DtflYc80RcQRR3FFXSEBq9X/D7uSkOPlmg/WmI9uUoTy8ptD5W2DsfYWdIYfd9nZ3hFI+HUtTe1ki/vIwiziM7F5BdIRKvRakMaKRO6QjbfTdoDc3Q9sq0RxXaV+Psj2jsXVCovxGgLPkouf0Ue5couGXSrjAxMUTYGSTklJHdKpmBHJsfbJB/p4zwUPyK5ltT7J6ZY9ezyM7ZZRpnZDYHQlT65siZZskYA6RNQVLmFXRbFEWMsCKpyFIcuTdNdPARqrdN5NweQrXnJuvWb6k67rImTlJxTlN2zlAUfyVnDZCx/JWDTMqqkLTF0RwJIs44IUkjKCUI9WVQPTUS402U8zWEiuEbyoY7FA0TFLp/IN9zn5zRR9YUIGMOkrKskLTGeGDTSdjTaI48EVeWoJRkwZ1k6aUUKU+SzWs62XdVhP9GmjPP/csqStIaJ2F7gG7PojlKxMU1VNcaYanIkjvDojuJckonPbiK9qaOUDBOHeaNP5E7ivTYKn1kpf5jpdvzxB0VVsV1VsUaMWcd1bXBilRBlgpHi7hLKFIVIW/6+Y+cafYwa57/3xd1e+EFbINVsU7sxVad9SNwzFU7nvP49idYQCvNmDDrewAAAABJRU5ErkJggg==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/699da1a83858c0412585a95a7371bf40ca1c48eb-704x405.png?rect=472,140,212,265&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#a40480"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Web Development Basics</h3></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/paths/vue-front-end-development/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Vue Front End Development cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAAsTAAALEwEAmpwYAAADKElEQVQokXXSa0+aBwCG4fenYbe1icuarovNMhuTqvHQKlpt3abWqXVWRSsKWlHaKopnQOWkiIAgKKcih4KiomVOutjUrNnJLN5ZZMs+LNkfeD489yWIpqsvROoqRONicsbFXJ2p5TNdPXn6FgpMTyix9CBek1G3rqDJ/ZInW2p6A3M8Cy3yMmpmKr6GLunCfODFdhREEKnFiBTl5PSV8LGsjFxVDTcXmsg3tlG00sU9q5RaxyANLiWPN1V0+6aRv9KiDBuYeG1hfseBYd+D9TCAMx1GEE2IyZGX8lFnEdckJVwfvs+tqUYKNK0Ua9upWOymzjJAi3sUiW8aWVDLSNjAeGyFuR07+j03q4cBNtIRfD/GEXJUlVzpL+VqRzGfdpbxuVTMl0N1FDxvoFDRQNnIdzzU9NLuVCH1z6EILTEWXWY2YWdpz40l5cfxJoT7OEows4twZbyKT2Tl5ErKuNFTQV5vNbcHv6ZwuIFieT3l8kfUjnbQvDCIZHUMxZaOydgq2sQ6xqSHtVQAS8qHKbXFxg8RhGvqGnIHK7khreSWrIb8gTruKBoofd7MvZEWqhStPBhpp1H1lA7dMEq3jrmYDW3YxlLYgeW1B03UzmjUjPlgC+H6/Ld8MVXPV1NN3Jl7TJmmg6qFHuoMMprMQ7QtK+laGaXfNonSo2M2YsWw60YfdbIUsGEKOlB7jQx4Neh33Qh5+mbyjd9TtCyhwtrHA/szGl1K2jzjdPtmkAd12aLq2CqanXWM+5usHQax7wewRj1Ygi4mXEvIHNOY4m6E26Z2Cle6uPsfHtmi/8Pj8ivfcRzvQYSNmB+9z8bMppnNvW2EohUJ5au93LcPUO8codUzRpd3iv6ghuFtPapLHol/eKT8uNJh/CcJoj8dEM+kiKf3iKf3SZ4c8fbsFOGuVXpRbZPzjXM4a63TO0lfYB7F9t88ZhI2FpMb2ZLO9HbWWuTtPsl3ad68z5A5O+Xsl5/57Y/fOT8/R6iyyf98uD508WjjBe1bEzz1zzIYWuBFxMRk3Ip215mtZz96xeZxjFAmSeL0iMP3J2Q+vOPs1w//jl0O/gVrhMw6eP5p6gAAAABJRU5ErkJggg==&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/8e1275fc547585c126dcb0cb7667205911b29f3c-704x405.png?rect=481,140,210,263&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#3d9f6c"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Vue Front End Development</h3></div></div></div></div></a></li><li class="splide__slide"><a href="/premium/paths/advanced-javascript/" class="block"><div class="group relative rounded-md shadow-outline-sm hover:shadow-outline hover:cursor-pointer transition-all overflow-hidden "><div class="bg-gray-200 aspect-w-4 aspect-h-5"><img alt="Advanced JavaScript cover" loading="lazy" decoding="async" data-nimg="fill" class="w-full h-full object-center object-cover lg:w-full lg:h-full group-hover:brightness-105 z-0" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; %3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAAsTAAALEwEAmpwYAAACuklEQVQokS2T7W9TZRiH+19qSBSTJer4YEyEMCP4gfgCZolCeDFDFJjtusEWQNz7ugHVdaPr2g5Yp27JJLpsa7tzzk6f8/Sc575uc6gf7q/Xff9y/e5M7M6JH57lsHWag9YZDlsDHLbOc9i6wEHzaw6agwThDRJ3F9FRhAmExwizCEsIvyE8R6gBL8kE4QD1Fx9SWDrJ3PxJpmfeY3K6j9n5U8wtfMRC4TQvNy8SmjuIjiM8QnQa0QVEnyG6AloBfQHaIOMFZymt9nF//C3yo2+TzZ3g5+w75Ef7yOXfJ5vrZ3Hpc/b2b5G4BzimSGSeRJ6QyDJOyjip46SBsE3muPMpa+sfMD5xgpF8Ou+SH0sX9JMb6efu8Cl+nfyMv3aGsN1fiN0sJirQMc/omBIds4YxNWy0SZLskIm659h9fYZq/WPW1j+hsj5ApXqe2sYXVKpfUa58Q+OPGzTbY8RuBtst4AdLeH4Rz1/B8yocexUif50k2iKTyAVs/CWRvYSx32LsVYwdIrK3iWyWqHuPbvIIJzM4FonsU3y/yJFXegPzvTphe5W4XUTCGhnRi4gOgl4B/R70Fugw6CjoBOhjRGcQXcRRJLLL+EEKKxMcbxCGDaKjEsnBFOKvkBEGcXyH4zqOH3DcwTGC43+jTCMUEC0irGDtc3y/jO/XCMMtjNkmapfo7j3EtX9PL7yM6DVEbyKaViOH6H1E03pMISwg9OohVLDdKkFQIwg26ZgdjPkbc1TD7heIvTeRryMMIXq7B+Meog97MJ1H9ClCCdE1hA3i+BXGbGGiHaz9B2v3sZ1/6YavSaJmGvmmCD8hZBEdQ/QBopOIziH6BNFlhDJoHWggso1zuzi3h3MtnAtwLkJcjIikwB8T0WERzSM6gaQS6EnovdUqolXgFeifoLuge0ATCAALOFBQVf4DCipVlI8gHY0AAAAASUVORK5CYII=&#x27;/%3E%3C/svg%3E&quot;)" src="https://cdn.sanity.io/images/708bnrs8/production/cc0ad11bff70c1f3b4c29381edf0a1778e6a7efb-704x405.png?rect=475,137,212,265&amp;w=200&amp;h=250&amp;fit=fill&amp;auto=format"/><div class="absolute left-0 top-0 w-full h-full m-0 p-0"></div></div><div class="absolute bottom-0 mt-4 flex flex-col w-full"><div class="relative w-full h-8"></div><div class="relative pb-1 sm:pb-2 pt-1 w-full overflow-hidden" style="background-color:#685b1b"><div class="flex"><h3 class="pl-3 pr-2 mb-0 text-sm leading-4 font-medium text-white w-auto max-h-16 overflow-hidden group-hover:max-h-32">Advanced JavaScript</h3></div></div></div></div></a></li></ul></div><div class="splide__arrows"><button class="splide__arrow splide__arrow--prev Carousel_splideArrow__oJOEm Carousel_splideArrowPrev__FGBFc"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" width="40" height="40" focusable="false"><path d="m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z"></path></svg></button><button class="splide__arrow splide__arrow--next Carousel_splideArrow__oJOEm Carousel_splideArrowNext__uHmgk"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" width="40" height="40" focusable="false"><path d="m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z"></path></svg></button></div></div></div></section></article></main></div></div></div><footer class="Footer_container__Dj1D9 py-5 w-full bg-gray-800 text-gray-300"><nav aria-label="Footer navigation" class="container block w-full h-full mx-auto my-0 lg:flex lg:justify-between lg:flex-row"><div class="Footer_siteLinks__5LYuU md:flex md:flex-grow md:justify-between"><section class="flex-auto flex-shrink-0 p-gs-1"><h2 class="text-xl text-gray-200 font-bold mb-4">Stuff we do</h2><ul class="mb-0 ml-4 list-disc leading-base"><li><a href="/premium/library/" class="text-sm font-light hover:underline">Premium</a></li><li><a href="/newsletters/" class="text-sm font-light hover:underline">Newsletters</a></li><li><a href="/community/" class="text-sm font-light hover:underline">Forums</a></li></ul></section><section class="flex-auto flex-shrink-0 p-gs-1"><h2 class="text-xl text-gray-200 font-bold mb-4">About</h2><ul class="mb-0 ml-4 list-disc leading-base"><li><a href="/about-us/" class="text-sm font-light hover:underline">Our Story</a></li><li><a href="/legals/" class="text-sm font-light hover:underline">Terms of use</a></li><li><a href="/privacy-policy/" class="text-sm font-light hover:underline">Privacy Policy</a></li><li><a href="/premium-for-teams/" class="text-sm font-light hover:underline">Corporate Memberships</a></li></ul></section><section class="flex-auto flex-shrink-0 p-gs-1"><h2 class="text-xl text-gray-200 font-bold mb-4">Contact</h2><ul class="mb-0 ml-4 list-disc leading-base"><li><a href="/contact-us/" class="text-sm font-light hover:underline">Contact us</a></li><li><a href="https://sitepointhq.notion.site/Sitepoint-FAQs-619b2b88af4f4a5db27beade7ca2cce6" class="text-sm font-light hover:underline">FAQ</a></li><li><a href="https://sitepoint.typeform.com/to/HtAXVN" class="text-sm font-light hover:underline">Publish your book with us</a></li><li><a href="/write-for-us/" class="text-sm font-light hover:underline">Write an article for us</a></li><li><a href="/partnerships/" class="text-sm font-light hover:underline">Advertise</a></li></ul></section></div><div class="Footer_separator__y9zma hidden lg:block lg:mx-5"></div><section class="Footer_socialLinks__22g9N w-full p-gs-1"><h2 class="text-xl text-gray-200 font-bold inline-block mr-8">Connect</h2><ul class="inline-block mb-4 list-none"><li class="inline-block mr-4"><a href="https://www.facebook.com/sitepoint" rel="noopener noreferrer" target="_blank" aria-label="See SitePoint Facebook account" class="text-base"><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="square-facebook" class="svg-inline--fa fa-square-facebook fa-lg " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64h98.2V334.2H109.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H255V480H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"></path></svg></a></li><li class="inline-block mr-4"><a href="https://twitter.com/sitepointdotcom" rel="noopener noreferrer" target="_blank" aria-label="See SitePoint Twitter account" class="text-base"><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="square-x-twitter" class="svg-inline--fa fa-square-x-twitter fa-lg " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm297.1 84L257.3 234.6 379.4 396H283.8L209 298.1 123.3 396H75.8l111-126.9L69.7 116h98l67.7 89.5L313.6 116h47.5zM323.3 367.6L153.4 142.9H125.1L296.9 367.6h26.3z"></path></svg></a></li><li class="inline-block mr-4"><a href="/sitepoint.rss" rel="noopener noreferrer" target="_blank" aria-label="See Sitepoint RSS feed"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="square-rss" class="svg-inline--fa fa-square-rss fa-lg " role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 136c0-13.3 10.7-24 24-24c137 0 248 111 248 248c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24c83.9 0 152 68.1 152 152c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104c-13.3 0-24-10.7-24-24zm0 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"></path></svg></a></li></ul><div><p class="mb-4 text-xs md:text-sm">© 2000 – <!-- -->2024<!-- --> SitePoint Pty. Ltd.</p><p class="text-xs">This site is protected by reCAPTCHA and the Google<!-- --> <a href="https://policies.google.com/privacy" class="font-bold hover:underline">Privacy Policy</a> <!-- -->and<!-- --> <a href="https://policies.google.com/terms" class="font-bold hover:underline">Terms of Service</a> <!-- -->apply.</p></div></section></nav></footer></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"category":"","topic":"javascript","categoryLabel":"All","topicLabel":"JavaScript","page":1,"categories":[{"slug":"","name":"All"},{"slug":"books","name":"Text"},{"slug":"courses","name":"Video"},{"slug":"assessments","name":"Assessment"},{"slug":"paths","name":"Learning Path"},{"slug":"free","name":"Free"},{"slug":"tech-talks","name":"Tech Talk"}],"topics":[{"name":"JavaScript","slug":"javascript","rank":11,"description":"JavaScript makes your pages dance, move and interact. For a front-end developer, it’s a fundamental skill.","content_count":184},{"name":"PHP","slug":"php","rank":9,"description":"PHP is a popular open-source back-end language that’s grown up with the web. It’s huge, it’s free, and it has a vibrant community behind it.","content_count":33},{"name":"Ruby","slug":"ruby","rank":8,"description":"Ruby is an elegant programming language that shot to hipster stardom through Ruby-on-Rails. It’s fun, fast-developing and popular in Silicon Valley.","content_count":14},{"name":"Mobile","slug":"mobile","rank":6,"description":"With more than 5.4 billion phones out there, everyone’s looking for a new app idea. It’s a booming industry, and you’re invited!","content_count":26},{"name":"Workflow","slug":"workflow","rank":5,"description":"Get things done, faster. Learn Agile/Scrum, Project Management, Freelancing and Outsourcing.","content_count":109},{"name":"WordPress","slug":"wordpress","rank":4,"description":"One in five sites on the web today are powered by WordPress. It’s a huge ecosystem with themes, plugins, and a helpful and dedicated community.","content_count":17},{"name":"Back End","slug":"back-end","rank":0,"description":"Learn the best programming languages and platforms for website and web app development","content_count":69},{"name":"HTML \u0026 CSS","slug":"htmlcss","rank":0,"description":"Learn HTML and CSS with step-by-step online courses, books and short video lessons","content_count":118},{"name":"Design \u0026 UX","slug":"designux","rank":0,"description":"All SitePoint web design and UX books plus short videos and online courses on how to design a better web","content_count":74},{"name":"Python","slug":"python","rank":0,"description":"Python","content_count":44},{"name":"Web","slug":"web","rank":0,"description":"Overarching web topics ","content_count":47},{"name":"Blockchain","slug":"blockchain","rank":0,"description":"","content_count":7},{"name":"Cloud \u0026 DevOps","slug":"devops","rank":0,"description":"","content_count":26}],"title":"JavaScript Books and Courses","description":"Learn JavaScript with our collection of books and courses.","data":{"recentBooks":[{"_id":1504,"title":"Unleashing the Power of Astro","url":"/books/unleashing-the-power-of-astro/","rating":null,"imageSrc":{"_type":"image","asset":{"_ref":"image-9b180f1df344a8047cf3ee91c33acd20d5481d6d-1600x2000-jpg","_type":"reference"}},"color":"#0c043c","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAwADAQAAAAAAAAAAAAAAAAIHAwQFBv/EACUQAAEEAAYCAgMAAAAAAAAAAAEAAgMEBQYREiExB0EyURMiYf/EABgBAAIDAAAAAAAAAAAAAAAAAAABAgME/8QAGBEBAQEBAQAAAAAAAAAAAAAAAAEREiH/2gAMAwEAAhEDEQA/AIHQyhPboxWWl+17N/AC5d7DqtKw+CxPKyVnYLEuGNuWbMNSCabWRwaGtJOmp+lQPL3jqLKdXDLdWW3N+dm2d0zOnADkH65Wr2XKEskDQ8hhJb6JQnMR9IUsoejydefhWP1bUU7a5adrpnt3BoPZ0VH8lZ4kxvL5qx4428D+hidDodn8PrpSaP4lMruJbptUs54OiFkf8ihGE//Z","alt":"Unleashing the Power of Astro cover"},{"_id":1501,"title":"Unleashing the Power of TypeScript","url":"/books/unleashing-the-power-of-typescript/","rating":5,"imageSrc":{"_type":"image","asset":{"_type":"reference","_ref":"image-5fd75bb7ed78541494a1ec40662e913cd67c7838-1600x2000-png"}},"color":"#38295a","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAZCAYAAAAxFw7TAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAEKUlEQVQ4jYVV6XbaZhTknRobkNglJCQBEosECDCExcYstuMkjbGNjZeTkyax26Qv0DednrnUOO7pSX9c7d98c2fuvYq82onhZ7GzG38R//d95Gcgu1GG8jJ244jGFCSSGWSyukQqnYOipmRN5JdXUfwYT4AEi0YVWRyNqc8RVRBXEsjm8jALjoSeLyCZysqGkWeAzcK4koSiJqGqKSQSaWHCUBPpTagpKEoSaiK1fR5XkrJWUo7FE8hpeVh2EY5TRrHoolh6jlLZQ9mtouxW4BTLwoYbcR3Z7/xL10gimYYfNHEwmaL/eohWq42w3ZVoNEM5j8cH8r7d2RNggjI0zUA6nUMmq0nKoiEp7/VeY3l+icXRCYajfRxO55jNj+R8dPwGl6trXK9v5XowHEvw3WQyxWh8gMPDGVphR4yJMPe638Dp6Tsszy9we3uP3z5/wZevD3h8/AMPD79LfPv2pzy/ul5jdXWN+/uP+PrwKN99+vQZ09lC3I7QDNJnaicnp7i5ucPd/UdcXa1xcbnC2fIc7389w/nFJZbLC9l4NlsI2/XNHVZXaxwfvxGGTFsA6aqum6jVA9GJ4Lx23eomvBoq1To8ryYa2jSv5CFohPI8bxRESxolgEyb5ZDJaMI2b1iygaab23uGYdowTAt63kROM6QWk6nstmykDnmIxVVhSQ0KVhFepSblYwqALcXLkqn7TXH+yel0ZuMuzSCGAEajKuLxBFQ1DV0rImyMsT9aoNvtw6vUYTslFCwH1aqPyWQm2lEWbiCpZjTJbguoKBlk0zYyaRO2GWDSW+PD4hFH0wv0e2NUa4GAshLmi+MtoB+0pH4LVlE6ZguYUHVY+QB5rYy8VkLHP8b7w+84W3zHZPQOQRCKCQQe70/Q7w/gelVJfTjcF9BsVn8GjMWSyGYs5HUHuVwBtlVBL5xjPl5h2D9Gvd6UtqSb7CQCUVen6EpDdLo9MYwOS6fwQJf0nAPb8GEVPNGr3e4jDHuoVOqw7JKUUXevL2c6zGDanW4PZsEWhgLIhpYBkbVhGT4KpicuN1vtraPUqVrz5Z4Dg0YwaFqz1YZhWM/Thgcy1DQThlGEYdiyiNoEjRZKJU/qzrZLAs70aALLhd/V6oHUK/XbApIhH/IDLtqMrApcYefIVNZ0Q1LjqHuaiyzysluRZy8AecMuIRBZsS8bjVBajcVNVqw7aklHmRFJ8Np2NjOS9y/+KWKMboqbFHo0mmA0mKMZ9OF5vmhFGciK0zoWU//pLEcKnOtfAD65zaFJU3q9EeaTJcb9U1QrDfh+C532ALVaUxwmI2pJKWjQ1pQff06iZ0zdpF+qoBMO0W4N4Tgu3HKAQfstRt0P8Eoh1ERGCGy6ZJMucf7zr0dN6SL/MRxdTMstNzHt3WN58BcGjRUyKVtYEezJEAL+DZIwrlFmcDYcAAAAAElFTkSuQmCC","alt":"Unleashing the Power of TypeScript cover"},{"_id":1491,"title":"Clean Code in JavaScript","url":"/books/clean-code-in-javascript/","rating":5,"imageSrc":{"asset":{"_ref":"image-aaee9a42c5dff7423353497b1636e8e1e6afb71b-810x1000-jpg","_type":"reference"},"crop":{"right":0.34628270280444196,"top":0.5295262563523432,"left":0.053227931488801075,"bottom":0.09866967814793903,"_type":"sanity.imageCrop"},"hotspot":{"width":0.4671560323734236,"x":0.3534726143421795,"y":0.7178828345567476,"height":0.3668949745906268,"_type":"sanity.imageHotspot"},"_type":"image"},"color":"#a13406","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGwAAAQQDAAAAAAAAAAAAAAAAAAEEBQYCAwf/xAArEAAABQMBBAsAAAAAAAAAAAAAAQIDBAUGESESEyJBFTE0NTZScoGDocH/xAAXAQADAQAAAAAAAAAAAAAAAAABAwQC/8QAHREAAgICAwEAAAAAAAAAAAAAAQIAAwSRFDFiIf/aAAwDAQACEQMRAD8Ap1PtWPMgx3t7ISpxOdEkZBX7WiR4TsiQ/JQTZa8JHqIdqo0IyJKHKlkuRKxgJKqNCaSpDjlSPmaTVnIUbyPhQ6lHF9ruMJyIqH8Q3VuNYLVScHkAy6UtzyT/AKAByPB1Bxva7jM464sN8mFqcJ5ONlSNS9xpolty67VGYbZ7jaSZmtZ5D5fZyE7YPiBv0mG5mTYtLOOwJrFRL70Rh8JlUuGyp9HqJxd6TvCStpHVqAdBvPvn40/oBBj5NllasT3LcnGqrtZAOjP/2Q==","alt":"Clean Code in JavaScript cover"},{"_id":1487,"title":"Build Your Own Developer Portfolio in React","url":"/books/build-your-own-developer-portfolio-in-react/","rating":4.75,"imageSrc":{"asset":{"_ref":"image-114ad234c4569b4484d4c89fc6fdaca16baf9b62-1600x2000-jpg","_type":"reference"},"crop":{"bottom":0,"_type":"sanity.imageCrop","right":0,"top":0,"left":0},"hotspot":{"_type":"sanity.imageHotspot","width":1,"x":0.5,"y":0.5,"height":1},"_type":"image"},"color":"#352c66","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAEDBAUGB//EACIQAAICAgEEAwEAAAAAAAAAAAECAwQAEQUGISIxEhNxQf/EABkBAAIDAQAAAAAAAAAAAAAAAAIDAAEEBv/EABkRAAMBAQEAAAAAAAAAAAAAAAABAhEDIf/aAAwDAQACEQMRAD8AzIq23jWRY/FhsHfvEWK3Ft2i8V947U5uKOvHG8bEqNA9smcVFy3LGw9GIGONDISY9jQ/n7nRPra9ZTr0qjZZu4AH5hkazblaZvvVVkHYgLrWGOXV4FpVrLrN30h1yeOqNTvP8ayIVX608m37Bznx94h95juVSxglhyFiKe7NLXVkiZiVVjsgYZBwxiIf/9k=","alt":"Build Your Own Developer Portfolio in React cover"},{"_id":1480,"title":"Beginning ReactJS Foundations Building User Interfaces with ReactJS","url":"/books/beginning-reactjs-foundations-building-user-interfaces-with-reactjs-an-approachable-guide/","rating":5,"imageSrc":{"crop":{"top":0.03953642384105964,"left":0,"bottom":0.20478429861529202,"_type":"sanity.imageCrop","right":0},"hotspot":{"y":0.3056348853795213,"height":0.5321969230769233,"_type":"sanity.imageHotspot","width":0.9630769230769228,"x":0.5},"_type":"image","asset":{"_ref":"image-92a19538a8bd357e0d1436bd2e8e07a75ffb7622-717x900-jpg","_type":"reference"}},"color":"#648404","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAMEBQYIB//EACwQAAEDBAADBQkAAAAAAAAAAAIBAwUABAYREiFxBxQVFjEiMjNBQlFhcoH/xAAWAQEBAQAAAAAAAAAAAAAAAAACAAP/xAAcEQEBAQABBQAAAAAAAAAAAAABABECAxMUIVH/2gAMAwEAAhEDEQA/AOpSHaLYx+O+LR9s9IMcSBtv2URV9NqtJ4ZlkhMtEUXCPoDxK4br7uwEvsn4qIgICS8rJDZFaq8JEim2zoR6cqukE2kJYBZx0Y4xbh6ANUj1WaEO9cjmyk2W2bpd8QAW0T+0VErJyHyj3lT9koqp1dqOWWwHeiMJu0VFLaaeSnKZfDkPEeSWzfPkiupWKG/fHrTm7+GPWm8cQh5XP4W3rTO8caZQHcgsnCT6lcSisL0U+2WT1ldy/9k=","alt":"Beginning ReactJS Foundations Building User Interfaces with ReactJS cover"},{"_id":1468,"title":"Hands-On JavaScript High Performance","url":"/books/hands-on-javascript-high-performance/","rating":null,"imageSrc":{"hotspot":{"x":0.5,"y":0.2165,"height":0.379,"_type":"sanity.imageHotspot","width":1},"_type":"image","asset":{"_ref":"image-9d8ca4186f557f1384a7ffb8bb0dc38f76a0d5b2-810x1000-jpg","_type":"reference"},"crop":{"top":0,"left":0,"bottom":0,"_type":"sanity.imageCrop","right":0}},"color":"#603927","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAUCBAYH/8QAKxAAAQMDAwMACwAAAAAAAAAAAQIDBAAFEQYTIRIiMTM1NlNhcnOBkaHB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAwUE/8QAJREAAQMCBQQDAAAAAAAAAAAAAQACAwQFEiFBYZEUIjFSgdHw/9oADAMBAAIRAxEAPwDIWq1wHoEZx7lakZUA4kc/epLsNt7XCHCMnqAeT+qovQ7Exsh9UttbpwEkjigwrOJG0UXAp94MFP5rIyqY49rTwqZtVSRolFyFuTKUmFv7QGO/Gc0VqIembbLZDrJkFBOOSKKTqR6n98oRbZTqOUvguxJZdenRUEkYT1q8fGtDpJ2I7cW4AaQtrJVyeDxXPHPQpp9oD2gb+U1Oq6FrYXuxHIKtSXmSWZsYaBiyP2nN2tc+2z3WI09hpokrSgnxmioa09dH6af7RQQQmSNryfOwWiouEsMjo2nIbr//2Q==","alt":"Hands-On JavaScript High Performance cover"},{"_id":1467,"title":"A Frontend Web Developer's Guide to Testing","url":"/books/a-frontend-web-developer-s-guide-to-testing/","rating":5,"imageSrc":{"hotspot":{"width":1,"x":0.5,"y":0.30731818181818177,"height":0.4379090909090909,"_type":"sanity.imageHotspot"},"_type":"image","asset":{"_ref":"image-7c77abe4464fc9d04f68b396c327d5d4e3a0e6a9-810x1000-jpg","_type":"reference"},"crop":{"_type":"sanity.imageCrop","right":0,"top":0,"left":0,"bottom":0}},"color":"#3b2b0d","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAgIDAAAAAAAAAAAAAAAAAAQGBwEDBf/EACUQAAEDAwQCAgMAAAAAAAAAAAECAwUABAYREhMhMUEygRQ0cf/EABcBAAMBAAAAAAAAAAAAAAAAAAMEBQL/xAAfEQABBAICAwAAAAAAAAAAAAABAAIDERIUBEEhMVH/2gAMAwEAAhEDEQA/AI/ESs4i3bfZk+IODXTYKzJZbltiFL/P3MjwvaO64zMbIJAYFwkJSjd8utKZRjk1IRqnbd1NwyOlICtSPqjgS9WlnCE+TSs3CszNxjzDknzu3RJ3LS2SDRUKx7Ir6CjER6XLUcROoWOwaKoRuGItSpOOczXpIScnbtBZs3Erb3khe3yDWqKyRqMf5bW4Un2U+jUSH6/1SlICdwNquYWkUVaTmW49dK5ZCNacuD8lBPmiqwV6/lFb23fAg6jB2V//2Q==","alt":"A Frontend Web Developer's Guide to Testing cover"},{"_id":1466,"title":"Designing React Hooks the Right Way","url":"/books/designing-react-hooks-the-right-way/","rating":null,"imageSrc":{"asset":{"_ref":"image-acc986b72da688d522cdc8a5d92ae7ad73377260-810x1000-jpg","_type":"reference"},"crop":{"_type":"sanity.imageCrop","right":0,"top":0,"left":0,"bottom":0},"hotspot":{"x":0.5,"y":0.30486363636363645,"height":0.42809090909090924,"_type":"sanity.imageHotspot","width":1},"_type":"image"},"color":"#0e5483","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYCBAUD/8QAJBAAAgICAQMEAwAAAAAAAAAAAQIDBAARBRIhQQYTMTMVInH/xAAWAQEBAQAAAAAAAAAAAAAAAAAFAQT/xAAhEQABAgYCAwAAAAAAAAAAAAABAAMCBAUSMVERFRNBYf/aAAwDAQACEQMRAD8AQq1H36YllnBMoDN+w3vKXIxWePIKzxsm9KAwJ1mlS4TkHLQodMiksOrxlduEtWpAmgZSekbObbJn6jS9J+yFCjBNarLL1L37d8Ma6vpt+PrRwW1VpQOolfjvhijTgsF2UG+IvJFbjlZqcyIY3sLYb3ZD06A+Vzn+YhWu04sFbAbSjXjFhPqTIWPrw/sXNBL9Qzspok9VTSkNLZfq1rDE9/H8wyCoOaCppDPOSv/Z","alt":"Designing React Hooks the Right Way cover"},{"_id":1464,"title":"Real-World Next.js","url":"/books/real-world-next-js/","rating":null,"imageSrc":{"crop":{"left":0,"bottom":0,"_type":"sanity.imageCrop","right":0,"top":0},"hotspot":{"x":0.5,"y":0.3024539877300613,"height":0.41840490797546004,"_type":"sanity.imageHotspot","width":1},"_type":"image","asset":{"_type":"reference","_ref":"image-46ea506ab877a9c8ab0b327280c4ca395ce7291f-800x1000-jpg"}},"color":"#ad3717","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAUGAwf/xAAkEAACAQQCAgEFAAAAAAAAAAABAgMABAURBjESIRMUM0Fhcf/EABcBAQEBAQAAAAAAAAAAAAAAAAMCAQT/xAAaEQACAwEBAAAAAAAAAAAAAAAAAQIDE1Eh/9oADAMBAAIRAxEAPwCJgyebaFJEuEVXHo+NLrjN5GCcH6lHfvajdPTxvkNnagMrCNF6DjQqUMG5YleMqZvIqxO+u6vSXQ848OscQvrvI4OK4uB8khJBbVFJ+McjkwuHhsxYyzhdt5qno7opVekg3T6S2N5bf2diyzLLN579u34NTi5KdXsXEB3bl97Pe61f7IrCuVVob0prTmF/FaxRrGqhV1puz+6KnJOx/KKjGLNbl0//2Q==","alt":"Real-World Next.js cover"},{"_id":1463,"title":"TypeScript 4 Design Patterns and Best Practices ","url":"/books/typescript-4-design-patterns-and-best-practices/","rating":null,"imageSrc":{"asset":{"_ref":"image-576f7ef32b02e7f5354d4ec44498b63beebf7f0c-810x1000-jpg","_type":"reference"},"crop":{"top":0,"left":0,"bottom":0,"_type":"sanity.imageCrop","right":0},"hotspot":{"_type":"sanity.imageHotspot","width":1,"x":0.5,"y":0.3060909090909092,"height":0.41090909090909106},"_type":"image"},"color":"#7d272a","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAMEBQYHAv/EACcQAAIBAwQBAgcAAAAAAAAAAAECAwAEBQYREiETIkFEUVJTYXGR/8QAFwEBAQEBAAAAAAAAAAAAAAAAAgMAAf/EABwRAAMAAwADAAAAAAAAAAAAAAABAgMRMRJCYf/aAAwDAQACEQMRAD8Az/H4MTWy3SzRguN2HAHjSWQt7zHzJN6JEj6DFQR/Knsbpi7dOEeTtY+vukA11daVyXjlRcjayKFJ4+U9iiql8FTv2HenseuUxcV1KY1dydwI1oqd0XfwYvT8FrctA0ikk9jrv80VB5Vsye10rE+axC3MDR2qvGfSzDkAgpe51Bg94Y40QgtxYjlxVfnVC+Hpv7Vecangbvz6abHdaRAIlki5b/Q1FZo/t+qK7r6B6R//2Q==","alt":"TypeScript 4 Design Patterns and Best Practices cover"},{"_id":1462,"title":"Deno Web Development","url":"/books/deno-web-development/","rating":null,"imageSrc":{"hotspot":{"height":0.4280909090909091,"_type":"sanity.imageHotspot","width":1,"x":0.5,"y":0.31468181818181823},"_type":"image","asset":{"_ref":"image-e3a1b80f75cd69f4bc52d314396dbd7baa8ba468-810x1000-jpg","_type":"reference"},"crop":{"right":0,"top":0,"left":0,"bottom":0,"_type":"sanity.imageCrop"}},"color":"#843414","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGQAAAwEBAQAAAAAAAAAAAAAAAAMEBQIH/8QAJhAAAgIBBAAFBQAAAAAAAAAAAQIAAxEEBRIhEyJBUXExMjNhkf/EABYBAQEBAAAAAAAAAAAAAAAAAAMBAP/EABwRAAIBBQEAAAAAAAAAAAAAAAABEQIDEhMhIv/aAAwDAQACEQMRAD8A8wGw2HRrqFtoKlOQXl5v5Ik8ap1cIwK9jInL7yulqr5m3GMDB+ka26C+kmuxyuMdmbhfRZUTcgsYDk3Zx1CRUXBa8MrZB9IQWujqYMtNv1dqBjST7fuPNL01AGplce806vxLF6r7TGdKA2Mh5XKAMY+YRz+nxCTFFdxn/9k=","alt":"Deno Web Development cover"},{"_id":1461,"title":"Jumpstart Jamstack Development","url":"/books/jumpstart-jamstack-development/","rating":null,"imageSrc":{"_type":"image","asset":{"_ref":"image-6400300ba4438178763f87b77304fe3d96378b48-810x1000-jpg","_type":"reference"},"crop":{"bottom":0,"_type":"sanity.imageCrop","right":0,"top":0.08590909090909093,"left":0},"hotspot":{"y":0.306090909090909,"height":0.4403636363636362,"_type":"sanity.imageHotspot","width":1,"x":0.5}},"color":"#23595a","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGwAAAgEFAAAAAAAAAAAAAAAAAAYFAgMEBwj/xAAlEAABBAEDBAIDAAAAAAAAAAABAgMEBQAGERIHITFBEzNhcZH/xAAXAQEBAQEAAAAAAAAAAAAAAAAAAwEC/8QAGxEAAgMAAwAAAAAAAAAAAAAAAAEREiECMWH/2gAMAwEAAhEDEQA/AKImvdZPxW3jeFPNPLb4hkJK6r6zZdUg2auIOwJbA3zDa09bNVKJTMlKmQnsEr8fjIyTSzpIBccQsgdgpXjMhdDYk6I6a6olW+kosy0lJclLUoKUdh7wzSdJOfqa9uI7DdWpBJ5IWdj/ADDOaIXaJR6fWO0yIEef8cffkSAQVYvSajTvEqcs5CT53StWKrX1jLb3nKpwSfBPRiVHqGjxbvbAJ9dzhiyr1+sMWFPT/9k=","alt":"Jumpstart Jamstack Development cover"},{"_id":1457,"title":"Node.js: Novice to Ninja","url":"/books/node-js-novice-to-ninja/","rating":5,"imageSrc":{"hotspot":{"_type":"sanity.imageHotspot","width":1,"x":0.5,"y":0.7190828220858894,"height":0.4394417177914113},"_type":"image","asset":{"_ref":"image-153fce8cc1efa957775b725b92bae96ca6c8cf0f-1021x1278-jpg","_type":"reference"},"crop":{"left":0,"bottom":0.061196319018405054,"_type":"sanity.imageCrop","right":0,"top":0.4993619631901837}},"color":"#04728a","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYBBAUD/8QAIBAAAgICAgIDAAAAAAAAAAAAAQIDEQAEEiEFMSIyQf/EABcBAAMBAAAAAAAAAAAAAAAAAAADBgL/xAAbEQACAwEBAQAAAAAAAAAAAAAAAQISQQMRQv/aAAwDAQACEQMRAD8ATRoE9Ad5dXwO3Gpd9YstX2cY9XVCSIVKcmsAMLzu888Z+VGvyspXD1+Rwg11qlKeiRteOljlpouBIusMZtt2nm5si3VYYLmwfdYWoNtghKqrWOrwn2GkUWoBruj7zGT1knGbYV80LEs3FyGq8Mz5PscMLMzRH//Z","alt":"Node.js: Novice to Ninja cover"},{"_id":1453,"title":"Svelte: A Beginner's Guide","url":"/books/svelte-a-beginner-s-guide/","rating":5,"imageSrc":{"hotspot":{"height":0.510429447852761,"_type":"sanity.imageHotspot","width":0.7576687116564419,"x":0.47085889570552153,"y":0.7398895705521471},"_type":"image","alt":"Svelte: A Beginner's Guide Cover","asset":{"_ref":"image-39d0a41ce6655b8dad811cbbe6731b4a3ca8f0d0-1021x1278-jpg","_type":"reference"},"crop":{"bottom":0.0024478527607361134,"_type":"sanity.imageCrop","right":0.15030674846625747,"top":0.4846748466257666,"left":0.09202453987730058}},"color":"#0c516f","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAIDBAUGB//EACEQAAEEAgMAAwEAAAAAAAAAAAEAAgMEERIFITEGE0FR/8QAGAEAAgMAAAAAAAAAAAAAAAAAAgMEBQb/xAAbEQADAAMBAQAAAAAAAAAAAAAAAQIDESFRQf/aAAwDAQACEQMRAD8A5XVoTWZNII3PfjOAp8XDW49XSU3Oa7obddqz4aOxWs/bXjc9wBBDR+K7F+1JHh9dxYPT30r5y/hlVc66ZCzxViOTD65jOM6oWos2DM9rnRHIbr2UIlNeAvJPppfj3Nx8Jx0kdSpG65JkGZ4zqP4AoM163M1wfKdXegAAKGxOnxPWKU966Raz5GlO+IYMYQlO9QjFn//Z","alt":"Svelte: A Beginner's Guide Cover"},{"_id":1450,"title":"Build a Weather App from Scratch with Next.js","url":"/books/build-a-weather-app-from-scratch-with-next-js/","rating":5,"imageSrc":{"crop":{"right":0,"top":0.44554164462469864,"left":0,"bottom":0,"_type":"sanity.imageCrop"},"hotspot":{"width":0.5519602656791864,"x":0.6212161288426498,"y":0.7227708223123492,"height":0.5544583553753013,"_type":"sanity.imageHotspot"},"_type":"image","alt":"Build a Weather App from Scratch with Next.js Cover","asset":{"_ref":"image-f4491f51d401113206f8e66eee8685aee34949f8-1600x2000-jpg","_type":"reference"}},"color":"#1a4255","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYCAwQF/8QAIxAAAgICAgEEAwAAAAAAAAAAAQIAAwQFERJRByJBcRQzwf/EABgBAAIDAAAAAAAAAAAAAAAAAAQFAwYH/8QAHBEAAgIDAQEAAAAAAAAAAAAAAQIAAwQRIUFh/9oADAMBAAIRAxEAPwB+CW2IHTqAfMtrqtDDv0MxJlOlYQAcD5ifsvUPT6/ZnCvybi6t0exVJRD4Jlqewp1jqZ3XQLeVqSfkfbB1bj2n6hMOHkLbjpZWwdGHKsPkQk4PIEyncoI5BER11m0wddtNHTptfm4Wwtaz8u0++vt/RHmSr/Yv3BbsdLwA8YYubZiEtX7IaHXDW6fEwyxY01hOfPEJ0oQoAAaEXs5Ylj7P/9k=","alt":"Build a Weather App from Scratch with Next.js Cover"}],"recentCourses":[{"_id":3203,"title":"React JS Masterclass: Zero To Job Ready With 10 Projects","url":"/premium/courses/react-js-masterclass-zero-to-job-ready-with-10-projects-3203","duration":125393,"rating":4.5,"imageSrc":{"asset":{"_ref":"image-735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179-png","_type":"reference"},"_type":"image"},"color":"#083470","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADVElEQVQokT2SbVATBByH97W84rwjO6AwiJhbW9BZEcFZkYqKeOlRAXXKNd4OCo55URiMcMg2BgxQ3tY2GToGLLZBYPFiZSLLkxPGkWFOQUDQKxz0An57OofXh+fu/+m53/1+f8GmQ0b8Ui08lekkqGCI4GMjhJRfJbxmGnHLPBFnltn+zRqv2NeJtK4gMSwirL/B8yo3wcUuggoGCEy3siXFgF+SAcFDYcCRdt4utvO+boCYylHCKsZ9wpf080RZl3nDsUZMzwNe71ohwrTItv+Fo4R+YkP6XgnSffkEHahA8PhBI6LsdpT60zjOtZJj/hFxpdsnjDu7QPqQl5yRNXJG1sn8YZWd1iVE9TcIVbnZWjyKMKeNmAOZxMZ9QFhCEQL/ZDPRR7s5YTTT5tQjMw4h0kwgqbtOWu8iX0+tYL35tw/DtVU+7r9LZINnQ1gySkheNy8mKxElFhL4rhZBdL6drNqLZDWcJ0HTR6TyAkLVOLtMHo5fukf3LS+9c1565rzYZ7yUu/4gvm2GcM3kow4HCcjoxD/VxJNJRgQ7C3v5rPkymc1j7FC72Fb2C5LKCdIds1h+u++Ttd9a9tFz24tl+j4ZPXNIqiZ5tthFoHwY/6xe/D7qYFNSK4Kth88SW9iPrPkKcts08Y2TSCsnSOmcocX9J85ZL7bZZR+OWS/N7mVSbbcRazeEAfJhgrMdSNNMSJIbN0Z5+kgHe9Q/k2u9RnyDm3DVOFFNvyMfvkuXZ4W++VUfD2/5+XtE628S9qjDZ+SDROVayM6pIVdWsfE2mz+0EJrXx8ulFxCVuQgtv4q4dppDtjuornipm/qH2ql/UY2tkmRfQnJyY+WQkktIC78l8aiJ7E91pMm0CB47aOSJFAub051syRskqGiE55TjvKC7zqumBfY6vCR+v07iwAP29f7Fa+YlhPUeQiomfQkji86x+1gXcfJ2pDIzAuHhBsQZBiLyLWz/wk5U2XfEVP7Em6cu845xkj1WDwn2BfY777C3c4Zdrb/yVtMYsdUXiS4fJFbhZLeii/2KDnYUtCL4vKyUohNKvtRqUNTp+KrpFEqjnoozrag7LWgdNqr7nNT091Dl7EbTZUVlMVN+2kBZSyOKk7WU6qo4Xq2mVK3kP7S4c1RneuyCAAAAAElFTkSuQmCC","alt":"React JS Masterclass: Zero To Job Ready With 10 Projects cover","external":true},{"_id":3201,"title":"Advanced React with TypeScript","url":"/premium/courses/advanced-react-with-typescript-3201","duration":20616,"rating":4.66667,"imageSrc":{"hotspot":{"y":0.5,"height":1,"_type":"sanity.imageHotspot","width":0.7157534246575342,"x":0.44691780821917815},"_type":"image","asset":{"_ref":"image-e3b9af0c05a1b88a96a90097022495f26287cbe4-750x442-jpg","_type":"reference"},"crop":{"_type":"sanity.imageCrop","right":0.18664383561643838,"top":0,"left":0.08904109589041101,"bottom":0}},"color":"#043682","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAMABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAMEBQYH/8QAIhAAAgICAgAHAAAAAAAAAAAAAQIDBAAFESEGEhMxQVFh/8QAFgEBAQEAAAAAAAAAAAAAAAAABQME/8QAGxEAAgMAAwAAAAAAAAAAAAAAAQIABBEDFCH/2gAMAwEAAhEDEQA/AMF4B0se/wBZ6gBLhiOPNwMTf1lWIbgyXlgeieFhbsufrOcanf7PV1xHQtyQoTyQp+cTPdsW5ZZbErvI/bMT7n9x3uMUAByHLWVXLN6JLtWzJMzMezhlI8jFjycMyG0xOy44hk//2Q==","alt":"Advanced React with TypeScript cover","external":true},{"_id":3183,"title":"Concurrent Rendering Adventures in React 18","url":"/premium/courses/concurrent-rendering-adventures-in-react-18-3183","duration":4591,"rating":5,"imageSrc":{"_type":"image","asset":{"_ref":"image-577ec0a5cf23d3e12fc305a7f2510ae3790cb01b-1801x1050-jpg","_type":"reference"}},"color":"#04947c","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAMABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAQGCP/EACMQAAICAgECBwAAAAAAAAAAAAEEAgMABRESEwYVISIxQVL/xAAWAQEBAQAAAAAAAAAAAAAAAAAAAQL/xAAZEQEAAwEBAAAAAAAAAAAAAAABAAIRITH/2gAMAwEAAhEDEQA/AM96bQ7F1SNyys7Kj9jKTZ+EX2K6jr9bZX0RHcMiAOTkOi+3TV26mLYQ/MZEDHfO9nUD23mI88c+85nb9DIyqixDbJ3a9+xZmPTbD5AwxVxm5pmdzFkrLJHkykfU4ZTzsT//2Q==","alt":"Concurrent Rendering Adventures in React 18 cover","external":true},{"_id":3182,"title":"React Hooks Tips Only the Pros Know","url":"/premium/courses/react-hooks-tips-only-the-pros-know-3182","duration":8614,"rating":5,"imageSrc":{"_type":"image","asset":{"_ref":"image-27789a9cbe736927a4dcd8fcec40034da26d6d42-750x422-jpg","_type":"reference"}},"color":"#14445c","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAALABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABwAEBf/EAB4QAAICAgMBAQAAAAAAAAAAAAECAxEABAYSQQVR/8QAFgEBAQEAAAAAAAAAAAAAAAAABAAB/8QAHBEAAgEFAQAAAAAAAAAAAAAAAAEDAhESEyEy/9oADAMBAAIRAxEAPwBBXkevLEjyOhry8zwfdhLSuQGVLNX5gvpzSX17tX5edXR2Zo5ZAjkBkIOKk88ARNqrruKM3J42YGNU617lg3JtTByBI2Wbii2M/9k=","alt":"React Hooks Tips Only the Pros Know cover","external":true},{"_id":3180,"title":"A Playful Intro to React","url":"/premium/courses/a-playful-intro-to-react-3180","duration":2871,"rating":4.16667,"imageSrc":{"_type":"image","asset":{"_ref":"image-25fbc3c04aee2fbc4da14d1d10e8105d5e6566a2-1550x872-jpg","_type":"reference"}},"color":"#0a1627","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAALABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABgADB//EACQQAAEEAQMDBQAAAAAAAAAAAAMBAgQRAAUGEhMxQQcUIVGR/8QAFgEBAQEAAAAAAAAAAAAAAAAAAwIE/8QAGhEBAAMBAQEAAAAAAAAAAAAAAQACEQMSIf/aAAwDAQACEQMRAD8ALTtQLAhkMKZ0xOZSJxtbXEPphtUWv6YaZOOeUxz6GvJW0id/jC+qgF7DlwS+N5rtTUZkOEroskolTtwdSfmNxuVdTZN6Nj5OoH2sKEd4Qsl9NFtKt3j7yxDtefKLoMMhDOc9zLcq+VyzS8WzuwC/kxJ//9k=","alt":"A Playful Intro to React cover","external":true},{"_id":3178,"title":"How to Fetch API Data with React","url":"/premium/courses/how-to-fetch-api-data-with-react-3178","duration":4212,"rating":4.71429,"imageSrc":{"asset":{"_type":"reference","_ref":"image-0792db2a2b5b941072a2062d34d3a859ae061c6e-1280x720-jpg"},"_type":"image"},"color":"#184464","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAALABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAUGBP/EAB8QAAEEAgMBAQAAAAAAAAAAAAECAwQRAAUGITESUf/EABUBAQEAAAAAAAAAAAAAAAAAAAUG/8QAHREAAgEFAQEAAAAAAAAAAAAAAQIAAwQREqEUYf/aAAwDAQACEQMRAD8AqmYKNdoBOZcQ+6U/QaKgAT+XizQ7pW1gra2aokSeF0llK+6PmSPNnnUcMmFDik1VUfO8ycfjMzNimTJbDj6WWyFn26xi6QeoLgZPyT1nTQ2jO8sthqHG5KgHmVg92F4YqkEl1XZwxtUcADbkHZ6ZOdez/9k=","alt":"How to Fetch API Data with React cover","external":true},{"_id":3154,"title":"The Complete Nodejs MySQL Login System","url":"/premium/courses/the-complete-nodejs-mysql-login-system-3154","duration":12148,"rating":4.71429,"imageSrc":{"_type":"image","asset":{"_ref":"image-3e433ba26f9254427ee4bbb4bbdd16f03d2b69ca-1280x720-jpg","_type":"reference"}},"color":"#125a9b","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAALABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAYHA//EACEQAAEEAgICAwAAAAAAAAAAAAIAAQMEERIGMQUHEyJx/8QAFwEAAwEAAAAAAAAAAAAAAAAAAgUGB//EAB8RAAICAQQDAAAAAAAAAAAAAAECABEDBAUGIRIxwf/aAAwDAQACEQMRAD8Ar9qe3C2tej8v2wz74yyR+Q0qs3I5DsCzG4tlnfpUIDLTt1FPYlmaPl87RyELaD0kvF3XJrAqCj4n5D3kFMFt32Jh5rx9Ab5sBDjCEn3LMxTk5SE7/qFpKoQKuSJcE+p//9k=","alt":"The Complete Nodejs MySQL Login System cover","external":true},{"_id":3109,"title":"Build a Single Page Application with React","url":"/premium/courses/build-a-single-page-application-with-react-3109","duration":7337,"rating":4.5,"imageSrc":{"_type":"image","asset":{"_type":"reference","_ref":"image-5254670c3797fdd4c336cca5de1f77aa82b91a43-1280x720-jpg"}},"color":"#1c3c7c","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAALABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAUGB//EACQQAAEEAgEEAgMAAAAAAAAAAAECAwQFABESBgcUMRNRIUFh/8QAFwEAAwEAAAAAAAAAAAAAAAAAAAIDBf/EABoRAAICAwAAAAAAAAAAAAAAAAECAAMRElH/2gAMAwEAAhEDEQA/AF9BBYNc351e0lQOubratq+j+MrO2tJDlXF0qZXoDLTIU0CnQV/RvMpFxY8AjzHuA1ocvWsedM3VkkTkiY7p1vivZ3sfWbN9JdGXsmrakGPe6ldDh9U/HEYS00Y7auKfWzvDJnqSfKlWCFSHlOKS0lAJ/QHoYY9NeiBeQY5OZ//Z","alt":"Build a Single Page Application with React cover","external":true},{"_id":3092,"title":"JavaScript Fundamentals","url":"/premium/courses/javascript-fundamentals-3092","duration":6228,"rating":4.68421,"imageSrc":{"_type":"image","asset":{"_ref":"image-1453c9c11d73b0bd06f44eae6d304b4136d52f00-750x442-jpg","_type":"reference"}},"color":"#e07a04","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAMABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAQDBQb/xAAhEAABBAEEAwEAAAAAAAAAAAACAQMEEQAFEiExBiJBYf/EABcBAAMBAAAAAAAAAAAAAAAAAAQFBgf/xAAaEQADAQEBAQAAAAAAAAAAAAABAgMAEQQh/9oADAMBAAIRAxEAPwDVg3Hh6Y7Kdv1Fekvn5lL4/LlytYZZnKZtus3tQKQF/ceiOkYq0S2C9pjfEZdzKbSqrzL5VRJMpXpOrfRGrWBDaGXHBt8hFeMMTdcMzVSJbwwPmaqrAfTv/9k=","alt":"JavaScript Fundamentals cover","external":true},{"_id":3083,"title":"Build a Shopping Cart with React \u0026 Redux","url":"/premium/courses/build-a-shopping-cart-with-react-redux-3083","duration":10432,"rating":3.66667,"imageSrc":{"_type":"image","asset":{"_ref":"image-8bb78f8206736610c6948619783e259fe34f00d1-1280x720-jpg","_type":"reference"}},"color":"#133d74","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAALABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAUGAv/EAB8QAAICAwADAQEAAAAAAAAAAAECAwQABRESEyEGgf/EABYBAQEBAAAAAAAAAAAAAAAAAAMFBv/EABoRAAMBAAMAAAAAAAAAAAAAAAABEQIDUZH/2gAMAwEAAhEDEQA/ACPQ1pNekzNEgK9JZjiOzpdZJZgjazXCu4DFXPQMxNsLZqen3v6uc8e/Ml9ixDEg/c0C4Y7X6ydrVUQy/TabV09tJFStqYeAjh8uf3DJZ2JYkkk4YyoSy+z/2Q==","alt":"Build a Shopping Cart with React \u0026 Redux cover","external":true},{"_id":3080,"title":"Build Your First React App","url":"/premium/courses/build-your-first-react-app-3080","duration":3306,"rating":4.47059,"imageSrc":{"_type":"image","asset":{"_ref":"image-b8de443e874370608a76cc42a56cf047e1a418ef-750x442-jpg","_type":"reference"}},"color":"#09607a","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAMABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAUGBP/EACMQAAICAQMDBQAAAAAAAAAAAAECAAMEBRESEyFxIzJBUYL/xAAVAQEBAAAAAAAAAAAAAAAAAAAFA//EACARAAEDAwUBAAAAAAAAAAAAAAEAAgMEBRESITFB8HH/2gAMAwEAAhEDEQA/ALTXasKzWmOeqMFpBUN5i6+3Q68WzoVrz4nYbfMrs7Ex72DXUo7AbAsN4tvSqpfTopX8CJUdUGsDNOffEbdbRJLUOmEmAevFIcRueJS32gMJps957AeIRRvCgRuv/9k=","alt":"Build Your First React App cover","external":true},{"_id":3069,"title":"Build a Shopping Cart in JavaScript","url":"/premium/courses/build-a-shopping-cart-in-javascript-3069","duration":9379,"rating":4,"imageSrc":{"_type":"image","asset":{"_type":"reference","_ref":"image-2c7c15c2965f79f742b6099319eb1f4aaf0167be-750x442-jpg"}},"color":"#054080","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAMABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYCAwQF/8QAIhAAAQQCAQQDAAAAAAAAAAAAAQIDBAUAERIGISIxE1Fx/8QAFgEBAQEAAAAAAAAAAAAAAAAABQQG/8QAHhEAAgICAgMAAAAAAAAAAAAAAQMAAgQREiExMlH/2gAMAwEAAhEDEQA/AI1fTXT1vRKtLtTvL5ijbR9n8xQgdGR7S9s2q97jGjr0gKUAdYvRrWdFjJjsSXEsg8uG+2/vK25kht9bqHlpW4fIg+8Rw8DMVmNc1vKlvUd9QO7khFF1rojyfs6M2rjRpLjKni4pB0VDDMKvM8lE7Pvvhmg2RItif//Z","alt":"Build a Shopping Cart in JavaScript cover","external":true},{"_id":3000,"title":"Learn Angular 5","url":"/premium/courses/learn-angular-5-3000","duration":16123,"rating":3.83333,"imageSrc":{"_type":"image","asset":{"_ref":"image-4b842f3e5e7609192524949c5c6cb4ae9cad2f43-600x330-png","_type":"reference"}},"color":"#bc0404","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACqklEQVQokQGfAmD9AMWAYb0pH8ABAscCBskMEMssLtFPU9ZibNhic9YyUNIOM9MqTNhtetuTktydmt2XlddfX9AYHs8CGtEFMgDLim7BLiTDAwPLBgnPHybTS1DVW2DXXGXXTVrUIjHRCRnUN0bck5XfrajeoZ3dk5HXWlrRFhrQAQ3SAhoAz5R3wzQpxAcHzBMX0zU9119l2Ghs2F9l1kJI0xcb0AoM1EVF3JeU2oeE1mFe1UpL0SYo0AgK0QEF0gMJANCae8I5LcIMC8wjJdROUddkZ9dhZNdZXNQ7PNATFM4REdRUUd2jnduWkdh8eNZhYNArLM4ICc8GCNAPEgDPnXzBPjG+CgnIHR3QSkjTT0/SOjzSODnRMzPNISDNKSfTXlvanJbal5LalpDcpZ/WcGzNHx/LCwzLFxkAzZ97vkM0ugoIwQ8Pyi0szSwryxgZzSEgzTMyzDk3zEA9zUxJzlVRzEE+zlBM2ZyW2p2WzTk2xggIxgoKAMyheLtJNrUMCbsICMMcGscgHscYFsghH8ktKsk3NMg2M8k+O8tIRMYsKcg2MtaQidqknMs/PMMFBcICAgDJonO4TjivDwu0BQS9FRPCIx/DHxzEIB7FJSPEKCbCIB7JRkPSg3vQeHDQdW7YpZzUjYXGLSu/AgK9AQEAxqZtuGVAsC8bsyATuikcvzUpwC0jwS0kwzQswCYfvRUQwjAqzXJq05WL1JuQ0o2Fx1FMvhMSugEBuAEBAMWwa8CXXb5/T8F2TcR4Ucd7VsdxUMduUMhsUcVYQMJKMsJJM8VaRclzXcp4YsVfTb88LbsoGboiFbghFQDHuXTKu4DPvYjSwY7UxJLVxZTUwpPUv5HTuozRsYPRqnzQpHbNnXDLmGrKkWLIhlrGfVLEdUnBbkS/akN/yS1e+6WNcAAAAABJRU5ErkJggg==","alt":"Learn Angular 5 cover","external":true},{"_id":2999,"title":"Building a Node.js Application on iOS","url":"/premium/courses/building-a-node-js-application-on-ios-2999","duration":16892,"rating":4.8,"imageSrc":{"_type":"image","asset":{"_type":"reference","_ref":"image-d80d8aa4b2cacf49d87d65ba59a190c0e3ed46c2-600x330-png"}},"color":"#04746c","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACKUlEQVQokSWSPW/TUBiFrXOJgDYSFIHYEAMDYxdQKhAVqFWpm9hxnDixk9hxHH/b+aqbkEJDm0IbUSIIIFQGWBgqMbKwAANiKBtC8H/QdaW7vfc55z33XAb9NjaaWA/RDtD0EHjwHNgWTBOGAbMB14LvwLcROmi56PqIAvRDPGgy6LUQhegECD16ybYpo+vQdGg12BZpxnJWA7ZJJU74jQC9kEHURDf2dG3qU4sZw0hYVtL3kuvtRNSisK7TUcOAa6LpoOOh68dwJ0DgUrJShVIh9fpMN7wy6qemWwtvHl/dG8xELdKIp1UVhg7HhG8hcBh0Q7R8aqvVIErIF0+79rX9zcLRqPd1Z/DtSfnT3vX9wRnDQL6IgkwlajXUddR1hr5T6MEyIVdIRiC8eM53F98OH37ffvf76Yc/B+Ofk/uvh3PlKmF5wuchySiVUVIgyQxa8c6NBkoKWcuSdPa8ay8dDnd/7H78Ozn692p6POUOdy5oGmE5khEgFpEvISeBExm680lgpUI4kbD8rKrOjwfB5/GL44Ppr2fRl+epl9tJ2yS8SNICxcQihAIyFPYQOLQGVaOp2OwpPjdnGfOjKHu4WXi/dXPy6GKvnVBVZASkcxTOSRTOFpj4Y7hwLOh1miQjYJklK+xZjr9UlC5rldmaSmQFnIBVHpxIbQsyPZISO4dxyYaBcgXZPJZWsbCIG7dI6g65fZfcW8Eyi+U1sDw1LMpQqie1/QdhWL/MrKSIpwAAAABJRU5ErkJggg==","alt":"Building a Node.js Application on iOS cover","external":true},{"_id":2998,"title":"Building a Node.js Application on Android","url":"/premium/courses/building-a-node-js-application-on-android-2998","duration":17775,"rating":4.5,"imageSrc":{"_type":"image","asset":{"_ref":"image-40e306a813f16de9e9fb859c7a0173391bb54f49-600x330-png","_type":"reference"}},"color":"#76550a","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACqklEQVQokQGfAmD9AIstFIovF4xCKZBgRI1hR4JKM3g9JHNAI2xHKF9JKVlJJGhQHnlaHH1bGntaGXtZF3pYFnhWF3RVGHBTGQCSMBeWSi6We1CVoGWVnmeSeFOGUTR7RSh0SyxqUTBeUS9bTylnUyJ2Vx17Wht8Whl6WRd5WBh5WRp5Wh0AmjMbnm1HmLBtm82CoMyHn6x3lG1LhEwvfE8wdVg3aVs6W1g5VlMxYFEnb1Ufelkce1oZe1kZfVwcf18gAKIzHKN4Tpq/d6PXkKjXl6W+hpt7V4tSNIFTNHtbO3NiQWZjRFVcQktTOVJPKmhTIndZHXxbHX9eIIFgIwCrMhytZ0alqXGiyIWmyYiqqXqicFKUVDiLWTuEYkR8a05wbVFfZ05OX0pHWUZTV0BnWDF3WiV/XyOCYSUAnCsZr0Mts21MqpFip5NmqHNWpFhBnVg+l2ZKj29Vh3RafHVbb3NcZXVoX3p5Xnd9X2plaV9Cd14tgWEnAGQeEZkrG7Y9Kq5OOZhNOYxDMpRLNqBdRKBsUpl0W5F3Xol/a4GLgn2UmXqYqHeXq3OQoGp7fGhkT3FeNAAuFQxsIxaoNieqOyyIMiN3MiCCQzCeXUepbVWkemWdjH6XnJyQp7KMqbqKqb2MrMCJqr56matrgIhkbGQAHhcLPB0TgDImqEE0mTwuiTkpkEk4qGhXs4N1r5yWqrK3o7rInLnLmrfKnLnLmrjKj6/Dh6e8gKCzc5CgAB8YCyQaD0smHJE9M7VLQLNRRrRnXbyPiL2xsrjEzbLI163G16zG16/J2a3I2KC9z5Szx5Szx46vw4CiuAAeFQogGw8rIBdqMiu3TkbOaGDKkY/IvsPE0t690+K2zt6zzN280uG/1eS0zd2ivtGeu8+fvNCTssaFp7xdRyH4jo1sSwAAAABJRU5ErkJggg==","alt":"Building a Node.js Application on Android cover","external":true}],"popularBooks":[{"_id":1480,"title":"Beginning ReactJS Foundations Building User Interfaces with ReactJS","url":"/books/beginning-reactjs-foundations-building-user-interfaces-with-reactjs-an-approachable-guide/","rating":5,"imageSrc":{"crop":{"top":0.03953642384105964,"left":0,"bottom":0.20478429861529202,"_type":"sanity.imageCrop","right":0},"hotspot":{"height":0.5321969230769233,"_type":"sanity.imageHotspot","width":0.9630769230769228,"x":0.5,"y":0.3056348853795213},"_type":"image","asset":{"_ref":"image-92a19538a8bd357e0d1436bd2e8e07a75ffb7622-717x900-jpg","_type":"reference"}},"color":"#648404","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAMEBQYIB//EACwQAAEDBAADBQkAAAAAAAAAAAIBAwUABAYREiFxBxQVFjEiMjNBQlFhcoH/xAAWAQEBAQAAAAAAAAAAAAAAAAACAAP/xAAcEQEBAQABBQAAAAAAAAAAAAABABECAxMUIVH/2gAMAwEAAhEDEQA/AOpSHaLYx+O+LR9s9IMcSBtv2URV9NqtJ4ZlkhMtEUXCPoDxK4br7uwEvsn4qIgICS8rJDZFaq8JEim2zoR6cqukE2kJYBZx0Y4xbh6ANUj1WaEO9cjmyk2W2bpd8QAW0T+0VErJyHyj3lT9koqp1dqOWWwHeiMJu0VFLaaeSnKZfDkPEeSWzfPkiupWKG/fHrTm7+GPWm8cQh5XP4W3rTO8caZQHcgsnCT6lcSisL0U+2WT1ldy/9k=","alt":"Beginning ReactJS Foundations Building User Interfaces with ReactJS cover"},{"_id":1420,"title":"Learn to Code with JavaScript","url":"/books/learn-to-code-with-javascript/","rating":5,"imageSrc":{"crop":{"top":0.5088355263157899,"left":0,"bottom":0.08773026315789467,"_type":"sanity.imageCrop","right":0},"hotspot":{"height":0.40343421052631545,"_type":"sanity.imageHotspot","width":1,"x":0.5,"y":0.7105526315789477},"_type":"image","alt":"Learn to Code with JavaScript Cover","asset":{"_ref":"image-2c87f8e33ddb9de695a262ebd81aacd357305968-1306x1712-jpg","_type":"reference"}},"color":"#4c246d","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAaABQDASIAAhEBAxEB/8QAGgAAAgIDAAAAAAAAAAAAAAAAAAYEBQECB//EACYQAAEEAQMDBAMAAAAAAAAAAAEAAgMEEQUTIQciMQYSQWFCUXH/xAAYAQACAwAAAAAAAAAAAAAAAAACAwEEBf/EABsRAAIDAAMAAAAAAAAAAAAAAAABAhESEyJB/9oADAMBAAIRAxEAPwDnrQXEADkq2raNe4LYmEOH5HwsaJHbJe6tButI57c4VzBdfXr7lmCTbYcOeBwD+luSk/C62Ll+nPXsFkzWtfjOG+EKRrF6G5c3Yg4N9oGMIRK6JHPpr6ho6ZO0Wa4Bxgvbzn6IR1E1XT7NdsWlQmKF7jLJ8dx+Eg03Fr+0kfwre9I9wAc9xH2UrjW9A57WQ0IQnBn/2Q==","alt":"Learn to Code with JavaScript Cover"},{"_id":1457,"title":"Node.js: Novice to Ninja","url":"/books/node-js-novice-to-ninja/","rating":5,"imageSrc":{"_type":"image","asset":{"_ref":"image-153fce8cc1efa957775b725b92bae96ca6c8cf0f-1021x1278-jpg","_type":"reference"},"crop":{"top":0.4993619631901837,"left":0,"bottom":0.061196319018405054,"_type":"sanity.imageCrop","right":0},"hotspot":{"y":0.7190828220858894,"height":0.4394417177914113,"_type":"sanity.imageHotspot","width":1,"x":0.5}},"color":"#04728a","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYBBAUD/8QAIBAAAgICAgIDAAAAAAAAAAAAAQIDEQAEEiEFMSIyQf/EABcBAAMBAAAAAAAAAAAAAAAAAAADBgL/xAAbEQACAwEBAQAAAAAAAAAAAAAAAQISQQMRQv/aAAwDAQACEQMRAD8ATRoE9Ad5dXwO3Gpd9YstX2cY9XVCSIVKcmsAMLzu888Z+VGvyspXD1+Rwg11qlKeiRteOljlpouBIusMZtt2nm5si3VYYLmwfdYWoNtghKqrWOrwn2GkUWoBruj7zGT1knGbYV80LEs3FyGq8Mz5PscMLMzRH//Z","alt":"Node.js: Novice to Ninja cover"},{"_id":1501,"title":"Unleashing the Power of TypeScript","url":"/books/unleashing-the-power-of-typescript/","rating":5,"imageSrc":{"_type":"image","asset":{"_ref":"image-5fd75bb7ed78541494a1ec40662e913cd67c7838-1600x2000-png","_type":"reference"}},"color":"#38295a","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAZCAYAAAAxFw7TAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAEKUlEQVQ4jYVV6XbaZhTknRobkNglJCQBEosECDCExcYstuMkjbGNjZeTkyax26Qv0DednrnUOO7pSX9c7d98c2fuvYq82onhZ7GzG38R//d95Gcgu1GG8jJ244jGFCSSGWSyukQqnYOipmRN5JdXUfwYT4AEi0YVWRyNqc8RVRBXEsjm8jALjoSeLyCZysqGkWeAzcK4koSiJqGqKSQSaWHCUBPpTagpKEoSaiK1fR5XkrJWUo7FE8hpeVh2EY5TRrHoolh6jlLZQ9mtouxW4BTLwoYbcR3Z7/xL10gimYYfNHEwmaL/eohWq42w3ZVoNEM5j8cH8r7d2RNggjI0zUA6nUMmq0nKoiEp7/VeY3l+icXRCYajfRxO55jNj+R8dPwGl6trXK9v5XowHEvw3WQyxWh8gMPDGVphR4yJMPe638Dp6Tsszy9we3uP3z5/wZevD3h8/AMPD79LfPv2pzy/ul5jdXWN+/uP+PrwKN99+vQZ09lC3I7QDNJnaicnp7i5ucPd/UdcXa1xcbnC2fIc7389w/nFJZbLC9l4NlsI2/XNHVZXaxwfvxGGTFsA6aqum6jVA9GJ4Lx23eomvBoq1To8ryYa2jSv5CFohPI8bxRESxolgEyb5ZDJaMI2b1iygaab23uGYdowTAt63kROM6QWk6nstmykDnmIxVVhSQ0KVhFepSblYwqALcXLkqn7TXH+yel0ZuMuzSCGAEajKuLxBFQ1DV0rImyMsT9aoNvtw6vUYTslFCwH1aqPyWQm2lEWbiCpZjTJbguoKBlk0zYyaRO2GWDSW+PD4hFH0wv0e2NUa4GAshLmi+MtoB+0pH4LVlE6ZguYUHVY+QB5rYy8VkLHP8b7w+84W3zHZPQOQRCKCQQe70/Q7w/gelVJfTjcF9BsVn8GjMWSyGYs5HUHuVwBtlVBL5xjPl5h2D9Gvd6UtqSb7CQCUVen6EpDdLo9MYwOS6fwQJf0nAPb8GEVPNGr3e4jDHuoVOqw7JKUUXevL2c6zGDanW4PZsEWhgLIhpYBkbVhGT4KpicuN1vtraPUqVrz5Z4Dg0YwaFqz1YZhWM/Thgcy1DQThlGEYdiyiNoEjRZKJU/qzrZLAs70aALLhd/V6oHUK/XbApIhH/IDLtqMrApcYefIVNZ0Q1LjqHuaiyzysluRZy8AecMuIRBZsS8bjVBajcVNVqw7aklHmRFJ8Np2NjOS9y/+KWKMboqbFHo0mmA0mKMZ9OF5vmhFGciK0zoWU//pLEcKnOtfAD65zaFJU3q9EeaTJcb9U1QrDfh+C532ALVaUxwmI2pJKWjQ1pQff06iZ0zdpF+qoBMO0W4N4Tgu3HKAQfstRt0P8Eoh1ERGCGy6ZJMucf7zr0dN6SL/MRxdTMstNzHt3WN58BcGjRUyKVtYEezJEAL+DZIwrlFmcDYcAAAAAElFTkSuQmCC","alt":"Unleashing the Power of TypeScript cover"},{"_id":1504,"title":"Unleashing the Power of Astro","url":"/books/unleashing-the-power-of-astro/","rating":null,"imageSrc":{"_type":"image","asset":{"_ref":"image-9b180f1df344a8047cf3ee91c33acd20d5481d6d-1600x2000-jpg","_type":"reference"}},"color":"#0c043c","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAwADAQAAAAAAAAAAAAAAAAIHAwQFBv/EACUQAAEEAAYCAgMAAAAAAAAAAAEAAgMEBQYREiExB0EyURMiYf/EABgBAAIDAAAAAAAAAAAAAAAAAAABAgME/8QAGBEBAQEBAQAAAAAAAAAAAAAAAAEREiH/2gAMAwEAAhEDEQA/AIHQyhPboxWWl+17N/AC5d7DqtKw+CxPKyVnYLEuGNuWbMNSCabWRwaGtJOmp+lQPL3jqLKdXDLdWW3N+dm2d0zOnADkH65Wr2XKEskDQ8hhJb6JQnMR9IUsoejydefhWP1bUU7a5adrpnt3BoPZ0VH8lZ4kxvL5qx4428D+hidDodn8PrpSaP4lMruJbptUs54OiFkf8ihGE//Z","alt":"Unleashing the Power of Astro cover"},{"_id":1487,"title":"Build Your Own Developer Portfolio in React","url":"/books/build-your-own-developer-portfolio-in-react/","rating":4.75,"imageSrc":{"_type":"image","asset":{"_type":"reference","_ref":"image-114ad234c4569b4484d4c89fc6fdaca16baf9b62-1600x2000-jpg"},"crop":{"left":0,"bottom":0,"_type":"sanity.imageCrop","right":0,"top":0},"hotspot":{"_type":"sanity.imageHotspot","width":1,"x":0.5,"y":0.5,"height":1}},"color":"#352c66","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAEDBAUGB//EACIQAAICAgEEAwEAAAAAAAAAAAECAwQAEQUGISIxEhNxQf/EABkBAAIDAQAAAAAAAAAAAAAAAAIDAAEEBv/EABkRAAMBAQEAAAAAAAAAAAAAAAABAhEDIf/aAAwDAQACEQMRAD8AzIq23jWRY/FhsHfvEWK3Ft2i8V947U5uKOvHG8bEqNA9smcVFy3LGw9GIGONDISY9jQ/n7nRPra9ZTr0qjZZu4AH5hkazblaZvvVVkHYgLrWGOXV4FpVrLrN30h1yeOqNTvP8ayIVX608m37Bznx94h95juVSxglhyFiKe7NLXVkiZiVVjsgYZBwxiIf/9k=","alt":"Build Your Own Developer Portfolio in React cover"},{"_id":1466,"title":"Designing React Hooks the Right Way","url":"/books/designing-react-hooks-the-right-way/","rating":null,"imageSrc":{"hotspot":{"x":0.5,"y":0.30486363636363645,"height":0.42809090909090924,"_type":"sanity.imageHotspot","width":1},"_type":"image","asset":{"_ref":"image-acc986b72da688d522cdc8a5d92ae7ad73377260-810x1000-jpg","_type":"reference"},"crop":{"bottom":0,"_type":"sanity.imageCrop","right":0,"top":0,"left":0}},"color":"#0e5483","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYCBAUD/8QAJBAAAgICAQMEAwAAAAAAAAAAAQIDBAARBRIhQQYTMTMVInH/xAAWAQEBAQAAAAAAAAAAAAAAAAAFAQT/xAAhEQABAgYCAwAAAAAAAAAAAAABAAMCBAUSMVERFRNBYf/aAAwDAQACEQMRAD8AQq1H36YllnBMoDN+w3vKXIxWePIKzxsm9KAwJ1mlS4TkHLQodMiksOrxlduEtWpAmgZSekbObbJn6jS9J+yFCjBNarLL1L37d8Ma6vpt+PrRwW1VpQOolfjvhijTgsF2UG+IvJFbjlZqcyIY3sLYb3ZD06A+Vzn+YhWu04sFbAbSjXjFhPqTIWPrw/sXNBL9Qzspok9VTSkNLZfq1rDE9/H8wyCoOaCppDPOSv/Z","alt":"Designing React Hooks the Right Way cover"},{"_id":1468,"title":"Hands-On JavaScript High Performance","url":"/books/hands-on-javascript-high-performance/","rating":null,"imageSrc":{"hotspot":{"y":0.2165,"height":0.379,"_type":"sanity.imageHotspot","width":1,"x":0.5},"_type":"image","asset":{"_ref":"image-9d8ca4186f557f1384a7ffb8bb0dc38f76a0d5b2-810x1000-jpg","_type":"reference"},"crop":{"left":0,"bottom":0,"_type":"sanity.imageCrop","right":0,"top":0}},"color":"#603927","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAUCBAYH/8QAKxAAAQMDAwMACwAAAAAAAAAAAQIDBAAFEQYTIRIiMTM1NlNhcnOBkaHB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAwUE/8QAJREAAQMCBQQDAAAAAAAAAAAAAQACAwQFEiFBYZEUIjFSgdHw/9oADAMBAAIRAxEAPwDIWq1wHoEZx7lakZUA4kc/epLsNt7XCHCMnqAeT+qovQ7Exsh9UttbpwEkjigwrOJG0UXAp94MFP5rIyqY49rTwqZtVSRolFyFuTKUmFv7QGO/Gc0VqIembbLZDrJkFBOOSKKTqR6n98oRbZTqOUvguxJZdenRUEkYT1q8fGtDpJ2I7cW4AaQtrJVyeDxXPHPQpp9oD2gb+U1Oq6FrYXuxHIKtSXmSWZsYaBiyP2nN2tc+2z3WI09hpokrSgnxmioa09dH6af7RQQQmSNryfOwWiouEsMjo2nIbr//2Q==","alt":"Hands-On JavaScript High Performance cover"},{"_id":1491,"title":"Clean Code in JavaScript","url":"/books/clean-code-in-javascript/","rating":5,"imageSrc":{"crop":{"top":0.5295262563523432,"left":0.053227931488801075,"bottom":0.09866967814793903,"_type":"sanity.imageCrop","right":0.34628270280444196},"hotspot":{"_type":"sanity.imageHotspot","width":0.4671560323734236,"x":0.3534726143421795,"y":0.7178828345567476,"height":0.3668949745906268},"_type":"image","asset":{"_ref":"image-aaee9a42c5dff7423353497b1636e8e1e6afb71b-810x1000-jpg","_type":"reference"}},"color":"#a13406","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGwAAAQQDAAAAAAAAAAAAAAAAAAEEBQYCAwf/xAArEAAABQMBBAsAAAAAAAAAAAAAAQIDBAUGESESEyJBFTE0NTZScoGDocH/xAAXAQADAQAAAAAAAAAAAAAAAAABAwQC/8QAHREAAgICAwEAAAAAAAAAAAAAAQIAAwSRFDFiIf/aAAwDAQACEQMRAD8Ap1PtWPMgx3t7ISpxOdEkZBX7WiR4TsiQ/JQTZa8JHqIdqo0IyJKHKlkuRKxgJKqNCaSpDjlSPmaTVnIUbyPhQ6lHF9ruMJyIqH8Q3VuNYLVScHkAy6UtzyT/AKAByPB1Bxva7jM464sN8mFqcJ5ONlSNS9xpolty67VGYbZ7jaSZmtZ5D5fZyE7YPiBv0mG5mTYtLOOwJrFRL70Rh8JlUuGyp9HqJxd6TvCStpHVqAdBvPvn40/oBBj5NllasT3LcnGqrtZAOjP/2Q==","alt":"Clean Code in JavaScript cover"},{"_id":1412,"title":"Build a Blog with React and Next.js","url":"/books/build-a-blog-with-react-and-next-js/","rating":4,"imageSrc":{"crop":{"top":0.5538865320973075,"left":0.07668711656441717,"bottom":0.07376762594105013,"_type":"sanity.imageCrop","right":0.4938650306748469},"hotspot":{"_type":"sanity.imageHotspot","width":0.42944785276073594,"x":0.29141104294478515,"y":0.7278201892744478,"height":0.342971608832808},"_type":"image","alt":"Build a Blog with React and Next.js Cover","asset":{"_ref":"image-828ff1753d9431718d39d25baac148d4beae1110-1021x1278-jpg","_type":"reference"}},"color":"#166d8c","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAUCAwQG/8QAHxAAAgICAgMBAAAAAAAAAAAAAQIAAwQRBRIhMVEy/8QAGAEBAAMBAAAAAAAAAAAAAAAABAMFBgf/xAAbEQACAwEBAQAAAAAAAAAAAAABAgADERIhBP/aAAwDAQACEQMRAD8Aa149ti9krZl9bAk0xrgTuhm0PREd8LWcYMbAzK3gCar8taEYipix+zbNc3WAbOXJ8y8hmOTmLarFbTVFT8hNWZmi63tphoahJQWz0Q7Km+GPUKutfRtaPkfZTyti9DoeAJRR+RMnIfkwyVgPsdZcTXkWOdsTCRhGyrn/2Q==","alt":"Build a Blog with React and Next.js Cover"},{"_id":1449,"title":"Build a Rock Paper Scissors Game from Scratch with React","url":"/books/build-a-rock-paper-scissors-game-from-scratch-with-react/","rating":4.16667,"imageSrc":{"hotspot":{"x":0.607270910480221,"y":0.7377358490566037,"height":0.5245283018867924,"_type":"sanity.imageHotspot","width":0.7854581790395581},"_type":"image","alt":"Build a Rock Paper Scissors Game from Scratch with React Cover","asset":{"_ref":"image-cc4bc5d2f04ba18217d8abd12c4d77ed5c1cc88c-1600x2000-jpg","_type":"reference"},"crop":{"top":0.47547169811320755,"left":0,"bottom":0,"_type":"sanity.imageCrop","right":0}},"color":"#234352","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAIDBAYHBf/EACcQAAICAgECBAcAAAAAAAAAAAECAAMEBREHEhMhIlEUFTIzQWFx/8QAFwEBAQEBAAAAAAAAAAAAAAAABAUGB//EABwRAAIDAAMBAAAAAAAAAAAAAAECAAMEESFBYf/aAAwDAQACEQMRAD8AvwS10Dp2hT7xyqq3u9XYZEry7EQKAvAlT2XU/Ta/atr77+bEIV2VeVQ/szUvaU7Y8TnlWdbekUk/Jd3+o8gCEh42UL6VtRg6v6gw/IhEA9QLKQZHI5BExzedPdrbn5dOFRjvVk3eJ8Sx8wCfMETZIqv7i/2FuzpeAHlDLtsyEtX7EaHXfLdPiYZYuaawnd78CE6UIoAAcCT2csSx9n//2Q==","alt":"Build a Rock Paper Scissors Game from Scratch with React Cover"},{"_id":1400,"title":"JavaScript: The New Toys","url":"/books/javascript-the-new-toys/","rating":null,"imageSrc":{"_type":"image","alt":"JavaScript: The New Toys Cover","asset":{"_type":"reference","_ref":"image-6add5114ce77947ae2515be10fe83c70967aede9-718x900-jpg"},"crop":{"right":0,"top":0.1230410094637224,"left":0,"bottom":0.45952050473186135,"_type":"sanity.imageCrop"},"hotspot":{"x":0.5,"y":0.33176025236593054,"height":0.4174384858044162,"_type":"sanity.imageHotspot","width":1}},"color":"#882e06","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAQHBgX/xAAnEAABAwMDAwQDAAAAAAAAAAABAgMEAAUGERIxFCFhEyIzQkFRkf/EABcBAQADAAAAAAAAAAAAAAAAAAMBBAX/xAAhEQABBAEEAwEAAAAAAAAAAAABAAIDIQQRMVFxBRIVQf/aAAwDAQACEQMRAD8A38jL7LjMZi1sOpU/HZCNOQCBxU/yC8RZ8iA7KdiSkBxTj6fUKiAfqP0Kz0ebEuEVMiSelmLVq7qndu8g0tcbbaunV0r6kPk6q7c0fsLtascL4nMIjcCN9Nb6qlTEYdieRMtXCA0W2Vp27fI5oqbsZ5kNoYbhWtiMmK0kJT2580VIe3lHJi5j3FwY6+1zbblVqZhMNqmMBQPuCkan+04MstiXzunxikjsotfnzUE+1MSviRVN2DETY3T/AGJT+Kmzr7CclurEppQJ11HbWipTRTiAAaApB5ybgL//2Q==","alt":"JavaScript: The New Toys Cover"},{"_id":1137,"title":"9 Practical Node.js Projects","url":"/books/9-practical-node-js-projects/","rating":4.30435,"imageSrc":{"hotspot":{"x":0.5,"y":0.7473375394321764,"height":0.4701703470031551,"_type":"sanity.imageHotspot","width":1},"_type":"image","alt":"9 Practical Node.js Projects Cover","asset":{"_ref":"image-14e9ee1b13d40314ffa99be655ee3abdbf5fd9ea-922x1158-png","_type":"reference"},"crop":{"right":0,"top":0.5122523659305989,"left":0,"bottom":0.01757728706624606,"_type":"sanity.imageCrop"}},"color":"#4c5b28","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAZCAYAAAAxFw7TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD1ElEQVQ4jZ1V20+bdRjenzQOLaf2owcKLV8LtJR+5VBoofRAR2nIvMRlg2XxwrEIxa0akJhoIlm88UJtu4lGdzEHyYoXkh1ky3TqhdELQ/TiWZ63fN/aTg3x4u3v/LzP8x6+nmluacFpram52Zi3tLai1WQyjGvun/k/gO0dHbA7HOhxucQ47+jsfAlY6/k0RkCH0wlXb68Y53WA/8Tkv4x3TGYzzG1tYpwbkv/tAS/olxrj1rjfVKPQkMxLbe3t6LJYoHR3o7evD57+fhmdPT1wOBxijJnb7RapjJ3NbofdbofFahW2BiAXbo8HwZERhEIhRGMxpNJpJFMpzMTjmIpGoWkaQpqGaDRaXYfDCIfDiExOyjun01kP6BsYwEQkIofDwSDGJyYQj8eRSqWQTCYFZGx8XJzFZ2cRm57G5NSUOKSNhEL1kimVkqyKIpmk/H5VlUeJZFKMD+mEc4IGg0GER0eRSCSEeV3Z1CZCjyljSMC5TEZCQCCOXJO1pmmIRCISmumZmWqWG0uFa7INDA9X2SUS8pgSKTc9NydGhtFYDLOJhDh6hWFteVA6L89ns8hmswJKcIJmyDaVkvXo2JjEnXdpBkMd+GxTk8xZBiybwaEhSRDZcu4PBCRpXDOJfW63hEX1ejHk99czZMwURZE2qm18vSt4zmRx1M180in6uQHIh2SytLSEXC4nXimdZyZT9UFjrKnm7InpewYgG/zKG1dwb+9bFEtFnJufN1iwmJmEwHBAGOq9TCWdXV2yR0JGL9N7fDaOUvkz/P7Hbzg8PMTFS5dgsVigelXk317Hrd0i3lpbhW/AJ/XJImbCFhcXpS6ZRAOQvXp19U08PnqAv/4+xqNHD7G8vCKXFnLz+PrOLp7/8hSffv4JYtNRBIMjyOc3UCqVUCwWcaNQEBUtOiAztPXeJn76+RmOj//E/v6+eKbE9Y1rqHy3J2e3b99CMlUt7HK5hKOjx6hU7mNzaxOBQOAlQ6/Ph3feLeCHJw/x7Mcn2N7elvIYnxjD+x9s4e7eNzg4qGBnZ0dqLp1JY/erMp7/+hR3793BhQuvo9tmqyaFP6yl1WuruH+wjy++LCNzLiMBH/IP4uLKEq4X1rCeX8NCLgdnj1Mc3fz4I3z/oIKdmx8iPKqdtOwJIIPMyr9RuI6Vy8vw9Hska1bFCo/qwaB/AKpPhc1mk6y7XC6cf+088hvrWMgtSBPoDWH8BXCT0lVVlY8m11arIqBKtyK9TaM0nlOV1+uVvdrmMOpQN5YQGRNQH6tgNgOUxjNzm7nug2LEsPFPSv+MncYa374AZI7JmYEjdZkAAAAASUVORK5CYII=","alt":"9 Practical Node.js Projects Cover"},{"_id":1447,"title":"Build an App with TypeScript and the Pexels API","url":"/books/build-an-app-with-typescript-and-the-pexels-api/","rating":null,"imageSrc":{"_type":"image","alt":"Build an App with TypeScript and the Pexels API Cover","asset":{"_ref":"image-7d77f32176942d246560ca97a170892e45b0b552-1600x2000-jpg","_type":"reference"},"crop":{"left":0.29559748427672955,"bottom":0.07547169811320753,"_type":"sanity.imageCrop","right":0,"top":0.48050314465408805},"hotspot":{"_type":"sanity.imageHotspot","width":0.7044025157232705,"x":0.6477987421383649,"y":0.7,"height":0.3735849056603774}},"color":"#042c5d","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAEDBAUGAv/EACQQAAEDAwMEAwAAAAAAAAAAAAEAAgMEBRESEyEGIkFRFDJh/8QAFQEBAQAAAAAAAAAAAAAAAAAABAb/xAAbEQEAAgMBAQAAAAAAAAAAAAABAAIDESEEQf/aAAwDAQACEQMRAD8AroaCeaFssZZpPjPKcZbahpy7bPGcZUaC5zQQCJgZpHsKir+r4W1kjXyy9hDZHxtOhh/SrC+Vp2yBJmuMvypuXch7jloaR4Qo8U26wPDtQdyD7QkjyHR3G1kZLXdoKO6Wyl23UtfKHmRwGWjytclZ9gh5/NT0AX+ROHPbCrWc22l+JQQQF2rbYG59oUpCZWoGiFbK7Z//2Q==","alt":"Build an App with TypeScript and the Pexels API Cover"},{"_id":1453,"title":"Svelte: A Beginner's Guide","url":"/books/svelte-a-beginner-s-guide/","rating":5,"imageSrc":{"hotspot":{"width":0.7576687116564419,"x":0.47085889570552153,"y":0.7398895705521471,"height":0.510429447852761,"_type":"sanity.imageHotspot"},"_type":"image","alt":"Svelte: A Beginner's Guide Cover","asset":{"_ref":"image-39d0a41ce6655b8dad811cbbe6731b4a3ca8f0d0-1021x1278-jpg","_type":"reference"},"crop":{"right":0.15030674846625747,"top":0.4846748466257666,"left":0.09202453987730058,"bottom":0.0024478527607361134,"_type":"sanity.imageCrop"}},"color":"#0c516f","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAZABQDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAIDBAUGB//EACEQAAEEAgMAAwEAAAAAAAAAAAEAAgMEERIFITEGE0FR/8QAGAEAAgMAAAAAAAAAAAAAAAAAAgMEBQb/xAAbEQADAAMBAQAAAAAAAAAAAAAAAQIDESFRQf/aAAwDAQACEQMRAD8A5XVoTWZNII3PfjOAp8XDW49XSU3Oa7obddqz4aOxWs/bXjc9wBBDR+K7F+1JHh9dxYPT30r5y/hlVc66ZCzxViOTD65jOM6oWos2DM9rnRHIbr2UIlNeAvJPppfj3Nx8Jx0kdSpG65JkGZ4zqP4AoM163M1wfKdXegAAKGxOnxPWKU966Raz5GlO+IYMYQlO9QjFn//Z","alt":"Svelte: A Beginner's Guide Cover"}],"popularCourses":[{"_id":3203,"title":"React JS Masterclass: Zero To Job Ready With 10 Projects","url":"/premium/courses/react-js-masterclass-zero-to-job-ready-with-10-projects-3203","duration":125393,"rating":4.5,"imageSrc":{"_type":"image","asset":{"_ref":"image-735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179-png","_type":"reference"}},"color":"#083470","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADVElEQVQokT2SbVATBByH97W84rwjO6AwiJhbW9BZEcFZkYqKeOlRAXXKNd4OCo55URiMcMg2BgxQ3tY2GToGLLZBYPFiZSLLkxPGkWFOQUDQKxz0An57OofXh+fu/+m53/1+f8GmQ0b8Ui08lekkqGCI4GMjhJRfJbxmGnHLPBFnltn+zRqv2NeJtK4gMSwirL/B8yo3wcUuggoGCEy3siXFgF+SAcFDYcCRdt4utvO+boCYylHCKsZ9wpf080RZl3nDsUZMzwNe71ohwrTItv+Fo4R+YkP6XgnSffkEHahA8PhBI6LsdpT60zjOtZJj/hFxpdsnjDu7QPqQl5yRNXJG1sn8YZWd1iVE9TcIVbnZWjyKMKeNmAOZxMZ9QFhCEQL/ZDPRR7s5YTTT5tQjMw4h0kwgqbtOWu8iX0+tYL35tw/DtVU+7r9LZINnQ1gySkheNy8mKxElFhL4rhZBdL6drNqLZDWcJ0HTR6TyAkLVOLtMHo5fukf3LS+9c1565rzYZ7yUu/4gvm2GcM3kow4HCcjoxD/VxJNJRgQ7C3v5rPkymc1j7FC72Fb2C5LKCdIds1h+u++Ttd9a9tFz24tl+j4ZPXNIqiZ5tthFoHwY/6xe/D7qYFNSK4Kth88SW9iPrPkKcts08Y2TSCsnSOmcocX9J85ZL7bZZR+OWS/N7mVSbbcRazeEAfJhgrMdSNNMSJIbN0Z5+kgHe9Q/k2u9RnyDm3DVOFFNvyMfvkuXZ4W++VUfD2/5+XtE628S9qjDZ+SDROVayM6pIVdWsfE2mz+0EJrXx8ulFxCVuQgtv4q4dppDtjuornipm/qH2ql/UY2tkmRfQnJyY+WQkktIC78l8aiJ7E91pMm0CB47aOSJFAub051syRskqGiE55TjvKC7zqumBfY6vCR+v07iwAP29f7Fa+YlhPUeQiomfQkji86x+1gXcfJ2pDIzAuHhBsQZBiLyLWz/wk5U2XfEVP7Em6cu845xkj1WDwn2BfY777C3c4Zdrb/yVtMYsdUXiS4fJFbhZLeii/2KDnYUtCL4vKyUohNKvtRqUNTp+KrpFEqjnoozrag7LWgdNqr7nNT091Dl7EbTZUVlMVN+2kBZSyOKk7WU6qo4Xq2mVK3kP7S4c1RneuyCAAAAAElFTkSuQmCC","alt":"React JS Masterclass: Zero To Job Ready With 10 Projects cover","external":true},{"_id":3092,"title":"JavaScript Fundamentals","url":"/premium/courses/javascript-fundamentals-3092","duration":6228,"rating":4.68421,"imageSrc":{"asset":{"_ref":"image-1453c9c11d73b0bd06f44eae6d304b4136d52f00-750x442-jpg","_type":"reference"},"_type":"image"},"color":"#e07a04","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAMABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAQDBQb/xAAhEAABBAEEAwEAAAAAAAAAAAACAQMEEQAFEiExBiJBYf/EABcBAAMBAAAAAAAAAAAAAAAAAAQFBgf/xAAaEQADAQEBAQAAAAAAAAAAAAABAgMAEQQh/9oADAMBAAIRAxEAPwDVg3Hh6Y7Kdv1Fekvn5lL4/LlytYZZnKZtus3tQKQF/ceiOkYq0S2C9pjfEZdzKbSqrzL5VRJMpXpOrfRGrWBDaGXHBt8hFeMMTdcMzVSJbwwPmaqrAfTv/9k=","alt":"JavaScript Fundamentals cover","external":true},{"_id":3201,"title":"Advanced React with TypeScript","url":"/premium/courses/advanced-react-with-typescript-3201","duration":20616,"rating":4.66667,"imageSrc":{"hotspot":{"x":0.44691780821917815,"y":0.5,"height":1,"_type":"sanity.imageHotspot","width":0.7157534246575342},"_type":"image","asset":{"_ref":"image-e3b9af0c05a1b88a96a90097022495f26287cbe4-750x442-jpg","_type":"reference"},"crop":{"right":0.18664383561643838,"top":0,"left":0.08904109589041101,"bottom":0,"_type":"sanity.imageCrop"}},"color":"#043682","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAMABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAMEBQYH/8QAIhAAAgICAgAHAAAAAAAAAAAAAQIDBAAFESEGEhMxQVFh/8QAFgEBAQEAAAAAAAAAAAAAAAAABQME/8QAGxEAAgMAAwAAAAAAAAAAAAAAAQIABBEDFCH/2gAMAwEAAhEDEQA/AMF4B0se/wBZ6gBLhiOPNwMTf1lWIbgyXlgeieFhbsufrOcanf7PV1xHQtyQoTyQp+cTPdsW5ZZbErvI/bMT7n9x3uMUAByHLWVXLN6JLtWzJMzMezhlI8jFjycMyG0xOy44hk//2Q==","alt":"Advanced React with TypeScript cover","external":true},{"_id":3154,"title":"The Complete Nodejs MySQL Login System","url":"/premium/courses/the-complete-nodejs-mysql-login-system-3154","duration":12148,"rating":4.71429,"imageSrc":{"asset":{"_ref":"image-3e433ba26f9254427ee4bbb4bbdd16f03d2b69ca-1280x720-jpg","_type":"reference"},"_type":"image"},"color":"#125a9b","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAALABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAYHA//EACEQAAEEAgICAwAAAAAAAAAAAAIAAQMEERIGMQUHEyJx/8QAFwEAAwEAAAAAAAAAAAAAAAAAAgUGB//EAB8RAAICAQQDAAAAAAAAAAAAAAECABEDBAUGIRIxwf/aAAwDAQACEQMRAD8Ar9qe3C2tej8v2wz74yyR+Q0qs3I5DsCzG4tlnfpUIDLTt1FPYlmaPl87RyELaD0kvF3XJrAqCj4n5D3kFMFt32Jh5rx9Ab5sBDjCEn3LMxTk5SE7/qFpKoQKuSJcE+p//9k=","alt":"The Complete Nodejs MySQL Login System cover","external":true},{"_id":2922,"title":"Write Clean, Pure Code by Following Functional JavaScript Principles","url":"/premium/courses/write-clean-pure-code-by-following-functional-javascript-principles-2922","duration":11273,"rating":4.64062,"imageSrc":{"_type":"image","asset":{"_type":"reference","_ref":"image-2ed4a94dc9d65c6b4e6614ba767d9dca81bf5a4d-600x330-png"}},"color":"#4b4820","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACDUlEQVQokVWS7W/SUBTG91/6yWWJiUv0izF+MJqYxQTFzBE3ymAvMjNgCigbFFjX0pa+7AVWEEisGHWM0XtLkZHNjXtbP5lbGNHkfLn3PE+ec345U6yB/i0BYrVryxBzAHEAj8r9xEWIuf/FU6yBeIBFiAsAcwbet+z6wNH6jgAx2xmynevd1gXbGqjwSjbHGrdcMweQZOJDy5ZIDykmKpuXymkv3zTSjZ90Xc9UqtulEl3TmZO+CNGh5ahdmwd4nCxCEqiYJJ85OX+vljdzO9tidm8/Kxyk5KO4oETiu9GopPKt88bgT7XvFOGNmQNkctnEsmWn9TN/PBxafbSX91bLwYa29LnkLctPM6kH68nFndq3cs8p9WxhYiZ+ko8Uy87oZ8F4KBSYTkZuS8ysJt2tKHcq0oyQm4l89CS1RhHioklwujsbiIeEJ9m85+SbkIpvvV64v+q/lU9NK+y9IvOQzT5JfngWjAUTx18kV3ljBuQhd8nYB5bD/Pi1TPOeN/MLvscb4blYzBd+56dWluYp6tXb2NaRLhhDySRhHHCTBTdZhEgy7ULnOllvL6e5F4GV575FD7X2ci3q3Uj4PzGbopbWIdsZjvTcGJhbgstMhJjrDOmvMCxqAVpa54+jpWaidsp8t2TjUgTDEeDx2JNzGTEvAFQAWACIaf/OtS6Y9pXbIpDU7hjy5ML+Aq5tEBc6JeiVAAAAAElFTkSuQmCC","alt":"Write Clean, Pure Code by Following Functional JavaScript Principles cover","external":true},{"_id":2933,"title":"Setting Up and Kick Starting TypeScript","url":"/premium/courses/setting-up-and-kick-starting-typescript-2933","duration":2648,"rating":4.52174,"imageSrc":{"_type":"image","asset":{"_ref":"image-cb6421d509c9c3fbeefcdb6a0c4eef891f8b597a-600x330-png","_type":"reference"}},"color":"#2c8404","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACLklEQVQokWPY9eQbMtr99PvOx99W3f48+dy7hsOv8nY8Sdv0uP3oq433v+xGVbnryTcGZG27nn7f/fT71kffuk6+8V56V2/KdfW+K/oTrqZueLT85kfcmh9/3Xb/4/rrL1dffLjs/KOKXQ/0Jl+V6bik0nNZf+LVqNX3F1z9sPsZyGgsmrfe+7Di3L1pO453rtzauXpn4ZqzVjOu2sy8EbTkTsyq+7lbn0w/83ztlScbrj3b/uATuubNd94uOXlz+q4T/Rv2TNy0r3bLBZd5N2xm3QxefCt+5a28jbca1p+sn7Gsf9mm9VeewO2Hat7x6POWu+823Xq17tqTNZfuTz1xP2HNLf/FN8LnngloWhXXsqRsysrcipaalgmrTt/a/ewHVPPuJ99BCBRUIKF1V5/N3nemb/ORpo0nG9afruxanO4WU+QY2lHV1Vjb2VRSv2T7sZ2PvuwB62LY+fgTBO14/Gn7ww/Lzt3uWr2tadGa/o17Jy5a1xGZ3i2lPUlKu9M7oiwsodg9qL9r2vorD3c++bzz8SeGOVe3wdHsq9umnl3bvmd2y47pnfvm1k6vKXKyrBGVq5FTyLLVCLTX8DbVTiuI692/cM617XOubmPI2O2OjNJ3u6ftckvf5Za60zV6gYl/lpy7i4x7oIxPmZhThZhltoxnp07CRoeMPR4Zu90Z/NeLIKOA9SIBG0QhyG+tiOc8UbtOccd+ce9lIr6rRDyXivqsFPVfB1UMAOspq2GO2VmvAAAAAElFTkSuQmCC","alt":"Setting Up and Kick Starting TypeScript cover","external":true},{"_id":2908,"title":"Learn JavaScript Syntax and Programming Principles","url":"/premium/courses/learn-javascript-syntax-and-programming-principles-2908","duration":19507,"rating":4.62428,"imageSrc":{"asset":{"_type":"reference","_ref":"image-7885782d7e83823f895c6900abfd9f21ac0af084-600x330-png"},"_type":"image"},"color":"#950964","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACqklEQVQokQGfAmD9ANYEfdgIfdoOfeAUfuQaf+kgf+klfeAodc0sacUwYdA0ZeQ8b+9Dc/FIcu9Mb+1Qa+lSZ+VUZOVXYeRaXwDXBH7aCX7fEIDkFoHpG4HqH4DWJHG0NVKmUzqoYzKnVzi3Q07cP2jxSHLzTXDxUW3uVGrqVmbnWGLlW18A2gV/3gqB5BGD6BeD7RuD3x55tDJUp28rxakd1bwcxKkdp3IquEVN5kRs901x9VJv81Zs71lp61tk51xgAN0GguILhOcRhewXhO4Zg88fbqVROcasHe/bHPbfHuvZHMKqHKddNNFCX/VKcfdSb/ZXbfNbau9dZepeYgDfCIPkDIXpEYbtFoXtGIPHIWimYTHXwBz03x7jzhzWwxrGsxmneiS5R03pR2z4UXD2V230XGvwXmfrX2MA4AiE5Q2G6hKH7xaG7xiFzR5tplQ4zrQd5dIcu6sXno8TpJQUoIIbo0w83URl+VJx+Fhu9l1r82Bn7mFjANoHgd8Mg+QRhOcVg+kYg9MZdaY6R7eTIdC9GaqZFY6AEYl8EIZpGZdAPNI/ZO1Mb+xRbepWauZYZuFZYgC9B3TBC3XED3fGEXfHE3e8EXKYIlKcbybItRm9rheVhRRzYBVsPyWKJ0yvJ2a3L2m0MWixM2WsNGGnNF0AoAdmoQlnogtpogxqog1qnQtqhBRTgVAqtKIZt6oZgmkcYCwuZBZDdw5ZgQ5kfxBjehBidRBfbg9baQ1YAJgHYZcIYpcJZJcKZZYLZpQKZ4EOWG8pOYBTKYFXKGkwMmkOTXUIXncJYnQJYnAJYGoIX2QHXF4FWVkEVwCYBmGWB2GUCGKUCWSUCmWTC2aKDGF6DVZzEU9wEU5wDVN4CV58CmN5CmN0CmJuCl9oCF1iBlpeBVhbBFaP/CNnsx19PAAAAABJRU5ErkJggg==","alt":"Learn JavaScript Syntax and Programming Principles cover","external":true},{"_id":3180,"title":"A Playful Intro to React","url":"/premium/courses/a-playful-intro-to-react-3180","duration":2871,"rating":4.16667,"imageSrc":{"_type":"image","asset":{"_ref":"image-25fbc3c04aee2fbc4da14d1d10e8105d5e6566a2-1550x872-jpg","_type":"reference"}},"color":"#0a1627","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAALABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABgADB//EACQQAAEEAQMDBQAAAAAAAAAAAAMBAgQRAAUGEhMxQQcUIVGR/8QAFgEBAQEAAAAAAAAAAAAAAAAAAwIE/8QAGhEBAAMBAQEAAAAAAAAAAAAAAQACEQMSIf/aAAwDAQACEQMRAD8ALTtQLAhkMKZ0xOZSJxtbXEPphtUWv6YaZOOeUxz6GvJW0id/jC+qgF7DlwS+N5rtTUZkOEroskolTtwdSfmNxuVdTZN6Nj5OoH2sKEd4Qsl9NFtKt3j7yxDtefKLoMMhDOc9zLcq+VyzS8WzuwC/kxJ//9k=","alt":"A Playful Intro to React cover","external":true},{"_id":2979,"title":"Getting Started with Node.js","url":"/premium/courses/getting-started-with-node-js-2979","duration":5545,"rating":4.51163,"imageSrc":{"_type":"image","asset":{"_ref":"image-a18d236f1005f76da43e17f2d1654967e1d5764a-600x330-png","_type":"reference"}},"color":"#a00c2d","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACfUlEQVQokR3OfVPScADA8b0S5TrRCthg7JEhj2OwsY1nMEJ8SDmrE8vM1PJ6OM+sOzv9o+tOU2g4fttgAzGv7ip7Dz28n9I38P18IQyW03h2i0krchYsz+n1WUMuAkpojhKNYeRoGDm2EwoabTqYYxvSHIJboxQI5UGq1pbmIQxOpZmJnena0d7iwelKo7du7K4a+Ypyg27Y4IYNadjxFsoqzvHmCNYaozSMMxMVI1ZWcQFCXVImNPn6xeMP358d/dpR/+x3vr0zl+63nExzGP5kcytjFKAEQCYAGtUxrkOLZjgPvJxyDYNQl5gOT26/enJw8Vz5vav9fW9e7FvL9RMkqIxg6nUaoLEuW+qGcjrGaa4AcAZ0LK46xptDCORxCZK/tL2wqBxuKD+21J9vrMZ2v1bXGBngcYPkO/6UxZU7Pgk4/KqdADcZneTbnqhixyEUEQS68FKYat9ZMN9u9ve2Bo82BpUlKzltxctmpNgN5izudjeY7fjEjk/qMLLJloxgBnhZCEWSAl3YDBRbocJpdenz3GovNWvxVSt2a5CtnRXvWeyEFS2Z4fypPHNervf4SjdS0P1yG2UhFBZ5qviUTB17WEuc7mdrGp3UCF4nhUF2/rz60AzlDVrUCb6frH6dX+tLUxoltD3RE1cQ8sACT+Y3MPGjI2CECyZfARineWM6KZwV755PPjAYScfjmjfWi5e/zKxYiTLAONUdUd1hyA3zCSK3jkuHziCgRD2QAV5OxxMGLQ4yc4NszaCTOpHQMc6MFPry7OUwFlMv5QDkdvFxIrdGpA6QqIrxbZwHV6yGxw2fbPhkzcsZJK9dFTVKBN5YG+dUlP2//Q8cJgj7EkYnSQAAAABJRU5ErkJggg==","alt":"Getting Started with Node.js cover","external":true},{"_id":2921,"title":"Master JavaScript Closures, Data Structures and Map/Reduce","url":"/premium/courses/master-javascript-closures-data-structures-and-map-reduce-2921","duration":11256,"rating":4.69444,"imageSrc":{"_type":"image","asset":{"_ref":"image-d70fbbed6a5833a06601ca85ab4c11f1533e0f59-600x330-png","_type":"reference"}},"color":"#243454","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACeElEQVQokSWSa0/TYBiG+1fYRruWceh6fjc2tm7ARruubw+jjm0dGyPRcT4sJqBCDBjURaJECMHAghjjicTFeIgmJpoofBofQBPib9HN5P7wfLly38lzIU464aSaQZkkzmsdwCAEA2+FAGZXwKLEEUoc6QoME0DHWLWdUpxe2eGV20gJcdEJF610+o1QcixmTQjxPOEzMV7HBKOz12KjNogVfPEiLWbIYIoNWz1+DaWk/3wTxrhkGI7PV/dWDt9mrt/lBm0CmDhIkaEMN5CnxByIF0SlaGTLM5WV7NgcGdBdrb2Ii052AE0tLm4cf9k+/X3z4NVwqQIG82QoS4k5Jmp3B9NROD5dWa1uPtp7sl9ZXgcDmeZ+JomgjOrx6dro7Hrt9e7nH7vH79bub5n5eRAr0i2Yi+as0enNh4/3a7WN6ma6ME2FLFzQMRYiGAc7gK5lp7b3jz5+/fb958n7D5+WV6v92lUmarPRfEgulMqVtfWNpRsrI8VJ0J8mgN6EOYjgvOYBulWYe3Ncvzg//3N52Wg0tnYOhswyE7HZiN0by10ZncyXZmLQ5sUUG9D4AOwCKsqqiLvVnExP1J6+ODtr/Lq4ODk5vfdgp08uEr5hj9/y+Ew6bDFhy+M3vD6YkdRZE0bCSjutIC5aQVlVGMguLN159vxlvV6vHR5NLdxixHQ7q6OcgXIGxhluwcAEk/HDMlRvZ2A8knB6ZcThlZ1UAudhcMi2S7Nzi0ula/OyWeoJplBOx3jDLTTfhgPTLRidgtYXVAbDcg8vOUgJaSMlh1d2UQrGKHQQ9sUtTjS7ew0CNNv+q4YLzdvN624OokzLMFL6Z9hfk9bdpa9u8CMAAAAASUVORK5CYII=","alt":"Master JavaScript Closures, Data Structures and Map/Reduce cover","external":true},{"_id":2980,"title":"Introduction to ES6","url":"/premium/courses/introduction-to-es6-2980","duration":10819,"rating":4.58974,"imageSrc":{"_type":"image","asset":{"_ref":"image-1965c5d7364b659f1c447b9355ea81e941df4a4e-600x330-png","_type":"reference"}},"color":"#5c4428","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACRUlEQVQokUWS3U/aYBSH+/cuuzGZc4648VFgTkDAAgWGU4dCKZR+vLSdmBhd3FyIIzFTCNO2lPaltKWg3e6XwsySc3FunuSc3+9BpNuq0ifUAQklyhwxzhjMTf7REh5NwbVE1xZdb+dnRmuqc6bKQJlSB6TSJ6TbKiIvSZmyRuwUAlvjJirjQOBa4oMpWDpn6+BhIriW8DDhHQisEbvk5T6BqIMalClbY6c6J/fJi7OS0Mp8OS32rivdzqf251xbzN10j2YG/8c5di1xbvCWtuRriC41TJWeGS1VplluJ50NJPKheC6QL4UzeDBdQJP5MElu3/dIQ2WhzEx14IyBqTK61EDGStPW2LnJ3/br6SLqj64VK/FcNRHJBn2RtVQBxY8SR/XkSRun6RRgscFPwhkDW2PHSnMB65xjtDpXh7GMPxzz0ULuolupHRc2i2E0/TaGo8XyViob8IVeJDB/53LfgWCqcx4MZQ/WVZYTcXTrdWl/8+Ly4Ov3g3I9WajEU/vv16Ov1iNrKxsrz1afR2K+zre92RjYOjeWm4h23zBHjKowzXYhlHyTxkOHRDz/MRrc8sUyAWw3+m7Hv5lDN7Y3XoZWMTx4fVV24OLn+wYyHNSgRMEh070hqZPiXiN1UE8SDEaAbJneqTJY+/TD5Y8Kd75bYbGz89LozisVSou05d6/nuGQURR6cEf9umuqQxZqQBmyssxMdOBMBE3jJInWh4zpZb7ouUcg/w3zPHkybKHXb9sb1xIfJ/zcaHnXPhmyNOwvoD/rHrs1/9kAAAAASUVORK5CYII=","alt":"Introduction to ES6 cover","external":true},{"_id":2983,"title":"Introduction to React","url":"/premium/courses/introduction-to-react-2983","duration":11328,"rating":3.75556,"imageSrc":{"_type":"image","asset":{"_ref":"image-85b4ec5231a2e1a6d2cd46ee95641c0ff2d1489d-600x330-png","_type":"reference"}},"color":"#6e1b15","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACY0lEQVQokSXNTW/SYAAA4P4yLyYmxpgs0Xgw2WFXDyaejSdN1HiZh5kdxOnWMWBAKaWU0pZ+0g8YtB0FgbWlLWvffr3+BmO8PpcHcbCLtTq8m0u+QgW9qz3ViPu1uP0zIS5B5zwla4DFEvoa6MPk9+R+oXoiuR3Tm4W2dnTEQU/XRNUXeiHX2bd/xdh5yrYLfViaYjnlwAj32udB8wzweDrhYoEI+g1/PHAX2mapI6vrH2scDdRhrNGAvMr5LrRlOBPK8QDOBGApW6azwy5ynclvxyHXCalGJPX8CXdnyohrsKtR1x0PgUTmTBtacqlQycmn+3dvkq8fMr4LTBmwWKFQqSn5Kr03RWDLoTpwBQIJtjPvht/RrQRHC7EHLRlUjoOj5/7Bw93hQXLyGc7FUqVzspYybWBKeejke+felj2qgUSeFdtKTNVB66xQKDgX4+P3uxeP/ScP/GeP4o9v4YQrJ1yGozlZg4vxn2RTgnW80n2qgYRLI55yQOmnTKsQCGgrWaMSvT7avXwavjpML75BSy5kqmDapTaElgQ9K/fm99ORz7QQl8VCFgNzITPYjG6WBgtv+Kx5Bk6/ZPXv5YSDMz7/7yuj0OhMHSQGE6q0Z7DICj11O2ikUInST7qXWb9e6sy/wZSgrcAbPh+2MhwtFKqci2DUiXrVQO77tnLn6MiyXtlynZ3GRAKx76IJUU3pZs5hhUjkIzxn2hnVSHtXmURmlhQZjE3WLZ7YLNTtUkcc/HIz5d3VJDClSCBibQimHKDq8XUF9Kq5weYzPh0PgKOmwa3r6AJRHxH1xVzaONpfOi7936bvE0kAAAAASUVORK5CYII=","alt":"Introduction to React cover","external":true},{"_id":2937,"title":"Sound Synthesis with the Web Audio API","url":"/premium/courses/sound-synthesis-with-the-web-audio-api-2937","duration":3894,"rating":4.16667,"imageSrc":{"asset":{"_ref":"image-f602eecafd59ad3faad06fe80ee729a35fb8816b-600x330-png","_type":"reference"},"_type":"image"},"color":"#830404","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACnUlEQVQokWP4+nbnp1fbP77e/vXdrm/vdn16vePDq+1f3uz8BuJCSJyI4fPrHdcvLzp9etbj+2ueP95w4dzcc2fmvHiw/u3TzW+ebPzwYtvXtyAjvr7d9enV9jdPNr95sunDi60QQYY3TzZt29HROzt98ZrK5etre2anL1pZef3Sose3Vz+6ter1k01f3uz4+nbX17c73z3b8vj2moc3V71+vPHLmx0gzQ9vr563vCyxxiWkwCoo1zKs1KZtavKJo9NvX152+8rSlw83fHm789uH3V/f73r7bMu96ytuXV76/P66L292fH+/i+HZ/XUrNtelNHtYx2qYhCiHlFv3zE3fuKF91ZLmZQsb9++cfPvaiqcPNzy4u/bUsTlrV7QtW9hwYNfk5/fXg2z+9Gr7ufOz++ZlBmdYu8ca1/RHb9jWMmtaRVJ8cFiod15OTHdnwYyplZMnlFWVJ8dGB0SE+7Y1ZV8+uxCk+eu7XTcuLZ4xuSApziUixLa9KWnHpu6JvSXeXq5W1tb2dtb29pZOjjYODtY2NpY2NtaOjvbFBQlnjs/99n4Xw+OTc46sam3OCk30sIl1sSyN8VrSk99Rnebn6+no7GxmZqauoaGuoaGhqamrp2fnYO/p6ZGfFrF3RcuTk3MZNsZ7Lwx2qrAzSrE3SXYwy7c17PKwKnC18rS1cbazNzcw0FFWMlBWMlBVMdTUdLCy8nByjHWwnBLouDHei6FbiL9diL9ITChJRS5BXT5LWqxcWCBNVNhfWtpXTs5TXNydn9+Pj8+bn99dWNhHRsZPXj5GXKxaiL9biJ+hjYWlhYWlmpUln4M9h5O9mJ21moWlgpW1kJW1gJW1kIWlmJm5jJm5hJm5iIWlgJW1gI2tjJW1kYWllYUFAKOKV3z21N3BAAAAAElFTkSuQmCC","alt":"Sound Synthesis with the Web Audio API cover","external":true},{"_id":3183,"title":"Concurrent Rendering Adventures in React 18","url":"/premium/courses/concurrent-rendering-adventures-in-react-18-3183","duration":4591,"rating":5,"imageSrc":{"_type":"image","asset":{"_ref":"image-577ec0a5cf23d3e12fc305a7f2510ae3790cb01b-1801x1050-jpg","_type":"reference"}},"color":"#04947c","lowres":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAMABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAQGCP/EACMQAAICAgECBwAAAAAAAAAAAAEEAgMABRESEwYVISIxQVL/xAAWAQEBAQAAAAAAAAAAAAAAAAAAAQL/xAAZEQEAAwEBAAAAAAAAAAAAAAABAAIRITH/2gAMAwEAAhEDEQA/AM96bQ7F1SNyys7Kj9jKTZ+EX2K6jr9bZX0RHcMiAOTkOi+3TV26mLYQ/MZEDHfO9nUD23mI88c+85nb9DIyqixDbJ3a9+xZmPTbD5AwxVxm5pmdzFkrLJHkykfU4ZTzsT//2Q==","alt":"Concurrent Rendering Adventures in React 18 cover","external":true},{"_id":2992,"title":"Creating a REST API with Node.js","url":"/premium/courses/creating-a-rest-api-with-node-js-2992","duration":9977,"rating":4.16667,"imageSrc":{"_type":"image","asset":{"_ref":"image-959882765651df91944b3398d57b56d71e6cb9a6-600x330-png","_type":"reference"}},"color":"#0e53a5","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACqklEQVQokQGfAmD9AKC20K3B1rfJ3LDD2pKx0HCdyluTyVGPyEeKyECIyjKBySp8xkOGxVyRxF+QwVSIvEuBtzRwsBhcqQ9UpACWstObt9WattWVstOAqNBXlc1IjcxOj8tMj8tFi8wygsosfcdBhcVEhMM9f783erwsc7cgZ7EUXKoQVqUAk7PWl7XXmLbXk7PWfKjUS5LSN4nRPozQOorPMITOLIDLRYvJVZDHM37DHnG/G268Fmi3E2OyElysEVenAKjC3rDH37PI4KbB3YSv2UiU1iiF1CWE0yOB0iF/0DWGz2Wdzmabyy59xhVvwhluvxdquhJjtRJesBNbrAC3xdK5ydi5zN6vyd+Mt91IldclhNQjg9Qkg9MshdJIkdFfms9Mj8wtf8krfsI8hrk9hbQtdLMkZ6siYaIAfYGChI2Tlqawqr7Mnb7ZZ6PWTZbUUprYWJ3YYKDYb6bXcaTSZZrLYJnAZqStdbOYebSYaZycSnGEMlJnACkqJzs+PHB1cqCmpKWzuJWtvZKuxJy3zaO80afA1KvC16S5yZWmro2nl46/iJfOhp7RjI+4hlxyWSk0KAATEw4nJyJnZ2CMjIOGiH6NkIianZehpJ+kqKOrsK2zuLehpZ2BhXB+kWaRvnij1I2n1pOWvoNecU4mLhgAKSghNDQtW1pTcG5mcXBmgoF2j42CkpCFlJKGm5iKo5+MlI9ycnFMc31RjKtxm8eFm8qHh6l1UWFBJC0UAFxaUWJgV3FuZXt4b4B9dIuJf5WRhZ2WhqWchamdfqeacZmOXoV9S397TIWLW46kcIymdml6VDlEJR4mDgCKhnyPi4GTj4OLiH19enGBf3SUjn2mm320pHu1o3OnmGOXjFSRhk+Ng06Gfk2Kh2GChGpXXD8yOhkiKg+KHVqa24T2qAAAAABJRU5ErkJggg==","alt":"Creating a REST API with Node.js cover","external":true}],"paths":[{"_id":1,"title":"Full Stack JavaScript Developer","url":"/paths/full-stack-javascript-developer/","imageSrc":{"crop":{"bottom":0,"_type":"sanity.imageCrop","right":0.01405975395430581,"top":0.33910043611273855,"left":0.6485061511423545},"hotspot":{"_type":"sanity.imageHotspot","width":0.33391915641476333,"x":0.8189806678383125,"y":0.6695502180563693,"height":0.6608995638872615},"_type":"image","asset":{"_ref":"image-d6f315a4e461293667850794413bd5c95ee8488c-704x405-png","_type":"reference"}},"color":"#842c4c","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAAsTAAALEwEAmpwYAAAC50lEQVQokXWSW08bVxSF599BHM+ZOSMD5laUUIlSQ4xnIMYxdxzfDcYyMMbBOMXcUwJVkpZIadoKJWqC3YarzV+p+FQZCG95WNra++HTWltL6W86ujLbK1gdFXxtZbzu8vUc/K7CYOfN3eyoMNBaps91hMf4xCPjA6bxO8PGK0blDtPyOVFpk9TTKFZnhdDACYnAGdGhUyb7j+/2mZFzUsFzEsNnTPYdY7Z+wmscYhnvbmHbTMsiUbnIjJ4io4dR6g7C5inZ6SrzoSrpsQvSY+fXey5aYyl+iR2tkhr+QqDjkCF5QFC+ZEKu81Q+I6FnSGtR5sU4OeFHGXCXmfaekA1VsaO1Oy1GauRiNQqpGsuxM+b8fzPZ+RujxteIiyS1FGkxhS2fUHRZlAwPSv1/9ag3gEuWEpfXIDtSJR+7oJg8ZSVSxg78Sbr3F2a61kg1LZDSIsw6g2SdPtY7Bzjw+njzsBtlqOsfkk/Or13VQfl4DTt8gR06ZSX+hbXkEVupj2zH37M59YpVq4TdniDtfEzmXi95Zzc7P/p4G5vktdl743DCc0zEOiVinRAf+pek9ZlZ85Cs9Y6c9Zqif4+14S3WrQKlnlmeNQVYcPRgN7Sz7GjB/sFiLprFNgMo9Sp4W47wuT9juT/gd//BiPtXpty7hJtLJJrzzDVnWGiOkXeNs2IMUhQ9FBxtFBo0Co1Okg8eEBwJkvB4UOq96jM+4pV/MSjfEpD7jOkbhPRlYnqWWS1OVkyQE49ZEf2URDebahvrDp1So4PnjQ1kWlXC/c1kHxoo9V6Zxnv8xhtGjRdMyVUiMkdKn73u1aI2wrJm8pPoZUN08UK0sKtKdp2Cnfv32XTcY1V3UGxxsuFyogwZB1cBY59xuUlIFojXXekJstokS5qfFfGIkvieLdHOz8LFnqqzrwr2VZU9VeXlrfaEyr4QKEG5+9+43Lh6KpdvYXHmtYlbWD9roptt0cauarCnanewb+l/0XxhfMHoSXEAAAAASUVORK5CYII=","alt":"Full Stack JavaScript Developer cover"},{"_id":2,"title":"Web Development Basics","url":"/paths/web-development-basics/","imageSrc":{"hotspot":{"y":0.6802425741500142,"height":0.6395148516999717,"_type":"sanity.imageHotspot","width":0.3286467486818987,"x":0.8216168717047448},"_type":"image","asset":{"_ref":"image-699da1a83858c0412585a95a7371bf40ca1c48eb-704x405-png","_type":"reference"},"crop":{"_type":"sanity.imageCrop","right":0.014059753954305698,"top":0.3452103538805355,"left":0.6572934973637955,"bottom":0}},"color":"#a40480","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAAsTAAALEwEAmpwYAAADEElEQVQokW2S209bBRzHz4BC7z3tKXjJiA/T+OCID/iwdHsguokmOrVjbIaHEbOH6Vyim2YkQ2QqRVouLae055Se0/V+pdAOxloIcZWVJfuTDJ8YYRpjfPi+/B4++fySj7DdefHwsfkSTfEKTdfnNGxX2Ooa4eGJUeodY9Q6x1nvuk6160vWDLeodN+m1H2XYs89CsZp8qYZsiY/GfMiacsyQsMywpPTNzl47x4Hwz/SGvyObXGc2okxNjqusd5xnbXOG1S6blE2/A2bpGC8T97kI2v2k7EskbaGSVmjCA3HKPue73l+eY7nVxd4Ouyj+fpttnq/ZuvVO2ydnGCzf5J6/zS1/l+ovuKj6PCRtcySsvrRbfNothCaPUrCriE0XWPsn53g2Wd+nnkXOfAGaV0I8NtQgNaHYVoXVVpenSfeJHsfJdn2xCmdDJGwB1DtflYc80RcQRR3FFXSEBq9X/D7uSkOPlmg/WmI9uUoTy8ptD5W2DsfYWdIYfd9nZ3hFI+HUtTe1ki/vIwiziM7F5BdIRKvRakMaKRO6QjbfTdoDc3Q9sq0RxXaV+Psj2jsXVCovxGgLPkouf0Ue5couGXSrjAxMUTYGSTklJHdKpmBHJsfbJB/p4zwUPyK5ltT7J6ZY9ezyM7ZZRpnZDYHQlT65siZZskYA6RNQVLmFXRbFEWMsCKpyFIcuTdNdPARqrdN5NweQrXnJuvWb6k67rImTlJxTlN2zlAUfyVnDZCx/JWDTMqqkLTF0RwJIs44IUkjKCUI9WVQPTUS402U8zWEiuEbyoY7FA0TFLp/IN9zn5zRR9YUIGMOkrKskLTGeGDTSdjTaI48EVeWoJRkwZ1k6aUUKU+SzWs62XdVhP9GmjPP/csqStIaJ2F7gG7PojlKxMU1VNcaYanIkjvDojuJckonPbiK9qaOUDBOHeaNP5E7ivTYKn1kpf5jpdvzxB0VVsV1VsUaMWcd1bXBilRBlgpHi7hLKFIVIW/6+Y+cafYwa57/3xd1e+EFbINVsU7sxVad9SNwzFU7nvP49idYQCvNmDDrewAAAABJRU5ErkJggg==","alt":"Web Development Basics cover"},{"_id":6,"title":"Vue Front End Development","url":"/paths/vue-front-end-development/","imageSrc":{"crop":{"right":0.018835616438356073,"top":0.31253170979198375,"left":0.6832191780821907,"bottom":0,"_type":"sanity.imageCrop"},"hotspot":{"x":0.8476027397260268,"y":0.6696600710299341,"height":0.6368679181464568,"_type":"sanity.imageHotspot","width":0.2671232876712343},"_type":"image","asset":{"_type":"reference","_ref":"image-8e1275fc547585c126dcb0cb7667205911b29f3c-704x405-png"}},"color":"#3d9f6c","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAAsTAAALEwEAmpwYAAADKElEQVQokXXSa0+aBwCG4fenYbe1icuarovNMhuTqvHQKlpt3abWqXVWRSsKWlHaKopnQOWkiIAgKKcih4KiomVOutjUrNnJLN5ZZMs+LNkfeD489yWIpqsvROoqRONicsbFXJ2p5TNdPXn6FgpMTyix9CBek1G3rqDJ/ZInW2p6A3M8Cy3yMmpmKr6GLunCfODFdhREEKnFiBTl5PSV8LGsjFxVDTcXmsg3tlG00sU9q5RaxyANLiWPN1V0+6aRv9KiDBuYeG1hfseBYd+D9TCAMx1GEE2IyZGX8lFnEdckJVwfvs+tqUYKNK0Ua9upWOymzjJAi3sUiW8aWVDLSNjAeGyFuR07+j03q4cBNtIRfD/GEXJUlVzpL+VqRzGfdpbxuVTMl0N1FDxvoFDRQNnIdzzU9NLuVCH1z6EILTEWXWY2YWdpz40l5cfxJoT7OEows4twZbyKT2Tl5ErKuNFTQV5vNbcHv6ZwuIFieT3l8kfUjnbQvDCIZHUMxZaOydgq2sQ6xqSHtVQAS8qHKbXFxg8RhGvqGnIHK7khreSWrIb8gTruKBoofd7MvZEWqhStPBhpp1H1lA7dMEq3jrmYDW3YxlLYgeW1B03UzmjUjPlgC+H6/Ld8MVXPV1NN3Jl7TJmmg6qFHuoMMprMQ7QtK+laGaXfNonSo2M2YsWw60YfdbIUsGEKOlB7jQx4Neh33Qh5+mbyjd9TtCyhwtrHA/szGl1K2jzjdPtmkAd12aLq2CqanXWM+5usHQax7wewRj1Ygi4mXEvIHNOY4m6E26Z2Cle6uPsfHtmi/8Pj8ivfcRzvQYSNmB+9z8bMppnNvW2EohUJ5au93LcPUO8codUzRpd3iv6ghuFtPapLHol/eKT8uNJh/CcJoj8dEM+kiKf3iKf3SZ4c8fbsFOGuVXpRbZPzjXM4a63TO0lfYB7F9t88ZhI2FpMb2ZLO9HbWWuTtPsl3ad68z5A5O+Xsl5/57Y/fOT8/R6iyyf98uD508WjjBe1bEzz1zzIYWuBFxMRk3Ip215mtZz96xeZxjFAmSeL0iMP3J2Q+vOPs1w//jl0O/gVrhMw6eP5p6gAAAABJRU5ErkJggg==","alt":"Vue Front End Development cover"},{"_id":8,"title":"Advanced JavaScript","url":"/paths/advanced-javascript/","imageSrc":{"crop":{"bottom":0,"_type":"sanity.imageCrop","right":0.023972602739726012,"top":0.32741417216303065,"left":0.6746575342465757},"hotspot":{"x":0.8253424657534248,"y":0.6637070860815153,"height":0.6725858278369694,"_type":"sanity.imageHotspot","width":0.3013698630136982},"_type":"image","asset":{"_ref":"image-cc0ad11bff70c1f3b4c29381edf0a1778e6a7efb-704x405-png","_type":"reference"}},"color":"#685b1b","lowres":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAAsTAAALEwEAmpwYAAACuklEQVQokS2T7W9TZRiH+19qSBSTJer4YEyEMCP4gfgCZolCeDFDFJjtusEWQNz7ugHVdaPr2g5Yp27JJLpsa7tzzk6f8/Sc575uc6gf7q/Xff9y/e5M7M6JH57lsHWag9YZDlsDHLbOc9i6wEHzaw6agwThDRJ3F9FRhAmExwizCEsIvyE8R6gBL8kE4QD1Fx9SWDrJ3PxJpmfeY3K6j9n5U8wtfMRC4TQvNy8SmjuIjiM8QnQa0QVEnyG6AloBfQHaIOMFZymt9nF//C3yo2+TzZ3g5+w75Ef7yOXfJ5vrZ3Hpc/b2b5G4BzimSGSeRJ6QyDJOyjip46SBsE3muPMpa+sfMD5xgpF8Ou+SH0sX9JMb6efu8Cl+nfyMv3aGsN1fiN0sJirQMc/omBIds4YxNWy0SZLskIm659h9fYZq/WPW1j+hsj5ApXqe2sYXVKpfUa58Q+OPGzTbY8RuBtst4AdLeH4Rz1/B8yocexUif50k2iKTyAVs/CWRvYSx32LsVYwdIrK3iWyWqHuPbvIIJzM4FonsU3y/yJFXegPzvTphe5W4XUTCGhnRi4gOgl4B/R70Fugw6CjoBOhjRGcQXcRRJLLL+EEKKxMcbxCGDaKjEsnBFOKvkBEGcXyH4zqOH3DcwTGC43+jTCMUEC0irGDtc3y/jO/XCMMtjNkmapfo7j3EtX9PL7yM6DVEbyKaViOH6H1E03pMISwg9OohVLDdKkFQIwg26ZgdjPkbc1TD7heIvTeRryMMIXq7B+Meog97MJ1H9ClCCdE1hA3i+BXGbGGiHaz9B2v3sZ1/6YavSaJmGvmmCD8hZBEdQ/QBopOIziH6BNFlhDJoHWggso1zuzi3h3MtnAtwLkJcjIikwB8T0WERzSM6gaQS6EnovdUqolXgFeifoLuge0ATCAALOFBQVf4DCipVlI8gHY0AAAAASUVORK5CYII=","alt":"Advanced JavaScript cover"}]},"numberOfPages":1},"__N_SSG":true},"page":"/library/[[...filters]]","query":{"filters":["all","javascript"]},"buildId":"p8djBJdr9ow-W6E7uh0-p","assetPrefix":"/premium","isFallback":false,"gsp":true,"scriptLoader":[]}</script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10