1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
1<script id="hs-script-loader" type="text/javascript" async="" defer="" src="https://js-na2.hs-scripts.com/4342163.js"></script>
1<meta http-equiv="x-ua-compatible" content="ie=edge"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><meta name="generator" content="Gatsby 5.16.1"/><meta name="theme-color" content="#663399"/><meta name="description" content="Enabling businesses and empowering users through high-impact digital experiences. Our core expertise is Ruby on Rails, React, Typescript, ReScript, high performance and Gatsby." data-gatsby-head="true"/><meta property="og:title" content="About us, our team and values" data-gatsby-head="true"/><meta property="og:description" content="Enabling businesses and empowering users through high-impact digital experiences. Our core expertise is Ruby on Rails, React, Typescript, ReScript, high performance and Gatsby." data-gatsby-head="true"/><meta property="og:type" content="website" data-gatsby-head="true"/><meta property="og:url" content="https://shakacode.com/about/" data-gatsby-head="true"/><meta property="og:site_name" content="ShakaCode" data-gatsby-head="true"/><meta property="og:image" content="https://shakacode.com/shakacode-og.png" data-gatsby-head="true"/><meta name="image" content="https://shakacode.com/shakacode-og.png" data-gatsby-head="true"/><meta name="twitter:card" content="summary_large_image" data-gatsby-head="true"/><meta name="twitter:title" content="About us, our team and values" data-gatsby-head="true"/><meta name="twitter:description" content="Enabling businesses and empowering users through high-impact digital experiences. Our core expertise is Ruby on Rails, React, Typescript, ReScript, high performance and Gatsby." data-gatsby-head="true"/><meta name="twitter:image" content="https://shakacode.com/shakacode-og.png" data-gatsby-head="true"/><link rel="icon" href="/favicon-32x32.png?v=f8282b9cf340b9549c7fa2ef690d0caf" type="image/png"/><link rel="manifest" href="/manifest.webmanifest" crossorigin="anonymous"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png?v=f8282b9cf340b9549c7fa2ef690d0caf"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png?v=f8282b9cf340b9549c7fa2ef690d0caf"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png?v=f8282b9cf340b9549c7fa2ef690d0caf"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png?v=f8282b9cf340b9549c7fa2ef690d0caf"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png?v=f8282b9cf340b9549c7fa2ef690d0caf"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png?v=f8282b9cf340b9549c7fa2ef690d0caf"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png?v=f8282b9cf340b9549c7fa2ef690d0caf"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png?v=f8282b9cf340b9549c7fa2ef690d0caf"/><link rel="sitemap" type="application/xml" href="/sitemap/sitemap-index.xml"/><title data-gatsby-head="true">About us, our team and values | Shakacode</title><link rel="canonical" href="https://shakacode.com/about/" data-gatsby-head="true"/>
1<script>(function loadFontsStylesheet() { 2 function injectFontsStylesheet() { 3 if (document.getElementById("sc-google-fonts-stylesheet")) { 4 return; 5 } 6 7 var stylesheet = document.createElement("link"); 8 stylesheet.id = "sc-google-fonts-stylesheet"; 9 stylesheet.rel = "stylesheet"; 10 stylesheet.href = "https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700;800;900&family=Open+Sans:ital,wght@0,400;0,600;0,700;0,800;1,400&display=optional"; 11 stylesheet.media = "print"; 12 stylesheet.onload = function onFontsLoaded() { 13 stylesheet.media = "all"; 14 }; 15 document.head.appendChild(stylesheet); 16 } 17 18 // Delay font CSS injection until after the initial load to avoid first-render 19 // font swaps that can trigger measurable CLS on hero/header content. 20 function scheduleInjection() { 21 if (typeof window.requestIdleCallback === "function") { 22 window.requestIdleCallback(injectFontsStylesheet, { timeout: 2000 }); 23 return; 24 } 25 window.setTimeout(injectFontsStylesheet, 200); 26 } 27 28 if (document.readyState === "complete") { 29 scheduleInjection(); 30 return; 31 } 32 33 window.addEventListener("load", scheduleInjection, { once: true }); 34})();</script>
34<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700;800;900&family=Open+Sans:ital,wght@0,400;0,600;0,700;0,800;1,400&display=optional"/></noscript><style data-href="/styles.53ec77ec03f8dceb1193.css" data-identity="gatsby-global-css">@charset "UTF-8";code[class*=language-],pre[class*=language-]{word-wrap:normal;background:none;color:#000;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;-webkit-hyphens:none;hyphens:none;line-height:1.5;tab-size:4;text-align:left;text-shadow:0 1px #fff;white-space:pre;word-break:normal;word-spacing:normal}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{background:#b3d4fc;text-shadow:none}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{margin:.5em 0;overflow:auto;padding:1em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{background:hsla(0,0%,100%,.5);color:#9a6e3a}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.slick-loading .slick-list{background:#fff url(data:image/gif;base64,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) 50% no-repeat}@font-face{font-family:slick;font-style:normal;font-weight:400;src:url(data:application/vnd.ms-fontobject;base64,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);src:url(data:application/vnd.ms-fontobject;base64,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?#iefix) format("embedded-opentype"),url(data:font/woff;base64,d09GRk9UVE8AAAVkAAsAAAAAB1wAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAABCAAAAi4AAAKbH/pWDkZGVE0AAAM4AAAAGgAAABxt0civR0RFRgAAA1QAAAAcAAAAIAAyAARPUy8yAAADcAAAAFIAAABgUBj/rmNtYXAAAAPEAAAAUAAAAWIiC0SwaGVhZAAABBQAAAAuAAAANgABMftoaGVhAAAERAAAABwAAAAkA+UCA2htdHgAAARgAAAADgAAAA4ESgBKbWF4cAAABHAAAAAGAAAABgAFUABuYW1lAAAEeAAAANwAAAFuBSeBwnBvc3QAAAVUAAAAEAAAACAAAwABeJw9ks9vEkEUx2cpWyeUoFYgNkHi2Wt7N3rVm3cTs3UVLC4LxIWEQvi1P3i7O1tYLJDAmlgKGEhQrsajf0j7J3jYTXrQWUrMJG+++b55n5e8NwwKBhHDMLv5kxT3ATEBxKBn3qOAl9zxHgb1MAPhHQgHkyF08Gr/L8B/Eb6zWnmCJ7AJVLubQOheArXvJ1A4EXi6j4I+Zg9F0QFKvsnlBCmXeve+sFEnb/nCptdtQ4QYhVFRAT1HrF8UQK/RL/SbmUbclsvGVFXRZKDHUE38cc4qpkbAAsuwiImvro+ufcfaOIQ6szlrmjRJDaKZKnbjN3GWKIbiIzRFUfCffuxxKOL+3LDlDVvx2TdxN84qZEsnhNBa6pgm2dAsnzbLsETdsmRFxUeHV4e+I2/ptN8TyqV8T3Dt29t7EYOuajVIw2y1Wy3M86w0zg/Fz2IvawmQAUHOVrPVfLkoScVynsqsTG0MGUs4z55nh3mnOJa+li+rl9WpPIcFfDubDeaDC+fLBdYN3QADzLauGfj4B6sZmq6CCpqmtSvF0qlUl2qf5AJIUCSlTqlb7lUG+LRfGzZGzZEyBgccMu6MuqPecNDvD4Y9Kjtj4gD+DsvKVMTcMdtqtZtmkzQstQvYje7Syep0PDSAhSOeHYXYWThEF//A/0YvYV1fSQtpKU5STtrhbQ444OtpKSWJIg3pOg8cBs7maTY1EZf07aq+hjWs7IWzdCYTGhb2CtZ47x+Uhx28AAB4nGNgYGBkAIJz765vANHnCyvqYTQAWnkHswAAeJxjYGRgYOADYgkGEGBiYARCFjAG8RgABHYAN3icY2BmYmCcwMDKwMHow5jGwMDgDqW/MkgytDAwMDGwcjKAQQMDAyOQUmCAgoA01xQGB4ZExUmMD/4/YNBjvP3/NgNEDQPjbbBKBQZGADfLDgsAAHicY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQzMCQqKClOUJz0/z9YHRLv/+L7D+8V3cuHmgAHjGwM6ELUByxUMIOZCmbgAAA5LQ8XeJxjYGRgYABiO68w73h+m68M3EwMIHC+sKIeTqsyqDLeZrwN5HIwgKUB/aYJUgAAeJxjYGRgYLzNwMCgx8QAAkA2IwMqYAIAMGIB7QIAAAACAAAlACUAJQAlAAAAAFAAAAUAAHicbY49asNAEIU/2ZJDfkiRIvXapU
34FCEqpcptABUrg3ZhEiQoKVfY9UqVLlGDlADpAT5e16IUWysMz3hjfzBrjjjQT/EjKpCy+4YhN5yZoxcirPe+SMWz4jr6S+5UzSa3VuwpTnBfc8RF7yxDZyKs9r5IxHPiKv1P9iZqDnyAvMQ39UecbScVb/gJO03Xk4CFom3XYK1clhMdQUlKo7/d9NF13RkIdfy+MV7TSe2sl11tRFaXYmJKpWTd7kdVnJ8veevZKc+n3I93t9Jnvr5n4aTVWU/0z9AI2qMkV4nGNgZkAGjAxoAAAAjgAF) format("woff"),url(data:font/ttf;base64,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) format("truetype"),url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLz4=#slick) format("svg")}.slick-next,.slick-prev{border:none;cursor:pointer;display:block;font-size:0;height:20px;line-height:0;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:20px}.slick-next,.slick-next:focus,.slick-next:hover,.slick-prev,.slick-prev:focus,.slick-prev:hover{background:transparent;color:transparent;outline:none}.slick-next:focus:before,.slick-next:hover:before,.slick-prev:focus:before,.slick-prev:hover:before{opacity:1}.slick-next.slick-disabled:before,.slick-prev.slick-disabled:before{opacity:.25}.slick-next:before,.slick-prev:before{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#fff;font-family:slick;font-size:20px;line-height:1;opacity:.75}.slick-prev{left:-25px}[dir=rtl] .slick-prev{left:auto;right:-25px}.slick-prev:before{content:"â"}[dir=rtl] .slick-prev:before{content:"â"}.slick-next{right:-25px}[dir=rtl] .slick-next{left:-25px;right:auto}.slick-next:before{content:"â"}[dir=rtl] .slick-next:before{content:"â"}.slick-dotted.slick-slider{margin-bottom:30px}.slick-dots{bottom:-25px;display:block;list-style:none;margin:0;padding:0;position:absolute;text-align:center;width:100%}.slick-dots li{display:inline-block;margin:0 5px;padding:0;position:relative}
34.slick-dots li,.slick-dots li button{cursor:pointer;height:20px;width:20px}.slick-dots li button{background:transparent;border:0;color:transparent;display:block;font-size:0;line-height:0;outline:none;padding:5px}.slick-dots li button:focus,.slick-dots li button:hover{outline:none}.slick-dots li button:focus:before,.slick-dots li button:hover:before{opacity:1}.slick-dots li button:before{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#000;content:"â¢";font-family:slick;font-size:6px;height:20px;left:0;line-height:20px;opacity:.25;position:absolute;text-align:center;top:0;width:20px}.slick-dots li.slick-active button:before{color:#000;opacity:.75}.slick-slider{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;box-sizing:border-box;touch-action:pan-y;-webkit-user-select:none;user-select:none;-khtml-user-select:none}.slick-list,.slick-slider{display:block;position:relative}.slick-list{margin:0;overflow:hidden;padding:0}.slick-list:focus{outline:none}.slick-list.dragging{cursor:pointer;cursor:hand}.slick-slider .slick-list,.slick-slider .slick-track{transform:translateZ(0)}.slick-track{display:block;left:0;margin-left:auto;margin-right:auto;position:relative;top:0}.slick-track:after,.slick-track:before{content:"";display:table}.slick-track:after{clear:both}.slick-loading .slick-track{visibility:hidden}.slick-slide{display:none;float:left;height:100%;min-height:1px}[dir=rtl] .slick-slide{float:right}.slick-slide img{display:block}.slick-slide.slick-loading img{display:none}.slick-slide.dragging img{pointer-events:none}.slick-initialized .slick-slide{display:block}.slick-loading .slick-slide{visibility:hidden}.slick-vertical .slick-slide{border:1px solid transparent;display:block;height:auto}.slick-arrow.slick-hidden{display:none}</style><style data-styled="" data-styled-version="6.4.1">.idZSLk{max-width:100%;width:8px;height:8px;}/*!sc*/ 35.ijOdlI{max-width:100%;width:64px;height:64px;}/*!sc*/ 36data-styled.g1[id="SvgIcon__StyledSvgIcon-sc-pvlift-0"]{content:"idZSLk,ijOdlI,"}/*!sc*/ 37.bHoJxm{border-radius:32px;border-color:transparent;box-shadow:none;background-color:#EE2B16;padding:10px 35px;color:#fff;font-weight:500;cursor:pointer;}/*!sc*/ 38.bHoJxm:hover{color:white;background-color:#fd503d;-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ 39data-styled.g4[id="Button__ButtonLink-sc-xxhl33-1"]{content:"bHoJxm,"}/*!sc*/ 40.hwslQr{border-radius:32px;border-color:#B11100;border-width:2px;border-style:solid;box-shadow:none;background-color:transparent;padding:10px 35px;color:#B11100;font-weight:500;cursor:pointer;}/*!sc*/ 41.hwslQr:hover{border-color:#EE2B16;}/*!sc*/ 42data-styled.g7[id="Button__ButtonOutlinedLink-sc-xxhl33-4"]{content:"hwslQr,"}/*!sc*/ 43.gtLCY{border-radius:32px;border-color:#B11100;border-width:2px;border-style:solid;box-shadow:none;background-color:transparent;padding:10px 35px;color:#B11100;font-weight:500;cursor:pointer;}/*!sc*/ 44.gtLCY:hover{border-color:#EE2B16;}/*!sc*/ 45data-styled.g8[id="Button__ButtonOutlinedGatsbyLink-sc-xxhl33-5"]{content:"gtLCY,"}/*!sc*/ 46.Idquw{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-text-decoration:none;text-decoration:none;font-weight:600;box-sizing:border-box;padding:calc(20px - 2px);padding-left:40px;padding-right:32px;font-size:18px;line-height:24px;}/*!sc*/ 47.Idquw>*{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;}/*!sc*/ 48.Idquw svg{width:24px;height:24px;margin-left:16px;}/*!sc*/ 49@media (max-width:64.25em){.Idquw{padding:calc(12px - 2px);padding-left:32px;padding-right:24px;font-size:16px;line-height:24px;}.Idquw svg{width:20px;height:20px;margin-left:16px;}}/*!sc*/ 50@media (max-width:51.125em){.Idquw{padding:calc(8px - 2px);padding-left:24px;padding-right:16px;font-size:14px;line-height:24px;}.Idquw svg{width:16px;height:16px;margin-left:8px;}}/*!sc*/ 51@media (max-width:38em){.Idquw{font-size:13px;line-height:16px;padding:calc(8px - 2px);padding-left:16px;padding-right:16px;}.Idquw svg{width:16px;height:16px;margin-left:8px;}}/*!sc*/ 52data-styled.g10[id="GoToButton__GoToButtonStyled-sc-1abjbqg-0"]{content:"Idquw,"}/*!sc*/ 53.hoQDjm{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-text-decoration:none;text-decoration:none;font-weight:600;box-sizing:border-box;padding:calc(8px - 2px);padding-left:24px;padding-right:16px;font-size:14px;line-height:24px;}/*!sc*/ 54.hoQDjm>*{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;}/*!sc*/ 55.hoQDjm svg{width:16px;height:16px;margin-left:8px;}/*!sc*/ 56@media (max-width:64.25em){.hoQDjm{font-size:13px;line-height:16px;padding:calc(8px - 2px);padding-left:16px;padding-right:16px;}.hoQDjm svg{width:16px;height:16px;margin-left:8px;}}/*!sc*/ 57@media (max-width:51.125em){.hoQDjm{font-size:13px;line-height:16px;padding:calc(8px - 2px);padding-left:16px;padding-right:16px;}.hoQDjm svg{width:16px;height:16px;margin-left:8px;}}/*!sc*/ 58@media (max-width:38em){.hoQDjm{font-size:13px;line-height:16px;padding:calc(8px - 2px);padding-left:16px;padding-right:16px;}.hoQDjm svg{width:16px;height:16px;margin-left:8px;}}/*!sc*/ 59data-styled.g11[id="GoToButton__GoToButtonGatsbyStyled-sc-1abjbqg-1"]{content:"hoQ
59Djm,"}/*!sc*/ 60.bkbNNW{font-weight:900;}/*!sc*/ 61.bkbNNW,.bkbNNW *{font-size:44px;line-height:56px;}/*!sc*/ 62@media (max-width:51.125em){.bkbNNW,.bkbNNW *{font-size:26px;line-height:32px;}}/*!sc*/ 63data-styled.g13[id="H1-sc-hj2kha-0"]{content:"bkbNNW,"}/*!sc*/ 64.QTrsV{font-weight:900;}/*!sc*/ 65.QTrsV,.QTrsV *{font-size:36px;line-height:48px;}/*!sc*/ 66@media (max-width:51.125em){.QTrsV,.QTrsV *{font-size:26px;line-height:32px;}}/*!sc*/ 67data-styled.g14[id="H2-sc-1u39ok0-0"]{content:"QTrsV,"}/*!sc*/ 68.jrMOUV{font-weight:800;}/*!sc*/ 69.jrMOUV,.jrMOUV *{font-size:26px;line-height:32px;}/*!sc*/ 70@media (max-width:51.125em){.jrMOUV,.jrMOUV *{font-size:22px;line-height:32px;}}/*!sc*/ 71data-styled.g15[id="H3-sc-1emy8q1-0"]{content:"jrMOUV,"}/*!sc*/ 72.bcZTSE{font-weight:800;}/*!sc*/ 73.bcZTSE,.bcZTSE *{font-size:22px;line-height:32px;}/*!sc*/ 74@media (max-width:51.125em){.bcZTSE,.bcZTSE *{font-size:18px;line-height:24px;}}/*!sc*/ 75data-styled.g16[id="H4-sc-k1osi8-0"]{content:"bcZTSE,"}/*!sc*/ 76.dIDHqE{font-weight:600;}/*!sc*/ 77.dIDHqE,.dIDHqE *{font-size:16px;line-height:24px;}/*!sc*/ 78@media (max-width:51.125em){.dIDHqE,.dIDHqE *{font-size:14px;line-height:24px;}}/*!sc*/ 79data-styled.g18[id="H6-sc-1fqdyt3-0"]{content:"dIDHqE,"}/*!sc*/ 80.bHVpRD{font-size:22px;line-height:32px;}/*!sc*/ 81@media (max-width:64.25em){.bHVpRD{font-size:18px;line-height:32px;}}/*!sc*/ 82@media (max-width:51.125em){.bHVpRD{font-size:18px;line-height:32px;}}/*!sc*/ 83@media (max-width:38em){.bHVpRD{font-size:18px;line-height:32px;}}/*!sc*/ 84.fduduP{font-size:18px;line-height:32px;}/*!sc*/ 85@media (max-width:64.25em){.fduduP{font-size:16px;line-height:24px;}}/*!sc*/ 86@media (max-width:51.125em){.fduduP{font-size:16px;line-height:24px;}}/*!sc*/ 87@media (max-width:38em){.fduduP{font-size:16px;line-height:24px;}}/*!sc*/ 88.lbKllw{font-size:16px;line-height:24px;}/*!sc*/ 89@media (max-width:64.25em){.lbKllw{font-size:14px;line-height:24px;}}/*!sc*/ 90@media (max-width:51.125em){.lbKllw{font-size:14px;line-height:24px;}}/*!sc*/ 91@media (max-width:38em){.lbKllw{font-size:14px;line-height:24px;}}/*!sc*/ 92.fyeqHs{font-size:14px;line-height:24px;}/*!sc*/ 93@media (max-width:64.25em){.fyeqHs{font-size:13px;line-height:16px;}}/*!sc*/ 94@media (max-width:51.125em){.fyeqHs{font-size:13px;line-height:16px;}}/*!sc*/ 95@media (max-width:38em){.fyeqHs{font-size:13px;line-height:16px;}}/*!sc*/ 96data-styled.g19[id="P-sc-2fe20n-0"]{content:"bHVpRD,fduduP,lbKllw,fyeqHs,"}/*!sc*/ 97@media (max-width:38em){.cFpblv{padding-left:32px!important;padding-right:32px!important;}}/*!sc*/ 98data-styled.g21[id="Container__ContainerWrapper-sc-azyjet-0"]{content:"cFpblv,"}/*!sc*/ 99.dBncPp{height:64px;width:199px;}/*!sc*/ 100data-styled.g32[id="IconShakacode__HeaderIconShakacode-sc-1df0ktu-0"]{content:"dBncPp,"}/*!sc*/ 101.kmesXN{height:48px;width:149px;}/*!sc*/ 102data-styled.g33[id="IconShakacode__FooterIconShakacode-sc-1df0ktu-1"]{content:"kmesXN,"}/*!sc*/ 103@media (max-width:38em){.eMtYwd{padding-left:32px!important;padding-right:32px!important;}}/*!sc*/ 104data-styled.g42[id="Col__ColWrapper-sc-1891fgc-0"]{content:"eMtYwd,"}/*!sc*/ 105@media (max-width:38em){.dEimrw{margin-left:-32px!important;margin-right:-32px!important;}}/*!sc*/ 106data-styled.g43[id="Row__RowWrapper-sc-1hye4yz-0"]{content:"dEimrw,"}/*!sc*/ 107.bgWeJJ{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;padding:6px 12px;background:transparent;border:1px solid #D9E1E3;border-radius:6px;cursor:pointer;font-size:14px;color:#1f2323;-webkit-transition:all 0.2s ease;transition:all 0.2s ease;white-space:nowrap;}/*!sc*/ 108.bgWeJJ:hover{background:#ADBBBF;border-color:#1f2323;}/*!sc*/ 109@media (max-width:51.125em){.bgWeJJ{display:none;}}/*!sc*/ 110data-styled.g46[id="SearchTrigger__DesktopBadge-sc-1ayqg8r-0"]{content:"bgWeJJ,"}/*!sc*/ 111.iNWavl{padding:2px 6px;background:white;border:1px solid #D9E1E3;border-radius:4px;font-size:12px;font-family:monospace;color:#181E1F;box-shadow:0 1px 2px rgba(0,0,0,0.1);}/*!sc*/ 112data-styled.g47[id="SearchTrigger__KeyboardShortcut-sc-1ayqg8r-1"]{content:"iNWavl,"}/*!sc*/ 113.kscFKW{display:none;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
113-webkit-justify-content:center;justify-content:center;width:36px;height:36px;background:transparent;border:1px solid #D9E1E3;border-radius:6px;cursor:pointer;color:#1f2323;-webkit-transition:all 0.2s ease;transition:all 0.2s ease;padding:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}/*!sc*/ 114.kscFKW:hover{background:#ADBBBF;border-color:#1f2323;}/*!sc*/ 115.kscFKW svg{width:18px;height:18px;stroke:currentColor;stroke-width:2;fill:none;}/*!sc*/ 116@media (max-width:51.125em){.kscFKW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}/*!sc*/ 117data-styled.g48[id="SearchTrigger__MobileButton-sc-1ayqg8r-2"]{content:"kscFKW,"}/*!sc*/ 118.dmMQXT{position:relative;}/*!sc*/ 119data-styled.g49[id="SearchTrigger__TooltipContainer-sc-1ayqg8r-3"]{content:"dmMQXT,"}/*!sc*/ 120.csnytt{position:absolute;top:calc(100% + 8px);right:0;background:#181E1F;color:white;padding:12px 16px;border-radius:6px;font-size:13px;white-space:nowrap;opacity:0;visibility:hidden;-webkit-transition:opacity 0.3s ease,visibility 0.3s ease;transition:opacity 0.3s ease,visibility 0.3s ease;box-shadow:0 4px 12px rgba(0,0,0,0.15);z-index:1000;}/*!sc*/ 121.csnytt::before{content:"";position:absolute;top:-6px;right:20px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #181E1F;}/*!sc*/ 122@media (max-width:51.125em){.csnytt{display:none;}}/*!sc*/ 123data-styled.g50[id="SearchTrigger__Tooltip-sc-1ayqg8r-4"]{content:"csnytt,"}/*!sc*/ 124.bDlPnM{margin-left:12px;background:none;border:none;color:white;cursor:pointer;font-size:16px;padding:0;opacity:0.7;-webkit-transition:opacity 0.2s ease;transition:opacity 0.2s ease;}/*!sc*/ 125.bDlPnM:hover{opacity:1;}/*!sc*/ 126data-styled.g51[id="SearchTrigger__TooltipClose-sc-1ayqg8r-5"]{content:"bDlPnM,"}/*!sc*/ 127.jbxYoX{color:#181E1F;font-weight:700;font-size:16px;-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ 128.jbxYoX svg{margin-left:5px;}/*!sc*/ 129.jbxYoX:hover{color:#B11100;}/*!sc*/ 130data-styled.g87[id="MenuLinkTitle__StyledLink-sc-7z8r-0"]{content:"jbxYoX,"}/*!sc*/ 131.ebTCDI{position:relative;}/*!sc*/ 132data-styled.g88[id="MenuLinkTitle__Title-sc-7z8r-1"]{content:"ebTCDI,"}/*!sc*/ 133.gxtYTm{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ 134data-styled.g89[id="MenuLink__MenuLinkWrapper-sc-1rlzywk-0"]{content:"gxtYTm,"}/*!sc*/ 135.fAhcEw{font-size:16px;font-family:"Open Sans",sans-serif;font-weight:600;padding-top:12px;padding-bottom:12px;}/*!sc*/ 136data-styled.g91[id="Menu__StyledButton-sc-1pnmqk0-0"]{content:"fAhcEw,"}/*!sc*/ 137.jlWwFw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;}/*!sc*/ 138data-styled.g92[id="Menu__MenuWrapper-sc-1pnmqk0-1"]{content:"jlWwFw,"}/*!sc*/ 139.bJjXbU{height:24px;width:24px;}/*!sc*/ 140data-styled.g98[id="MobileMenu__StyledIconBurger-sc-1ywfcxj-2"]{content:"bJjXbU,"}/*!sc*/ 141.hpJFFD{width:100%;z-index:100;padding-bottom:50px;}/*!sc*/ 142@media (max-width:51.125em){.hpJFFD{background:white;position:fixed;top:0px;padding-bottom:0;}}/*!sc*/ 143data-styled.g100[id="Header__StyledHeader-sc-1f99kj7-0"]{content:"hpJFFD,"}/*!sc*/ 144.iSlMMd{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ 145data-styled.g101[id="Header__LeftCol-sc-1f99kj7-1"]{content:"iSlMMd,"}/*!sc*/ 146.loKBBo{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;gap:8px;}/*!sc*/ 147data-styled.g102[id="Header__RightCol-sc-1f99kj7-2"]{content:"loKBBo,"}/*!sc*/ 148.ftanBx{padding-top:56px;}/*!sc*/ 149@media (max-width:51.125em){.ftanBx{padding-top:40px;}}/*!sc*/ 150data-styled.g103[id="Header__StyledContainer-sc-1f99kj7-3"]{content:"ftanBx,"}/*!sc*/ 151@media (max-width:51.125em){.kGenTA{height:40px;width:170px;}}/*!sc*/ 152data-styled.g104[id="Header__StyledLogo-sc-1f99kj7-4"]{content:"kGenTA,"}/*!sc*/ 153.ieckEi{display:contents;}/*!sc*/ 154@media (max-width:51.125em){.ieckEi{display:none;}}/*!sc*/ 155data-styled.g105[id="Header__DesktopOnly-sc-1f99kj7-5"]{content:"ieckEi,"}/*!sc*/ 156.iKaCix{display:none;}/*!sc*/ 157@media (max-width:51.125em){.iKaCix{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;}}/*!sc*/ 158data-styled.g106[id="Header__MobileOnly-sc-1f99kj7-6"]{content:"iKaCix,"}/*!sc*/ 159.gddtoa{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}/*!sc*/ 160data-styled.g107[id="Header__StyledMobileMenu-sc-1f99kj7-7"]{content:"gddtoa,"}/*!sc*/ 161body{font-family:"Open Sans",sans-serif;color:#181E1F;letter-spacing:0;font-size:18px;line-height:32px;margin:0;}/*!sc*/ 162@media (max-width:64.25em){body{font-size:16px;line-height:24px;}}/*!sc*/ 163@media (max-width:51.125em){body{font-size:16px;line-height:24px;}}/*!sc*/ 164@media (max-width:38em){body{font-size:16px;line-height:24px;}}/*!sc*/ 165h1,h2,h3,h4,h5,h6{font-family:"Open Sans",sans-serif;}/*!sc*/ 166h1 .anchor,h2 .anchor,h3 .anchor,h4 .anchor{display:none;}/*!sc*/ 167@media only screen and (min-width:1028px){h1:hover .anchor,h2:hover .anchor,h3:hover .anchor,h4:hover .anchor{position:absolute;
167left:0;display:unset;}}/*!sc*/ 168a{color:#B11100;font-weight:600;-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ 169a:hover{color:#EE2B16;-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ 170img{margin:0;}/*!sc*/ 171img.maxWidth100{max-width:100%;}/*!sc*/ 172@media (prefers-color-scheme:dark){.markdown-alert{--color-border-default:#30363d;--color-accent-fg:#58a6ff;--color-accent-emphasis:#1f6feb;--color-danger-fg:#f85149;--color-danger-emphasis:#da3633;--color-attention-fg:#d29922;--color-attention-emphasis:#9e6a03;--color-done-fg:#a371f7;--color-done-emphasis:#8957e5;--color-success-fg:#3fb950;--color-success-emphasis:#238636;}}/*!sc*/ 173@media (prefers-color-scheme:light){.markdown-alert{--color-border-default:#d0d7de;--color-accent-fg:#0969da;--color-accent-emphasis:#0969da;--color-danger-fg:#d1242f;--color-danger-emphasis:#cf222e;--color-attention-fg:#9a6700;--color-attention-emphasis:#9a6700;--color-done-fg:#8250df;--color-done-emphasis:#8250df;--color-success-fg:#1a7f37;--color-success-emphasis:#1f883d;}}/*!sc*/ 174.markdown-alert{border-left:.25em solid var(--borderColor-default,var(--color-border-default));color:inherit;margin-bottom:16px;padding:.5rem 1em;}/*!sc*/ 175.markdown-alert>:last-child{margin-bottom:0!important;}/*!sc*/ 176.markdown-alert .markdown-alert-title{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;font-size:14px;font-weight:500;line-height:1;}/*!sc*/ 177.markdown-alert .markdown-alert-title svg.octicon{margin-right:8px!important;margin-right:var(--base-size-8,8px)!important;fill:currentColor;}/*!sc*/ 178.markdown-alert.markdown-alert-note{border-left-color:var(--borderColor-accent-emphasis,var(--color-accent-emphasis));}/*!sc*/ 179.markdown-alert.markdown-alert-note .markdown-alert-title{color:var(--color-accent-fg);color:var(--fgColor-accent,var(--color-accent-fg));}/*!sc*/ 180.markdown-alert.markdown-alert-tip{border-left-color:var(--borderColor-success-emphasis,var(--color-success-emphasis));}/*!sc*/ 181.markdown-alert.markdown-alert-tip .markdown-alert-title{color:var(--color-success-fg);color:var(--fgColor-success,var(--color-success-fg));}/*!sc*/ 182.markdown-alert.markdown-alert-important{border-left-color:var(--borderColor-done-emphasis,var(--color-done-emphasis));}/*!sc*/ 183.markdown-alert.markdown-alert-important .markdown-alert-title{color:var(--color-done-fg);color:var(--fgColor-done,var(--color-done-fg));}/*!sc*/ 184.markdown-alert.markdown-alert-warning{border-left-color:var(--borderColor-attention-emphasis,var(--color-attention-emphasis));}/*!sc*/ 185.markdown-alert.markdown-alert-warning .markdown-alert-title{color:var(--color-attention-fg);color:var(--fgColor-attention,var(--color-attention-fg));}/*!sc*/ 186.markdown-alert.markdown-alert-caution{border-left-color:var(--borderColor-danger-emphasis,var(--color-danger-emphasis));}/*!sc*/ 187.markdown-alert.markdown-alert-caution .markdown-alert-title{color:var(--color-danger-fg);color:var(--fgColor-danger,var(--color-danger-fg));}/*!sc*/ 188data-styled.g108[id="sc-global-kwGRQb"]{content:"sc-global-kwGRQb1,"}/*!sc*/ 189.bZPpoQ{margin-top:64px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}/*!sc*/ 190.bZPpoQ a{font-weight:400;}/*!sc*/ 191data-styled.g109[id="Footer__FooterRow-sc-12ia8lp-0"]{content:"bZPpoQ,"}/*!sc*/ 192.eYKAGK{padding:30px 0 50px 0;font-size:14px;color:#4E5B5E;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}/*!sc*/ 193.eYKAGK>*{-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;}/*!sc*/ 194@media (max-width:51.125em){.eYKAGK>*{-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%;margin-bottom:15px;}}/*!sc*/ 195@media (max-width:51.125em){.eYKAGK{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}}/*!sc*/ 196data-styled.g110[id="Footer__CopyrightSocialRow-sc-12ia8lp-1"]{content:"eYKAGK,"}/*!sc*/ 197.ldfdIq{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:12px;}/*!sc*/ 198data-styled.g111[id="Footer__FooterMeta-sc-12ia8lp-2"]{content:"ldfdIq,"}/*!sc*/ 199.koKcya{margin-top:0;margin-bottom:10px;color:#4E5B5E;font-weight:400;}/*!sc*/ 200data-styled.g112[id="Footer__ColumnHeader-sc-12ia8lp-3"]{content:"koKcya,"}/*!sc*/ 201.tHzLz{-webkit-flex:0 0 20%;-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%;font-size:14px;color:#4E5B5E;}/*!sc*/ 202@media (max-width:51.125em){.tHzLz{-webkit-order:100;-ms-flex-order:100;order:100;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%;}}/*!sc*/ 203data-styled.g113[id="Footer__InfoCol-sc-12ia8lp-4"]{content:"tHzLz,"}/*!sc*/ 204.ZjBBa{margin:15px 0 13px 0;}/*!sc*/ 205data-styled.g114[id="Footer__CompanyDetails-sc-12ia8lp-5"]{content:"ZjBBa,"}/*!sc*/ 206.bbDMAr{margin:3px 0;font-weight:600;}/*!sc*/ 207data-styled.g115[id="Footer__CompanyNote-sc-12ia8lp-6"]{content:"bbDMAr,"}/*!sc*/ 208.hjcyZu{font-style:normal;margin:0;}/*!sc*/ 209data-styled.g116[id="Footer__Address-sc-12ia8lp-7"]{content:"hjcyZu,"}/*!sc*/ 210.ktsrTa{color:#b11100;-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ 211data-styled.g117[id="Footer__Phone-sc-12ia8lp-8"]{content:"ktsrTa,"}/*!sc*/ 212.jqtrRj{-webkit-flex:1 1 0;-ms-flex:1 1 0;flex:1 1 0;min-width:0;}/*!sc*/ 213@media (max-width:51.125em){.jqtrRj{margin-bottom:30px;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%;}}/*!sc*/ 214data-styled.g118[id="Footer__MenuCol-sc-12ia8lp-9"]{content:"jqtrRj,"}/*!sc*/ 215.fpKXnI{text-align:right;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:end;-ms-flex-pack:end;
215-webkit-justify-content:flex-end;justify-content:flex-end;}/*!sc*/ 216.fpKXnI svg{margin-left:16px;margin-right:0;width:32px;height:32px;}/*!sc*/ 217@media (max-width:51.125em){.fpKXnI{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;}}/*!sc*/ 218data-styled.g119[id="Footer__SocialCol-sc-12ia8lp-10"]{content:"fpKXnI,"}/*!sc*/ 219.gkRlql{list-style:none;padding:0;margin:0;}/*!sc*/ 220data-styled.g120[id="Footer__List-sc-12ia8lp-11"]{content:"gkRlql,"}/*!sc*/ 221.hJkTqS{margin-bottom:3px;}/*!sc*/ 222.hJkTqS a{color:#4E5B5E;-webkit-text-decoration:none;text-decoration:none;font-size:14px;}/*!sc*/ 223.hJkTqS a:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ 224data-styled.g121[id="Footer__Item-sc-12ia8lp-12"]{content:"hJkTqS,"}/*!sc*/ 225.cKuXgv{color:#4E5B5E;}/*!sc*/ 226data-styled.g122[id="Footer__StyledLink-sc-12ia8lp-13"]{content:"cKuXgv,"}/*!sc*/ 227.fGCfCH{color:#4E5B5E;-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ 228.fGCfCH:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ 229data-styled.g123[id="Footer__FooterMetaLink-sc-12ia8lp-14"]{content:"fGCfCH,"}/*!sc*/ 230.eihjKf{border:0;padding:0;background:transparent;font:inherit;color:#4E5B5E;cursor:pointer;}/*!sc*/ 231.eihjKf:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ 232data-styled.g124[id="Footer__CookieSettingsButton-sc-12ia8lp-15"]{content:"eihjKf,"}/*!sc*/ 233.hOnBbQ{width:16px!important;height:16px!important;margin-right:8px!important;margin-left:0!important;}/*!sc*/ 234data-styled.g125[id="Footer__StyledIconSlack-sc-12ia8lp-16"]{content:"hOnBbQ,"}/*!sc*/ 235.goWloY{padding:8px 16px 8px 12px;width:137px;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;font-size:13px;line-height:16px;color:#343D3F;border:1px solid #88969a;}/*!sc*/ 236.goWloY:hover{color:#343D3F;border:1px solid #88969a;}/*!sc*/ 237data-styled.g126[id="Footer__StyledGoToButton-sc-12ia8lp-17"]{content:"goWloY,"}/*!sc*/ 238.bpdJtu{height:4px;width:32px;margin:0;background-color:#ee2b16;border:0;border-radius:20px;}/*!sc*/ 239data-styled.g158[id="Hr-sc-1en2dxv-0"]{content:"bpdJtu,"}/*!sc*/ 240.erXvyi{background-color:#343D3F;padding:80px 0;}/*!sc*/ 241data-styled.g291[id="BookCall__BookCallWrapper-sc-kdkop6-0"]{content:"erXvyi,"}/*!sc*/ 242.ddFRte{-webkit-flex:0 0 70%;-ms-flex:0 0 70%;flex:0 0 70%;}/*!sc*/ 243@media (max-width:64.25em){.ddFRte{-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;}}/*!sc*/ 244data-styled.g292[id="BookCall__LeftCol-sc-kdkop6-1"]{content:"ddFRte,"}/*!sc*/ 245.isQwiP{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ 246@media (max-width:64.25em){.isQwiP{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}}/*!sc*/ 247data-styled.g293[id="BookCall__BookCallContainer-sc-kdkop6-2"]{content:"isQwiP,"}/*!sc*/ 248.vJVYI{margin-left:auto;text-align:center;}/*!sc*/ 249.vJVYI a{-webkit-text-decoration:none;text-decoration:none;padding:17px 55px;font-weight:700;display:inline-block;}/*!sc*/ 250@media (max-width:38em){.vJVYI a{padding:11px 0;}}/*!sc*/ 251@media (max-width:64.25em){.vJVYI{margin-top:30px;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;}.vJVYI a{display:block;}}/*!sc*/ 252data-styled.g294[id="BookCall__RightCol-sc-kdkop6-3"]{content:"vJVYI,"}/*!sc*/ 253.dgrNdx{margin:0;color:#fff;}/*!sc*/ 254data-styled.g295[id="BookCall__StyledH3-sc-kdkop6-4"]{content:"dgrNdx,"}/*!sc*/ 255.kxZfzU{color:#fff;margin:20px 0 30px 0;}/*!sc*/ 256.kxZfzU a{color:#ee2b16;}/*!sc*/ 257data-styled.g296[id="BookCall__Description-sc-kdkop6-5"]{content:"kxZfzU,"}/*!sc*/ 258.dTBEkE{min-height:50px;}/*!sc*/ 259data-styled.g297[id="BookCall__ClutchWidgetSlot-sc-kdkop6-6"]{content:"dTBEkE,"}/*!sc*/ 260.knPJKz{display:block;font-weight:600;font-size:16px;line-height:24px;}/*!sc*/ 261@media (max-width:64.25em){.knPJKz{font-size:14px;line-height:24px;}}/*!sc*/ 262@media (max-width:51.125em){.knPJKz{font-size:14px;line-height:24px;}}/*!sc*/ 263@media (max-width:38em){.knPJKz{font-size:14px;line-height:24px;}}/*!sc*/ 264data-styled.g547[id="Person__Name-sc-mwt357-0"]{content:"knPJKz,"}/*!sc*/ 265.eKYVnM{font-size:14px;}/*!sc*/ 266.eKYVnM *{font-size:14px;line-height:24px;}/*!sc*/ 267@media (max-width:64.25em){.eKYVnM *{font-size:13px;line-height:16px;}}/*!sc*/ 268@media (max-width:51.125em){.eKYVnM *{font-size:13px;line-height:16px;}}/*!sc*/ 269@media (max-width:38em){.eKYVnM *{font-size:13px;line-height:16px;}}/*!sc*/ 270.eKYVnM a{color:#B11100;}/*!sc*/ 271.eKYVnM a:hover{color:#EE2B16;}/*!sc*/ 272data-styled.g548[id="Person__Position-sc-mwt357-1"]{content:"eKYVnM,"}/*!sc*/ 273.kNzMtF{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-left:-16px;margin-right:-16px;-webkit-box-flex-wrap:nowrap!important;-webkit-flex-wrap:nowrap!important;-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important;color:#181E1F;}/*!sc*/
274data-styled.g549[id="Person__Wrapper-sc-mwt357-2"]{content:"kNzMtF,"}/*!sc*/ 275.kwfRRv{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:16px;}/*!sc*/ 276data-styled.g550[id="Person__PhotoCol-sc-mwt357-3"]{content:"kwfRRv,"}/*!sc*/ 277.jfowkV{width:64px;height:64px;}/*!sc*/ 278data-styled.g551[id="Person__PhotoWrapper-sc-mwt357-4"]{content:"jfowkV,"}/*!sc*/ 279.MjSeT{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding-right:16px;padding-bottom:16px;}/*!sc*/ 280.MjSeT *{line-height:24px;}/*!sc*/ 281data-styled.g552[id="Person__PositionCol-sc-mwt357-5"]{content:"MjSeT,"}/*!sc*/ 282.nDHhm{font-style:italic;font-size:16px;color:#4E5B5E;margin-bottom:15px;line-height:24px;}/*!sc*/ 283@media (max-width:38em){.nDHhm{font-size:14px;}}/*!sc*/ 284data-styled.g600[id="Testimonial__Text-sc-k5qbzt-0"]{content:"nDHhm,"}/*!sc*/ 285.eSpHGY{border-radius:16px;background-color:#fff;box-shadow:0 4px 12px 0 rgba(52,61,63,0.08);padding:64px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}/*!sc*/ 286@media (max-width:51.125em){.eSpHGY{padding:24px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}/*!sc*/ 287data-styled.g704[id="WeAreHiring__WeAreHiringWrapper-sc-1v4d7uu-0"]{content:"eSpHGY,"}/*!sc*/ 288.fcxHdm{height:160px;width:160px;min-width:160px;border:2px dashed #515a5c;border-radius:8px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}/*!sc*/ 289@media (max-width:51.125em){.fcxHdm{height:144px;width:144px;min-width:144px;margin-bottom:24px;}}/*!sc*/ 290data-styled.g705[id="WeAreHiring__DashedBox-sc-1v4d7uu-1"]{content:"fcxHdm,"}/*!sc*/ 291.eHscEV{color:#181E1F;margin-bottom:16px;margin-top:0;}/*!sc*/ 292@media (max-width:51.125em){.eHscEV{font-size:18px;line-height:24px;}}/*!sc*/ 293data-styled.g706[id="WeAreHiring__Heading-sc-1v4d7uu-2"]{content:"eHscEV,"}/*!sc*/ 294.kyHpXA{color:#181E1F;margin-bottom:10px;margin-top:0;}/*!sc*/ 295@media (max-width:51.125em){.kyHpXA{margin-bottom:16px;line-height:20px;font-size:14px;}}/*!sc*/ 296data-styled.g707[id="WeAreHiring__Description-sc-1v4d7uu-3"]{content:"kyHpXA,"}/*!sc*/ 297.gbAicj{margin-left:64px;}/*!sc*/ 298@media (max-width:51.125em){.gbAicj{margin-left:0;}}/*!sc*/ 299data-styled.g708[id="WeAreHiring__TextWrapper-sc-1v4d7uu-4"]{content:"gbAicj,"}/*!sc*/ 300.hBAvzb{height:48px;width:48px;object-fit:contain;margin-bottom:12px;}/*!sc*/ 301data-styled.g709[id="WeAreHiring__CrossIcon-sc-1v4d7uu-5"]{content:"hBAvzb,"}/*!sc*/ 302.dPJvYY{line-height:22px;font-size:16px;font-weight:600;color:#B11100;margin:0;}/*!sc*/ 303.dPJvYY:hover{color:#EE2B16;}/*!sc*/ 304@media (max-width:51.125em){.dPJvYY{font-size:14px;line-height:20px;}}/*!sc*/ 305data-styled.g710[id="WeAreHiring__ShortMessage-sc-1v4d7uu-6"]{content:"dPJvYY,"}/*!sc*/ 306.kiTFdu{padding:16px 32px 16px 32px;margin-top:22px;font-size:16px;}/*!sc*/ 307.kiTFdu svg{width:24px;height:16px;margin-left:15px;}/*!sc*/ 308@media (max-width:38em){.kiTFdu svg{display:none;}}/*!sc*/ 309@media (max-width:38em){.kiTFdu{padding:6px 16px 6px 24px;font-size:14px;border:none;padding:0;margin:0;}}/*!sc*/ 310data-styled.g711[id="WeAreHiring__CareerOpportunities-sc-1v4d7uu-7"]{content:"kiTFdu,"}/*!sc*/ 311.liTJXg{padding:32px 80px;border:2px solid #EE2B16;border-radius:16px;margin:112px 0;max-height:144px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ 312@media (max-width:38em){.liTJXg{max-height:120px;padding:24px;margin:80px 0;}}/*!sc*/ 313data-styled.g941[id="SlackChannel__SlackChannelWrapper-sc-od97td-0"]{content:"liTJXg,"}/*!sc*/ 314.UoYHj{margin-right:40px;min-width:80px;}/*!sc*/ 315@media (max-width:38em){.UoYHj{margin-right:24px;min-width:40px;max-height:40px;}}/*!sc*/ 316data-styled.g942[id="SlackChannel__IconWrapper-sc-od97td-1"]{content:"UoYHj,"}/*!sc*/ 317.UPJsp{width:80px;height:80px;}/*!sc*/ 318@media (max-width:38em){.UPJsp{width:40px;height:40px;}}/*!sc*/ 319data-styled.g943[id="SlackChannel__StyledIconSlack-sc-od97td-2"]{content:"UPJsp,"}/*!sc*/ 320.bAZdPF{font-weight:600;color:#B11100;margin:0;}/*!sc*/ 321.bAZdPF:hover{color:#EE2B16;}/*!sc*/ 322@media (max-width:38em){.bAZdPF{font-size:18px;line-height:24px;}}/*!sc*/ 323data-styled.g944[id="SlackChannel__Text-sc-od97td-3"]{content:"bAZdPF,"}/*!sc*/ 324.cZimWC{margin-bottom:52px;}/*!sc*/ 325@media (max-width:51.125em){.cZimWC{margin-top:168px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-bottom:112px;}}/*!sc*/ 326data-styled.g1176[id="AboutUsHero__StyledContainer-sc-18w4ucq-0"]{content:"cZimWC,"}/*!sc*/ 327.dYhTRU{-webkit-align-items:center!important;-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important;}/*!sc*/ 328data-styled.g1177[id="AboutUsHero__StyledRow-sc-18w4ucq-1"]{content:"dYhTRU,"}/*!sc*/ 329.bFPaMG{margin-bottom:20px;margin-top:0;}/*!sc*/ 330@media (max-width:51.125em){.bFPaMG{margin-bottom:48px;}}/*!sc*/ 331data-styled.g1178[id="AboutUsHero__Description-sc-18w4ucq-2"]{content:"bFPaMG,"}/*!sc*/ 332.ZJPSP img{width:64px;
332height:64px;}/*!sc*/ 333@media (max-width:51.125em){.ZJPSP{margin-top:0;}}/*!sc*/ 334data-styled.g1179[id="AboutUsHero__StyledTestimonial-sc-18w4ucq-3"]{content:"ZJPSP,"}/*!sc*/ 335.fcMjFN{margin-bottom:89px;}/*!sc*/ 336@media (max-width:51.125em){.fcMjFN{margin-bottom:64px;}}/*!sc*/ 337data-styled.g1180[id="CoreExpertise__StyledContainer-sc-uqs5fw-0"]{content:"fcMjFN,"}/*!sc*/ 338.dacNiD{margin-top:0;margin-bottom:24px;}/*!sc*/ 339@media (max-width:51.125em){.dacNiD{font-weight:800;font-size:24px;}}/*!sc*/ 340data-styled.g1181[id="CoreExpertise__StyledHeading-sc-uqs5fw-1"]{content:"dacNiD,"}/*!sc*/ 341.cuxEdU{color:#181E1F;margin-bottom:40px;margin-top:0;}/*!sc*/ 342@media (max-width:51.125em){.cuxEdU{font-size:16px;line-height:24px;max-width:100%;}}/*!sc*/ 343data-styled.g1182[id="CoreExpertise__Description-sc-uqs5fw-2"]{content:"cuxEdU,"}/*!sc*/ 344.dhlKSl{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}/*!sc*/ 345@media (max-width:51.125em){.dhlKSl{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;-webkit-box-pack:justify;-ms-flex-pack:space-between;-webkit-justify-content:space-between;justify-content:space-between;}}/*!sc*/ 346data-styled.g1183[id="CoreExpertise__ExpertiseListWrapper-sc-uqs5fw-3"]{content:"dhlKSl,"}/*!sc*/ 347.fWlzEc{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;color:#181E1F;margin-right:32px;}/*!sc*/ 348@media (max-width:51.125em){.fWlzEc{margin-right:15px max-width:148px;margin-bottom:32px;}}/*!sc*/ 349data-styled.g1184[id="CoreExpertise__Expertise-sc-uqs5fw-4"]{content:"fWlzEc,"}/*!sc*/ 350.eCaenA{margin:0;}/*!sc*/ 351@media (max-width:51.125em){.eCaenA{line-height:20px;}}/*!sc*/ 352data-styled.g1185[id="CoreExpertise__ExpertiseDescription-sc-uqs5fw-5"]{content:"eCaenA,"}/*!sc*/ 353.fiCmRw{margin-bottom:24px;width:64px;height:64px;}/*!sc*/ 354data-styled.g1186[id="CoreExpertise__StyledIcon-sc-uqs5fw-6"]{content:"fiCmRw,"}/*!sc*/ 355.laxeQS{margin-bottom:112px;}/*!sc*/ 356@media (max-width:51.125em){.laxeQS{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-bottom:116px;}}/*!sc*/ 357data-styled.g1187[id="OurValues__StyledContainer-sc-d6k2rb-0"]{content:"laxeQS,"}/*!sc*/ 358.dtqmxg{margin-top:0;margin-bottom:32px;}/*!sc*/ 359@media (max-width:51.125em){.dtqmxg{font-weight:800;font-size:24px;}}/*!sc*/ 360data-styled.g1188[id="OurValues__StyledHeading-sc-d6k2rb-1"]{content:"dtqmxg,"}/*!sc*/ 361.tJobM{margin-top:48px;}/*!sc*/ 362@media (max-width:51.125em){.tJobM{margin-top:0;}}/*!sc*/ 363data-styled.g1190[id="OurValues__Value-sc-d6k2rb-3"]{content:"tJobM,"}/*!sc*/ 364.hyJiTe{margin-bottom:32px;margin-top:0;}/*!sc*/ 365@media (max-width:51.125em){.hyJiTe{font-size:16px;}}/*!sc*/ 366data-styled.g1191[id="OurValues__Details-sc-d6k2rb-4"]{content:"hyJiTe,"}/*!sc*/ 367.efGXyU{font-size:18px;line-height:32px;color:#181E1F;margin-bottom:40px;}/*!sc*/ 368@media (max-width:51.125em){.efGXyU{font-size:16px;line-height:24px;}}/*!sc*/ 369data-styled.g1192[id="OurValues__ValuesList-sc-d6k2rb-5"]{content:"efGXyU,"}/*!sc*/ 370.ebqsmE{height:40px;width:40px;margin-right:16px;}/*!sc*/ 371data-styled.g1193[id="OurValues__StyledLogo-sc-d6k2rb-6"]{content:"ebqsmE,"}/*!sc*/ 372.AQFUF{height:12px;width:8px;margin-top:4px;}/*!sc*/ 373data-styled.g1194[id="OurValues__StyledIconChevronRight-sc-d6k2rb-7"]{content:"AQFUF,"}/*!sc*/ 374.eSvbHV{margin-right:8px;margin-bottom:0;font-weight:600;margin-top:0;color:#B11100;}/*!sc*/ 375.czjWAo{margin-right:8px;margin-bottom:0;font-weight:600;margin-top:0;color:#4E5B5E;}/*!sc*/ 376data-styled.g1195[id="OurValues__ValueName-sc-d6k2rb-8"]{content:"eSvbHV,czjWAo,"}/*!sc*/ 377.jcMrvG{margin-bottom:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;cursor:pointer;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ 378data-styled.g1196[id="OurValues__ValueLink-sc-d6k2rb-9"]{content:"jcMrvG,"}/*!sc*/ 379.dmVmUg{margin-bottom:24px;margin-top:0;}/*!sc*/ 380@media (max-width:51.125em){.dmVmUg{margin-bottom:14px;}}/*!sc*/ 381data-styled.g1197[id="OurValues__ValueHeading-sc-d6k2rb-10"]{content:"dmVmUg,"}/*!sc*/ 382.cebEYA{color:#181E1F;margin-bottom:24px;margin-top:0;}/*!sc*/ 383data-styled.g1198[id="OurValues__ValueDetails-sc-d6k2rb-11"]{content:"cebEYA,"}/*!sc*/ 384.iRLxQL{margin-bottom:24px;}/*!sc*/ 385data-styled.g1199[id="OurValues__StyledHr-sc-d6k2rb-12"]{content:"iRLxQL,"}/*!sc*/ 386.rDdyU img{width:64px;
386height:64px;}/*!sc*/ 387data-styled.g1200[id="OurValues__StyledTestimonial-sc-d6k2rb-13"]{content:"rDdyU,"}/*!sc*/ 388.dnYXWa{margin-bottom:96px;}/*!sc*/ 389@media (max-width:51.125em){.dnYXWa{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-bottom:12px;}}/*!sc*/ 390data-styled.g1201[id="AboutUsSubsection__SectionWrapper-sc-1pyjzr5-0"]{content:"dnYXWa,"}/*!sc*/ 391.fSoJQc{margin-top:0;margin-bottom:32px;}/*!sc*/ 392@media (max-width:51.125em){.fSoJQc{font-size:24px;font-weight:800;}}/*!sc*/ 393data-styled.g1202[id="AboutUsSubsection__StyledHeading-sc-1pyjzr5-1"]{content:"fSoJQc,"}/*!sc*/ 394.jXdEgK{padding-top:40px;}/*!sc*/ 395@media (max-width:51.125em){.jXdEgK{max-width:100%;margin-right:0;padding-top:0;}}/*!sc*/ 396data-styled.g1203[id="AboutUsSubsection__TextWrapper-sc-1pyjzr5-2"]{content:"jXdEgK,"}/*!sc*/ 397.kLpCMn{margin-bottom:32px;color:#181E1F;margin-top:0;}/*!sc*/ 398@media (max-width:51.125em){.kLpCMn{font-size:16px;line-height:24px;}}/*!sc*/ 399data-styled.g1204[id="AboutUsSubsection__Description-sc-1pyjzr5-3"]{content:"kLpCMn,"}/*!sc*/ 400.bwJBXZ{padding:20px;padding-left:40px;padding-right:32px;font-size:18px;}/*!sc*/ 401@media (max-width:51.125em){.bwJBXZ{margin-bottom:40px;}}/*!sc*/ 402@media (max-width:90em){.bwJBXZ{font-size:16px;height:48px;padding:12px;padding-left:32px;padding-right:24px;}}/*!sc*/ 403data-styled.g1205[id="AboutUsSubsection__StyledGoToButton-sc-1pyjzr5-4"]{content:"bwJBXZ,"}/*!sc*/ 404.kWfYZk{border-radius:16px;padding-top:112px;padding-bottom:104px;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTQwOHB4IiBoZWlnaHQ9IjE1MDRweCIgdmlld0JveD0iMCAwIDE0MDggMTUwNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgIDwhLS0gR2VuZXJhdG9yOiBTa2V0Y2ggNTcuMSAoODMwODgpIC0gaHR0cHM6Ly9za2V0Y2guY29tIC0tPgogICAgPHRpdGxlPkdyb3VwIDIxPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+CiAgICAgICAgPHJlY3QgaWQ9InBhdGgtMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjE0MDgiIGhlaWdodD0iMTUwNCIgcng9IjE2Ij48L3JlY3Q+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0iMTQ0MCIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Ik5ldy1BYm91dC11cyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE2LjAwMDAwMCwgLTMxNTUuMDAwMDAwKSI+CiAgICAgICAgICAgIDxnIGlkPSJHcm91cC0yMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTYuMDAwMDAwLCAzMTU1LjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPG1hc2sgaWQ9Im1hc2stMiIgZmlsbD0id2hpdGUiPgogICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+CiAgICAgICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgICAgICA8dXNlIGlkPSJSZWN0YW5nbGUiIGZpbGw9IiNGNkZCRkMiIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPgogICAgICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlJlY3RhbmdsZSIgZmlsbD0iI0ZGRkZGRiIgbWFzaz0idXJsKCNtYXNrLTIpIiBwb2ludHM9IjAgODIzIDk4NiA5NzYgMCAxNTUyIj48L3BvbHlnb24+CiAgICAgICAgICAgICAgICA8cG9seWdvbiBpZD0iUmVjdGFuZ2xlIiBmaWxsPSIjRUVGNEY1IiBtYXNrPSJ1cmwoI21hc2stMikiIHBvaW50cz0iLTYuMjUyNzc2MDdlLTEzIDYyNCAxNDA3IDI2MCAxNDA4IDExNDcgLTIuNjg2NzM5NzJlLTEzIDg5NiI+PC9wb2x5Z29uPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=);margin-left:16px;margin-right:16px;}/*!sc*/ 405@media (max-width:51.125em){.kWfYZk{margin-left:8px;margin-right:8px;}}/*!sc*/ 406data-styled.g1206[id="Team__TeamSectionWrapper-sc-rm9go0-0"]{content:"kWfYZk,"}/*!sc*/ 407@media (max-width:51.125em){.fwDfcA{padding:0 24px!important;}}/*!sc*/ 408data-styled.g1207[id="Team__StyledContainer-sc-rm9go0-1"]{content:"fwDfcA,"}/*!sc*/ 409.fEqsey{color:#181E1F;text-align:center;margin-bottom:24px;margin-top:0;}/*!sc*/ 410@media (max-width:51.125em){.fEqsey{text-align:left;font-weight:800;font-size:24px;}}/*!sc*/ 411data-styled.g1208[id="Team__Heading-sc-rm9go0-2"]{content:"fEqsey,"}/*!sc*/ 412.fyFrlH{color:#181E1F;text-align:center;margin-bottom:40px;margin-left:192px;margin-right:192px;margin-top:0;}/*!sc*/ 413@media (max-width:51.125em){.fyFrlH{margin-left:0;margin-right:0;text-align:start;}}/*!sc*/ 414data-styled.g1209[id="Team__SubHeading-sc-rm9go0-3"]{content:"fyFrlH,"}/*!sc*/ 415.iOGYLA{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-32px;-webkit-box-pack:space-around;-ms-flex-pack:space-around;
415-webkit-justify-content:space-around;justify-content:space-around;}/*!sc*/ 416@media (max-width:51.125em){.iOGYLA{margin-left:-15px;}}/*!sc*/ 417data-styled.g1210[id="Team__TeamMembersList-sc-rm9go0-4"]{content:"iOGYLA,"}/*!sc*/ 418.khpzRv{max-width:160px;margin-bottom:64px;margin-right:32px;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}/*!sc*/ 419@media (max-width:51.125em){.khpzRv{max-width:148px;margin-right:15px;margin-bottom:40px;line-height:20px;}}/*!sc*/ 420data-styled.g1211[id="Team__TeamMember-sc-rm9go0-5"]{content:"khpzRv,"}/*!sc*/ 421.hPOZdb{height:160px;width:160px;margin-bottom:16px;object-fit:contain;border-radius:20px;overflow:hidden;}/*!sc*/ 422@media (max-width:51.125em){.hPOZdb{height:148px;width:148px;}}/*!sc*/ 423data-styled.g1212[id="Team__ProfilePic-sc-rm9go0-6"]{content:"hPOZdb,"}/*!sc*/ 424.cUxlBh{font-family:"Open Sans",sans-serif;color:#1f2323;margin-bottom:0;margin-top:0;text-align:center;white-space:nowrap;}/*!sc*/ 425data-styled.g1214[id="Team__MemberName-sc-rm9go0-8"]{content:"cUxlBh,"}/*!sc*/ 426.TBnCa{font-family:"Open Sans",sans-serif;color:#1f2323;margin-bottom:0;margin-top:0;font-size:16px;line-height:24px;text-align:center;white-space:nowrap;}/*!sc*/ 427data-styled.g1215[id="Team__MemberNameAsLink-sc-rm9go0-9"]{content:"TBnCa,"}/*!sc*/ 428.dySptx{text-align:center;color:#181E1F;margin-bottom:0;margin-top:0;text-align:center;}/*!sc*/ 429data-styled.g1216[id="Team__MemberDesignation-sc-rm9go0-10"]{content:"dySptx,"}/*!sc*/ 430.cxglKf{margin-bottom:112px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:0 30px;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}/*!sc*/ 431data-styled.g1217[id="WhyShakaCode__StyledFullWidthContainer-sc-15butv1-0"]{content:"cxglKf,"}/*!sc*/ 432.kleHvY{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:relative;max-width:1333px;border-radius:16px;background-image:url(/static/WhyShakacodeSectionBg-4636aad658c74326fa414222020f8b2e.png);background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover;min-height:504px;}/*!sc*/ 433@media (max-width:38em){.kleHvY{min-height:528px;background-image:url(/static/WhyShakacodeSectionBgMobile-f70890c4b5ddeb4ce2c0182b9faec820.png);}}/*!sc*/ 434data-styled.g1218[id="WhyShakaCode__WhyShakaCodeWrapper-sc-15butv1-1"]{content:"kleHvY,"}/*!sc*/ 435.ckDjvO{padding:40px 80px 40px 0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1;-ms-flex:1;flex:1;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;border-top-right-radius:16px;border-bottom-right-radius:16px;background:linear-gradient( 270deg,rgba(0,0,0,0.59) 0%,rgba(0,0,0,0) 100% );}/*!sc*/ 436@media (max-width:64.25em){.ckDjvO{border-radius:16px;max-width:unset;background:linear-gradient(0deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.09) 100%);padding:24px 32px;}}/*!sc*/ 437data-styled.g1219[id="WhyShakaCode__TextWrapper-sc-15butv1-2"]{content:"ckDjvO,"}/*!sc*/ 438.dhJZKo{color:#fff;margin-top:0;margin-bottom:24px;}/*!sc*/ 439@media (max-width:64.25em){.dhJZKo{font-size:24px;}}/*!sc*/ 440data-styled.g1220[id="WhyShakaCode__StyledHeading-sc-15butv1-3"]{content:"dhJZKo,"}/*!sc*/ 441.hQMkOq{font-weight:600;color:#fff;margin-bottom:20px;margin-top:0;}/*!sc*/ 442.hQMkOq:last{margin-bottom:0;}/*!sc*/ 443@media (max-width:51.125em){.hQMkOq{max-width:100%;font-weight:normal;}}/*!sc*/ 444data-styled.g1221[id="WhyShakaCode__Description-sc-15butv1-4"]{content:"hQMkOq,"}/*!sc*/ 445.dbcOKA{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end;bottom:0;width:535px;overflow:hidden;height:469px;}/*!sc*/ 446@media (max-width:90em){.dbcOKA{height:70%;width:30%;}}/*!sc*/ 447@media (max-width:64.25em){.dbcOKA{display:none;}}/*!sc*/ 448data-styled.g1222[id="WhyShakaCode__Justin-sc-15butv1-5"]{content:"dbcOKA,"}/*!sc*/ 449</style><style type="text/css"> 450 .anchor.before { 451 position: absolute; 452 top: 0; 453 left: 0; 454 transform: translateX(-100%); 455 padding-right: 4px; 456 } 457 .anchor.after { 458 display: inline-block; 459 padding-left: 4px; 460 } 461 h1 .anchor svg, 462 h2 .anchor svg, 463 h3 .anchor svg, 464 h4 .anchor svg, 465 h5 .anchor svg, 466 h6 .anchor svg { 467 visibility: hidden; 468 } 469 h1:hover .anchor svg, 470 h2:hover .anchor svg, 471 h3:hover .anchor svg, 472 h4:hover .anchor svg, 473 h5:hover .anchor svg, 474 h6:hover .anchor svg, 475 h1 .anchor:focus svg, 476 h2 .anchor:focus svg, 477 h3 .anchor:focus svg, 478 h4 .anchor:focus svg, 479 h5 .anchor:focus svg, 480 h6 .anchor:focus svg { 481 visibility: visible; 482 } 483 </style>
483<script> 484 document.addEventListener("DOMContentLoaded", function(event) { 485 var hash = window.decodeURI(location.hash.replace('#', '')) 486 if (hash !== '') { 487 var element = document.getElementById(hash) 488 if (element) { 489 var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop 490 var clientTop = document.documentElement.clientTop || document.body.clientTop || 0 491 var offset = element.getBoundingClientRect().top + scrollTop - clientTop 492 // Wait for the browser to finish rendering before scrolling. 493 setTimeout((function() { 494 window.scrollTo(0, offset - 10) 495 }), 0) 496 } 497 } 498 }) 499 </script>
499<style>.gatsby-image-wrapper{position:relative;overflow:hidden}.gatsby-image-wrapper picture.object-fit-polyfill{position:static!important}.gatsby-image-wrapper img{bottom:0;height:100%;left:0;margin:0;max-width:none;padding:0;position:absolute;right:0;top:0;width:100%;object-fit:cover}.gatsby-image-wrapper [data-main-image]{opacity:0;transform:translateZ(0);transition:opacity .25s linear;will-change:opacity}.gatsby-image-wrapper-constrained{display:inline-block;vertical-align:top}</style><noscript><style>.gatsby-image-wrapper noscript [data-main-image]{opacity:1!important}.gatsby-image-wrapper [data-placeholder-image]{opacity:0!important}</style></noscript>
499<script type="module">const e="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;e&&document.body.addEventListener("load",(function(e){const t=e.target;if(void 0===t.dataset.mainImage)return;if(void 0===t.dataset.gatsbyImageSsr)return;let a=null,n=t;for(;null===a&&n;)void 0!==n.parentNode.dataset.gatsbyImageWrapper&&(a=n.parentNode),n=n.parentNode;const o=a.querySelector("[data-placeholder-image]"),r=new Image;r.src=t.currentSrc,r.decode().catch((()=>{})).then((()=>{t.style.opacity=1,o&&(o.style.opacity=0,o.style.transition="opacity 500ms linear")}))}),!0);</script>
499<script type="application/ld+json" data-gatsby-head="true">{"@context":"https://schema.org","@type":"Organization","name":"ShakaCode","description":"ShakaCode is a US software consultancy, remote-first since 2011, best known for React on Rails. We build and maintain AI automations for mid-market companies with small IT teams and optimize web performance.","foundingDate":"2011","contactPoint":{"@type":"ContactPoint","contactType":"sales","email":"[email protected]"},"url":"https://shakacode.com/","logo":"https://shakacode.com/shakacode-og.png","sameAs":["https://github.com/shakacode","https://linkedin.com/company/shakacode","https://twitter.com/shakacode"]}</script>
499<script type="application/ld+json" data-gatsby-head="true">{"@context":"https://schema.org","@type":"WebSite","name":"Shakacode","url":"https://shakacode.com/"}</script>
499</head><body><noscript id="gatsby-noscript">This app works best with JavaScript enabled.</noscript><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><div class="Header__StyledHeader-sc-1f99kj7-0 hpJFFD"><div style="box-sizing:border-box;position:relative;margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;max-width:1156px" class="Container__ContainerWrapper-sc-azyjet-0 Header__StyledContainer-sc-1f99kj7-3 cFpblv ftanBx"><div style="margin-left:-16px;margin-right:-16px;display:flex;flex-grow:0;flex-shrink:0;align-items:normal;justify-content:flex-start;flex-direction:row;flex-wrap:wrap" class="Row__RowWrapper-sc-1hye4yz-0 dEimrw"><div style="box-sizing:border-box;min-height:1px;position:relative;padding-left:16px;padding-right:16px;width:25%;flex-basis:25%;flex-grow:0;flex-shrink:0;max-width:25%;margin-left:0%;right:auto;left:auto" class="Col__ColWrapper-sc-1891fgc-0 Header__LeftCol-sc-1f99kj7-1 eMtYwd iSlMMd"><a href="/"><svg class="IconShakacode__HeaderIconShakacode-sc-1df0ktu-0 Header__StyledLogo-sc-1f99kj7-4 dBncPp kGenTA" viewBox="0 0 206 47" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-add-photo-_R_aq_"><title id="svg-add-photo-_R_aq_">Add Photo</title><defs><linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="b-shaka"><stop stop-color="#F32B05" offset="0%"></stop><stop stop-color="#B00012" offset="100%"></stop></linearGradient><linearGradient x1="50%" y1="24.608%" x2="50%" y2="72.622%" id="c-shaka"><stop stop-color="#FF6956" offset=".792%"></stop><stop stop-color="#FF6956" stop-opacity=".01" offset="96.579%"></stop></linearGradient><path d="M11.207 10h41.586a2 2 0 011.77 1.069l8.702 16.534a2 2 0 01-.453 2.437L33.317 55.848a2 2 0 01-2.634 0L1.188 30.04a2 2 0 01-.453-2.437l8.703-16.534A2 2 0 0111.208 10z" id="a-shaka"></path></defs><g fill="none" fill-rule="evenodd"><text font-family="'Montserrat Bold', Montserrat, 'Open Sans', Arial, sans-serif" font-size="20" font-weight="bold" fill="#333738" transform="translate(0 -10)"><tspan x="80" y="41">ShakaCode</tspan></text><g transform="translate(0 -10)"><path d="M0 0h64v64H0z"></path><mask id="d-shaka" fill="#fff"><use xlink:href="#a-shaka"></use></mask><use fill="url(#b-shaka)" xlink:href="#a-shaka"></use><path d="M7 43c22.118-2.144 33.57-6.578 34.354-13.303 1.178-10.088-17.4-1.454-20.927-1 9.658-7.17 22.018-11.721 37.08-13.652H66V57H7V43z" fill="url(#c-shaka)" mask="url(#d-s
499haka)"></path></g></g></svg></a></div><div style="box-sizing:border-box;min-height:1px;position:relative;padding-left:16px;padding-right:16px;width:75%;flex-basis:75%;flex-grow:0;flex-shrink:0;max-width:75%;margin-left:0%;right:auto;left:auto" class="Col__ColWrapper-sc-1891fgc-0 Header__RightCol-sc-1f99kj7-2 eMtYwd loKBBo"><div class="Header__DesktopOnly-sc-1f99kj7-5 ieckEi"><div class="Menu__MenuWrapper-sc-1pnmqk0-1 jlWwFw"><div class="MenuLink__MenuLinkWrapper-sc-1rlzywk-0 gxtYTm"><span class="MenuLinkTitle__StyledLink-sc-7z8r-0 jbxYoX"><span class="MenuLinkTitle__Title-sc-7z8r-1 ebTCDI">About</span><svg color="lightGray" viewBox="0 0 8 5" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-chevron-down-_R_d5iq_" class="SvgIcon__StyledSvgIcon-sc-pvlift-0 idZSLk"><title id="svg-chevron-down-_R_d5iq_">Chevron down</title><path d="M1 0l3 3 3-3 1 1-4 4-4-4z" fill="#D9E1E3" fill-rule="evenodd"></path></svg></span></div><div class="MenuLink__MenuLinkWrapper-sc-1rlzywk-0 gxtYTm"><span class="MenuLinkTitle__StyledLink-sc-7z8r-0 jbxYoX"><span class="MenuLinkTitle__Title-sc-7z8r-1 ebTCDI">Services</span><svg color="lightGray" viewBox="0 0 8 5" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-chevron-down-_R_d9iq_" class="SvgIcon__StyledSvgIcon-sc-pvlift-0 idZSLk"><title id="svg-chevron-down-_R_d9iq_">Chevron down</title><path d="M1 0l3 3 3-3 1 1-4 4-4-4z" fill="#D9E1E3" fill-rule="evenodd"></path></svg></span></div><div class="MenuLink__MenuLinkWrapper-sc-1rlzywk-0 gxtYTm"><span class="MenuLinkTitle__StyledLink-sc-7z8r-0 jbxYoX"><span class="MenuLinkTitle__Title-sc-7z8r-1 ebTCDI">Portfolio</span><svg color="lightGray" viewBox="0 0 8 5" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-chevron-down-_R_ddiq_" class="SvgIcon__StyledSvgIcon-sc-pvlift-0 idZSLk"><title id="svg-chevron-down-_R_ddiq_">Chevron down</title><path d="M1 0l3 3 3-3 1 1-4 4-4-4z" fill="#D9E1E3" fill-rule="evenodd"></path></svg></span></div><div class="MenuLink__MenuLinkWrapper-sc-1rlzywk-0 gxtYTm"><span class="MenuLinkTitle__StyledLink-sc-7z8r-0 jbxYoX"><span class="MenuLinkTitle__Title-sc-7z8r-1 ebTCDI">Insights</span><svg color="lightGray" viewBox="0 0 8 5" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-chevron-down-_R_dhiq_" class="SvgIcon__StyledSvgIcon-sc-pvlift-0 idZSLk"><title id="svg-chevron-down-_R_dhiq_">Chevron down</title><path d="M1 0l3 3 3-3 1 1-4 4-4-4z" fill="#D9E1E3" fill-rule="evenodd"></path></svg></span></div><div class="MenuLink__MenuLinkWrapper-sc-1rlzywk-0 gxtYTm"><span class="MenuLinkTitle__StyledLink-sc-7z8r-0 jbxYoX"><span class="MenuLinkTitle__Title-sc-7z8r-1 ebTCDI">Docs</span><svg color="lightGray" viewBox="0 0 8 5" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-chevron-down-_R_dliq_" class="SvgIcon__StyledSvgIcon-sc-pvlift-0 idZSLk"><title id="svg-chevron-down-_R_dliq_">Chevron down</title><path d="M1 0l3 3 3-3 1 1-4 4-4-4z" fill="#D9E1E3" fill-rule="evenodd"></path></svg></span></div><div class="SearchTrigger__TooltipContainer-sc-1ayqg8r-3 dmMQXT"><button aria-label="Search documentation" class="SearchTrigger__DesktopBadge-sc-1ayqg8r-0 bgWeJJ"><span>Search</span><kbd class="SearchTrigger__KeyboardShortcut-sc-1ayqg8r-1 iNWavl">Ctrl+K</kbd></button><div class="SearchTrigger__Tooltip-sc-1ayqg8r-4 csnytt">Press <strong>Ctrl+K</strong> to search anytime<button class="SearchTrigger__TooltipClose-sc-1ayqg8r-5 bDlPnM">â</button></div></div><button aria-label="Search documentation" class="SearchTrigger__MobileButton-sc-1ayqg8r-2 kscFKW"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><circle cx="10.5" cy="10.5" r="7.5"></circle><line x1="16" y1="16" x2="21" y2="21" stroke-linecap="round"></line></svg></button><a href="https://meetings.hubspot.com/justingordon/30-minute-consultation" target="_blank" rel="noopener noreferrer" class="Button__ButtonLink-sc-xxhl33-1 Menu__StyledButton-sc-1pnmqk0-0 bHoJxm fAhcEw">Book a free call</a></div></div><div class="Header__MobileOnly-sc-1f99kj7-6 iKaCix"><div class="SearchTrigger__TooltipContainer-sc-1ayqg8r-3 dmMQXT"><button aria-label="Search documentation" class="SearchTrigger__DesktopBadge-sc-1ayqg8r-0 bgWeJJ"><span>Search</span><kbd class="SearchTrigger__KeyboardShortcut-sc-1ayqg8r-1 iNWavl">Ctrl+K</kbd></button><div class="SearchTrigger__Tooltip-sc-1ayqg8r-4 csnytt">Press <strong>Ctrl+K</strong> to search anytime<button class="SearchTrigger__TooltipClose-sc-1ayqg8r-5 bDlPnM">â</button></div></div><button aria-label="Search documentation" class="SearchTrigger__MobileButton-sc-1ayqg8r-2 kscFKW"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><circle cx="10.5" cy="10.5" r="7.5"></circle><line x1="16" y1="16" x2="21" y2="21" stroke-linecap="round"></line></svg></button><div class="Header__StyledMobileMenu-sc-1f99kj7-7 gddtoa"><svg color="darkerRed" class="SvgIcon__StyledSvgIcon-sc-pvlift-0 ijOdlI MobileMenu__StyledIconBurger-sc-1ywfcxj-2 bJjXbU" viewBox="0 0 24 20" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-burger-_R_qiq_"><title id="svg-burger-_R_qiq_">Burger</title><path d="M14 16a2 2 0 110 4H2a2 2 0 110-4h12zm8-8a2 2 0 110 4H2a2 2 0 110-4h20zm0-8a2 2 0 110 4H2a2 2 0 110-4h20z" fill="#B11100" fill-rule="evenodd"></path></svg></div></div></div></div></div></div><header><div style="box-sizing:border-box;position:relative;margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;max-width:1156px" class="Container__ContainerWrapper-sc-azyjet-0 AboutUsHero__StyledContainer-sc-18w4ucq-0 cFpblv cZimWC"><div style="margin-left:-16px;margin-right:-16px;display:flex;flex-grow:0;flex-shrink:0;align-items:normal;justify-content:flex-start;flex-direction:row;flex-wrap:wrap" class="Row__RowWrapper-sc-1hye4yz-0 AboutUsHero__StyledRow-sc-18w4ucq-1 dEimrw dYhTRU"><div style="box-sizing:border-box;min-height:1px;position:relative;padding-left:16px;padding-right:16px;width:58.333333333333336%;flex-basis:58.333333333333336%;flex-grow:0;flex-shrink:0;max-width:58.333333333333336%;margin-left:0%;right:auto;left:auto" class="Col__ColWrapper-sc-1891fgc-0 eMtYwd"><h1 class="H1-sc-hj2kha-0 bkbNNW">We make production React and Rails apps measurably faster</h1><p class="P-sc-2fe20n-0 AboutUsHero__Description-sc-18w4ucq-2 bHVpRD bFPaMG">
499ShakaCode is a web performance and AI engineering company. We build AI-native automation into real product workflows, and we maintain the open-source gems much of the ecosystem relies on, including React on Rails and Shakapacker.</p><p class="P-sc-2fe20n-0 AboutUsHero__Description-sc-18w4ucq-2 bHVpRD bFPaMG">Founded in 2011 by<!-- --> <a href="https://www.linkedin.com/in/railsonmaui" target="_blank" rel="noopener noreferrer">Justin Gordon</a>, creator of the open-source react_on_rails gem, ShakaCode has shipped production React and Rails since 2011. You get competitive pricing, transparent billing, and a team that scales to fit your project.</p></div><div style="box-sizing:border-box;min-height:1px;position:relative;padding-left:16px;padding-right:16px;width:33.333333333333336%;flex-basis:33.333333333333336%;flex-grow:0;flex-shrink:0;max-width:33.333333333333336%;margin-left:8.333333333333334%;right:auto;left:auto" class="Col__ColWrapper-sc-1891fgc-0 eMtYwd"><div class="AboutUsHero__StyledTestimonial-sc-18w4ucq-3 ZJPSP"><p class="Testimonial__Text-sc-k5qbzt-0 nDHhm">The ShakaCode team brought out-of-the-box thinking that addressed concerns, met our requirements, and identified operational constraints, far exceeding our expectations.</p><div class="Person__Wrapper-sc-mwt357-2 kNzMtF"><div class="Person__PhotoCol-sc-mwt357-3 kwfRRv"><div class="Person__PhotoWrapper-sc-mwt357-4 jfowkV"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained"><div style="max-width:750px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='750'%20width='750'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><div aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:#080808;position:absolute;top:0;left:0;bottom:0;right:0"></div><picture><source type="image/webp" data-srcset="/static/132764dcd1f932e9804100d6c72249a1/ea39e/erik.webp 20w,/static/132764dcd1f932e9804100d6c72249a1/25769/erik.webp 40w,/static/132764dcd1f932e9804100d6c72249a1/1b1dc/erik.webp 80w" sizes="(min-width: 80px) 80px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 80px) 80px, 100vw" decoding="async" loading="lazy" data-src="/static/132764dcd1f932e9804100d6c72249a1/1272e/erik.png" data-srcset="/static/132764dcd1f932e9804100d6c72249a1/9cb3b/erik.png 20w,/static/132764dcd1f932e9804100d6c72249a1/ee9bb/erik.png 40w,/static/132764dcd1f932e9804100d6c72249a1/1272e/erik.png 80w" alt="Erik Krueger - shakacode client"/></picture><noscript><picture><source type="image/webp" srcSet="/static/132764dcd1f932e9804100d6c72249a1/ea39e/erik.webp 20w,/static/132764dcd1f932e9804100d6c72249a1/25769/erik.webp 40w,/static/132764dcd1f932e9804100d6c72249a1/1b1dc/erik.webp 80w" sizes="(min-width: 80px) 80px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 80px) 80px, 100vw" decoding="async" loading="lazy" src="/static/132764dcd1f932e9804100d6c72249a1/1272e/erik.png" srcSet="/static/132764dcd1f932e9804100d6c72249a1/9cb3b/erik.png 20w,/static/132764dcd1f932e9804100d6c72249a1/ee9bb/erik.png 40w,/static/132764dcd1f932e9804100d6c72249a1/1272e/erik.png 80w" alt="Erik Krueger - shakacode client"/></picture></noscript>
499<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
499</div></div></div><div class="Person__PositionCol-sc-mwt357-5 MjSeT"><span class="Person__Name-sc-mwt357-0 knPJKz">Erik Krueger</span><span class="Person__Position-sc-mwt357-1 eKYVnM"><span>CTO at<!-- --> <a href="https://www.printivity.com/" target="_blank" rel="noopener noreferrer">Printivity</a></span></span></div></div></div></div></div></div></header><main><div style="box-sizing:border-box;position:relative;margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;max-width:1156px" class="Container__ContainerWrapper-sc-azyjet-0 cFpblv"><div style="margin-left:-16px;margin-right:-16px;display:flex;flex-grow:0;flex-shrink:0;align-items:normal;justify-content:flex-start;flex-direction:row;flex-wrap:wrap" class="Row__RowWrapper-sc-1hye4yz-0 AboutUsSubsection__SectionWrapper-sc-1pyjzr5-0 dEimrw dnYXWa"><div style="box-sizing:border-box;min-height:1px;position:relative;padding-left:16px;padding-right:16px;width:58.333333333333336%;flex-basis:58.333333333333336%;flex-grow:0;flex-shrink:0;max-width:58.333333333333336%;margin-left:0%;right:auto;left:auto" class="Col__ColWrapper-sc-1891fgc-0 AboutUsSubsection__TextWrapper-sc-1pyjzr5-2 eMtYwd jXdEgK"><h2 id="what-we-do" class="H2-sc-1u39ok0-0 AboutUsSubsection__StyledHeading-sc-1pyjzr5-1 QTrsV fSoJQc">What we do</h2><p class="P-sc-2fe20n-0 AboutUsSubsection__Description-sc-1pyjzr5-3 fduduP kLpCMn">Solving real-world problems using proven, state-of-the-art technologies and best practices, ShakaCode helps startups, mid-market, and enterprise clients scale their business with high impact websites. Since 2011, weâve leveraged our experience to design, prototype, and build dozens of web apps, e-commerce portals, and industry marketplaces.</p><a class="Button__ButtonOutlinedGatsbyLink-sc-xxhl33-5 GoToButton__GoToButtonGatsbyStyled-sc-1abjbqg-1 gtLCY hoQDjm AboutUsSubsection__StyledGoToButton-sc-1pyjzr5-4 bwJBXZ" href="/recent-work/"><span>See what weâve done</span><svg color="darkerRed" class="SvgIcon__StyledSvgIcon-sc-pvlift-0 ijOdlI GoToButton__StyledIcon-sc-1abjbqg-2" viewBox="0 0 24 16" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-arrow-right-_R_2qisq_"><title id="svg-arrow-right-_R_2qisq_">Arrow right</title><g fill="none" fill-rule="evenodd"><path d="M-322-1076h1440v3236H-322z"></path><path d="M0 7h20l-5.5-5.5L16 0l7 7 1 1-1 1-7 7-1.5-1.5L20 9H0z" fill="#B11100"></path></g></svg></a></div><div style="box-sizing:border-box;min-height:1px;position:relative;padding-left:16px;padding-right:16px;width:33.333333333333336%;flex-basis:33.333333333333336%;flex-grow:0;flex-shrink:0;max-width:33.333333333333336%;margin-left:8.333333333333334%;right:auto;left:auto" class="Col__ColWrapper-sc-1891fgc-0 eMtYwd"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained"><div style="max-width:750px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='607.7170418006431'%20width='750'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><div aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:#f8f8f8;position:absolute;top:0;left:0;bottom:0;right:0"></div><picture><source type="image/webp" data-srcset="/static/e8641ea5a5a1e1a287c93e501d276318/273f5/three_client_images.webp 156w,/static/e8641ea5a5a1e1a287c93e501d276318/b588c/three_client_images.webp 311w,/static/e8641ea5a5a1e1a287c93e501d276318/fc3c3/three_client_images.webp 622w" sizes="(min-width: 622px) 622px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 622px) 622px, 100vw" decoding="async" loading="lazy" data-src="/static/e8641ea5a5a1e1a287c93e501d276318/70cf1/three_client_images.png" data-srcset="/static/e8641ea5a5a1e1a287c93e501d276318/a3ea8/three_client_images.png 156w,/static/e8641ea5a5a1e1a287c93e501d276318/d9ecb/three_client_images.png 311w,/static/e8641ea5a5a1e1a287c93e501d276318/70cf1/three_client_images.png 622w" alt="some shakacode clients - datacenters, printivity and hvmn"/></picture><noscript><picture><source type="image/webp" srcSet="/static/e8641ea5a5a1e1a287c93e501d276318/273f5/three_client_images.webp 156w,/static/e8641ea5a5a1e1a287c93e501d276318/b588c/three_client_images.webp 311w,/static/e8641ea5a5a1e1a287c93e501d276318/fc3c3/three_client_images.webp 622w" sizes="(min-width: 622px) 622px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 622px) 622px, 100vw" decoding="async" loading="lazy" src="/static/e8641ea5a5a1e1a287c93e501d276318/70cf1/three_client_images.png" srcSet="/static/e8641ea5a5a1e1a287c93e501d276318/a3ea8/three_client_images.png 156w,/static/e8641ea5a5a1e1a287c93e501d276318/d9ecb/three_client_images.png 311w,/static/e8641ea5a5a1e1a287c93e501d276318/70cf1/three_client_images.png 622w" alt="some shakacode clients - datacenters, printivity and hvmn"/></picture></noscript>
499<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
499</div></div></div><div style="margin-left:-16px;margin-right:-16px;display:flex;flex-grow:0;flex-shrink:0;align-items:normal;justify-content:flex-start;flex-direction:row;flex-wrap:wrap" class="Row__RowWrapper-sc-1hye4yz-0 AboutUsSubsection__SectionWrapper-sc-1pyjzr5-0 dEimrw dnYXWa"><div style="box-sizing:border-box;min-height:1px;position:relative;padding-left:16px;padding-right:16px;width:58.333333333333336%;flex-basis:58.333333333333336%;flex-grow:0;flex-shrink:0;max-width:58.333333333333336%;margin-left:0%;right:auto;left:auto" class="Col__ColWrapper-sc-1891fgc-0 AboutUsSubsection__TextWrapper-sc-1pyjzr5-2 eMtYwd jXdEgK"><h2 id="our-client-engagement-model" class="H2-sc-1u39ok0-0 AboutUsSubsection__StyledHeading-sc-1pyjzr5-1 QTrsV fSoJQc">Our client engagement model</h2><p class="P-sc-2fe20n-0 AboutUsSubsection__Description-sc-1pyjzr5-3 fduduP kLpCMn">Streamlining project onboarding and accelerating delivery, ShakaCode offers a fully transparent engagement model. With carefully vetted, highly-skilled resources, competitive rates, and regular, scheduled communications, sit back and watch as your vision becomes reality.</p><a class="Button__ButtonOutlinedGatsbyLink-sc-xxhl33-5 GoToButton__GoToButtonGatsbyStyled-sc-1abjbqg-1 gtLCY hoQDjm AboutUsSubsection__StyledGoToButton-sc-1pyjzr5-4 bwJBXZ" href="/blog/client-engagement-model/"><span>Fine out what to expect</span><svg color="darkerRed" class="SvgIcon__StyledSvgIcon-sc-pvlift-0 ijOdlI GoToButton__StyledIcon-sc-1abjbqg-2" viewBox="0 0 24 16" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-arrow-right-_R_2r2sq_"><title id="svg-arrow-right-_R_2r2sq_">Arrow right</title><g fill="none" fill-rule="evenodd"><path d="M-322-1076h1440v3236H-322z"></path><path d="M0 7h20l-5.5-5.5L16 0l7 7 1 1-1 1-7 7-1.5-1.5L20 9H0z" fill="#B11100"></path></g></svg></a></div><div style="box-sizing:border-box;min-height:1px;position:relative;padding-left:16px;padding-right:16px;width:33.333333333333336%;flex-basis:33.333333333333336%;flex-grow:0;flex-shrink:0;max-width:33.333333333333336%;margin-left:8.333333333333334%;right:auto;left:auto" class="Col__ColWrapper-sc-1891fgc-0 eMtYwd"></div></div><div class="CoreExpertise__StyledContainer-sc-uqs5fw-0 fcMjFN"><div style="margin-left:-16px;margin-right:-16px;display:flex;flex-grow:0;flex-shrink:0;align-items:normal;justify-content:flex-start;flex-direction:row;flex-wrap:wrap" class="Row__RowWrapper-sc-1hye4yz-0 dEimrw"><div style="box-sizing:border-box;min-height:1px;position:relative;padding-left:16px;padding-right:16px;width:58.333333333333336%;flex-basis:58.333333333333336%;flex-grow:0;flex-shrink:0;max-width:58.333333333333336%;margin-left:0%;right:auto;left:auto" class="Col__ColWrapper-sc-1891fgc-0 eMtYwd"><h2 class="H2-sc-1u39ok0-0 CoreExpertise__StyledHeading-sc-uqs5fw-1 QTrsV dacNiD">Our core expertise</h2><p class="P-sc-2fe20n-0 CoreExpertise__Description-sc-uqs5fw-2 fduduP cuxEdU">As partners who work with you, not for you, we can either build your entire website or app or complement your existing team. We offer the expertise, experience, flexibility, and knowledge transfer you need to meet aggressive deadlines - on time and within budget.</p></div></div><div class="CoreExpertise__ExpertiseListWrapper-sc-uqs5fw-3 dhlKSl"><div class="CoreExpertise__Expertise-sc-uqs5fw-4 fWlzEc"><div class="CoreExpertise__StyledIcon-sc-uqs5fw-6 fiCmRw"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained"><div style="max-width:750px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='750'%20width='750'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><div aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:#e82818;position:absolute;top:0;left:0;bottom:0;right:0"></div><picture><source type="image/webp" data-srcset="/static/9c4dc70bd4e42c79fe92ac9d09a370b2/b6458/ruby_on_rails_icon.webp 125w,/static/9c4dc70bd4e42c79fe92ac9d09a370b2/71cea/ruby_on_rails_icon.webp 250w,/static/9c4dc70bd4e42c79fe92ac9d09a370b2/b124b/rub
499y_on_rails_icon.webp 500w" sizes="(min-width: 500px) 500px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 500px) 500px, 100vw" decoding="async" loading="lazy" data-src="/static/9c4dc70bd4e42c79fe92ac9d09a370b2/03bc9/ruby_on_rails_icon.png" data-srcset="/static/9c4dc70bd4e42c79fe92ac9d09a370b2/35e19/ruby_on_rails_icon.png 125w,/static/9c4dc70bd4e42c79fe92ac9d09a370b2/b6e8c/ruby_on_rails_icon.png 250w,/static/9c4dc70bd4e42c79fe92ac9d09a370b2/03bc9/ruby_on_rails_icon.png 500w" alt="Ruby on Rails with React server-side rendering for SEO, plus React Server Components through React on Rails Pro"/></picture><noscript><picture><source type="image/webp" srcSet="/static/9c4dc70bd4e42c79fe92ac9d09a370b2/b6458/ruby_on_rails_icon.webp 125w,/static/9c4dc70bd4e42c79fe92ac9d09a370b2/71cea/ruby_on_rails_icon.webp 250w,/static/9c4dc70bd4e42c79fe92ac9d09a370b2/b124b/ruby_on_rails_icon.webp 500w" sizes="(min-width: 500px) 500px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 500px) 500px, 100vw" decoding="async" loading="lazy" src="/static/9c4dc70bd4e42c79fe92ac9d09a370b2/03bc9/ruby_on_rails_icon.png" srcSet="/static/9c4dc70bd4e42c79fe92ac9d09a370b2/35e19/ruby_on_rails_icon.png 125w,/static/9c4dc70bd4e42c79fe92ac9d09a370b2/b6e8c/ruby_on_rails_icon.png 250w,/static/9c4dc70bd4e42c79fe92ac9d09a370b2/03bc9/ruby_on_rails_icon.png 500w" alt="Ruby on Rails with React server-side rendering for SEO, plus React Server Components through React on Rails Pro"/></picture></noscript>
499<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
499</div></div><p class="P-sc-2fe20n-0 CoreExpertise__ExpertiseDescription-sc-uqs5fw-5 lbKllw eCaenA">Ruby on Rails with React server-side rendering for SEO, plus React Server Components through React on Rails Pro</p></div><div class="CoreExpertise__Expertise-sc-uqs5fw-4 fWlzEc"><div class="CoreExpertise__StyledIcon-sc-uqs5fw-6 fiCmRw"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained"><div style="max-width:750px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='750'%20width='750'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><div aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:#08d8f8;position:absolute;top:0;left:0;bottom:0;right:0"></div><picture><source type="image/webp" data-srcset="/static/aa04765f6fc5a6bc3ce6ed619b45f5d3/b6458/react_icon.webp 125w,/static/aa04765f6fc5a6bc3ce6ed619b45f5d3/71cea/react_icon.webp 250w,/static/aa04765f6fc5a6bc3ce6ed619b45f5d3/b124b/react_icon.webp 500w" sizes="(min-width: 500px) 500px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 500px) 500px, 100vw" decoding="async" loading="lazy" data-src="/static/aa04765f6fc5a6bc3ce6ed619b45f5d3/03bc9/react_icon.png" data-srcset="/static/aa04765f6fc5a6bc3ce6ed619b45f5d3/35e19/react_icon.png 125w,/static/aa04765f6fc5a6bc3ce6ed619b45f5d3/b6e8c/react_icon.png 250w,/static/aa04765f6fc5a6bc3ce6ed619b45f5d3/03bc9/react_icon.png 500w" alt="React with strong type safety, specializing in TypeScript and ReScript"/></picture><noscript><picture><source type="image/webp" srcSet="/static/aa04765f6fc5a6bc3ce6ed619b45f5d3/b6458/react_icon.webp 125w,/static/aa04765f6fc5a6bc3ce6ed619b45f5d3/71cea/react_icon.webp 250w,/static/aa04765f6fc5a6bc3ce6ed619b45f5d3/b124b/react_icon.webp 500w" sizes="(min-width: 500px) 500px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 500px) 500px, 100vw" decoding="async" loading="lazy" src="/static/aa04765f6fc5a6bc3ce6ed619b45f5d3/03bc9/react_icon.png" srcSet="/static/aa04765f6fc5a6bc3ce6ed619b45f5d3/35e19/react_icon.png 125w,/static/aa04765f6fc5a6bc3ce6ed619b45f5d3/b6e8c/react_icon.png 250w,/static/aa04765f6fc5a6bc3ce6ed619b45f5d3/03bc9/react_icon.png 500w" alt="React with strong type safety, specializing in TypeScript and ReScript"/></picture></noscript>
499<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
499</div></div><p class="P-sc-2fe20n-0 CoreExpertise__ExpertiseDescription-sc-uqs5fw-5 lbKllw eCaenA">React with strong type safety, specializing in TypeScript and ReScript</p></div><div class="CoreExpertise__Expertise-sc-uqs5fw-4 fWlzEc"><div class="CoreExpertise__StyledIcon-sc-uqs5fw-6 fiCmRw"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained"><div style="max-width:750px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='750'%20width='750'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><div aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:#889898;position:absolute;top:0;left:0;bottom:0;right:0"></div><picture><source type="image/webp" data-srcset="/static/f11e08793e52060b7c8fe6068090e3ae/b6458/optimization_icon.webp 125w,/static/f11e08793e52060b7c8fe6068090e3ae/71cea/optimization_icon.webp 250w,/static/f11e08793e52060b7c8fe6068090e3ae/b124b/optimization_icon.webp 500w" sizes="(min-width: 500px) 500px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 500px) 500px, 100vw" decoding="async" loading="lazy" data-src="/static/f11e08793e52060b7c8fe6068090e3ae/03bc9/optimization_icon.png" data-srcset="/static/f11e08793e52060b7c8fe6068090e3ae/35e19/optimization_icon.png 125w,/static/f11e08793e52060b7c8fe6068090e3ae/b6e8c/optimization_icon.png 250w,/static/f11e08793e52060b7c8fe6068090e3ae/03bc9/optimization_icon.png 500w" alt="Web performance optimization with Core Web Vitals, Lighthouse, and our own ShakaPerf A/B testing"/></picture><noscript><picture><source type="image/webp" srcSet="/static/f11e08793e52060b7c8fe6068090e3ae/b6458/optimization_icon.webp 125w,/static/f11e08793e52060b7c8fe6068090e3ae/71cea/optimization_icon.webp 250w,/static/f11e08793e52060b7c8fe6068090e3ae/b124b/optimization_icon.webp 500w" sizes="(min-width: 500px) 500px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 500px) 500px, 100vw" decoding="async" loading="lazy" src="/static/f11e08793e52060b7c8fe6068090e3ae/03bc9/optimization_icon.png" srcSet="/static/f11e08793e52060b7c8fe6068090e3ae/35e19/optimization_icon.png 125w,/static/f11e08793e52060b7c8fe6068090e3ae/b6e8c/optimization_icon.png 250w,/static/f11e08793e52060b7c8fe6068090e3ae/03bc9/optimization_icon.png 500w" alt="Web performance optimization with Core Web Vitals, Lighthouse, and our own ShakaPerf A/B testing"/></picture></noscript>
499<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
499</div></div><p class="P-sc-2fe20n-0 CoreExpertise__ExpertiseDescription-sc-uqs5fw-5 lbKllw eCaenA">Web performance optimization with Core Web Vitals, Lighthouse, and our own ShakaPerf A/B testing</p></div><div class="CoreExpertise__Expertise-sc-uqs5fw-4 fWlzEc"><div class="CoreExpertise__StyledIcon-sc-uqs5fw-6 fiCmRw"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained"><div style="max-width:750px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='750'%20width='750'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><div aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:#683898;position:absolute;top:0;left:0;bottom:0;right:0"></div><picture><source type="image/webp" data-srcset="/static/4a9773549091c227cd2eb82ccd9c5e3a/16203/gatsby_icon.webp 128w,/static/4a9773549091c227cd2eb82ccd9c5e3a/82e49/gatsby_icon.webp 256w,/static/4a9773549091c227cd2eb82ccd9c5e3a/0ca0e/gatsby_icon.webp 512w" sizes="(min-width: 512px) 512px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 512px) 512px, 100vw" decoding="async" loading="lazy" data-src="/static/4a9773549091c227cd2eb82ccd9c5e3a/5ba9a/gatsby_icon.png" data-srcset="/static/4a9773549091c227cd2eb82ccd9c5e3a/f6cb4/gatsby_icon.png 128w,/static/4a9773549091c227cd2eb82ccd9c5e3a/d02dd/gatsby_icon.png 256w,/static/4a9773549091c227cd2eb82ccd9c5e3a/5ba9a/gatsby_icon.png 512w" alt="Build-time static React sites with Gatsby for speed and SEO"/></picture><noscript><picture><source type="image/webp" srcSet="/static/4a9773549091c227cd2eb82ccd9c5e3a/16203/gatsby_icon.webp 128w,/static/4a9773549091c227cd2eb82ccd9c5e3a/82e49/gatsby_icon.webp 256w,/static/4a9773549091c227cd2eb82ccd9c5e3a/0ca0e/gatsby_icon.webp 512w" sizes="(min-width: 512px) 512px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 512px) 512px, 100vw" decoding="async" loading="lazy" src="/static/4a9773549091c227cd2eb82ccd9c5e3a/5ba9a/gatsby_icon.png" srcSet="/static/4a9773549091c227cd2eb82ccd9c5e3a/f6cb4/gatsby_icon.png 128w,/static/4a9773549091c227cd2eb82ccd9c5e3a/d02dd/gatsby_icon.png 256w,/static/4a9773549091c227cd2eb82ccd9c5e3a/5ba9a/gatsby_icon.png 512w" alt="Build-time static React sites with Gatsby for speed and SEO"/></picture></noscript>
499<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
499</div></div><p class="P-sc-2fe20n-0 CoreExpertise__ExpertiseDescription-sc-uqs5fw-5 lbKllw eCaenA">Build-time static React sites with Gatsby for speed and SEO</p></div><div class="CoreExpertise__Expertise-sc-uqs5fw-4 fWlzEc"><div class="CoreExpertise__StyledIcon-sc-uqs5fw-6 fiCmRw"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained"><div style="max-width:750px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='750'%20width='750'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><div aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:#388898;position:absolute;top:0;left:0;bottom:0;right:0"></div><picture><source type="image/webp" data-srcset="/static/0c4be9b492dc1976d52cec1da64e135e/b6458/marketing_data_icon.webp 125w,/static/0c4be9b492dc1976d52cec1da64e135e/71cea/marketing_data_icon.webp 250w,/static/0c4be9b492dc1976d52cec1da64e135e/b124b/marketing_data_icon.webp 500w" sizes="(min-width: 500px) 500px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 500px) 500px, 100vw" decoding="async" loading="lazy" data-src="/static/0c4be9b492dc1976d52cec1da64e135e/03bc9/marketing_data_icon.png" data-srcset="/static/0c4be9b492dc1976d52cec1da64e135e/35e19/marketing_data_icon.png 125w,/static/0c4be9b492dc1976d52cec1da64e135e/b6e8c/marketing_data_icon.png 250w,/static/0c4be9b492dc1976d52cec1da64e135e/03bc9/marketing_data_icon.png 500w" alt="React apps over BI and marketing-data platforms for real-time, customer-facing dashboards"/></picture><noscript><picture><source type="image/webp" srcSet="/static/0c4be9b492dc1976d52cec1da64e135e/b6458/marketing_data_icon.webp 125w,/static/0c4be9b492dc1976d52cec1da64e135e/71cea/marketing_data_icon.webp 250w,/static/0c4be9b492dc1976d52cec1da64e135e/b124b/marketing_data_icon.webp 500w" sizes="(min-width: 500px) 500px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 500px) 500px, 100vw" decoding="async" loading="lazy" src="/static/0c4be9b492dc1976d52cec1da64e135e/03bc9/marketing_data_icon.png" srcSet="/static/0c4be9b492dc1976d52cec1da64e135e/35e19/marketing_data_icon.png 125w,/static/0c4be9b492dc1976d52cec1da64e135e/b6e8c/marketing_data_icon.png 250w,/static/0c4be9b492dc1976d52cec1da64e135e/03bc9/marketing_data_icon.png 500w" alt="React apps over BI and marketing-data platforms for real-time, customer-facing dashboards"/></picture></noscript>
499<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
499</div></div><p class="P-sc-2fe20n-0 CoreExpertise__ExpertiseDescription-sc-uqs5fw-5 lbKllw eCaenA">React apps over BI and marketing-data platforms for real-time, customer-facing dashboards</p></div></div></div></div><div class="WhyShakaCode__StyledFullWidthContainer-sc-15butv1-0 cxglKf"><div class="WhyShakaCode__WhyShakaCodeWrapper-sc-15butv1-1 kleHvY"><div class="WhyShakaCode__Justin-sc-15butv1-5 dbcOKA"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained"><div style="max-width:750px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='1085.0467289719625'%20width='750'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><div aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:#080808;position:absolute;top:0;left:0;bottom:0;right:0"></div><picture><source type="image/webp" data-srcset="/static/406c0da911b54c94b143821ceb994bef/d2c4e/WhyShakacodeSectionJustinNewImage.webp 134w,/static/406c0da911b54c94b143821ceb994bef/ceb47/WhyShakacodeSectionJustinNewImage.webp 268w,/static/406c0da911b54c94b143821ceb994bef/b6a17/WhyShakacodeSectionJustinNewImage.webp 535w" sizes="(min-width: 535px) 535px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 535px) 535px, 100vw" decoding="async" loading="lazy" data-src="/static/406c0da911b54c94b143821ceb994bef/38a6f/WhyShakacodeSectionJustinNewImage.png" data-srcset="/static/406c0da911b54c94b143821ceb994bef/2a4b7/WhyShakacodeSectionJustinNewImage.png 134w,/static/406c0da911b54c94b143821ceb994bef/197ec/WhyShakacodeSectionJustinNewImage.png 268w,/static/406c0da911b54c94b143821ceb994bef/38a6f/WhyShakacodeSectionJustinNewImage.png 535w" alt="ShakaCode founder and CEO - Justin Gordon"/></picture><noscript><picture><source type="image/webp" srcSet="/static/406c0da911b54c94b143821ceb994bef/d2c4e/WhyShakacodeSectionJustinNewImage.webp 134w,/static/406c0da911b54c94b143821ceb994bef/ceb47/WhyShakacodeSectionJustinNewImage.webp 268w,/static/406c0da911b54c94b143821ceb994bef/b6a17/WhyShakacodeSectionJustinNewImage.webp 535w" sizes="(min-width: 535px) 535px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 535px) 535px, 100vw" decoding="async" loading="lazy" src="/static/406c0da911b54c94b143821ceb994bef/38a6f/WhyShakacodeSectionJustinNewImage.png" srcSet="/static/406c0da911b54c94b143821ceb994bef/2a4b7/WhyShakacodeSectionJustinNewImage.png 134w,/static/406c0da911b54c94b143821ceb994bef/197ec/WhyShakacodeSectionJustinNewImage.png 268w,/static/406c0da911b54c94b143821ceb994bef/38a6f/WhyShakacodeSectionJustinNewImage.png 535w" alt="ShakaCode founder and CEO - Justin Gordon"/></picture></noscript>
499<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
499</div></div><div class="WhyShakaCode__TextWrapper-sc-15butv1-2 ckDjvO"><h2 id="why" class="H2-sc-1u39ok0-0 WhyShakaCode__StyledHeading-sc-15butv1-3 QTrsV dhJZKo">Why ShakaCode?</h2><p class="P-sc-2fe20n-0 WhyShakaCode__Description-sc-15butv1-4 fduduP hQMkOq">The ShakaCode spirit embraces everything that the shaka hand gesture represents to Hawaiians, surfers, and everyone else who understands the meaning behind it. Just as saying "aloha" expresses mutual regard and affection for another person, the shaka gesture represents mutual respect, solidarity, compassion, and friendship.</p><p class="P-sc-2fe20n-0 WhyShakaCode__Description-sc-15butv1-4 fduduP hQMkOq">At ShakaCode, we strive to reflect the same spirit as we collaborate to build beautiful code to ensure the realization of your goals. From our very first interaction, you'll find us to be professional but easy-going, making it easy to partner with us for long term success.</p></div></div></div><div style="box-sizing:border-box;position:relative;margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;max-width:1156px" class="Container__ContainerWrapper-sc-azyjet-0 cFpblv"><div style="margin-left:-16px;margin-right:-16px;display:flex;flex-grow:0;flex-shrink:0;align-items:normal;justify-content:flex-start;flex-direction:row;flex-wrap:wrap" class="Row__RowWrapper-sc-1hye4yz-0 OurValues__StyledContainer-sc-d6k2rb-0 dEimrw laxeQS"><div style="box-sizing:border-box;min-height:1px;position:relative;padding-left:16px;padding-right:16px;width:41.66666666666667%;flex-basis:41.66666666666667%;flex-grow:0;flex-shrink:0;max-width:41.66666666666667%;margin-left:0%;right:auto;left:auto" class="Col__ColWrapper-sc-1891fgc-0 OurValues__Values-sc-d6k2rb-2 eMtYwd"><h2 id="our-values" class="H2-sc-1u39ok0-0 OurValues__StyledHeading-sc-d6k2rb-1 QTrsV dtqmxg">Our values</h2><p class="P-sc-2fe20n-0 OurValues__Details-sc-d6k2rb-4 fduduP hyJiTe">Core values are the foundation for every decision we make. Living according to these values, we deliver quality solutions, empower our team members and our clients, and put in place best practices that make us easy to work with to ensure long-lasting relationships.</p><div class="OurValues__ValuesList-sc-d6k2rb-5 efGXyU"><div class="OurValues__ValueLink-sc-d6k2rb-9 jcMrvG"><svg color="darkerRed" class="SvgIcon__StyledSvgIcon-sc-pvlift-0 ijOdlI OurValues__StyledLogo-sc-d6k2rb-6 ebqsmE" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-excellence-_R_9qmsq_"><title id="svg-excellence-_R_9qmsq_">Excellence</title><svg width="40" height="40" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><circle fill="#B11100" cx="20" cy="20" r="20"></circle><path d="M20 26l-4.662 2.451a1.333 1.333 0 01-1.935-1.406l.89-5.19-3.771-3.677a1.333 1.333 0 01.739-2.275l5.212-.757 2.331-4.723a1.333 1.333 0 012.392 0l2.33 4.723 5.213.757a1.333 1.333 0 01.74 2.275l-3.773 3.676.89 5.191a1.333 1.333 0 01-1.934 1.406L20 26z" fill="#FFF"></path></g></svg></svg><p color="darkerRed" class="P-sc-2fe20n-0 OurValues__ValueName-sc-d6k2rb-8 bHVpRD eSvbHV">Excellence</p><svg color="darkerRed" class="SvgIcon__StyledSvgIcon-sc-pvlift-0 ijOdlI OurValues__StyledIconChevronRight-sc-d6k2rb-7 AQFUF" viewBox="0 0 8 12" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-chevron-right-_R_pqmsq_"><title id="svg-chevron-right-_R_pqmsq_">Chevron right</title><g id="1440-Chevron-Right" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="New-About-us" transform="translate(-446.000000, -2796.000000)" fill="#B11100"><path d="M446.707107,2797.29289 L447.292893,2796.70711 C447.683418,2796.31658 448.316582,2796.31658 448.707107,2796.70711 L453.292893,2801.29289 C453.683418,2801.68342 453.683418,2802.31658 453.292893,2802.70711 L448.707107,2807.29289 C448.316582,2807.68342 447.683418,2807.68342 447.292893,2807.29289 L446.707107,2806.70711 C446.316582,2806.31658 446.316582,2805.68342 446.707107,2805.29289 L450,2802 L450,2802 L446.707107,2798.70711 C446.316582,2798.31658 446.316582,2797.68342 446.707107,2797.29289 Z" id="Rectangle-Chevron-Right"></path></g></g></svg></div><div class="OurValues__ValueLink-sc-d6k2rb-9 jcMrvG"><svg class="SvgIcon__StyledSvgIcon-sc-pvlift-0 ijOdlI OurValues__StyledLogo-sc-d6k2rb-6 ebqsmE" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-knowledge-sharing-_R_aqmsq_"><title id="svg-knowledge-sharing-_R_aqmsq_">Knowledge sharing</title><g fill="none" fill-rule="evenodd"><circle fill="#88969a" cx="20" cy="20" r="20"></circle><path d="M26 14a1 1 0 011 1v14a1 1 0 01-1 1H14a1 1 0 01-1-1V15a1 1 0 011-1h12zm-4.5 10h-5a.5.5 0 00-.492.41L16 24.5v1a.5.5 0 00.41.492l.09.008h5a.5.5 0 00.492-.41L22 25.5v-1a.5.5 0 00-.5-.5zm2-3h-7a.5.5 0 00-.492.41L16 21.5v1a.5.5 0 00.41.492l.09.008h7a.5.5 0 00.492-.41L24 22.5v-1a.5.5 0 00-.5-.5zm0-3h-7a.5.5 0 00-.492.41L16 18.5v1a.5.5 0 00.41.492l.09.008h7a.5.5 0 00.492-.41L24 19.5v-1a.5.5 0 00-.5-.5zM20 6l3 3-.75.75L20.5 8v4h-1V8l-1.75 1.75L17 9l3-3z" fill="#FFF"></path></g></svg><p color="gray" class="P-sc-2fe20n-0 OurValues__ValueName-sc-d6k2rb-8 bHVpRD czjWAo">Knowledge sharing</p><svg color="gray" class="SvgIcon__StyledSvgIcon-sc-pvlift-0 ijOdlI OurValues__StyledIconChevronRight-sc-d6k2rb-7 AQFUF" viewBox="0 0 8 12" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-chevron-right-_R_qqmsq_"><title id="svg-chevron-right-_R_qqmsq_">Chevron right</title><g id="1440-Chevron-Right" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="New-About-us" transform="translate(-446.000000, -2796.000000)" fill="#4E5B5E"><path d="M446.707107,2797.29289 L447.292893,2796.70711 C447.683418,2796.31658 448.316582,2796.31658 448.707107,2796.70711 L453.292893,2801.29289 C453.683418,2801.68342 453.683418,2802.31658 453.292893,2802.70711 L448.707107,2807.29289 C448.316582,2807.68342 447.
499683418,2807.68342 447.292893,2807.29289 L446.707107,2806.70711 C446.316582,2806.31658 446.316582,2805.68342 446.707107,2805.29289 L450,2802 L450,2802 L446.707107,2798.70711 C446.316582,2798.31658 446.316582,2797.68342 446.707107,2797.29289 Z" id="Rectangle-Chevron-Right"></path></g></g></svg></div><div class="OurValues__ValueLink-sc-d6k2rb-9 jcMrvG"><svg class="SvgIcon__StyledSvgIcon-sc-pvlift-0 ijOdlI OurValues__StyledLogo-sc-d6k2rb-6 ebqsmE" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-third-party-_R_bqmsq_"><title id="svg-third-party-_R_bqmsq_">Third party</title><g fill="none" fill-rule="evenodd"><circle fill="#88969a" cx="20" cy="20" r="20"></circle><path d="M20 12c8.418 0 12 6.082 12 8 0 1.918-3.582 8-12 8S8 21.918 8 20c0-1.918 3.582-8 12-8zm0 2a6 6 0 100 12 6 6 0 000-12zm0 3a3 3 0 110 6 3 3 0 010-6z" fill="#FFF"></path></g></svg><p color="gray" class="P-sc-2fe20n-0 OurValues__ValueName-sc-d6k2rb-8 bHVpRD czjWAo">Transparency</p><svg color="gray" class="SvgIcon__StyledSvgIcon-sc-pvlift-0 ijOdlI OurValues__StyledIconChevronRight-sc-d6k2rb-7 AQFUF" viewBox="0 0 8 12" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-chevron-right-_R_rqmsq_"><title id="svg-chevron-right-_R_rqmsq_">Chevron right</title><g id="1440-Chevron-Right" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="New-About-us" transform="translate(-446.000000, -2796.000000)" fill="#4E5B5E"><path d="M446.707107,2797.29289 L447.292893,2796.70711 C447.683418,2796.31658 448.316582,2796.31658 448.707107,2796.70711 L453.292893,2801.29289 C453.683418,2801.68342 453.683418,2802.31658 453.292893,2802.70711 L448.707107,2807.29289 C448.316582,2807.68342 447.683418,2807.68342 447.292893,2807.29289 L446.707107,2806.70711 C446.316582,2806.31658 446.316582,2805.68342 446.707107,2805.29289 L450,2802 L450,2802 L446.707107,2798.70711 C446.316582,2798.31658 446.316582,2797.68342 446.707107,2797.29289 Z" id="Rectangle-Chevron-Right"></path></g></g></svg></div><div class="OurValues__ValueLink-sc-d6k2rb-9 jcMrvG"><svg class="SvgIcon__StyledSvgIcon-sc-pvlift-0 ijOdlI OurValues__StyledLogo-sc-d6k2rb-6 ebqsmE" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-iconreliability-_R_cqmsq_"><title id="svg-iconreliability-_R_cqmsq_">IconReliability</title><g id="IconReliability" fill="none" fill-rule="evenodd"><circle fill="#88969a" cx="20" cy="20" r="20"></circle><path d="M29.976694,14.5118132 L29.9759772,14.4931364 C29.9657635,14.262607 29.9589544,14.0187111 29.9548331,13.7473493 C29.9356601,12.4240486 28.9062287,11.3294462 27.6110625,11.2554717 C24.910709,11.1014803 22.8217429,10.2017017 21.0368576,8.42393414 L21.0216267,8.40910259 C20.439447,7.86363247 19.5612498,7.86363247 18.9788908,8.40910259 L18.9636599,8.42393414 C17.1787747,10.2017017 15.0898085,11.1014803 12.389455,11.2556548 C11.094468,11.3294462 10.0648574,12.4240486 10.0456844,13.7475324 C10.0417423,14.0170631 10.034754,14.2609591 10.0245403,14.4931364 L10.0234652,14.5365323 C9.97096332,17.3503087 9.90573908,20.8521941 11.0521798,24.0307159 C11.6825609,25.7786374 12.6372712,27.2980436 13.8896116,28.5470037 C15.3159429,29.9693642 17.1841503,31.0985735 19.4422694,31.9031374 C19.5157361,31.9293214 19.59207,31.9505616 19.6698373,31.9664918 C19.7794999,31.9888306 19.8898793,32 20.0002588,32 C20.1106382,32 20.2211968,31.9888306 20.3306802,31.9664918 C20.4084476,31.9505616 20.4853189,31.9291383 20.5591441,31.9027712 C22.8145754,31.0967425 24.6808117,29.9669838 26.1058887,28.5448064 C27.3576916,27.2954802 28.3124018,25.7757077 28.9433205,24.02742 C30.0940617,20.8393768 30.0290167,17.3308996 29.976694,14.5118132 Z M24.6525293,18.0528096 L19.1340222,23.6475716 C18.9023751,23.8824196 18.5985503,24 18.295034,24 C17.9915176,24 17.6880013,23.8827324 17.4563541,23.6475716 L15.3474707,21.5095475 C14.8841764,21.0401642 14.8841764,20.2787061 15.3474707,19.8090101 C15.8104565,19.339314 16.5615361,19.339314 17.0248303,19.8090101 L18.295034,21.0967654 L22.9751697,16.352272 C23.4381554,15.882576 24.189235,15.882576 24.6525293,16.352272 C25.1158236,16.8216554 25.1158236,17.5831134 24.6525293,18.0528096 Z" fill="#FFFFFF" fill-rule="nonzero"></path></g></svg><p color="gray" class="P-sc-2fe20n-0 OurValues__ValueName-sc-d6k2rb-8 bHVpRD czjWAo">Reliability</p><svg color="gray" class="SvgIcon__StyledSvgIcon-sc-pvlift-0 ijOdlI OurValues__StyledIconChevronRight-sc-d6k2rb-7 AQFUF" viewBox="0 0 8 12" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-chevron-right-_R_sqmsq_"><title id="svg-chevron-right-_R_sqmsq_">Chevron right</title><g id="1440-Chevron-Right" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="New-About-us" transform="translate(-446.000000, -2796.000000)" fill="#4E5B5E"><path d="M446.707107,2797.29289 L447.292893,2796.70711 C447.683418,2796.31658 448.316582,2796.31658 448.707107,2796.70711 L453.292893,2801.29289 C453.683418,2801.68342 453.683418,2802.31658 453.292893,2802.70711 L448.707107,2807.29289 C448.316582,2807.68342 447.
499683418,2807.68342 447.292893,2807.29289 L446.707107,2806.70711 C446.316582,2806.31658 446.316582,2805.68342 446.707107,2805.29289 L450,2802 L450,2802 L446.707107,2798.70711 C446.316582,2798.31658 446.316582,2797.68342 446.707107,2797.29289 Z" id="Rectangle-Chevron-Right"></path></g></g></svg></div></div></div><div style="box-sizing:border-box;min-height:1px;position:relative;padding-left:16px;padding-right:16px;width:50%;flex-basis:50%;flex-grow:0;flex-shrink:0;max-width:50%;margin-left:8.333333333333334%;right:auto;left:auto" class="Col__ColWrapper-sc-1891fgc-0 OurValues__Value-sc-d6k2rb-3 eMtYwd tJobM"><h3 class="H3-sc-1emy8q1-0 OurValues__ValueHeading-sc-d6k2rb-10 jrMOUV dmVmUg">Excellence</h3><p class="P-sc-2fe20n-0 OurValues__ValueDetails-sc-d6k2rb-11 lbKllw cebEYA">Our unyielding passion and unfaltering commitment are to design and deliver the best possible solution and user experience for our clients. By employing the best talent, deploying the best, proven technologies, utilizing best practices, and working closely with you to understand your business challenges and goals, we stretch our limits, unleash our potential, and strive to exceed your expectations.</p><hr class="Hr-sc-1en2dxv-0 OurValues__StyledHr-sc-d6k2rb-12 bpdJtu iRLxQL"/><div class="OurValues__StyledTestimonial-sc-d6k2rb-13 rDdyU"><p class="Testimonial__Text-sc-k5qbzt-0 nDHhm">We're charting a new frontier for this industry. There's so much uncertainty, and you never know exactly what people are going to want. To make it a success, you have to have the right people on your team. I can say for sure that, from working with ShakaCode, I have the right people on my team to help me solve really tough problems, doing it on time and within budget to give us the best chance for success.</p><div class="Person__Wrapper-sc-mwt357-2 kNzMtF"><div class="Person__PhotoCol-sc-mwt357-3 kwfRRv"><div class="Person__PhotoWrapper-sc-mwt357-4 jfowkV"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained"><div style="max-width:750px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='750'%20width='750'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><div aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:#080808;position:absolute;top:0;left:0;bottom:0;right:0"></div><picture><source type="image/webp" data-srcset="/static/88da6aac212babfd7a193d5f78387ad2/40a99/joel.webp 16w,/static/88da6aac212babfd7a193d5f78387ad2/399cd/joel.webp 32w,/static/88da6aac212babfd7a193d5f78387ad2/b4444/joel.webp 64w" sizes="(min-width: 64px) 64px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 64px) 64px, 100vw" decoding="async" loading="lazy" data-src="/static/88da6aac212babfd7a193d5f78387ad2/5f967/joel.png" data-srcset="/static/88da6aac212babfd7a193d5f78387ad2/cd65f/joel.png 16w,/static/88da6aac212babfd7a193d5f78387ad2/48496/joel.png 32w,/static/88da6aac212babfd7a193d5f78387ad2/5f967/joel.png 64w" alt="Joel St. Germain - shakacode client"/></picture><noscript><picture><source type="image/webp" srcSet="/static/88da6aac212babfd7a193d5f78387ad2/40a99/joel.webp 16w,/static/88da6aac212babfd7a193d5f78387ad2/399cd/joel.webp 32w,/static/88da6aac212babfd7a193d5f78387ad2/b4444/joel.webp 64w" sizes="(min-width: 64px) 64px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 64px) 64px, 100vw" decoding="async" loading="lazy" src="/static/88da6aac212babfd7a193d5f78387ad2/5f967/joel.png" srcSet="/static/88da6aac212babfd7a193d5f78387ad2/cd65f/joel.png 16w,/static/88da6aac212babfd7a193d5f78387ad2/48496/joel.png 32w,/static/88da6aac212babfd7a193d5f78387ad2/5f967/joel.png 64w" alt="Joel St. Germain - shakacode client"/></picture></noscript>
499<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
499</div></div></div><div class="Person__PositionCol-sc-mwt357-5 MjSeT"><span class="Person__Name-sc-mwt357-0 knPJKz">Joel St. Germain</span><span class="Person__Position-sc-mwt357-1 eKYVnM"><span>Founder and CEO of GCG and<!-- --> <a href="https://datacenters.com" target="_blank" rel="noopener noreferrer">Datacenters.com</a></span></span></div></div></div></div></div><a href="https://invite.reactrails.com" target="_blank" rel="noopener noreferrer" class="SlackChannel__SlackChannelWrapper-sc-od97td-0 liTJXg"><div class="SlackChannel__IconWrapper-sc-od97td-1 UoYHj"><svg class="SvgIcon__StyledSvgIcon-sc-pvlift-0 ijOdlI SlackChannel__StyledIconSlack-sc-od97td-2 UPJsp" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-slack-_R_36sq_"><title id="svg-slack-_R_36sq_">Slack</title><g id="Slack" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><rect id="Rectangle-Slack" x="0" y="0" width="40" height="40"></rect><path d="M8.98355217,25.0128609 C8.98355217,27.2099217 7.18871304,29.0047609 4.99181739,29.0047609 C2.79500435,29.0047609 1.00024783,27.2098391 1.00024783,25.0128609 C1.00024783,22.8161304 2.79508696,21.0213739 4.99181739,21.0213739 L8.98355217,21.0213739 L8.98355217,25.0128609 Z" id="Path-1" fill="#E01E5A" fill-rule="nonzero"></path><path d="M10.9953217,25.0128609 C10.9953217,22.8161304 12.7902435,21.0213739 14.9870565,21.0213739 C17.1838696,21.0213739 18.9787087,22.816213 18.9787087,25.0128609 L18.9787087,35.0083478 C18.9787087,37.2050783 17.183787,38.9999174 14.9870565,38.9999174 C12.7901609,38.9999174 10.9953217,37.2049957 10.9953217,35.0083478 L10.9953217,25.0128609 Z" id="Path-2" fill="#E01E5A" fill-rule="nonzero"></path><path d="M14.9870565,8.98355217 C12.7901609,8.98355217 10.9953217,7.18863043 10.9953217,4.99181739 C10.9953217,2.79500435 12.7902435,1.00016522 14.9870565,1.00016522 C17.1838696,1.00016522 18.9787087,2.79508696 18.9787087,4.99181739 L18.9787087,8.98355217 L14.9870565,8.98355217 L14.9870565,8.98355217 Z" id="Path-3" fill="#36C5F0" fill-rule="nonzero"></path><path d="M14.9870565,10.9954043 C17.1838696,10.9954043 18.9787087,12.7902435 18.9787087,14.9871391 C18.9787087,17.1839522 17.183787,18.9786261 14.9870565,18.9786261 L4.99173478,18.9786261 C2.79492174,18.9786261 1.00016522,17.1838696 1.00016522,14.9871391 C1.00016522,12.7901609 2.79500435,10.9954043 4.99173478,10.9954043 L14.9870565,10.9954043 L14.9870565,10.9954043 Z" id="Path-4" fill="#36C5F0" fill-rule="nonzero"></path><path d="M31.016613,14.9871391 C31.016613,12.7901609 32.811287,10.9954043 35.0082652,10.9954043 C37.2050783,10.9954043 38.9997522,12.7902435 38.9997522,14.9871391 C38.9997522,17.1839522 37.2049957,18.9786261 35.0082652,18.9786261 L31.016613,18.9786261 L31.016613,14.9871391 L31.016613,14.9871391 Z" id="Path-5" fill="#2EB67D" fill-rule="nonzero"></path><path d="M29.0046783,14.9871391 C29.0046783,17.1839522 27.2097565,18.9786261 25.0129435,18.9786261 C22.8161304,18.9786261 21.0212913,17.1838696 21.0212913,14.9871391 L21.0212913,4.99173478 C2
4991.0212913,2.79492174 22.816213,1.00008261 25.0129435,1.00008261 C27.2098391,1.00008261 29.0046783,2.79500435 29.0046783,4.99173478 L29.0046783,14.9871391 L29.0046783,14.9871391 Z" id="Path-6" fill="#2EB67D" fill-rule="nonzero"></path><path d="M25.0129435,31.0165304 C27.2098391,31.0165304 29.0046783,32.8113696 29.0046783,35.0082652 C29.0046783,37.2049957 27.2097565,38.9998348 25.0129435,38.9998348 C22.8161304,38.9998348 21.0212913,37.204913 21.0212913,35.0082652 L21.0212913,31.0165304 L25.0129435,31.0165304 L25.0129435,31.0165304 Z" id="Path-7" fill="#ECB22E" fill-rule="nonzero"></path><path d="M25.0129435,29.0047609 C22.8161304,29.0047609 21.0212913,27.2098391 21.0212913,25.0128609 C21.0212913,22.8161304 22.816213,21.0213739 25.0129435,21.0213739 L35.0083478,21.0213739 C37.2051609,21.0213739 38.9998348,22.816213 38.9998348,25.0128609 C38.9998348,27.2099217 37.2050783,29.0047609 35.0083478,29.0047609 L25.0129435,29.0047609 Z" id="Path-8" fill="#ECB22E" fill-rule="nonzero"></path></g></svg></div><h3 class="H3-sc-1emy8q1-0 SlackChannel__Text-sc-od97td-3 jrMOUV bAZdPF">Join our Slack channel and chat with the experts</h3></a></div><div class="Team__TeamSectionWrapper-sc-rm9go0-0 kWfYZk"><div style="box-sizing:border-box;position:relative;margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;max-width:1156px" class="Container__ContainerWrapper-sc-azyjet-0 Team__StyledContainer-sc-rm9go0-1 cFpblv fwDfcA"><h2 id="team" class="H2-sc-1u39ok0-0 Team__Heading-sc-rm9go0-2 QTrsV fEqsey">Meet the leadership team</h2><p class="P-sc-2fe20n-0 Team__SubHeading-sc-rm9go0-3 fduduP fyFrlH">We search the globe for the most talented individuals supporting the technologies we love to deliver the best possible value to our clients.</p><div class="Team__TeamMembersList-sc-rm9go0-4 iOGYLA"><div class="Team__TeamMember-sc-rm9go0-5 khpzRv"><div class="Team__ProfilePic-sc-rm9go0-6 hPOZdb"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained"><div style="max-width:750px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='750'%20width='750'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><div aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:#f8f8f8;position:absolute;top:0;left:0;bottom:0;right:0"></div><picture><source type="image/webp" data-srcset="/static/55b1d75451888700e27debad25c5e746/fb8a7/Justin.webp 120w,/static/55b1d75451888700e27debad25c5e746/2a3d2/Justin.webp 240w,/static/55b1d75451888700e27debad25c5e746/997f4/Justin.webp 480w" sizes="(min-width: 480px) 480px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 480px) 480px, 100vw" decoding="async" loading="lazy" data-src="/static/55b1d75451888700e27debad25c5e746/8944d/Justin.jpg" data-srcset="/static/55b1d75451888700e27debad25c5e746/b8e32/Justin.jpg 120w,/static/55b1d75451888700e27debad25c5e746/a8654/Justin.jpg 240w,/static/55b1d75451888700e27debad25c5e746/8944d/Justin.jpg 480w" alt="Justin Gordon - CEO"/></picture><noscript><picture><source type="image/webp" srcSet="/static/55b1d75451888700e27debad25c5e746/fb8a7/Justin.webp 120w,/static/55b1d75451888700e27debad25c5e746/2a3d2/Justin.webp 240w,/static/55b1d75451888700e27debad25c5e746/997f4/Justin.webp 480w" sizes="(min-width: 480px) 480px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 480px) 480px, 100vw" decoding="async" loading="lazy" src="/static/55b1d75451888700e27debad25c5e746/8944d/Justin.jpg" srcSet="/static/55b1d75451888700e27debad25c5e746/b8e32/Justin.jpg 120w,/static/55b1d75451888700e27debad25c5e746/a8654/Justin.jpg 240w,/static/55b1d75451888700e27debad25c5e746/8944d/Justin.jpg 480w" alt="Justin Gordon - CEO"/></picture></noscript>
499<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
499</div></div><a href="https://www.linkedin.com/in/railsonmaui/" target="_blank" rel="noopener noreferrer" class="Team__MemberNameAsLink-sc-rm9go0-9 TBnCa">Justin Gordon</a><p class="P-sc-2fe20n-0 Team__MemberDesignation-sc-rm9go0-10 fyeqHs dySptx">CEO</p></div><div class="Team__TeamMember-sc-rm9go0-5 khpzRv"><div class="Team__ProfilePic-sc-rm9go0-6 hPOZdb"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained"><div style="max-width:750px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='750'%20width='750'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><div aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:#080808;position:absolute;top:0;left:0;bottom:0;right:0"></div><picture><source type="image/webp" data-srcset="/static/ca2987cb4aed2fa1d8104dd474cdbc2f/fb8a7/Alex.webp 120w,/static/ca2987cb4aed2fa1d8104dd474cdbc2f/2a3d2/Alex.webp 240w,/static/ca2987cb4aed2fa1d8104dd474cdbc2f/997f4/Alex.webp 480w" sizes="(min-width: 480px) 480px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 480px) 480px, 100vw" decoding="async" loading="lazy" data-src="/static/ca2987cb4aed2fa1d8104dd474cdbc2f/8944d/Alex.jpg" data-srcset="/static/ca2987cb4aed2fa1d8104dd474cdbc2f/b8e32/Alex.jpg 120w,/static/ca2987cb4aed2fa1d8104dd474cdbc2f/a8654/Alex.jpg 240w,/static/ca2987cb4aed2fa1d8104dd474cdbc2f/8944d/Alex.jpg 480w" alt="Alex Fedoseev - Frontend Lead Architect"/></picture><noscript><picture><source type="image/webp" srcSet="/static/ca2987cb4aed2fa1d8104dd474cdbc2f/fb8a7/Alex.webp 120w,/static/ca2987cb4aed2fa1d8104dd474cdbc2f/2a3d2/Alex.webp 240w,/static/ca2987cb4aed2fa1d8104dd474cdbc2f/997f4/Alex.webp 480w" sizes="(min-width: 480px) 480px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 480px) 480px, 100vw" decoding="async" loading="lazy" src="/static/ca2987cb4aed2fa1d8104dd474cdbc2f/8944d/Alex.jpg" srcSet="/static/ca2987cb4aed2fa1d8104dd474cdbc2f/b8e32/Alex.jpg 120w,/static/ca2987cb4aed2fa1d8104dd474cdbc2f/a8654/Alex.jpg 240w,/static/ca2987cb4aed2fa1d8104dd474cdbc2f/8944d/Alex.jpg 480w" alt="Alex Fedoseev - Frontend Lead Architect"/></picture></noscript>
499<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
499</div></div><p class="P-sc-2fe20n-0 Team__MemberName-sc-rm9go0-8 lbKllw cUxlBh">Alex Fedoseev</p><p class="P-sc-2fe20n-0 Team__MemberDesignation-sc-rm9go0-10 fyeqHs dySptx">Frontend Lead Architect</p></div><div class="Team__TeamMember-sc-rm9go0-5 khpzRv"><div class="Team__ProfilePic-sc-rm9go0-6 hPOZdb"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained"><div style="max-width:750px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='750'%20width='750'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><div aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:#181828;position:absolute;top:0;left:0;bottom:0;right:0"></div><picture><source type="image/webp" data-srcset="/static/e879acaf78376bbe9d8d9d94aef7aa27/25769/Sergey.webp 40w,/static/e879acaf78376bbe9d8d9d94aef7aa27/1b1dc/Sergey.webp 80w,/static/e879acaf78376bbe9d8d9d94aef7aa27/aa685/Sergey.webp 160w" sizes="(min-width: 160px) 160px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 160px) 160px, 100vw" decoding="async" loading="lazy" data-src="/static/e879acaf78376bbe9d8d9d94aef7aa27/447ec/Sergey.png" data-srcset="/static/e879acaf78376bbe9d8d9d94aef7aa27/ee9bb/Sergey.png 40w,/static/e879acaf78376bbe9d8d9d94aef7aa27/1272e/Sergey.png 80w,/static/e879acaf78376bbe9d8d9d94aef7aa27/447ec/Sergey.png 160w" alt="Sergey Tarasov - Backend Lead Architect"/></picture><noscript><picture><source type="image/webp" srcSet="/static/e879acaf78376bbe9d8d9d94aef7aa27/25769/Sergey.webp 40w,/static/e879acaf78376bbe9d8d9d94aef7aa27/1b1dc/Sergey.webp 80w,/static/e879acaf78376bbe9d8d9d94aef7aa27/aa685/Sergey.webp 160w" sizes="(min-width: 160px) 160px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 160px) 160px, 100vw" decoding="async" loading="lazy" src="/static/e879acaf78376bbe9d8d9d94aef7aa27/447ec/Sergey.png" srcSet="/static/e879acaf78376bbe9d8d9d94aef7aa27/ee9bb/Sergey.png 40w,/static/e879acaf78376bbe9d8d9d94aef7aa27/1272e/Sergey.png 80w,/static/e879acaf78376bbe9d8d9d94aef7aa27/447ec/Sergey.png 160w" alt="Sergey Tarasov - Backend Lead Architect"/></picture></noscript>
499<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
499</div></div><p class="P-sc-2fe20n-0 Team__MemberName-sc-rm9go0-8 lbKllw cUxlBh">Sergey Tarasov</p><p class="P-sc-2fe20n-0 Team__MemberDesignation-sc-rm9go0-10 fyeqHs dySptx">Backend Lead Architect</p></div><div class="Team__TeamMember-sc-rm9go0-5 khpzRv"><div class="Team__ProfilePic-sc-rm9go0-6 hPOZdb"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained"><div style="max-width:750px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='750'%20width='750'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><div aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:#383848;position:absolute;top:0;left:0;bottom:0;right:0"></div><picture><source type="image/webp" data-srcset="/static/1542eacf2f0e1fcb762c776ae46bf9f2/fb8a7/Sasha.webp 120w,/static/1542eacf2f0e1fcb762c776ae46bf9f2/2a3d2/Sasha.webp 240w,/static/1542eacf2f0e1fcb762c776ae46bf9f2/997f4/Sasha.webp 480w" sizes="(min-width: 480px) 480px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 480px) 480px, 100vw" decoding="async" loading="lazy" data-src="/static/1542eacf2f0e1fcb762c776ae46bf9f2/8944d/Sasha.jpg" data-srcset="/static/1542eacf2f0e1fcb762c776ae46bf9f2/b8e32/Sasha.jpg 120w,/static/1542eacf2f0e1fcb762c776ae46bf9f2/a8654/Sasha.jpg 240w,/static/1542eacf2f0e1fcb762c776ae46bf9f2/8944d/Sasha.jpg 480w" alt="Alexander Kharitonov - Senior Client Lead"/></picture><noscript><picture><source type="image/webp" srcSet="/static/1542eacf2f0e1fcb762c776ae46bf9f2/fb8a7/Sasha.webp 120w,/static/1542eacf2f0e1fcb762c776ae46bf9f2/2a3d2/Sasha.webp 240w,/static/1542eacf2f0e1fcb762c776ae46bf9f2/997f4/Sasha.webp 480w" sizes="(min-width: 480px) 480px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 480px) 480px, 100vw" decoding="async" loading="lazy" src="/static/1542eacf2f0e1fcb762c776ae46bf9f2/8944d/Sasha.jpg" srcSet="/static/1542eacf2f0e1fcb762c776ae46bf9f2/b8e32/Sasha.jpg 120w,/static/1542eacf2f0e1fcb762c776ae46bf9f2/a8654/Sasha.jpg 240w,/static/1542eacf2f0e1fcb762c776ae46bf9f2/8944d/Sasha.jpg 480w" alt="Alexander Kharitonov - Senior Client Lead"/></picture></noscript>
499<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
499</div></div><p class="P-sc-2fe20n-0 Team__MemberName-sc-rm9go0-8 lbKllw cUxlBh">Alexander Kharitonov</p><p class="P-sc-2fe20n-0 Team__MemberDesignation-sc-rm9go0-10 fyeqHs dySptx">Senior Client Lead</p></div></div><div class="WeAreHiring__WeAreHiringWrapper-sc-1v4d7uu-0 eSpHGY"><a href="/career/"><div class="WeAreHiring__DashedBox-sc-1v4d7uu-1 fcxHdm"><svg color="darkerRed" class="SvgIcon__StyledSvgIcon-sc-pvlift-0 ijOdlI WeAreHiring__CrossIcon-sc-1v4d7uu-5 hBAvzb" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-cross-_R_m8sq_"><title id="svg-cross-_R_m8sq_">Cross</title><path d="M2 24h22V2a2 2 0 012-2h12a2 2 0 012 2v22h22a2 2 0 012 2v12a2 2 0 01-2 2H40v22a2 2 0 01-2 2H26a2 2 0 01-2-2V40H2a2 2 0 01-2-2V26a2 2 0 012-2z" fill="#B11100" fill-rule="evenodd"></path></svg><p class="P-sc-2fe20n-0 WeAreHiring__ShortMessage-sc-1v4d7uu-6 fduduP dPJvYY">Join the team</p></div></a><div class="WeAreHiring__TextWrapper-sc-1v4d7uu-4 gbAicj"><h4 class="H4-sc-k1osi8-0 WeAreHiring__Heading-sc-1v4d7uu-2 bcZTSE eHscEV">We are hiring!</h4><p class="P-sc-2fe20n-0 WeAreHiring__Description-sc-1v4d7uu-3 lbKllw kyHpXA">ShakaCode is always on the lookout for talented individuals to join our team. We want to hear from you if you are interested in complex projects that challenge your abilities, and have the Ruby on Rails, React, ReScript, or Gatsby skills. Oh, and one last thing: we work remotely <span role="img" aria-label="an emoji of the earth">ð</span>.</p><a class="Button__ButtonOutlinedGatsbyLink-sc-xxhl33-5 GoToButton__GoToButtonGatsbyStyled-sc-1abjbqg-1 gtLCY hoQDjm WeAreHiring__CareerOpportunities-sc-1v4d7uu-7 kiTFdu" href="/career/"><span><span>Explore open career opportunities</span></span><svg color="darkerRed" class="SvgIcon__StyledSvgIcon-sc-pvlift-0 ijOdlI GoToButton__StyledIcon-sc-1abjbqg-2" viewBox="0 0 24 16" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-arrow-right-_R_5q8sq_"><title id="svg-arrow-right-_R_5q8sq_">Arrow right</title><g fill="none" fill-rule="evenodd"><path d="M-322-1076h1440v3236H-322z"></path><path d="M0 7h20l-5.5-5.5L16 0l7 7 1 1-1 1-7 7-1.5-1.5L20 9H0z" fill="#B11100"></path></g></svg></a></div></div></div></div><div class="BookCall__BookCallWrapper-sc-kdkop6-0 erXvyi"><div style="box-sizing:border-box;position:relative;margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;max-width:1156px" class="Container__ContainerWrapper-sc-azyjet-0 BookCall__BookCallContainer-sc-kdkop6-2 cFpblv isQwiP"><div class="BookCall__LeftCol-sc-kdkop6-1 ddFRte"><h3 class="H3-sc-1emy8q1-0 BookCall__StyledH3-sc-kdkop6-4 jrMOUV dgrNdx">Whatever the challenge, we can help!</h3><p class="BookCall__Description-sc-kdkop6-5 kxZfzU">Schedule a free, 30-minute call to discuss what ShakaCode can do for your project. Or email us at<!-- --> <a href="/cdn-cgi/l/email-protection#abc8c4c5dfcac8dfebd8c3cac0cac8c4cfce85c8c4c6"><span class="__cf_email__" data-cfemail="90f3fffee4f1f3e4d0e3f8f1fbf1f3fff4f5bef3fffd">[email protected]</span></a> <!-- -->with your ideas, challenges, or questions. We'll get back to you within two business days.</p><div class="BookCall__ClutchWidgetSlot-sc-kdkop6-6 dTBEkE clutch-widget" data-url="https://widget.clutch.co" data-widget-type="1" data-height="50" data-darkbg="1" data-clutchcompany-id="884966"></div></div><div class="BookCall__RightCol-sc-kdkop6-3 vJVYI"><a href="https://meetings.hubspot.com/justingordon/30-minute-consultation" target="_blank" rel="noopener noreferrer" class="Button__ButtonLink-sc-xxhl33-1 bHoJxm">Book a free call</a></div></div></div></main><footer><div style="box-sizing:border-box;position:relative;margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;max-width:1156px" class="Container__ContainerWrapper-sc-azyjet-0 cFpblv"><div class="Footer__FooterRow-sc-12ia8lp-0 bZPpoQ"><div class="Footer__InfoCol-sc-12ia8lp-4 tHzLz"><a href="/"><svg class="IconShakacode__FooterIconShakacode-sc-1df0ktu-1 kmesXN" viewBox="0 0 206 47" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-add-photo-_R_2b4q_"><title id="svg-add-photo-_R_2b4q_">Add Photo</title><defs><linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="b-shaka"><stop stop-color="#F32B05" offset="0%"></stop><stop stop-color="#B00012" offset="100%"></stop></linearGradient><linearGradient x1="50%" y1="24.608%" x2="50%" y2="72.622%" id="c-shaka"><stop stop-color="#FF6956" offset=".792%"></stop><stop stop-color="#FF6956" stop-opacity=".01" offset="96.579%"></stop></linearGradient><path d="M11.207 10h41.586a2 2 0 011.77 1.069l8.702 16.534a2 2 0 01-.453 2.437L33.317 55.848a2 2 0 01-2.634 0L1.188 30.04a2 2 0 01-.453-2.437l8.703-16.534A2 2 0 0111.208 10z" id="a-shaka"></path></defs><g fill="none" fill-rule="evenodd"><text font-family="'Montserrat Bold', Montserrat, 'Open Sans', Arial, sans-serif" font-size="20" font-weight="bold" fill="#333738" transform="translate(0 -10)"><tspan x="80" y="41">ShakaCode</tspan></text><g transform="translate(0 -10)"><path d="M0 0h64v64H0z"></path><mask id="d-shaka" fill="#fff"><use xlink:href="#a-shaka"></use></mask><use fill="url(#b-shaka)" xlink:href="#a-shaka"></use><path d="M7 43c22.118-2.144 33.57-6.578 34.354-13.303 1.178-10.088-17.4-1.454-20.927-1 9.658-7.17 22.018-11.721 37.08-13.652H66V57H7V43z" fill="url(#c-shaka)" mask="url(#d-s
499haka)"></path></g></g></svg></a><div class="Footer__CompanyDetails-sc-12ia8lp-5 ZjBBa">ShakaCode, LLC<div class="Footer__CompanyNote-sc-12ia8lp-6 bbDMAr">Consulting since 2011</div><address class="Footer__Address-sc-12ia8lp-7 hjcyZu">141 Makahiki Street<br/>Paia, HI 96779</address></div><a href="tel:808-281-7272" class="Footer__Phone-sc-12ia8lp-8 ktsrTa">808-281-7272</a></div><div class="Footer__MenuCol-sc-12ia8lp-9 jqtrRj"><h6 class="H6-sc-1fqdyt3-0 Footer__ColumnHeader-sc-12ia8lp-3 dIDHqE koKcya"><a aria-current="page" class="Footer__StyledLink-sc-12ia8lp-13 cKuXgv" href="/about/">About</a></h6><ul class="Footer__List-sc-12ia8lp-11 gkRlql"><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="/about/#why">Why us</a></li><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="/about/#our-values">Our values</a></li><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="/about/#team">Meet the team</a></li><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="/career/">Join the team</a></li><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="/contact/">Contact</a></li></ul></div><div class="Footer__MenuCol-sc-12ia8lp-9 jqtrRj"><h6 class="H6-sc-1fqdyt3-0 Footer__ColumnHeader-sc-12ia8lp-3 dIDHqE koKcya"><a class="Footer__StyledLink-sc-12ia8lp-13 cKuXgv" href="/services/">Services</a></h6><ul class="Footer__List-sc-12ia8lp-11 gkRlql"><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="/services/#what-we-do">What we do</a></li><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="/services/ai-consulting/">AI Automation</a></li><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="/design/">Design</a></li><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="/react-on-rails-pro/">React on Rails Pro</a></li><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="/shakaperf/">ShakaPerf</a></li><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="/services/web-scraping-and-data-analysis/">Web Scraping & Data Analysis</a></li><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="/open-source-projects/">Open source projects</a></li></ul></div><div class="Footer__MenuCol-sc-12ia8lp-9 jqtrRj"><h6 class="H6-sc-1fqdyt3-0 Footer__ColumnHeader-sc-12ia8lp-3 dIDHqE koKcya">Portfolio</h6><ul class="Footer__List-sc-12ia8lp-11 gkRlql"><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="/recent-work/">Recent work</a></li><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="/hichee/">HiChee.com</a></li><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="/shakaflow/">ShakaFlow</a></li></ul></div><div class="Footer__MenuCol-sc-12ia8lp-9 jqtrRj"><h6 class="H6-sc-1fqdyt3-0 Footer__ColumnHeader-sc-12ia8lp-3 dIDHqE koKcya">Insights</h6><ul class="Footer__List-sc-12ia8lp-11 gkRlql"><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="/blog/">Blog</a></li><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="https://forum.shakacode.com" target="_blank" rel="noopener noreferrer">Forum</a></li><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="/talks/">Talks</a></li></ul></div><div class="Footer__MenuCol-sc-12ia8lp-9 jqtrRj"><h6 class="H6-sc-1fqdyt3-0 Footer__ColumnHeader-sc-12ia8lp-3 dIDHqE koKcya">Docs</h6><ul class="Footer__List-sc-12ia8lp-11 gkRlql"><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="https://reactonrails.com/docs/" target="_blank" rel="noopener noreferrer">React on Rails</a></li><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="https://reactonrails.com/docs/pro/" target="_blank" rel="noopener noreferrer">React on Rails Pro</a></li><li class="Footer__Item-sc-12ia8lp-12 hJkTqS"><a href="/control-plane-flow/docs/">Control Plane Flow</a></li></ul></div></div><div class="Footer__CopyrightSocialRow-sc-12ia8lp-1 eYKAGK"><div class="Footer__FooterMeta-sc-12ia8lp-2 ldfdIq"><div>Copyright <!-- -->2026<!-- --> ShakaCode</div><a class="Footer__FooterMetaLink-sc-12ia8lp-14 fGCfCH" href="/privacy/">Privacy & Cookies</a><button type="button" class="Footer__CookieSettingsButton-sc-12ia8lp-15 eihjKf">Cookie Settings</button></div><div class="Footer__SocialCol-sc-12ia8lp-10 fpKXnI"><a href="https://invite.reactrails.com" target="_blank" rel="noopener noreferrer" class="Button__ButtonOutlinedLink-sc-xxhl33-4 GoToButton__GoToButtonStyled-sc-1abjbqg-0 hwslQr Idquw Footer__StyledGoToButton-sc-12ia8lp-17 goWloY"><svg class="SvgIcon__StyledSvgIcon-sc-pvlift-0 ijOdlI Footer__StyledIconSlack-sc-12ia8lp-16 hOnBbQ GoToButton__StyledIcon-sc-1abjbqg-2" color="darkerRed" viewB
499ox="0 0 40 40" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-slack-_R_9l4q_"><title id="svg-slack-_R_9l4q_">Slack</title><g id="Slack" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><rect id="Rectangle-Slack" x="0" y="0" width="40" height="40"></rect><path d="M8.98355217,25.0128609 C8.98355217,27.2099217 7.18871304,29.0047609 4.99181739,29.0047609 C2.79500435,29.0047609 1.00024783,27.2098391 1.00024783,25.0128609 C1.00024783,22.8161304 2.79508696,21.0213739 4.99181739,21.0213739 L8.98355217,21.0213739 L8.98355217,25.0128609 Z" id="Path-1" fill="#E01E5A" fill-rule="nonzero"></path><path d="M10.9953217,25.0128609 C10.9953217,22.8161304 12.7902435,21.0213739 14.9870565,21.0213739 C17.1838696,21.0213739 18.9787087,22.816213 18.9787087,25.0128609 L18.9787087,35.0083478 C18.9787087,37.2050783 17.183787,38.9999174 14.9870565,38.9999174 C12.7901609,38.9999174 10.9953217,37.2049957 10.9953217,35.0083478 L10.9953217,25.0128609 Z" id="Path-2" fill="#E01E5A" fill-rule="nonzero"></path><path d="M14.9870565,8.98355217 C12.7901609,8.98355217 10.9953217,7.18863043 10.9953217,4.99181739 C10.9953217,2.79500435 12.7902435,1.00016522 14.9870565,1.00016522 C17.1838696,1.00016522 18.9787087,2.79508696 18.9787087,4.99181739 L18.9787087,8.98355217 L14.9870565,8.98355217 L14.9870565,8.98355217 Z" id="Path-3" fill="#36C5F0" fill-rule="nonzero"></path><path d="M14.9870565,10.9954043 C17.1838696,10.9954043 18.9787087,12.7902435 18.9787087,14.9871391 C18.9787087,17.1839522 17.183787,18.9786261 14.9870565,18.9786261 L4.99173478,18.9786261 C2.79492174,18.9786261 1.00016522,17.1838696 1.00016522,14.9871391 C1.00016522,12.7901609 2.79500435,10.9954043 4.99173478,10.9954043 L14.9870565,10.9954043 L14.9870565,10.9954043 Z" id="Path-4" fill="#36C5F0" fill-rule="nonzero"></path><path d="M31.016613,14.9871391 C31.016613,12.7901609 32.811287,10.9954043 35.0082652,10.9954043 C37.2050783,10.9954043 38.9997522,12.7902435 38.9997522,14.9871391 C38.9997522,17.1839522 37.2049957,18.9786261 35.0082652,18.9786261 L31.016613,18.9786261 L31.016613,14.9871391 L31.016613,14.9871391 Z" id="Path-5" fill="#2EB67D" fill-rule="nonzero"></path><path d="M29.0046783,14.9871391 C29.0046783,17.1839522 27.2097565,18.9786261 25.0129435,18.9786261 C22.8161304,18.9786261 21.0212913,17.1838696 21.0212913,14.9871391 L21.0212913,4.99173478 C2
4991.0212913,2.79492174 22.816213,1.00008261 25.0129435,1.00008261 C27.2098391,1.00008261 29.0046783,2.79500435 29.0046783,4.99173478 L29.0046783,14.9871391 L29.0046783,14.9871391 Z" id="Path-6" fill="#2EB67D" fill-rule="nonzero"></path><path d="M25.0129435,31.0165304 C27.2098391,31.0165304 29.0046783,32.8113696 29.0046783,35.0082652 C29.0046783,37.2049957 27.2097565,38.9998348 25.0129435,38.9998348 C22.8161304,38.9998348 21.0212913,37.204913 21.0212913,35.0082652 L21.0212913,31.0165304 L25.0129435,31.0165304 L25.0129435,31.0165304 Z" id="Path-7" fill="#ECB22E" fill-rule="nonzero"></path><path d="M25.0129435,29.0047609 C22.8161304,29.0047609 21.0212913,27.2098391 21.0212913,25.0128609 C21.0212913,22.8161304 22.816213,21.0213739 25.0129435,21.0213739 L35.0083478,21.0213739 C37.2051609,21.0213739 38.9998348,22.816213 38.9998348,25.0128609 C38.9998348,27.2099217 37.2050783,29.0047609 35.0083478,29.0047609 L25.0129435,29.0047609 Z" id="Path-8" fill="#ECB22E" fill-rule="nonzero"></path></g></svg><span>Join our Slack</span></a><a href="https://github.com/shakacode" target="_blank" rel="noopener noreferrer"><svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-github-_R_2l4q_" class="SvgIcon__StyledSvgIcon-sc-pvlift-0 ijOdlI"><title id="svg-github-_R_2l4q_">Github</title><path d="M16 32a16 16 0 110-32 16 16 0 010 32zm2.8-14.5a1 1 0 00-.8.5c-.3.3-.4.6-.4 1 0 .5.1.9.4 1.2.2.3.5.4.8.4.3 0 .5-.1.8-.4.2-.3.3-.7.3-1.1 0-.5-.1-.8-.3-1.1-.3-.3-.5-.5-.8-.5zm4-4v-1.3c-.1-.9-.3-1.7-.6-2.4h-.5l-1.4.6-2.1 1.2c-.5-.2-1.2-.3-2.2-.3-1 0-1.7.1-2.2.3a9.4 9.4 0 00-4-1.8c-.3.7-.5 1.5-.5 2.4v1.3c-.9 1-1.3 2-1.3 3.4 0 .8.1 1.6.3 2.2l.7 1.7c.3.4.7.8 1.2 1a5.6 5.6 0 002.4 1.1 10.4 10.4 0 002.5.2 20.4 20.4 0 005.5-.5 5.7 5.7 0 002.4-1.8l.7-1.7A8 8 0 0024 17c0-1.3-.4-2.4-1.3-3.4zM16 22.3c-2 0-3.4-.2-4.4-.7-1-.4-1.4-1.3-1.4-2.8 0-.8.3-1.5.9-2 .2-.2.5-.4 1-.5l1-.1a45.2 45.2 0 013 .1h3.7c.4 0 .8.2 1.1.5.7.5 1 1.2 1 2 0 1.5-.5 2.4-1.5 2.8-1 .5-2.4.7-4.4.7zm-2.7-4.8a1 1 0 00-.9.5c-.2.3-.3.6-.3 1 0 .5.1.9.3 1.2.3.3.5.4.9.4.3 0 .5-.1.7-.4.3-.3.4-.7.4-1.1 0-.5-.1-.8-.4-1.1-.2-.3-.4-.5-.7-.5z" fill="#242A2D" fill-rule="evenodd"></path></svg></a><a href="https://linkedin.com/company/shakacode" target="_blank" rel="noopener noreferrer"><svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-linkedin-_R_3l4q_" class="SvgIcon__StyledSvgIcon-sc-pvlift-0 ijOdlI"><title id="svg-linkedin-_R_3l4q_">Linkedin</title><path d="M16 32a16 16 0 110-32 16 16 0 010 32zm8-10v-5.8c0-3.1-1.7-4.6-4-4.6-1.8 0-2.6 1-3 1.7V12h-3.5V22H17v-5.7-.8c.3-.6.9-1.2 1.8-1.2 1.3 0 1.8 1 1.8 2.3V22H24zM10 10.5c1.1 0 1.9-.8 1.9-1.8S11 7 9.9 7C8.8 7 8 7.8 8 8.7c0 1 .7 1.8 1.9 1.8zM11.5 22V11.9H8.2V22h3.4z" fill="#0077B5" fill-rule="evenodd"></path></svg></a><a href="https://twitter.com/shakacode" target="_blank" rel="noopener noreferrer"><svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" aria-labelledby="svg-twitter-_R_4l4q_" class="SvgIcon__StyledSvgIcon-sc-pvlift-0 ijOdlI"><title id="svg-twitter-_R_4l4q_">Twitter</title><path d="M16 32a16 16 0 110-32 16 16 0 010 32zm8-20.5c-.6.3-1.2.5-1.9.6.7-.5 1.2-1 1.5-1.9-.7.4-1.4.7-2.1.8a3.3 3.3 0 00-5.6 3A9.3 9.3 0 019 10.6a3.3 3.3 0 001 4.4c-.5 0-1-.2-1.5-.4 0 1.6 1.2 3 2.7 3.2a3.3 3.3 0 01-1.5 0 3.3 3.3 0 003 2.4A6.6 6.6 0 018 21.5a9.3 9.3 0 0014.4-8.3c.6-.4 1.2-1 1.6-1.7z" fill="#1EA1F2" fill-rule="evenodd"></path></svg></a></div></div></div></footer></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div>
vendor: 108 bytes, line 499
499<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
499<script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/about/";/*]]>*/</script>
499<!-- slice-start id="_gatsby-scripts-1" --> 500
500<script 501 id="gatsby-chunk-mapping" 502 > 503 window.___chunkMapping="{\"app\":[\"/app-830fa17965a199005046.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-55c0f3992fe239090859.js\"],\"component---src-pages-about-tsx\":[\"/component---src-pages-about-tsx-031aa30c88ef1cdbfde7.js\"],\"component---src-pages-career-tsx\":[\"/component---src-pages-career-tsx-911d4b54a9d9cdfd34da.js\"],\"component---src-pages-contact-tsx\":[\"/component---src-pages-contact-tsx-94ee018bf82fd4842bee.js\"],\"component---src-pages-design-tsx\":[\"/component---src-pages-design-tsx-5d7a0a58880c1cad4c89.js\"],\"component---src-pages-hichee-tsx\":[\"/component---src-pages-hichee-tsx-3d2e9662e55d72a2d032.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-af84030dd314df6a53b7.js\"],\"component---src-pages-open-source-projects-tsx\":[\"/component---src-pages-open-source-projects-tsx-f8605d4376c54d1e6176.js\"],\"component---src-pages-privacy-tsx\":[\"/component---src-pages-privacy-tsx-4b0c9361250201b21e62.js\"],\"component---src-pages-react-on-rails-pro-tsx\":[\"/component---src-pages-react-on-rails-pro-tsx-e985b8c12f0afd9884bf.js\"],\"component---src-pages-recent-work-bmdi-tsx\":[\"/component---src-pages-recent-work-bmdi-tsx-865eb70fb7b0a4ae6be4.js\"],\"component---src-pages-recent-work-brivity-tsx\":[\"/component---src-pages-recent-work-brivity-tsx-24f2e68f13c68efd6a2a.js\"],\"component---src-pages-recent-work-datacenters-tsx\":[\"/component---src-pages-recent-work-datacenters-tsx-51fe3840bdb49bce69d2.js\"],\"component---src-pages-recent-work-gget-tsx\":[\"/component---src-pages-recent-work-gget-tsx-4bf61ed5baa3adbd8fa3.js\"],\"component---src-pages-recent-work-ivacation-online-tsx\":[\"/component---src-pages-recent-work-ivacation-online-tsx-84d41fd140fc0bd6aef2.js\"],\"component---src-pages-recent-work-popmenu-integrations-tsx\":[\"/component---src-pages-recent-work-popmenu-integrations-tsx-95808ec7c4820a21eb17.js\"],\"component---src-pages-recent-work-popmenu-tsx\":[\"/component---src-pages-recent-work-popmenu-tsx-2606a1145b225e21d31a.js\"],\"component---src-pages-recent-work-printivity-tsx\":[\"/component---src-pages-recent-work-printivity-tsx-458a1b562b5ec2e8ce9d.js\"],\"component---src-pages-recent-work-snorkel-tsx\":[\"/component---src-pages-recent-work-snorkel-tsx-48fba2f356e22715fcf4.js\"],\"component---src-pages-recent-work-tsx\":[\"/component---src-pages-recent-work-tsx-f457435ed9204f832c22.js\"],\"component---src-pages-services-ai-consulting-index-tsx\":[\"/component---src-pages-services-ai-consulting-index-tsx-61db0183541f7ff91185.js\"],\"component---src-pages-services-it-infrastructure-optimization-tsx\":[\"/component---src-pages-services-it-infrastructure-optimization-tsx-5965eb8310cd387f554e.js\"],\"component---src-pages-services-performance-optimization-tsx\":[\"/component---src-pages-services-performance-optimization-tsx-31c4a06b797cda629ea8.js\"],\"component---src-pages-services-ts
503x\":[\"/component---src-pages-services-tsx-2ea2e22291f9fe4184ec.js\"],\"component---src-pages-services-web-scraping-and-data-analysis-index-tsx\":[\"/component---src-pages-services-web-scraping-and-data-analysis-index-tsx-d399b82ece155e927e1c.js\"],\"component---src-pages-services-web-scraping-and-data-analysis-thank-you-for-booking-tsx\":[\"/component---src-pages-services-web-scraping-and-data-analysis-thank-you-for-booking-tsx-feb7d297d7928f185763.js\"],\"component---src-pages-shakaflow-tsx\":[\"/component---src-pages-shakaflow-tsx-8766f83adffdb4e0c925.js\"],\"component---src-pages-shakaperf-tsx\":[\"/component---src-pages-shakaperf-tsx-16dc667de74ff72d6749.js\"],\"component---src-pages-talks-tsx\":[\"/component---src-pages-talks-tsx-dfafc15df5b5d2d0f5b3.js\"],\"component---src-pages-technologies-cypress-on-rails-tsx\":[\"/component---src-pages-technologies-cypress-on-rails-tsx-f2c79753f2f0f7e451ed.js\"],\"component---src-pages-technologies-domo-tsx\":[\"/component---src-pages-technologies-domo-tsx-c8faa6fd0d4e21322960.js\"],\"component---src-pages-technologies-gatsby-tsx\":[\"/component---src-pages-technologies-gatsby-tsx-9d78e572093f23c18dcc.js\"],\"component---src-pages-technologies-graphql-pro-tsx\":[\"/component---src-pages-technologies-graphql-pro-tsx-a597e50b3adcfe892383.js\"],\"component---src-pages-technologies-next-js-tsx\":[\"/component---src-pages-technologies-next-js-tsx-ba49f1c63c73948f9864.js\"],\"component---src-pages-technologies-react-native-tsx\":[\"/component---src-pages-technologies-react-native-tsx-f4ca39d7d96d3d5fc595.js\"],\"component---src-pages-technologies-react-on-rails-tsx\":[\"/component---src-pages-technologies-react-on-rails-tsx-365542f088f89cc75425.js\"],\"component---src-pages-technologies-react-tsx\":[\"/component---src-pages-technologies-react-tsx-10a96100d8cdd54ff54b.js\"],\"component---src-pages-technologies-rescript-tsx\":[\"/component---src-pages-technologies-rescript-tsx-3f952a713abdd28926fe.js\"],\"component---src-pages-technologies-ruby-on-rails-tsx\":[\"/component---src-pages-technologies-ruby-on-rails-tsx-a4f30cabfed89c0e4ae1.js\"],\"component---src-pages-technologies-rust-tsx\":[\"/component---src-pages-technologies-rust-tsx-7e05e1fd9dae2c7fe19e.js\"],\"component---src-pages-technologies-shakapacker-tsx\":[\"/component---src-pages-technologies-shakapacker-tsx-bb53601721b438406c3d.js\"],\"component---src-pages-technologies-typescript-tsx\":[\"/component---src-pages-technologies-typescript-tsx-8d69678e8c81ddd9a337.js\"],\"component---src-pages-technologies-wordpress-tsx\":[\"/component---src-pages-technologies-wordpress-tsx-7f2d8c4dc5c71f969d02.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-2014-golden-gate-ruby-conference-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-2014-golden-gate-ruby-conference-index-mdx-7f82f80b43dfd016176d.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-a-definite-guide-to-e-2-e-ci-setup-react-native-using-cavy-cli-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-a-definite-guide-to-e-2-e-ci-setup-react-native-using-cavy-cli-index-mdx-bd9fc1dd98785eaac3b4.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-a-year-of-development-with-redux-part-1-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-a-year-of-development-with-redux-part-1-index-mdx-0758434c9c4c95b2a659.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-a-year-of-development-with-redux-part-2-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-a-year-of-development-with-redux-part-2-index-mdx-e0ba4faa175309a65ca4.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-a-year-of-development-with-redux-part-3-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-a-year-of-development-with-redux-part-3-index-mdx-3e4ee8af4e25f6a70a4c.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-adding-a-js-library-when-u
503sing-webpack-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-adding-a-js-library-when-using-webpack-index-mdx-e49676b61e5a3e176898.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-ai-assisted-migrations-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-ai-assisted-migrations-index-mdx-75b5ba4797be489da646.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-alfred-tips-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-alfred-tips-index-mdx-7576b4060f120f43b186.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-an-attitude-of-gratitude-for-open-source-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-an-attitude-of-gratitude-for-open-source-index-mdx-7ce87c514801239e5cbc.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-an-introduction-to-test-suite-optimization-in-ruby-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-an-introduction-to-test-suite-optimization-in-ruby-index-mdx-78e18781405cb67d39e9.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-audit-30-ai-assisted-commits-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-audit-30-ai-assisted-commits-index-mdx-2a0e1434a016c721b1ac.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-bulletproof-enums-using-immutable-records-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-bulletproof-enums-using-immutable-records-index-mdx-52c9a8dc2c383e8d9ea1.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-buying-apple-products-with-amex-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-buying-apple-products-with-amex-index-mdx-1eb8dc3f859046178485.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-can-shakacode-help-you-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-can-shakacode-help-you-index-mdx-cfd6614c1452719a8d60.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-capybara-phantomjs-poltergeist-rspec-tips-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-capybara-phantomjs-poltergeist-rspec-tips-index-mdx-551314a4b39063da8dce.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-choosing-between-kamal-control-plane-shakacode-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-choosing-between-kamal-control-plane-shakacode-index-mdx-424f646696611045f4b1.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-client-engagement-model-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-client-engagement-model-index-mdx-2b20dc384d14890f7a18.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-cloudinary-to-self-hosted-image-pipeline-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-cloudinary-to-self-hosted-image-pipeline-index-mdx-07435d5ccd322ad805f4.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-code-coverage-cannot-see-a-cookie-banner-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-code-coverage-cannot-see-a-cookie-banner-index-mdx-952f99cdf31edfd046a7.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-coffeescript-chrome-extensions-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-coffeescript-chrome-extensions-index-mdx-f37a0ac5c50151e9b96b.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-comprehensive-guide-to-simplecov-gem-in-rails-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-comprehensive-guide-to-simplecov-gem-in-rails-index-mdx-6a4214d60cdb1fee9a28.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-consulting-vs-full-time-hires-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-consulting-vs-full-time-hires-index-mdx-a5b52ad20cfdf1cc7731.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-cool
503-things-you-can-do-with-first-class-modules-in-rescript-react-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-cool-things-you-can-do-with-first-class-modules-in-rescript-react-index-mdx-af5009b327603f74e660.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-cut-demo-hosting-costs-with-scale-to-zero-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-cut-demo-hosting-costs-with-scale-to-zero-index-mdx-867403260410c1f72c2a.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-debugging-made-easy-with-pry-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-debugging-made-easy-with-pry-index-mdx-e194dfb9635dcb9d3b01.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-defer-unique-constraints-in-postgresql-with-rails-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-defer-unique-constraints-in-postgresql-with-rails-index-mdx-794a0d73fb8518ea5a7c.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-easy-react-server-rendering-with-webpacker-v-4-and-react-on-rails-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-easy-react-server-rendering-with-webpacker-v-4-and-react-on-rails-index-mdx-e2624f79af9c91795eeb.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-eliminate-n-1-queries-with-bullet-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-eliminate-n-1-queries-with-bullet-index-mdx-fd8e4549e8d07a546e17.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-eliminating-illegal-state-in-rescript-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-eliminating-illegal-state-in-rescript-index-mdx-9f9096ff0645db3ba44a.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-ember-dot-js-hello-world-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-ember-dot-js-hello-world-index-mdx-10854cc34cf0367c8c2f.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-emberjs-rails-4-tutorial-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-emberjs-rails-4-tutorial-index-mdx-d8b4dd78fb6fa5cfd8fb.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-empower-your-rails-application-with-cancancan-gem-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-empower-your-rails-application-with-cancancan-gem-index-mdx-3effebd6c2ad8549f06c.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-enums-and-queries-in-rails-4-dot-1-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-enums-and-queries-in-rails-4-dot-1-index-mdx-b1d7f6ab9c56fddb0b82.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-exploring-the-ffaker-gem-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-exploring-the-ffaker-gem-index-mdx-24de68a7b3fdd16702e0.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-fast-tests-comparing-zeus-with-spring-on-rails-4-dot-1-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-fast-tests-comparing-zeus-with-spring-on-rails-4-dot-1-index-mdx-dea24b3d8a82fad7a2ec.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-flaky-visual-regression-tests-and-what-to-do-about-them-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-flaky-visual-regression-tests-and-what-to-do-about-them-index-mdx-6da82eed684d9eb7fc1d.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-front-end-sadness-to-happiness-the-react-on-rails-story-at-goruco-2017-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-front-end-sadness-to-happiness-the-react-on-rails-story-at-goruco-201
5037-index-mdx-06202e8a3da2cf74781a.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-general-troubleshooting-and-getting-started-with-react-on-rails-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-general-troubleshooting-and-getting-started-with-react-on-rails-index-mdx-62cc85f28107f5e3d197.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-getting-started-with-discourse-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-getting-started-with-discourse-index-mdx-2a8afd1bfad6cef7955d.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-github-stacked-prs-visual-regression-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-github-stacked-prs-visual-regression-index-mdx-251e444d14bbfcbb77ee.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-gogaruco-2013-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-gogaruco-2013-index-mdx-86eec9ebd72028cd6328.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-gogaruco-pictures-2014-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-gogaruco-pictures-2014-index-mdx-f72f33e4ffa7de169647.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-graphql-in-ruby-on-rails-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-graphql-in-ruby-on-rails-index-mdx-39dbace667eb797440fe.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-headless-chrome-automation-in-rails-using-ferrum-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-headless-chrome-automation-in-rails-using-ferrum-index-mdx-e85e30918fde61bfa8a8.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-how-i-almost-fell-for-phishing-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-how-i-almost-fell-for-phishing-index-mdx-46523fb8e0588ac91f35.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-how-much-client-side-javascript-in-rails-4-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-how-much-client-side-javascript-in-rails-4-index-mdx-f04d1baafa0c1bd233c2.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-how-to-use-different-versions-of-a-file-for-client-and-server-rendering-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-how-to-use-different-versions-of-a-file-for-client-and-server-rendering-index-mdx-39f2b090680588f631c5.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-hvmns-90-reduction-in-server-response-time-from-react-on-rails-pro-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-hvmns-90-reduction-in-server-response-time-from-react-on-rails-pro-index-mdx-3987f7199411a00ea69f.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-identify-unused-routes-in-rails-7-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-identify-unused-routes-in-rails-7-index-mdx-ff98cecb21903eb4e1d7.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-influencing-webpacker-rather-than-forking-to-support-webpacker-in-react-on-rails-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-influencing-webpacker-rather-than-forking-to-support-webpacker-in-react-on-rails-index-mdx-e9d8f969f5069f93a29b.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-integrating-webpack-and-the-es-6-transpiler-into-an-existing-rails-project-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-integrating-webpack-and-the-es-6-transpiler-into-an-existing-rails-project-index-mdx-37d3abb6f2e6cf8c3215.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-introducing-playwright-support-in-cypress-on-rails-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-introducing-playwright-support-in-cypress-on-rails-index-mdx-ba6c8d7515cb230c173b.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-introducing-react-on-rails-v-9-with-webpacker-support-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-introducing-react-on-rails-v-9-with-webpacker-support-index-mdx-e29455e842b726ffa987.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-introduction-to-cypress-on-rails-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-introduction-to-cypress-on-rails-index-mdx-0779100d86a97cdce3bf.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-isomorphic-react-with-rails-part-1-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-isomorphic-react-with-rails-part-1-index-mdx-48432f59394cd89dc4f6.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-isomorphic-react-with-rails-part-2-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-isomorphic-react-with-rails-part-2-index-mdx-7692c4fcd33692463f38.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-isomorphic-react-with-rails-part-3-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-isomorphic-react-with-rails-part-3-index-mdx-2d77dd46adf29d008c3c.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-isomorphic-react-with-rails-part-4-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-isomorphic-react-with-rails-part-4-index-mdx-f985395de7ee20abe9f9.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-keeping-your-database-migrations-strong-with-strong-migrations-gem-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-keeping-your-database-migrations-strong-with-strong-migrations-gem-index-mdx-b2b1f0b9abbfe36d627d.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-level-up-your-ruby-code
503-with-draper-decorators-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-level-up-your-ruby-code-with-draper-decorators-index-mdx-e702b50cded03f7d8074.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-manage-rails-app-business-logic-using-active-interaction-gem-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-manage-rails-app-business-logic-using-active-interaction-gem-index-mdx-5701ddf36a68483b2909.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-managing-external-data-sources-in-e-2-e-testing-for-cross-platform-react-native-application-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-managing-external-data-sources-in-e-2-e-testing-for-cross-platform-react-native-application-index-mdx-2bb065b1cc719e35771f.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-masking-pii-with-ruby-gsub-with-regular-expression-named-match-groups-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-masking-pii-with-ruby-gsub-with-regular-expression-named-match-groups-index-mdx-13b4a1582c9057e28b40.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-mastering-authorization-in-rails-with-pundit-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-mastering-authorization-in-rails-with-pundit-index-mdx-64d05fcd4a998693fe17.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-maximizing-code-quality-with-rails-pre-commit-and-pre-push-hooks-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-maximizing-code-quality-with-rails-pre-commit-and-pre-push-hooks-index-mdx-d38a063e07af6e61d669.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-metaprogramming-in-ruby-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-metaprogramming-in-ruby-index-mdx-a2270879d3c9f208a576.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-migrating-from-angular-to-react-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-migrating-from-angular-to-react-index-mdx-646033e5a4c51718d343.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-migrating-from-bash-to-zsh-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-migrating-from-bash-to-zsh-index-mdx-18d84596cc2b675cfc95.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-migrating-from-capybara-webkit-to-poltergeist-phantomjs-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-migrating-from-capybara-webkit-to-poltergeist-phantomjs-index-mdx-3935fcef72b8a93c6138.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-migration-to-webpack-2-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-migration-to-webpack-2-index-mdx-23f41e4ea21dd8db434d.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-migrations-on-sequelize-cli-for-beginners-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-migrations-on-sequelize-cli-for-beginners-index-mdx-f569b0a590bdc4cc1af1.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-my-react-on-rails-talk-at-the-la-ruby-rails-meetup-november-10-2016-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-my-react-on-rails-talk-at-the-la-ruby-rails-meetup-november-10-2016-index-mdx-7d6028e0a9cd877720ab.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-octopress-setup-with-github-and-org-mode-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-octopress-setup-with-github-and-org-mode-index-mdx-28a21c16cff8a7462c7d.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-octopress-setup-with-github-and-org-mode-v-2-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-octopress-setup-with-github-and-org-mode-v-2-index-mdx-34ea38cb508b63c610f6.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-optimized-parallelized-circleci-configuration-for-reactonrails-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-optimized-parallelized-circleci-configuration-for-reactonrails-index-mdx-85c10e4da56fafdc6406.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-optimizing-google-fonts-on-gatsby-sites-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-optimizing-google-fonts-on-gatsby-sites-index-mdx-87cf345e49be2fcc8ca9.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-optimizing-js-bundle-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-optimizing-js-bundle-index-mdx-8a75a45ff27bbe4b3f56.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-pry-ruby-and-fun-with-the-hash-constructor-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-pry-ruby-and-fun-with-the-hash-constructor-index-mdx-8df790bc24f3b0a58b9e.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-pry-ruby-array-zip-csv-and-the-hash-constructor-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-pry-ruby-array-zip-csv-and-the-hash-constructor-index-mdx-014d49401e0954a05a10.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-pull-requests-creating-and-review-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-pull-requests-creating-and-review-index-mdx-f85f0106b4452aa05556.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-active-record-api-for-general-async-queries-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-active-record-api-for-general-async-queries-index-mdx-ffa852d4e09ae7cf80b4.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-activestorage-transform-job-preprocess-previewable-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-activestorage-transform-job-preprocess-previewable-index-mdx-b1ffce12284cf678b26a.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-activerecord-regroup-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-activerecord-regroup-index-mdx-7116fff41ceb8019d555.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-default-dockerfiles-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-default-dockerfiles-index-mdx-f215e6c2f82bc3bdfb52.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-message-pack-as-message-serializer-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-message-pack-as-message-serializer-index-mdx-8053aeb6160162001207.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-object-with-method-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-object-with-method-index-mdx-a86160eeb36f416b4bb3.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-option-to-extract-audio-sample-rate-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-option-to-extract-audio-sample-rate-index-mdx-4757c89b87abcc5b69f9.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-path-params-options-to-url-for-helper-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-path-params-options-to-url-for-helper-index-mdx-d3b50fe4e0377a757564.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-support-for-infinite-range-for-length-validators-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-support-for-infinite-range-for-length-validators-index-mdx-5d04651ea721e13e5b47.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-support-for-intersect-to-activerecord-relation-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-support-for-intersect-to-activerecord-relation-index-mdx-488155fc0cd72372abe0.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-support-for-multi-column-ordering-in-activerecord-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-support-for-multi-column-ordering-in-activerecord-index-mdx-f14b2b86676cbe6b7b6b.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-support-to-run-test-for-given-line-range-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-support-to-run-test-for-given-line-range-index-mdx-a0a4161f90fcbd5
503d8976.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-the-option-to-disable-activerecord-enum-methods-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-the-option-to-disable-activerecord-enum-methods-index-mdx-2f7fe219a1effc3b23a2.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-validation-to-enums-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-adds-validation-to-enums-index-mdx-a7eb6d2b04638d4b73fe.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-allow-error-reporter-to-handle-several-error-classes-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-allow-error-reporter-to-handle-several-error-classes-index-mdx-71a717bff05aa228deac.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-allows-activerecord-reselect-to-accept-hash-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-allows-activerecord-reselect-to-accept-hash-index-mdx-56062da7481f9f3f7d57.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-allows-attaching-file-or-pathname-to-has-one-attached-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-allows-attaching-file-or-pathname-to-has-one-attached-index-mdx-7a40a0878fc37ea91bb8.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-allows-matching-exception-messages-to-assert-raises-assertion-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-allows-matching-exception-messages-to-assert-raises-assertion-index-mdx-80bcc9e238191eb9e7c5.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-allows-passing-options-to-activerecord-explain-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-allows-passing-options-to-activerecord-explain-index-mdx-8f40425f797afb1fd1cc.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-allows-resetting-singular-associations-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-allows-resetting-singular-associations-index-mdx-284393a6c89209acc6d2.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-allows-templates-to-define-accepted-locals-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-allows-templates-to-define-accepted-locals-index-mdx-23a45d19c80fa4712256.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-allows-using-aliased-attributes-in-insert-all-upsert-all-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-allows-using-aliased-attributes-in-insert-all-upsert-all-index-mdx-b5b893b14b2a24ad1e70.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-increment-decrement-counter-accepts-a-by-argument-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-increment-decrement-counter-accepts-a-by-argument-index-mdx-1f13bf8b8d9a6adc53e6.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-introduces-active-record-generates-token-for-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-introduces-active-record-generates-token-for-index-mdx-9403ef2f5ffad81a8ec1.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-introduces-config-autoload-lib-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-introduces-config-autoload-lib-index-mdx-bc7f0c01fdc7f4381cbc.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-limits-max-length-of-auto-generated-index-names-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-limits-max-length-of-auto-generated-index-names-index-mdx-960ebfd404d791fa60db.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-raises-error-on-generating-model-attributes-with-dangerous-name-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-raises-error-on-generating-model-attributes-with-dangerous-name-index-mdx-3f6e8982b5e635115650.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-removes-secret-setup-command-and-deprecates-secret-show-edit-commands-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-1-removes-secret-setup-command-and-deprecates-secret-show-edit-commands-index-mdx-3240fa8fd18c62169ac0.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-enhances-postgresql-enum-functionality-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-7-enhances-postgresql-enum-functionality-index-mdx-8d94bbf1a529f6193afd.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-8-adds-allow-browser-to-set-minimum-version-for-apps-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-8-adds-allow-browser-to-set-minimum-version-for-apps-index-mdx-7701206633e3b0ee5517.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-8-adds-brakeman-by-default-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-8-adds-brakeman-by-default-index-mdx-acf09371db7556ca4aeb.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-8-adds-github-ci-files-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-8-adds-github-ci-files-index-mdx-9e817fa67a9ac23e5537.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-8-adds-rate-limiting-to-action-controller-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-8-adds-rate-limiting-to-action-controller-index-mdx-0d76791ffde9a7ce4f46.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-8-adds-rubocop-by-default-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-8-adds-rubocop-by-default-index-mdx-de9f7140738ff1622298.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-8-extends-explain-support-to-activerecord-relations-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-8-extends-explain-support-to-activerecord-relations-index-mdx-aaf8760baddbcc755f3b.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-add-deliver-callbacks-to-action-mailer-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-add-deliver-callbacks-to-action-mailer-index-mdx-f886a73d6aa52b83b0f1.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-add-expires-at-option-to-active-storage-blob-signed-id-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-add-expires-at-option-to-active-storage-blob-signed-id-index-mdx-d5d527985cdac829646d.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-add-normalize-to-activerecord-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-add-normalize-to-activerecord-index-mdx-e82ece9db5ebdac3f226.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-add-picture-tag-helper-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-add-picture-tag-helper-index-mdx-322eed2e5ee0c994bfb8.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-adds-ability-to-raise-error-on-missing-callback-actions-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-adds-ability-to-raise-error-on-missing-callback-actions-index-mdx-269880b8aa18613df888.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-adds-errorreporter-unexpected-for-error-reporting-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-adds-errorreporter-unexpected-for-error-reporting-index-mdx-b9b76da4078cac0d9dfc.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-adds-parent-option-to-controller-generator-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-adds-parent-option-to-controller-generator-index-mdx-35de84a9f320ade1036b.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-adds-perform-all-later-to-activejob-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-adds-perform-all-later-to-activejob-index-mdx-b4e69ca03704e6a4f784.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-concerns-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-concerns-index-mdx-63d408bbf701978792da.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rails-make-active-records-query-cache-an-lru-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rails-make-active-records-query-cache-an-lru-index-mdx-276a75b39ce185ad254e.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-railsconf-2014-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-railsconf-2014-index-mdx-abf6da750525647ac45b.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-railsconf-2020-webpacker-it-just-works-but-how-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-railsconf-2020-webpacker-it-just-works-but-how-index-mdx-49450db2bb33fb7ae9ca.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-railsconf-2021-implicit-to-explicit-decoding-rubys-magical-syntax-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-railsconf-2021-implicit-to-explicit-decoding-rubys-magical-syntax-index-mdx-d61cbc541e465bfbfb9e.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-react-on-rails-2000-stars-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-react-on-rails-2000-stars-index-mdx-d96bef1d6371550b6fe1.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-react-on-rails-file-system-based-automated-bundle-generation-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-react-on-rails-file-system-based-automated-bundle-generation-index-mdx-809b16cb1364b8c92156.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-react-purecomponent-pitfalls-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-react-purecomponent-pitfalls-index-mdx-02f6fbb7661a484ae5ae.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-react-svgs-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-react-svgs-index-mdx-53857a10c88eac392496.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-redux-tree-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-redux-tree-index-mdx-d2df2a91e318790c55de.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-remote-pair-programming-tips-using-screenhero-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-remote-pair-programming-tips-using-screenhero-index-mdx-d2870139e82adfb4616a.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-renaming-redating-blog-posts-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-renaming-redating-blog-posts-index-mdx-627524cfc83dae33bcb5.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rescript-feedback-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rescript-feedback-index-mdx-9fa5ad97740b21caa20c.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rescript-modules-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rescript-modules-index-mdx-ebdd21776981f10b6333.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-rocking-with-tmux-tmuxinator-and-iterm-2-for-rails-development-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-rocking-with-tmux-tmuxinator-and-iterm-2-for-rails-development-index-mdx-8819bc64e18f18d4c4d8.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-ruby-3-2-adds-a-new-data-class-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-ruby-3-2-adds-a-new-data-class-index-mdx-fd244f978fb4834e6da3.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-ruby-3-3
503-0-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-ruby-3-3-0-index-mdx-d9427b3ab04c96d665f6.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-ruby-3-3-introduces-range-overlap-method-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-ruby-3-3-introduces-range-overlap-method-index-mdx-8c34682e7cee0770b7ee.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-ruby-on-rails-javascript-with-es-6-or-coffeescript-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-ruby-on-rails-javascript-with-es-6-or-coffeescript-index-mdx-1c8617712cf370947de4.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-safe-identifiers-in-rescript-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-safe-identifiers-in-rescript-index-mdx-3bef7553faccc79d1361.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-safe-routing-in-rescript-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-safe-routing-in-rescript-index-mdx-104f7eb060ee08463c02.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-sending-bytes-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-sending-bytes-index-mdx-fd20fb4838fd30a47cb4.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-shakapacker-7-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-shakapacker-7-index-mdx-c2e5980d1be5db04768f.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-shortcut-jira-trello-github-toggl-time-and-task-tracking-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-shortcut-jira-trello-github-toggl-time-and-task-tracking-index-mdx-5814e301007907b6a8d0.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-simple-form-and-disable-processing-by-default-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-simple-form-and-disable-processing-by-default-index-mdx-18863804b76aa9cd3763.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-simplify-your-ruby-application-configuration-with-figaro-gem-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-simplify-your-ruby-application-configuration-with-figaro-gem-index-mdx-0271edb4b4a2f4ac68eb.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-specific-issues-upgrading-gems-to-rails-4-dot-1-and-rspec-3-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-specific-issues-upgrading-gems-to-rails-4-dot-1-and-rspec-3-index-mdx-14306655ee87ecdd6f00.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-storing-or-excluding-node-modules-in-rails-git-repositories-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-storing-or-excluding-node-modules-in-rails-git-repositories-index-mdx-0641c1189ac2ad08a11b.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-strategies-for-rails-logging-and-error-handling-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-strategies-for-rails-logging-and-error-handling-index-mdx-cfd26506eac0f8784a80.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-streaming-explained-restaurant-analogy-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-streaming-explained-restaurant-analogy-index-mdx-0b7acc9b308226e5a848.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-streamlined-syntax-unveiling-the-power-of-slim-template-language-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-streamlined-syntax-unveiling-the-power-of-slim-template-language-index-mdx-aa438b206cf3d38ae684.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-success-the-shakacode-way-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-success-the-shakacode-way-index-mdx-9b422b5472c44078edc5.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-supercharge-your-rails-app-with-active-admin-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-supercharge-your-rails-app-with-active-admin-index-mdx-4115f01680ce76cfa774.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-tanstack-with-react-on-rails-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-tanstack-with-react-on-rails-index-mdx-99e675e7c86e9a7593f4.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-teach-me-with-analogies-ai-prompt-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-teach-me-with-analogies-ai-prompt-index-mdx-1d07e785d47d60ae6925.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-telecommuting-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-telecommuting-index-mdx-6447ebe3c8b854c93a15.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-testing-error-handling-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-testing-error-handling-index-mdx-dd71cc602ba1b911318c.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-the-react-on-rails-doctrine-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-the-react-on-rails-doctrine-index-mdx-0aaa38b940f53acf4905.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-things-i-wish-i-knew-before-using-terraform-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-things-i-wish-i-knew-before-using-terraform-index-mdx-62e531e5c036fe634a99.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-thiserror-anyhow-or-how-i-handle-errors-in-rust-apps-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-thiserror-anyhow-or-how-i-handle-errors-in-rust-apps-index-mdx-fa0c03de43dbb6871574.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-timescaledb-to-postgres-jsonb-packing-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-timescaledb-to-postgres-jsonb-packing-index-mdx-2a946a4270b8047692dd.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-unlocking-seo-friendly-urls-with-friendlyid-gem-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-unlocking-seo-friendly-urls-with-friendlyid-gem-index-mdx-15853c2403ad2f8497fa.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-update-to-emberjs-hello-world-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-update-to-emberjs-hello-world-index-mdx-9281385d0a957858fe83.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-updating-to-jekyll-2-and-discourse-for-comments-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-updating-to-jekyll-2-and-discourse-for-comments-index-mdx-39d97005222e6620a28a.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-upgrade-rails-5-2-to-6-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-upgrade-rails-5-2-to-6-index-mdx-d026bfe31f0013478f15.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-upgrade-rails-6-1-to-7-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-upgrade-rails-6-1-to-7-index-mdx-c5eae0affe3ab1229445.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-upgrading-octopress-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-upgrading-octopress-index-mdx-053e0180f32505ca0093.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-upgrading-to-rails-4-and-rspec-3-with-capybara-and-resque-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-upgrading-to-rails-4-and-rspec-3-with-capybara-and-resque-index-mdx-d5c5f3b29bddf8dcf071.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-using-rubymine-slash-intellij-regexp-search-slash-replace-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-using-rubymine-slash-intellij-regexp-search-slash-replace-index-mdx-8b30180e73586f910692.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-webpacker-lite-why-fork-webpacker-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-webpacker-lite-why-fork-webpacker-index-mdx-c96e18d3f6d7dcacbd12.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-were-super-inclusive-at-shakacode-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-were-super-inclusive-at-shakacode-index-mdx-9cbd6078fea94984976d.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-who-is-shakacode-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-who-is-shakacode-index-mdx-a9479d26ab93395df665.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-why-stay-versus-move-away-from-heroku-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-why-stay-versus-move-away-from-heroku-index-mdx-31959812d93977d31ce6.js\"],\"component---src-template-blog-article-tsx-content-file-path-src-posts-yak-shaving-failing-integration-tests-with-react-index-mdx\":[\"/component---src-template-blog-article-tsx-content-file-path-src-posts-yak-shaving-failing-integration-tests-with-react-index-mdx-37ebac5656cfb433afd1.js\"],\"component---src-template-blog-category-all-topics-tsx\":[\"/component---src-template-blog-category-all-topics-tsx-8c17099e5c0ca72f3a2f.js\"],\"component---src-template-blog-category-tsx\":[\"/component---src-template-blog-category-tsx-31aa09385a83c7a9ed2a.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-ai-github-flow-prompt-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-ai-github-flow-prompt-md-2efc70002c8a33534199.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-ci-automation-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-ci-automation-md-3d6681b2b7a99871ea2e.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-commands-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-commands-md-a952d4e7d62b7076a587.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-dns-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-dns-md-210befb00c7861ed4677.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-grafana-opentelemetry-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-grafana-opentelemetry-md-2094d12e5c1d4192ba05.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-migrating-heroku-to-control-plane-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-migrating-heroku-to-control-plane-md-eaf5d08a4bd9aa5627b8.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-postgres-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-postgres-md-d8b7bd8245f2d10b2147.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-rds-private-networking-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-rds-private-networking-md-bc56871548ba3666b30e.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-redis-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-redis-md-482be45d5d1acae6a8f6.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-releasing-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-releasing-md-13571ba7e3c57445720a.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-secrets-and-env-values-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-secrets-and-env-values-md-b20f054f6b444396d609.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-telemetry-application-instrumentation-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-telemetry-application-instrumentation-md-74ff86934da5b09a3111.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-telemetry-collector-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-telemetry-collector-md-2ac04dc27d9fcab8a5b9.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-telemetry-index-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-telemetry-index-md-f2b5deaa9dd6b8b0cbb3.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-telemetry-pipelines-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-telemetry-pipelines-md-f0105d51acd439171c84.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-telemetry-review-apps-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-telemetry-review-apps-md-9bc916721c0b608086d6.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-telemetry-troubleshooting-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-telemetry-troubleshooting-md-e8c3c20
503dd29510c36303.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-terraform-details-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-terraform-details-md-274f8883a5bab1715a9c.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-terraform-overview-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-terraform-overview-md-7e5a6546d2d889ddb56b.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-thruster-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-thruster-md-6325bb0115edf9f07a34.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-tips-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-tips-md-b0d7ad2505d2886c38d1.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-troubleshooting-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-troubleshooting-md-bfe7e9e85454dffa601d.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-readme-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-readme-md-94ef44ac6bffb7769446.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-llms-full-preamble-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-llms-full-preamble-md-d209fe14012699671b6f.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-api-reference-doctor-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-api-reference-doctor-md-74797d50a9545e9dbefd.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-api-reference-generator-details-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-api-reference-generator-details-md-ee62789bc0e0c43eee16.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-api-reference-javascript-api-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-api-reference-javascript-api-md-fa63633e9fffe14eb151.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-api-reference-rails-view-rendering-from-inline-javascript-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-api-reference-rails-view-rendering-from-inline-javascript-md-103fb83173afad0ee551.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-api-reference-redux-store-api-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-api-reference-redux-store-api-md-50c2fa82ec13b77e7e90.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-api-reference-ruby-api-pro-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-api-reference-ruby-api-pro-md-b1f349cb756baa56cec7.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-api-reference-view-helpers-api-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-api-reference-view-helpers-api-md-2433abd95614b613a3a2.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-accessibility-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-accessibility-md-6a57120a9834a3e67322.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-bundle-caching-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-bundle-caching-md-191acc3df66f64945f08.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-caching-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-caching-md-69c95335673724baa35e.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-client-side-routing-instant-navigation-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-client-side-routing-instant-navigation-md-c137c2cc28587d855df2.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-code-splitting-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-code-splitting-md-8f4a1502c6bd48719d4f.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-debugging-hydration-mismatches-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-debugging-hydration-mismatches-md-6b8ba3d4d595eb86dc27.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-debugging-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-debugging-md-b92fe89d8cea6d3e5322.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-dev-server-and-testing-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-dev-server-and-testing-md-2a7da96e000176ada784.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-extensible-precompile-pattern-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-extensible-precompile-pattern-md-efedfcd5d2e19560808a.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-fast-images-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-fast-images-md-78d5082805da1d30157e.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-fonts-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-fonts-md-8d1c8fd6f0b1242f1e80.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-forms-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-forms-md-1c94b72a7ee47566daf5.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-generated-rails-response-types-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-generated-rails-response-types-md-a681c03f39b9f5ca4d18.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-hmr-and-hot-reloading-with-the-webpack-dev-server-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-hmr-and-hot-reloading-with-the-webpack-dev-server-md-213958bc68645c098900.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-how-to-conditionally-server-render-based-on-device-type-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-how-to-conditionally-server-render-based-on-device-type-md-525173a7b7dc02c05f81.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-how-to-use-different-files-for-client-and-server-rendering-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-how-to-use-different-files-for-client-and-server-rendering-md-45def0d89e10c8f79ebf.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-hydration-scheduling-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-hydration-scheduling-md-8253da866509704c1b52.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-i-18-n-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-i-18-n-md-ae0d1100486c5fa3942f.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-images-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-images-md-9d83657456088da0c922.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-mutations-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-mutations-md-369d8cd4dc1866d67af4.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-node-renderer-basics-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-node-renderer-basics-md-a7d654abd2414c940c92.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-node-renderer-container-deployment-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-node-renderer-container-deployment-md-bde309b9a186e5c0bfbb.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-node-renderer-debugging-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-node-renderer-debugging-md-f96ce85507f6778a3f06.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-node-renderer-error-reporting-and-tracing-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-node-renderer-error-reporting-and-tracing-md-31fbe10e919025ea710d.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-node-renderer-health-checks-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-node-renderer-health-checks-md-38baab86fc5fe80026dd.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-node-renderer-heroku-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-node-renderer-heroku-md-abedef8eecba669598c5.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-node-renderer-js-configuration-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-node-renderer-js-configuration-md-22243a43854d255b0bb8.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-node-renderer-troubleshooting-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-node-renderer-troubleshooting-md-cd755a466cb96f4b7e2a.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-performance-tracks-and-profiling-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-performance-tracks-and-profiling-md-e8727b903f86643c0735.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-process-managers-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-process-managers-md-74c75ffc55af5948b816.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-rails-engine-integration-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-rails-engine-integration-md-50c099322e57f562502f.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-rails-webpacker-react-integration-options-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-rails-webpacker-react-integration-options-md-5921168d53b5fa50bcbd.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-react-19-activity-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-react-19-activity-md-fea112d69af760ab3c40.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-react-19-native-metadata-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-react-19-native-metadata-md-2582971ee3aa97293e9b.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-react-and-redux-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-react-and-redux-md-405f1fa318803644245a.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-react-compiler-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-fe
503atures-react-compiler-md-114a9913c6a6da77804b.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-react-helmet-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-react-helmet-md-9112560f1c5c4176b245.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-react-router-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-react-router-md-aeef97f1b13bb876a704.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-streaming-server-rendering-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-streaming-server-rendering-md-c954ee970439eb636782.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-styling-with-tailwind-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-styling-with-tailwind-md-d91d4f9a8aa488e18a8c.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-tanstack-query-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-tanstack-query-md-da9a02cd8acd34e6c2c3.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-tanstack-router-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-tanstack-router-md-f6c5178b939a207796bd.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-testing-configuration-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-testing-configuration-md-8178ec5bc2337ec60cb0.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-turbolinks-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-turbolinks-md-a5cb79de7453368ba285.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-view-transitions-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-view-transitions-md-8c4f398b8f64fcd37b9d.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-web-components-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-web-components-md-7a07aff8264ccbd7f3c8.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-web-vitals-and-rum-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-building-features-web-vitals-and-rum-md-5cc79cd0bbac1757f971.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-configuration-configuration-deprecated-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-configuration-configuration-deprecated-md-e282deac7cf1cda8452b.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-configuration-configuration-pro-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-configuration-configuration-pro-md-2978ece1fb28103a6631.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-configuration-readme-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-configuration-readme-md-538bae4fad8b5c566ec7.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-core-concepts-auto-bundling-file-system-based-automated-bundle-generation-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-core-concepts-auto-bundling-file-system-based-automated-bundle-generation-md-d4692f32a5f3a28d796c.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-core-concepts-client-vs-server-rendering-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-core-concepts-client-vs-server-rendering-md-959395c2b9aacebdd763.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-core-concepts-execjs-limitations-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-core-concepts-execjs-limitations-md-3ab2c85c00977b5ea5a4.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-core-concepts-how-react-on-rails-works-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-core-concepts-how-react-on-rails-works-md-702cf5e089b25c7be12d.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-core-concepts-performance-benchmarks-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-core-concepts-performance-benchmarks-md-62aeae342e68d54998e7.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-core-concepts-react-server-rendering-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-core-concepts-react-server-rendering-md-1a9c3fb468263d036b0b.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-core-concepts-render-functions-and-railscontext-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-core-concepts-render-functions-and-railscontext-md-bedcaed4a68c87fcf01b.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-core-concepts-render-functions-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-core-concepts-render-functions-md-a3afb27dcaf239d7a4b4.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-core-concepts-webpack-configuration-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-core-concepts-webpack-configuration-md-35e9d44d1936af73ef55.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-deployment-docker-deployment-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-deployment-docker-deployment-md-38828098d757bd1bc9c0.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-deployment-heroku-deployment-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-deployment-heroku-deployment-md-6f29977e0c0b225dee4d.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-deployment-readme-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-deployment-readme-md-eb92cc02cdf52369ddf6.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-deployment-review-app-security-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-deployment-review-app-security-md-80e71eb3d4aae8534005.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-deployment-security-model-and-hardening-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-deployment-security-model-and-hardening-md-ebbaf2324afea6c4f7b8.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-deployment-server-rendering-tips-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-deployment-server-rendering-tips-md-37beb226085321df8cdc.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-deployment-troubleshooting-build-errors-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-deployment-troubleshooting-build-errors-md-0d7c66d0252c4236b14d.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-deployment-troubleshooting-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-deployment-troubleshooting-md-726fcb521f156ffd9cf7.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-deployment-troubleshooting-when-using-shakapacker-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-deployment-troubleshooting-when-using-shakapacker-md-8b4bd4539616cd51d629.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-deployment-troubleshooting-when-using-webpacker-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-deployment-troubleshooting-when-using-webpacker-md-c2e5e5f6bd29d468bccf.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-common-issues-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-common-issues-md-86a7aeb3e11321d85193.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-comparing-react-on-rails-to-alternatives-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-comparing-react-on-rails-to-alternatives-md-49c7fe7bf8eae228f902.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-comparison-with-alternatives-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-comparison-with-alternatives-md-8ec3a077f5f03d2a1460.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-consuming-an-unreleased-build-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-consuming-an-unreleased-build-md-5536e26e6dbd29f57678.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-create-react-on-rails-app-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-create-react-on-rails-app-md-00aaf8ad516fd6083524.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-examples-and-references-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-examples-and-references-md-151cf9447a2e3116d320.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-installation-into-an-existing-rails-app-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-installation-into-an-existing-rails-app-md-541c0f856b0fdb074e2a.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-nextjs-with-separate-rails-backend-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-nextjs-with-separate-rails-backend-md-2b9fe9d61f186ec319dc.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-oss-vs-pro-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-oss-vs-pro-md-c3ef0514ccc3d07b50d4.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-pro-quick-start-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-pro-quick-start-md-d5c5ec680dd5325a7ac3.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-project-structure-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-project-structure-md-43e0ea38282fc5c4e332.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-quick-start-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-quick-start-md-a51cc87a01d56dc06702.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-tutorial-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-tutorial-md-2b7664f33ad65e744527.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-using-react-on-rails-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-using-react-on-rails-md-4afa0f433e6b32930f9a.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-why-rspack-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-getting-started-why-rspack-md-933dc04c39471edf03a0.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-introduction-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-introduction-md-b24b9828bf827b8c01f0.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-angular-js-integration-migration-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-ra
503ils-docs-oss-migrating-angular-js-integration-migration-md-6b3c6c328900a21b4993.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-babel-to-swc-migration-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-babel-to-swc-migration-md-189648c536dab3a88508.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-convert-rails-5-api-only-app-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-convert-rails-5-api-only-app-md-c4b882b4852a2874a00c.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-example-migrations-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-example-migrations-md-bf952e09afde0605325b.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-migrating-from-inertia-rails-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-migrating-from-inertia-rails-md-e1e35528629e7571ff18.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-migrating-from-nextjs-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-migrating-from-nextjs-md-19069128cc47191abb5e.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-migrating-from-react-rails-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-migrating-from-react-rails-md-24f7c9147050fe841169.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-migrating-from-vite-rails-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-migrating-from-vite-rails-md-0cbbe6d859243afc1175.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-migrating-from-webpack-to-rspack-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-migrating-from-webpack-to-rspack-md-015fe0b8733e572f59d7.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-migrating-to-rsc-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-migrating-to-rsc-md-39b74b57d03be2bcf380.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-rsc-component-patterns-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-rsc-component-patterns-md-9b5c101590dbccd1ccea.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-rsc-context-and-state-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-rsc-context-and-state-md-4b7d5df415b4093482e4.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-rsc-data-fetching-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-rsc-data-fetching-md-7fd567997b2b60fdfe3c.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-rsc-flight-payload-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-rsc-flight-payload-md-79a70a347b6368af086f.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-rsc-http-response-patterns-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-rsc-http-response-patterns-md-f1dcc15fb1cbfdd5dc7f.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-rsc-performance-validation-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-rsc-performance-validation-md-70648cba9186e3d6d1e2.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-rsc-preparing-app-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-rsc-preparing-app-md-7e12cfa9aa07eae4630a.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-rsc-static-shell-sidecar-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-rsc-static-shell-sidecar-md-d56a21a6f37f2d00dd82.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-rsc-third-party-libs-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-rsc-third-party-libs-md-4fc1219cd2d0affd2674.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-rsc-troubleshooting-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-migrating-rsc-troubleshooting-md-1f4c0d10523b683e84c8.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-misc-articles-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-misc-articles-md-3cf65056e3d3b06f79fe.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-misc-asset-pipeline-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-misc-asset-pipeline-md-768ade7eec24998adf29.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-misc-credits-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-misc-credits-md-79ac848f73acae069743.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-misc-doctrine-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-misc-doctrine-md-68b0a4d66ff4a022fe38.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-misc-style-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-misc-style-md-cd1659528e123027801d.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-misc-tips-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-misc-tips-md-838a15a24704b5f004a8.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-misc-updating-dependencies-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-misc-updating-dependencies-md-9e699909aec06f9bd39c.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-reference-error-reference-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-reference-error-reference-md-7d7ea41dec6b0e9d62cc.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-15-0-0-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-15-0-0-md-b60e03cae866edbdb1f8.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-16-0-0-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-16-0-0-md-8b409faea833bc7043a0.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-16-1-0-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-16-1-0-md-143746656600c6c2aa2b.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-16-2-0-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-16-2-0-md-1e1332d1527f15a8def3.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-16-3-0-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-16-3-0-md-ef05cdef8815390e00b5.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-16-4-0-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-16-4-0-md-5e20377d9ba8d1fcc016.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-16-5-0-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-16-5-0-md-70b5ca4a784ac4f21282.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-16-5-1-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-16-5-1-md-65de80fc72414ebaf2a1.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-16-6-0-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-16-6-0-md-cae0a51945b5a0c4a3ed.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-17-0-0-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-17-0-0-md-2c96085baf96c643f05f.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-17-0-1-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-17-0-1-md-581432eceb5a6eaccfeb.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-17-1-0-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-17-1-0-md-eef5ea8e369847c714a0.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-index-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-release-notes-index-md-132ed7a0aaf62341edbe.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-upgrading-react-on-rails-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-oss-upgrading-upgrading-react-on-rails-md-40b925ec359c8708a2ac.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-async-props-database-queries-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-async-props-database-queries-md-51ef8bfbce041e94f2e3.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-deployment-review-app-security-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-deployment-review-app-security-md-6c52e527e4a320812739.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-fragment-caching-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-fragment-caching-md-7340254f282c63b5aab6.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-home-pro-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-home-pro-md-90bde8e89ada279e2816.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-installation-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-installation-md-1ed0b7281af690116c85.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-js-memory-leaks-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-js-memory-leaks-md-ff8e0e33652f2ba949df.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-license-ci-integration-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-license-ci-integration-md-d9c3e930914256ef5ac4.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-major-performance-breakthroughs-upgrade-guide-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-major-performance-breakthroughs-upgrade-guide-md-9c8b1c6b0d4e6fc40879.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-node-renderer-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-node-renderer-md-c504d453ae5929d8405e.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-profiling-server-side-rendering-code-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-profiling-server-side-rendering-code-md-21bdefbec40f7a5f7afd.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-on-rails-pro-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-on-rails-pro-md-ba0f87a52a054ca4eb72.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-s
503erver-components-activity-inside-rsc-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-activity-inside-rsc-md-97cc7132f4eea43c9e0f.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-add-streaming-and-interactivity-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-add-streaming-and-interactivity-md-c714b91714a52e686be9.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-client-reference-diagnostics-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-client-reference-diagnostics-md-5de9c38ff7821fc100e9.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-create-without-ssr-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-create-without-ssr-md-55f48a661644898c245c.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-critical-resource-hints-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-critical-resource-hints-md-3882483c3232adf3a48c.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-css-and-styling-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-css-and-styling-md-5d22a28da0f15270ce67.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-flight-protocol-syntax-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-flight-protocol-syntax-md-21695bcce38f856fdd2e.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-glossary-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-glossary-md-1ac3452a900d2ba6b691.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-how-react-server-components-work-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-how-react-server-components-work-md-1f77db26ee60670c84a9.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-index-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-index-md-f8593c5ea4b03bd1d7b1.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-inside-client-components-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-inside-client-components-md-76fbc5e84a7560351494.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-nextjs-comparison-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-nextjs-comparison-md-47b3086549f91f10de95.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-per-request-data-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-per-request-data-md-1bcd5c9629140b4d5ddb.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-purpose-and-benefits-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-purpose-and-benefits-md-e3ce93f9ee10e5fbabaf.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-rendering-flow-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-rendering-flow-md-33cadacc86b5d1e2a8a3.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-rsc-payload-route-data-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-rsc-payload-route-data-md-a34ec6b7ac5da5fa1936.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-rspack-compatibility-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-rspack-compatibility-md-65c134b552608596e44f.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-selective-hydration-in-streamed-components-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-selective-hydration-in-streamed-components-md-89152c98829300442aac.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-server-side-rendering-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-server-side-rendering-md-0de1512a7bd8408a44ee.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-static-shell-global-js-opt-out-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-static-shell-global-js-opt-out-md-d9f5afcb203a4197807f.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-success-stories-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-success-stories-md-5d1ba58a0f7c9a326d8d.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-system-spec-streaming-rsc-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-system-spec-streaming-rsc-md-4aee6414f7c64aff6092.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-tanstack-start-comparison-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-tanstack-start-comparison-md-ad60eb120ce383398397.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-tutorial-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-tutorial-md-58009b256119020fe893.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-unstable-cache-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-unstable-cache-md-8e5430ca461
5037346f5a01.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-upgrading-existing-pro-app-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-react-server-components-upgrading-existing-pro-app-md-47f3633707a4b8f7f460.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-release-notes-4-0-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-release-notes-4-0-md-be630a686d51e816bdd4.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-release-notes-index-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-release-notes-index-md-0d162206897803f82a84.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-release-notes-v-4-react-server-components-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-release-notes-v-4-react-server-components-md-8173c131290061e58f8d.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-rolling-deploy-adapters-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-rolling-deploy-adapters-md-75a99df77713e414bf0c.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-rolling-deploy-custom-adapters-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-rolling-deploy-custom-adapters-md-d0fdf18f4e0245158824.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-streaming-ssr-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-streaming-ssr-md-835dc751da4fe1c8b14f.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-strict-csp-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-strict-csp-md-7027f560ec6c320a0d12.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-troubleshooting-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-troubleshooting-md-e578bda239f77ad89dd9.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-updating-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-updating-md-6e9d2aa968f0f70bcecb.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-upgrading-to-pro-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-docs-pro-upgrading-to-pro-md-15d73d620dd71c1a7853.js\"],\"component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-pro-react-on-rails-pro-docs-adr-0001-boot-seed-rolling-deploy-bundles-md\":[\"/component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-react-on-rails-pro-react-on-rails-pro-docs-adr-0001-boot-seed-rolling-deploy-bundles-md-eff0a742d63ef4ef20c3.js\"]}"; 504 </script>
504 505
505<script>window.___webpackCompilationHash="9bdf90f6c595c1aab37a";</script>
505<script src="/webpack-runtime-492c7e49a3546dd1de25.js" async></script>
505<script src="/framework-e742fdd0ea3278bbf1dc.js" async></script>
505<script src="/aaa5778d-6b3595f7639cb377a61b.js" async></script>
505<script src="/app-830fa17965a199005046.js" async></script>
505<!-- slice-end id="_gatsby-scripts-1" -->
505<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"b83ff145507d4ad9a5f26185497e996c","r":1,"spa":2}' crossorigin="anonymous"></script>
505 506</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.