CINXE.COM
Infinite Red: Experts in all things React Native
<!DOCTYPE html><!-- Last Published: Wed Mar 19 2025 23:21:55 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="infinite.red" data-wf-page="6520a204aec4d72161e3d5a7" data-wf-site="5e67db0c1e7a468249544a75" lang="en"><head><meta charset="utf-8"/><title>Infinite Red: Experts in all things React Native</title><meta content="We're a friendly group of React Native developers and designers in the US who build impactful products and relationships" name="description"/><meta content="Infinite Red: Experts in all things React Native" property="og:title"/><meta content="We're a friendly group of React Native developers and designers in the US who build impactful products and relationships" property="og:description"/><meta content="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5f80cc1fe7e52347ee9eb300_graph-ir.jpg" property="og:image"/><meta content="Infinite Red: Experts in all things React Native" property="twitter:title"/><meta content="We're a friendly group of React Native developers and designers in the US who build impactful products and relationships" property="twitter:description"/><meta content="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5f80cc1fe7e52347ee9eb300_graph-ir.jpg" property="twitter:image"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="google-site-verification=Jmms0_XFcgBIDl9Ly7pfogukm_9GOpVAM36Uu59c71k" name="google-site-verification"/><link href="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/css/infinite-red-website.9c4de44fd.min.css" rel="stylesheet" type="text/css"/><link href="https://fonts.googleapis.com" rel="preconnect"/><link href="https://fonts.gstatic.com" rel="preconnect" crossorigin="anonymous"/><script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js" type="text/javascript"></script><script type="text/javascript">WebFont.load({ google: { families: ["Montserrat:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic","Droid Serif:400,400italic,700,700italic","Merriweather:300,300italic,400,400italic,700,700italic,900,900italic"] }});</script><script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script><link href="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5e96204b6085211e0c7f48f2_favicon.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5e96204d92bbee4276b5761c_webclip.png" rel="apple-touch-icon"/><script async="" src="https://www.googletagmanager.com/gtag/js?id=UA-41822601-3"></script><script type="text/javascript">window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', 'UA-41822601-3', {'anonymize_ip': false});</script><style> .container-scroll { scrollbar-width: none; /* Firefox 64 */ -ms-overflow-style: none; /* Internet Explorer 11 */ } .container-scroll::-webkit-scrollbar { /** WebKit */ display: none; } .team__collection__list { display: flex; flex-flow: row wrap; justify-content: space-between; } .team__collection__list::after { content: ""; flex: auto; } </style> <meta property="og:image:width" content="1200" /> <meta property="og:image:height" content="630" /> <meta name="google-site-verification" content="PziDawbND-UbE8RPHIApiyKHqLwhQqNCzyAYEmFW-Tc" /> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-41822601-9"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-41822601-9'); </script> <script type="text/javascript"> (function() { window._pa = window._pa || {}; // _pa.orderId = "myOrderId"; // OPTIONAL: attach unique conversion identifier to conversions // _pa.revenue = "19.99"; // OPTIONAL: attach dynamic purchase values to conversions // _pa.productId = "myProductId"; // OPTIONAL: Include product ID for use with dynamic ads var pa = document.createElement('script'); pa.type = 'text/javascript'; pa.async = true; pa.src = ('https:' == document.location.protocol ? 'https:' : 'http:') + "//tag.perfectaudience.com/serve/5dcb4b56acb1888586000015.js"; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(pa, s); })(); </script> <meta name="ahrefs-site-verification" content="b989772c57dd9a5233657e546e1671f8a09c12705f5bda677a2a437ada46bd23"> <style> .w-nav-link.w--current{ color: #e73536 !important; } .w__menu__link.w--current{ color: #e73536 !important; } .nav-dropdown__link.w--current{ color: #e73536 !important; } </style> </head><body><div data-animation="over-right" class="top-nav w-nav" data-easing2="ease" data-easing="ease" data-collapse="medium" data-w-id="48941a4f-8c15-7a61-3715-67421ac8b695" role="banner" data-no-scroll="1" data-duration="400" data-doc-height="1"><div class="top-nav-container"><div class="top-nav-wrapper"><a href="/" aria-current="page" class="top-nav-brand w-inline-block w--current"><div class="top-nav-brand-image w-embed"><?xml version="1.0" encoding="UTF-8"?> <svg width="93px" height="41px" viewBox="0 0 93 41" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <!-- Generator: Sketch 63.1 (92452) - https://sketch.com --> <title>logo-dark</title> <desc>Created with Sketch.</desc> <g id="Navigation" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="Navigation/Top-Nav/-Transparent" transform="translate(-128.000000, -35.000000)"> <g id="Main-Nav"> <rect id="bounds" x="0" y="0" width="1440" height="111"></rect> <g id="Group" transform="translate(128.000000, 35.000000)"> <g id=".nav__logo--light"> <g id="IR-Logo"> <path d="M36.0800073,0.0610119048 C42.9412217,0.0610119048 48.5033343,5.70727865 48.5033343,12.6723024 C48.5033343,19.6373262 42.9412217,25.283593 36.0800073,25.283593 C29.2187929,25.283593 23.6566802,19.6373262 23.6566802,12.6723024 C23.6566802,5.70727865 29.2187929,0.0610119048 36.0800073,0.0610119048 Z M36.0800073,6.05258288 C32.4785269,6.05258288 29.5589506,9.0163321 29.5589506,12.6723024 C29.5589506,16.3282728 32.4785269,19.292022 36.0800073,19.292022 C39.6814876,19.292022 42.601064,16.3282728 42.601064,12.6723024 C42.601064,9.0163321 39.6814876,6.05258288 36.0800073,6.05258288 Z" id="infinity-left-circle" fill="#E73536"></path> <path d="M56.166766,0.0610119048 C63.0279804,0.0610119048 68.590093,5.70727865 68.590093,12.6723024 C68.590093,19.6373262 63.0279804,25.283593 56.166766,25.283593 C52.9181748,25.283593 49.9608105,24.0178383 47.7471521,21.9456543 C49.0744843,20.2188082 50.035948,18.189109 50.5152955,15.9759446 C51.640891,17.9578044 53.7503391,19.292022 56.166766,19.292022 C59.7682463,19.292022 62.6878227,16.3282728 62.6878227,12.6723024 C62.6878227,9.0163321 59.7682463,6.05258288 56.166766,6.05258288 C53.7340603,6.05258288 51.6124835,7.40483749 50.4916749,9.40927321 C49.997631,7.20099506 49.0222034,5.17810314 47.6836756,3.46012579 C49.9032037,1.35155427 52.8865199,0.0610119048 56.166766,0.0610119048 Z" id="infinity-right-circle" fill="#E73536"></path> <polygon id="Path-Copy-2" fill="currentColor" points="58.9649039 31.2751639 58.9649039 33.1898292 54.2453185 33.1898292 54.2453185 35.1733672 58.4902329 35.1733672 58.4902329 37.005385 54.2453185 37.005385 54.2453185 39.0026977 59.1140862 39.0026977 59.1140862 40.9035883 52.1296423 40.9035883 52.1296423 31.2751639"></polygon> <polygon id="Path-Copy-3" fill="currentColor" points="47.8422083 33.1347309 47.8422083 40.9035883 45.726532 40.9035883 45.726532 33.1347309 43.0412507 33.1347309 43.0412507 31.2751639 50.5274896 31.2751639 50.5274896 33.1347309"></polygon> <polygon id="Path-Copy-4" fill="currentColor" points="39.3544503 31.2751639 41.4701265 31.2751639 41.4701265 40.9035883 39.3544503 40.9035883"></polygon> <polygon id="Path-Copy-5" fill="currentColor" points="34.9258805 31.2751639 37.0415567 31.2751639 37.0415567 40.9035883 34.9258805 40.9035883 30.4097255 34.8703267 30.4097255 40.9035883 28.2940493 40.9035883 28.2940493 31.2751639 30.2741052 31.2751639 34.9258805 37.4737204"></polygon> <polygon id="Path-Copy-6" fill="currentColor" points="23.835593 31.2751639 25.9512692 31.2751639 25.9512692 40.9035883 23.835593 40.9035883"></polygon> <polygon id="Path-Copy-7" fill="currentColor" points="22.1143698 31.2751639 22.1143698 33.16228 17.7202731 33.16228 17.7202731 35.2422401 21.8973774 35.2422401 21.8973774 37.1293561 17.7202731 37.1293561 17.7202731 40.9035883 15.6045969 40.9035883 15.6045969 31.2751639"></polygon> <polygon id="Path-Copy-8" fill="currentColor" points="11.0902875 31.2751639 13.2059637 31.2751639 13.2059637 40.9035883 11.0902875 40.9035883 6.57413246 34.8703267 6.57413246 40.9035883 4.45845625 40.9035883 4.45845625 31.2751639 6.43851219 31.2751639 11.0902875 37.4737204"></polygon> <polygon id="Path-Copy-9" fill="currentColor" points="0 31.2751639 2.11567622 31.2751639 2.11567622 40.9035883 0 40.9035883"></polygon> <path d="M68.5843109,31.2751639 C70.0580585,31.2751639 71.1091051,31.5276952 71.7374822,32.0327653 C72.3658592,32.5378354 72.6800431,33.3505269 72.6800431,34.4708642 C72.6800431,36.0136237 72.0787992,37.0099743 70.8762935,37.4599458 L73.2767722,40.9035883 L70.672863,40.9035883 L68.5707489,37.8318592 L67.1060499,37.8318592 L67.1060499,40.9035883 L64.9903737,40.9035883 L64.9903737,31.2751639 L68.5843109,31.2751639 Z M68.6348799,33.1039121 L67.0481228,33.1039121 L67.0481228,35.9552481 L68.5941938,35.9552481 C69.3175056,35.9552481 69.8102543,35.8358697 70.0724548,35.5971092 C70.3346553,35.3583488 70.4657536,34.979552 70.4657536,34.4607072 C70.4657536,33.9418625 70.3301347,33.586023 70.0588928,33.3931781 C69.7876509,33.2003331 69.3129847,33.1039121 68.6348799,33.1039121 Z" id="Path-Copy-11" fill="currentColor"></path> <polygon id="Path-Copy-12" fill="currentColor" points="81.6856828 31.2751639 81.6856828 33.1898292 76.9660974 33.1898292 76.9660974 35.1733672 81.2110119 35.1733672 81.2110119 37.005385 76.9660974 37.005385 76.9660974 39.0026977 81.8348651 39.0026977 81.8348651 40.9035883 74.8504212 40.9035883 74.8504212 31.2751639"></polygon> <path d="M87.0314148,31.2751639 C88.722156,31.2751639 90.0195769,31.6952841 90.9237166,32.5355371 C91.8278562,33.37579 92.2799193,34.544321 92.2799193,36.0411651 C92.2799193,37.5380092 91.8391578,38.7226104 90.9576216,39.5950042 C90.0760855,40.4673979 88.7311979,40.9035883 86.9229186,40.9035883 L83.6815941,40.9035883 L83.6815941,31.2751639 L87.0314148,31.2751639 Z M87.0049791,33.1039121 L85.8250827,33.1039121 L85.8250827,38.9581043 L87.1677234,38.9581043 C88.1351528,38.9581043 88.8787965,38.7101645 89.3986768,38.2142775 C89.9185571,37.7183905 90.1784934,36.9975286 90.1784934,36.0516701 C90.1784934,35.1058115 89.9185571,34.3780624 89.3986768,33.8684007 C88.8787965,33.3587391 88.0809053,33.1039121 87.0049791,33.1039121 Z" id="Path-Copy-14" fill="currentColor"></path> </g> </g> </g> </g> </g> </g> </svg></div><div class="custom-js-right-click w-embed w-script"><script> document.addEventListener("DOMContentLoaded", (event) => { const topNavBrand = document.querySelector('.top-nav-brand'); if (!topNavBrand) return topNavBrand.addEventListener('contextmenu', function (ev) { ev.preventDefault(); window.location.href = "/brand-assets" return false; }, false); }); </script></div></a><nav role="navigation" class="top-nav-menu w-nav-menu"><a href="/" aria-current="page" class="top-nav-menu-link w-nav-link w--current">Home</a><a href="/react-native" class="top-nav-menu-link w-nav-link">React native</a><a href="/expo" class="top-nav-menu-link w-nav-link">EXPO</a><a href="/work" class="top-nav-menu-link w-nav-link">Work</a><a href="/about" class="top-nav-menu-link w-nav-link">company</a><div data-hover="false" data-delay="400" data-w-id="45f2be38-41d3-ac34-36b4-3d0a0dec342d" class="dropdown w-dropdown"><div class="dropdown-toggle w-dropdown-toggle"><div class="top-nav-menu-link">Community</div></div><nav data-w-id="45f2be38-41d3-ac34-36b4-3d0a0dec3432" class="dropdown-list w-dropdown-list"><a href="/community/building-community" class="top-nav-menu-link w-nav-link">Building community</a><a href="/community/open-source" class="top-nav-menu-link w-nav-link">Open Source</a><a href="/community/podcasts" class="top-nav-menu-link w-nav-link">Podcasts</a><a href="/community/newsletters" class="top-nav-menu-link w-nav-link">Newsletters</a><a href="https://chainreactconf.com/" class="top-nav-menu-link w-nav-link">Chain React Conf</a></nav></div><a id="top-nav-community-dropdown-trigger" href="/community/building-community" class="top-nav-menu-link-w-icon hide-on-mobile w-inline-block"><div class="top-nav-menu-link">Community</div><div data-w-id="c14198b8-6711-9603-8e2b-b484f797fe93" class="icon--sm top-nav-menu-link-icon-caret w-embed"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"> <path stroke="currentColor" stroke-linecap="square" d="m18 10-5.98 5.98L6.03 10"/> </svg></div></a><a href="/contact?source=header" class="top-nav-menu-link w-nav-link">Contact us</a></nav></div><div data-w-id="c14198b8-6711-9603-8e2b-b484f797feb8" class="menu-button w-nav-button"><div class="menu-button-hamburger"><div data-w-id="c14198b8-6711-9603-8e2b-b484f797feba" class="menu-button-hamburger-line"></div><div data-w-id="c14198b8-6711-9603-8e2b-b484f797febc" class="menu-button-hamburger-line"></div><div data-w-id="c14198b8-6711-9603-8e2b-b484f797febb" class="menu-button-hamburger-line"></div></div></div></div><div id="top-nav-community-dropdown" data-w-id="53290218-fbdb-7f81-e737-5e8aa1c5677c" class="top-nav-dropdown hide-on-mobile"><div class="top-nav-wrapper"><div class="div-block-23"></div><div class="top-nav-menu"><a href="/community/building-community" class="top-nav-menu-link in-dropdown w-nav-link">Building community</a><a href="/community/open-source" class="top-nav-menu-link in-dropdown w-nav-link">Open Source</a><a href="/community/podcasts" class="top-nav-menu-link in-dropdown w-nav-link">Podcasts</a><a href="/community/talks" class="top-nav-menu-link in-dropdown w-nav-link">Talks</a><a href="/community/newsletters" class="top-nav-menu-link in-dropdown w-nav-link">Newsletters</a><a href="https://chainreactconf.com/" target="_blank" class="top-nav-menu-link-w-icon w-inline-block"><div class="top-nav-menu-link in-dropdown">Chain React Conf</div><div data-w-id="f15c6ff2-519f-6bb2-96d9-e0d8470998e8" class="icon--sm top-nav-menu-icon-link-external w-embed"><svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M7 17L17 7M17 7H8.53846M17 7V15.4615" stroke="currentColor" stroke-linecap="square" /> </svg></div></a></div></div></div><div class="top-nav-embed w-embed"><style> .top-nav-menu-link-w-icon > .icon--sm + .top-nav-menu-link { padding-left: 8px; padding-right: 0px; } .top-nav-menu-link-w-icon > .top-nav-menu-link:has(+ .icon--sm) { padding-right: 8px; padding-left: 0px; } .top-nav-menu-link-w-icon.w--current > .top-nav-menu-link, .top-nav-menu-link-w-icon.w--current > .icon--sm { color: var(--crimson) !important; } .top-nav .top-nav-menu > .top-nav-menu-link:hover, .top-nav .top-nav-menu > .top-nav-menu-link-w-icon:hover { opacity: 0.65; transition: opacity 200ms ease-in-out; } .top-nav:has(#top-nav-community-dropdown .w--current) #top-nav-community-dropdown { opacity: 1 !important; pointer-events: auto !important; } .top-nav #top-nav-community-dropdown { opacity: 0; transition: opacity 350ms ease-in-out 500ms; } .top-nav #top-nav-community-dropdown:not(.active) { pointer-events: none; } .top-nav:has(#top-nav-community-dropdown-trigger:hover) #top-nav-community-dropdown, .top-nav:has(#top-nav-community-dropdown:hover) #top-nav-community-dropdown { opacity: 1; transition-delay: 100ms; pointer-events: auto; } .top-nav .top-nav-brand-image { transition: color 350ms ease-in-out; } .top-nav:has(.menu-button.w--open) .top-nav-brand-image { color: var(--dark-slate) !important; } .top-nav:has(.menu-button.w--open) .nav-icon__bar, .top-nav:has(.menu-button.w--open) .menu-button-hamburger-line{ background: var(--dark-slate) !important; } .top-nav .nav-icon__bar, .top-nav .menu-button-hamburger-line { transition: background 350ms ease-in-out; } .top-nav:has(#top-nav-community-dropdown .w--current) #top-nav-community-dropdown-trigger * { color: var(--crimson) !important; } @media screen and (max-width: 991px) { .top-nav-menu-link { color: var(--dark-slate) !important; } .top-nav-menu-link.w--current { color: var(--crimson) !important; } } .nav-on-white .top-nav .top-nav-menu-link, .nav-on-white .top-nav .top-nav-brand-image, .nav-on-white .top-nav .icon--sm { color: var(--dark-slate); } .nav-on-white .top-nav .menu-button-hamburger-line { background: var(--dark-slate); } .nav-on-white .top-nav { background: rgba(255, 255, 255, 0.96); } .nav-on-white .top-nav .top-nav-dropdown { border-color: rgba(25, 16, 21, 0.1); background: rgba(255, 255, 255, 0.96); } </style></div><div class="top-nav-embed w-embed w-script"><script> const dropdownTargets = document.querySelectorAll("#top-nav-community-dropdown-trigger, #top-nav-community-dropdown") const dropdown = document.querySelector("#top-nav-community-dropdown") dropdownTargets.forEach(target => { let inactiveTimeout target.addEventListener("mouseover", ()=>{ clearTimeout(inactiveTimeout) dropdown.classList.add("active") }) target.addEventListener("mouseleave", ()=> { inactiveTimeout = setTimeout(()=>{ dropdown.classList.remove("active") },1500) }) }) </script></div></div><div class="hero-home"><div class="container"><div class="hero-home__overview"><div class="hero-home__overview__content"><h1 class="h1--reversed">Your React Native Experts</h1><p class="p--large p--reversed">Our U.S.-based experts are here to build, optimize, and support your React Native app-- and level up your team along the way! <br/><br/>Since 2015, Infinite Red has been the premier React Native experts. <br/></p></div><a href="/contact" class="bttn-2 w-button">Hire Us Today</a></div></div></div><div class="clients-featured"><div class="container"><div><h5 class="logo-banner__headline-container">Some of our recent clients</h5></div><div class="clients-featured__collection-wrapper w-dyn-list"><div role="list" class="clients-featured__collection w-dyn-items w-row"><div role="listitem" class="clients-featured__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaefba3ce76433e621c28f_zoom--bw.png")" href="https://infinite.red/work/zoom" class="clients-featured__collection__item__img w-inline-block"></a></div><div role="listitem" class="clients-featured__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaef76c32f817d35600a2c_gasbuddy--bw.png")" href="https://infinite.red/work/gasbuddy" class="clients-featured__collection__item__img w-inline-block"></a></div><div role="listitem" class="clients-featured__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/67ae9676fb70fd888d8a060c_67ae90909249784f3a0831db_ama-bw.png")" href="https://www.amazon.com" class="clients-featured__collection__item__img w-inline-block"></a></div><div role="listitem" class="clients-featured__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/67ae96c05ccb44e34dac38df_67ae8f232776fb767fa576d2_sb-bw.png")" href="https://www.starbucks.com" class="clients-featured__collection__item__img w-inline-block"></a></div><div role="listitem" class="clients-featured__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaef224837376e2275a490_mercari--bw.png")" href="https://www.mercari.com/" class="clients-featured__collection__item__img w-inline-block"></a></div><div role="listitem" class="clients-featured__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/67ae9588cd05ce2b1aa99c60_67ae8fd62d4ae0d4dd81ef01_exp-bw.png")" href="https://www.expensify.com" class="clients-featured__collection__item__img w-inline-block"></a></div></div></div></div></div><div class="cta-capabilities"><div class="container"><div class="cta__intro"><h2 class="spacing">We’ve been building <br/>impactful React Native projects since the beginning.</h2><p class="p--large"><em>When React Native was released in 2015, we were one of the first adopters. Over the intervening decade, we’ve developed an incredible depth of knowledge, skill, and a broad base of experience.<br/><br/>Hiring our team doesn’t just get you experienced React Native developers. <br/>It fast-forwards your whole project past the hard parts.</em></p><a href="/capabilities" class="bttn bttn--outlined bttn--spacing-top-lg w-button">What we offer</a></div><div class="cta-capabilities__tech"><div class="capabilities__collection-wrapper w-dyn-list"><div role="list" class="capabilities__collection w-dyn-items"><div role="listitem" class="capabilities__collection__item w-dyn-item"><a href="/react-native" class="cta-capabilities__tech__link w-inline-block"><img alt="React Native" height="70" src="https://cdn.prod.website-files.com/5e696c156810060ef59d768e/5e700a6fbfeebf79fe21790f_s-react-native.svg" class="capabilities__icon"/><h5 class="h5--link">React Native</h5></a></div><div role="listitem" class="capabilities__collection__item w-dyn-item"><a href="/mobile-apps" class="cta-capabilities__tech__link w-inline-block"><img alt="iOS" height="70" src="https://cdn.prod.website-files.com/5e696c156810060ef59d768e/5e700a0f067b43914cd50ff6_s-ios.svg" class="capabilities__icon"/><h5 class="h5--link">iOS</h5></a></div><div role="listitem" class="capabilities__collection__item w-dyn-item"><a href="/mobile-apps" class="cta-capabilities__tech__link w-inline-block"><img alt="Android" height="70" src="https://cdn.prod.website-files.com/5e696c156810060ef59d768e/5e700a1c6ec5c332aff7069b_s-android.svg" class="capabilities__icon"/><h5 class="h5--link">Android</h5></a></div><div role="listitem" class="capabilities__collection__item w-dyn-item"><a href="/ai-machine-learning" class="cta-capabilities__tech__link w-inline-block"><img alt="ai" height="70" src="https://cdn.prod.website-files.com/5e696c156810060ef59d768e/604fdb5aeb15f21e8afab453_s-ai.svg" class="capabilities__icon"/><h5 class="h5--link">ai</h5></a></div></div></div></div></div></div><div class="cta-img cta-img--react"><div class="container"><div class="cta__intro"><h2 class="h2--reversed _w-margin">Your guide to all things<br/>React Native</h2><p class="p--large p--reversed">When it comes to React Native, we are second to none. Our software engineers have worked with React Native to build mobile, web, and desktop apps for nearly a decade. We maintain some of the most popular React Native open source software.<br/><br/>We also host the USA’s only <a href="https://chainreactconf.com/" target="_blank" class="link-2">React Native conference</a>, publish the <a href="https://reactnative.cc" target="_blank" class="link-3">React Native Newsletter</a>, and produce the <a href="https://reactnativeradio.com/" target="_blank" class="link-2">React Native Radio Podcast</a>. <br/><br/>Can we say "React Native" one more time? Yes.<br/><a href="/technologies/react-native" class="link-2">Learn more</a></p><div class="cta__intro__bttns"><a href="/contact" class="bttn bttn-spacing-top-md w-button">Schedule a video call</a></div></div></div><div class="container-scroll"><a data-w-id="ddfaf30e-01d4-fcee-ec44-0857e2093bb8" href="https://chainreactconf.com" target="_blank" class="cta__card cta-card--scroll w-inline-block"><div class="cta__card__img card__home"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/62d5a93b274dcd94460993d3_crMark.svg" alt="Ignite logo " class="cta-card__img cta-card__img--cr"/></div><div class="cta__card__content--full"><h4 class="heading">Chain React</h4><p>Our annual React Native conference hosted in Portland, Oregon since 2017.</p><div class="cta__card__content__link"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5ec8298fe3e7af78adb19fa2_i-link-red.svg" alt="link icon" class="cta__link__icon icon--link"/><div class="link--icon">View website</div></div></div></a><a data-w-id="ba57f7da-0d81-61c0-0f5b-f2d2ed458908" href="https://github.com/infinitered/ignite" target="_blank" class="cta__card cta-card--scroll w-inline-block"><div class="cta__card__img card__home"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/62ba3fca30abbf44731d1b5c_ignite.svg" alt="Ignite logo " class="cta-card__img"/></div><div class="cta__card__content--full"><h4 class="heading">30+ Open Source Projects</h4><p>View some of our popular open source projects including Ignite, a React Native boilerplate.</p><div class="cta__card__content__link"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5e753769351b76cf7cf58492_icon-github.svg" alt="github icon" class="cta__link__icon"/><div class="link--icon">View on github</div></div></div></a><a data-w-id="e854f674-41a7-8b54-3034-ae2d2ad0884e" href="https://reactnativenewsletter.com/" target="_blank" class="cta__card cta-card--scroll w-inline-block"><div class="cta__card__img card__home"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5f7b68f7a8d5f294a61371ca_rnr-mark-red.svg" alt="Ignite logo " class="cta-card__img cta-card__img--academy"/></div><div class="cta__card__content--full"><h4 class="heading">React Native Radio</h4><p>Our podcast covering React Native news, articles, issues & pull requests, libraries and apps.</p><div class="cta__card__content__link"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5ec8298fe3e7af78adb19fa2_i-link-red.svg" alt="github icon" class="cta__link__icon"/><div class="link--icon">Listen to episodes</div></div></div></a></div></div><div class="client-list"><div class="container"><h2 class="section-intro">Some of the companies we've worked with</h2><div class="client-list__logos"><div class="client-list__collection-wrapper w-dyn-list"><div role="list" class="client-list__collection w-dyn-items w-row"><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaefba3ce76433e621c28f_zoom--bw.png")" href="https://infinite.red/work/zoom" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaefb53fc605bd9858a288_zoom.png")" href="https://infinite.red/work/zoom" target="_blank" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf75befbd88557054211d_62d195f4e4e0ea895539949e_microsoft--bw.png")" href="https://www.microsoft.com/en-us/" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf761efbd88cd47542149_62d0a88a588aa208e3bd527f_microsoft.png")" href="https://www.microsoft.com/en-us/" target="_blank" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaef76c32f817d35600a2c_gasbuddy--bw.png")" href="https://infinite.red/work/gasbuddy" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaef73c98b8c04ba106e9a_gasbuddy.png")" href="https://infinite.red/work/gasbuddy" target="_blank" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaee61364f805e22a3d8a9_dominos--bw.png")" href="https://www.dominos.com.au/" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaee5c2c869de6647208f7_dominos.png")" href="https://www.dominos.com.au/" target="_blank" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf7c4d64a62bf1c741512_62d1967aa27eae744b2642da_bluejeans--bw.png")" href="#" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf7b3ccf1794f629f2764_62d19676c791e39cdcde7a90_bluejeans.png")" href="#" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaeedac62c142b0a702ca6_zoomcare--bw.png")" href="https://www.zoomcare.com/" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaeed7079d7cfae2d4cea1_zoomcare.png")" href="https://www.zoomcare.com/" target="_blank" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf00befbd88722853a8ac_seedfi--bw.png")" href="https://www.seedfi.com" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf007abc85da77c189dbe_seedfi.png")" href="https://www.seedfi.com" target="_blank" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaee987e4fb573decd0ac2_compro--bw.png")" href="https://www.comprotechnologies.com/home" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaee9465f5a79412154e66_compro.png")" href="https://www.comprotechnologies.com/home" target="_blank" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf80b7350d97e4d5efb79_fandor--bw.png")" href="https://infinite.red/work/fandor" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf8105d18e726e1f3d271_fandor.png")" href="https://infinite.red/work/fandor" target="_blank" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/67ae9676fb70fd888d8a060c_67ae90909249784f3a0831db_ama-bw.png")" href="https://www.amazon.com" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/67ae9671221a718dc9f72b6e_67ae908f5b4eb5e2120a4e29_ama.png")" href="https://www.amazon.com" target="_blank" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/67ae9588cd05ce2b1aa99c60_67ae8fd62d4ae0d4dd81ef01_exp-bw.png")" href="https://www.expensify.com" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/67ae958b5973502a4a414d16_67ae8fd85ec0ee714291bf8a_exp.png")" href="https://www.expensify.com" target="_blank" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/67ae96c05ccb44e34dac38df_67ae8f232776fb767fa576d2_sb-bw.png")" href="https://www.starbucks.com" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/67ae96be0ad889c4f3f9c063_67ae8f21cc5532290414c1f5_sb.png")" href="https://www.starbucks.com" target="_blank" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf1113ecb9163fbfc6012_protread--bw.png")" href="https://www.protread.com/" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf10cf638c055df4b9544_protread.png")" href="https://www.protread.com/" target="_blank" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf19495f03eee4533c00b_shopraise--bw.png")" href="https://shopraise.com/" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf1915bf4ff3a23aec5a2_shopraise.png")" href="https://shopraise.com/" target="_blank" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf23aefbd883d3653c2e9_realtor--bw.png")" href="https://www.realtor.com/" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf237c98b8c7380108fa5_realtor.png")" href="https://www.realtor.com/" target="_blank" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf297f638c03efc4bb963_panago--bw.png")" href="https://www.panago.com/" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf294079011cd4ca64b48_panago.png")" href="https://www.panago.com/" target="_blank" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf2e9689436b720d97c2c_outstand--bw.png")" href="#" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf2d6a91e095092ff1394_outstand.png")" href="#" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf3887350d97aa55ec338_inventist--bw.png")" href="http://www.inventist.com/" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf381a91e0939b1ff1758_inventist.png")" href="http://www.inventist.com/" target="_blank" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf51b5d18e75e70f3b7cc_crossover--bw.png")" href="https://crossoverhealth.com/" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf51895f03e647133e988_crossover.png")" href="https://crossoverhealth.com/" target="_blank" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf58780aa671d28ae7ae1_pipeline--bw.png")" href="https://www.pipelinedeals.com/" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf584ccf17982289f0d1b_pipeline.png")" href="https://www.pipelinedeals.com/" target="_blank" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf6563ce7647dc9221d94_fortis--bw.png")" href="https://infinite.red/work/fortis-riders" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf64d32d0ed068d688088_fortis.png")" href="https://infinite.red/work/fortis-riders" target="_blank" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf853a91e09b6deff6a96_arcadecity--bw.png")" href="https://infinite.red/work/arcade-city" class="client-list__collection__item__img w-inline-block"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf84f483737797d76262e_arcadecity.png")" href="https://infinite.red/work/arcade-city" target="_blank" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a></div><div role="listitem" class="client-list__collection__item w-dyn-item w-col w-col-4"><a style="background-image:none" href="https://chainreactconf.com" class="client-list__collection__item__img w-inline-block w-condition-invisible"></a><a style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eaf91c32d0ed101b68a80b_chain%20react.png")" href="https://chainreactconf.com" target="_blank" class="client-list__collection__item__img w-inline-block"></a></div></div></div></div></div></div><div class="client-testimonials"><div class="container"><div data-delay="4000" data-animation="slide" class="client-testimonails__slider w-slider" data-autoplay="false" data-easing="ease" data-hide-arrows="false" data-disable-swipe="false" data-autoplay-limit="0" data-nav-spacing="3" data-duration="500" data-infinite="true"><div class="work-list__slider__mask w-slider-mask"><div class="client-testimonials__slider__slide1 w-slide"><div class="client-testimonial__slide-container"><div class="client-testimonial__collection-wrapper w-dyn-list"><div role="list" class="client-testimonial__collection w-dyn-items"><div role="listitem" class="client-testimonial__collection__item w-dyn-item"><p class="p--quote">"There is no substitute for experience in getting the “idiom” of React Native and avoiding the numerous dark alleys around state management, performance tuning and third party module selection. Our team at Infinite Red... has provided this throughout our project."</p><div style="background-image:none" class="client-testimonial__img"></div><h4 class="testimonial__client">Max Metral</h4><p class="testimonail__company">GasBuddy</p></div></div></div></div></div><div class="client-testimonials__slider__slide1 w-slide"><div class="client-testimonial__slide-container"><div class="client-testimonial__collection-wrapper w-dyn-list"><div role="list" class="client-testimonial__collection w-dyn-items"><div role="listitem" class="client-testimonial__collection__item w-dyn-item"><p class="p--quote">“The team at Infinite Red brought me from an idea, to reality. They worked with me and added a unique perspective to my project and created something beyond what I had imagined. They took the time to listen to what I needed and quickly made it something beautiful and cohesive! My experience with this design team was unparalleled!”</p><div style="background-image:none" class="client-testimonial__img"></div><h4 class="testimonial__client">Deby Aho</h4><p class="testimonail__company">Sellebrate</p></div></div></div></div></div><div class="client-testimonials__slider__slide1 w-slide"><div class="client-testimonial__slide-container"><div class="client-testimonial__collection-wrapper w-dyn-list"><div role="list" class="client-testimonial__collection w-dyn-items"><div role="listitem" class="client-testimonial__collection__item w-dyn-item"><p class="p--quote">"We're building high visibility medical software for some of the world's leading firms. Infinite Red has been an invaluable and trusted partner with deep development expertise, excellent product vision, and the muscle to get the job done."</p><div style="background-image:none" class="client-testimonial__img"></div><h4 class="testimonial__client">Steve Shreve</h4><p class="testimonail__company">Crossover Health</p></div></div></div></div></div><div class="client-testimonials__slider__slide1 w-slide"><div class="client-testimonial__slide-container"><div class="client-testimonial__collection-wrapper w-dyn-list"><div role="list" class="client-testimonial__collection w-dyn-items"><div role="listitem" class="client-testimonial__collection__item w-dyn-item"><p class="p--quote">"They took our prototype and built it into a working production MVP, and quickly adapted to changes as we did customer development."</p><div style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/5eab6f37f839525eb81a4d16_avatar-elemeno.png")" class="client-testimonial__img"></div><h4 class="testimonial__client">Ed Nanale</h4><p class="testimonail__company">Elemeno</p></div></div></div></div></div></div><div class="previousbutton w-slider-arrow-left"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5e6adcce03eb1a028fffb55b_circle-arrow-left.svg" alt="Left Arrow" class="image"/></div><div class="nextbutton w-slider-arrow-right"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5e6adcce03eb1a6378ffb55c_circle-arrow-right.svg" alt="Right Arrow" class="image-2"/></div><div class="work-list__slider__nav w-slider-nav w-slider-nav-invert w-round"></div></div></div></div><div class="work-list"><div class="container"><div class="section-intro-symbol"><h2>Some of our work</h2><p class="p--large p--large__spacer--24">We blog about our process, and we showcase some along the way. Let's showcase your project next!</p><a href="https://shift.infinite.red/behind-the-scenes-with-infinite-red-452a0df603ef" class="section-intro-link icon-link">Learn more about our process</a></div><div class="work-list__featured"><div class="work-list__featured__collection-wrapper w-dyn-list"><div role="list" class="work-list__featured__collection w-dyn-items"><div role="listitem" class="work-list__featured__collection__item w-dyn-item"><a data-w-id="c82825f5-3aae-7c91-0693-5469ecb2af2a" href="/work/zoom" class="project__card project__card-featured w-inline-block"><div style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eb0524a521b8e84612d7d8_zoom-thumb%402x.webp")" class="work-list__project__card__img"></div><div class="work-list__project__card__info"><h4>Zoom</h4><div class="work-list__slider__title__categories"><h5>Android | iOS</h5></div><div class="work-list__project__card__icon"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5e6fe919bfeebf469720b8e3_arrow-r.svg" alt="arrow pointing right" width="256" class="work-list__project__card__icon__arrow"/></div></div></a></div><div role="listitem" class="work-list__featured__collection__item w-dyn-item"><a data-w-id="c82825f5-3aae-7c91-0693-5469ecb2af2a" href="/work/gasbuddy" class="project__card project__card-featured w-inline-block"><div style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eb03b9db3cedbe848c1b61_gasbuddy_thumb%402x.webp")" class="work-list__project__card__img"></div><div class="work-list__project__card__info"><h4>GasBuddy</h4><div class="work-list__slider__title__categories"><h5>Android | iOS</h5></div><div class="work-list__project__card__icon"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5e6fe919bfeebf469720b8e3_arrow-r.svg" alt="arrow pointing right" width="256" class="work-list__project__card__icon__arrow"/></div></div></a></div></div></div></div><div class="work-list__cards"><div class="work-list__cards__collection-wrapper w-dyn-list"><div role="list" class="work-list__cards__collection w-dyn-items"><div role="listitem" class="work-list__cards__collection__item w-dyn-item"><a data-w-id="9faa8e80-2410-9c49-9a18-e82ce5a556e7" href="/work/mercari" class="project__card home-page__card w-inline-block"><div style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/66283e39ff8e0dff1adeb74e_img-mercari-2%402x.jpg")" class="work-list__project__card__img"></div><div class="work-list__project__card__info"><h4>Mercari</h4><div class="work-list__slider__title__categories"><h5>Android | iOS</h5></div><div class="work-list__project__card__icon"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5e6fe919bfeebf469720b8e3_arrow-r.svg" alt="arrow pointing right" width="256" class="work-list__project__card__icon__arrow"/></div></div></a></div><div role="listitem" class="work-list__cards__collection__item w-dyn-item"><a data-w-id="9faa8e80-2410-9c49-9a18-e82ce5a556e7" href="/work/sellebrate" class="project__card home-page__card w-inline-block"><div style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eb05e3efecb385f7c50ef9_sellebrate.webp")" class="work-list__project__card__img"></div><div class="work-list__project__card__info"><h4>Sellebrate</h4><div class="work-list__slider__title__categories"><h5>Android | iOS</h5></div><div class="work-list__project__card__icon"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5e6fe919bfeebf469720b8e3_arrow-r.svg" alt="arrow pointing right" width="256" class="work-list__project__card__icon__arrow"/></div></div></a></div><div role="listitem" class="work-list__cards__collection__item w-dyn-item"><a data-w-id="9faa8e80-2410-9c49-9a18-e82ce5a556e7" href="/work/fandor" class="project__card home-page__card w-inline-block"><div style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eb0713db3ced65e08c5efc_tile-fandor.webp")" class="work-list__project__card__img"></div><div class="work-list__project__card__info"><h4>Fandor</h4><div class="work-list__slider__title__categories"><h5>iOS</h5></div><div class="work-list__project__card__icon"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5e6fe919bfeebf469720b8e3_arrow-r.svg" alt="arrow pointing right" width="256" class="work-list__project__card__icon__arrow"/></div></div></a></div><div role="listitem" class="work-list__cards__collection__item w-dyn-item"><a data-w-id="9faa8e80-2410-9c49-9a18-e82ce5a556e7" href="/work/blendspace" class="project__card home-page__card w-inline-block"><div style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eb055f8ab0421ade91a40e_blendspace-small.webp")" class="work-list__project__card__img"></div><div class="work-list__project__card__info"><h4>Blendspace</h4><div class="work-list__slider__title__categories"><h5>iOS</h5></div><div class="work-list__project__card__icon"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5e6fe919bfeebf469720b8e3_arrow-r.svg" alt="arrow pointing right" width="256" class="work-list__project__card__icon__arrow"/></div></div></a></div><div role="listitem" class="work-list__cards__collection__item w-dyn-item"><a data-w-id="9faa8e80-2410-9c49-9a18-e82ce5a556e7" href="/work/elemeno" class="project__card home-page__card w-inline-block"><div style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eb05bde9c0b55edc40185e_elemeno_thumb.webp")" class="work-list__project__card__img"></div><div class="work-list__project__card__info"><h4>Elemeno</h4><div class="work-list__slider__title__categories"><h5>Web | Android | iOS</h5></div><div class="work-list__project__card__icon"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5e6fe919bfeebf469720b8e3_arrow-r.svg" alt="arrow pointing right" width="256" class="work-list__project__card__icon__arrow"/></div></div></a></div><div role="listitem" class="work-list__cards__collection__item w-dyn-item"><a data-w-id="9faa8e80-2410-9c49-9a18-e82ce5a556e7" href="/work/fortis-riders" class="project__card home-page__card w-inline-block"><div style="background-image:url("https://cdn.prod.website-files.com/5e696c156810060ef59d768e/62eb05d1c56a1c9c1e493617_fortis__thumb.webp")" class="work-list__project__card__img"></div><div class="work-list__project__card__info"><h4>Fortis Riders</h4><div class="work-list__slider__title__categories"><h5>Android | iOS</h5></div><div class="work-list__project__card__icon"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5e6fe919bfeebf469720b8e3_arrow-r.svg" alt="arrow pointing right" width="256" class="work-list__project__card__icon__arrow"/></div></div></a></div></div></div></div></div></div><div class="cta-img cta-img--community"><div class="container"><div class="cta__intro"><h2 class="h2--reversed">Community leaders</h2><p class="p--large p--reversed">With over 30 open source projects, a screencast series, multiple books and published articles, and heavy involvement in the React Native communities, our team is leading the way. We've organized meetups and conferences as well as participated in many others as speakers and attendees. If it's relevant to the technologies we love, we'll probably be involved in some capacity.</p><div class="cta__intro__bttns"><a href="/community/building-community" class="bttn bttn--outlined bttn--outlined-reversed w-button">Learn more</a></div></div></div></div><div class="bottom-cta"><section class="bottom-cta-v2"><div class="bottom-cta-tiled-background-1"><div class="bottom-cta-tiled-background-tiles"></div></div><div class="bottom-cta-tiled-background-2"><div class="bottom-cta-tiled-background-tiles"></div></div><div class="bottom-cta-tiled-background-3"><div class="bottom-cta-tiled-background-tiles"></div></div><div class="bottom-cta-tiled-background-4"><div class="bottom-cta-tiled-background-tiles"></div></div><div class="bottom-cta-tiled-background-5"><div class="bottom-cta-tiled-background-tiles"></div></div><div class="bottom-cta-tiled-background-6"><div class="bottom-cta-tiled-background-tiles"></div></div><div class="bottom-cta-container"><div class="bottom-cta-wrapper"><div class="bottom-cta-photos"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/62b24b1c6142faefea33129d_gallery1.jpg" loading="lazy" sizes="(max-width: 548px) 100vw, 548px" srcset="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/62b24b1c6142faefea33129d_gallery1-p-500.jpeg 500w, https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/62b24b1c6142faefea33129d_gallery1.jpg 548w" alt="Photo of Gant Laborde and Mark Rickert hugging at a retreat." class="bottom-cta-img-1"/><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/62b24b1c61412c535c84c3ce_gallery3.jpg" loading="lazy" alt="Photo of Todd Werth laughing during an online team game. Other members of the team are in the background." class="bottom-cta-img-2"/><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/62b24b1c07c14e85165e2349_gallery2.jpg" loading="lazy" sizes="(max-width: 728px) 100vw, 728px" srcset="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/62b24b1c07c14e85165e2349_gallery2-p-500.jpeg 500w, https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/62b24b1c07c14e85165e2349_gallery2.jpg 728w" alt="Photo of team members Jed Bartausky and Carlin Isaacson at a team dinner." class="bottom-cta-img-3"/><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/62b24b1b809b2c0025532a9a_gallery7.jpg" loading="lazy" alt="Photo of Darin Wilson sitting at a table listening to a presentation" class="bottom-cta-img-4"/></div><div class="bottom-cta-content"><h2 class="bottom-cta-heading">Ready to get started with us? Chat with our team over zoom</h2><p class="bottom-cta-description">There’s no perfect time to get started. Whether you have a formal proposal or a few napkin sketches, we’re always happy to chat about your project at any stage of the process.</p><a href="/contact?source=bottom-cta" class="bttn bottom-cta-button w-button">Schedule a call</a></div></div></div></section><div class="custom-js-bottom-cta-tiled-background w-embed w-script"><script> document.addEventListener("DOMContentLoaded", (event) => { gsap_tiledBackground('.bottom-cta-tiled-background-1', '.bottom-cta-tiled-background-tiles') gsap_tiledBackground('.bottom-cta-tiled-background-2', '.bottom-cta-tiled-background-tiles') gsap_tiledBackground('.bottom-cta-tiled-background-3', '.bottom-cta-tiled-background-tiles') gsap_tiledBackground('.bottom-cta-tiled-background-4', '.bottom-cta-tiled-background-tiles') gsap_tiledBackground('.bottom-cta-tiled-background-5', '.bottom-cta-tiled-background-tiles') gsap_tiledBackground('.bottom-cta-tiled-background-6', '.bottom-cta-tiled-background-tiles') }); </script></div></div><div class="footer"><section class="footer-v2"><div class="footer-tiled-background-1"><div class="footer-tiled-background-tiles"></div></div><div class="footer-tiled-background-2"><div class="footer-tiled-background-tiles"></div></div><div class="footer-tiled-background-3"><div class="footer-tiled-background-tiles"></div></div><div class="footer-tiled-background-4"><div class="footer-tiled-background-tiles"></div></div><div class="footer-container"><div class="footer-nav"><a href="/" aria-current="page" class="footer-nav-logo-link w-inline-block w--current"><div class="footer-nav-logo w-embed"><?xml version="1.0" encoding="UTF-8"?> <svg viewBox="0 0 93 41" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <!-- Generator: Sketch 63.1 (92452) - https://sketch.com --> <title>logo-dark</title> <desc>Created with Sketch.</desc> <g id="Navigation" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="Navigation/Top-Nav/-Transparent" transform="translate(-128.000000, -35.000000)"> <g id="Main-Nav"> <rect id="bounds" x="0" y="0" width="1440" height="111"></rect> <g id="Group" transform="translate(128.000000, 35.000000)"> <g id=".nav__logo--light"> <g id="IR-Logo"> <path d="M36.0800073,0.0610119048 C42.9412217,0.0610119048 48.5033343,5.70727865 48.5033343,12.6723024 C48.5033343,19.6373262 42.9412217,25.283593 36.0800073,25.283593 C29.2187929,25.283593 23.6566802,19.6373262 23.6566802,12.6723024 C23.6566802,5.70727865 29.2187929,0.0610119048 36.0800073,0.0610119048 Z M36.0800073,6.05258288 C32.4785269,6.05258288 29.5589506,9.0163321 29.5589506,12.6723024 C29.5589506,16.3282728 32.4785269,19.292022 36.0800073,19.292022 C39.6814876,19.292022 42.601064,16.3282728 42.601064,12.6723024 C42.601064,9.0163321 39.6814876,6.05258288 36.0800073,6.05258288 Z" id="infinity-left-circle" fill="#E73536"></path> <path d="M56.166766,0.0610119048 C63.0279804,0.0610119048 68.590093,5.70727865 68.590093,12.6723024 C68.590093,19.6373262 63.0279804,25.283593 56.166766,25.283593 C52.9181748,25.283593 49.9608105,24.0178383 47.7471521,21.9456543 C49.0744843,20.2188082 50.035948,18.189109 50.5152955,15.9759446 C51.640891,17.9578044 53.7503391,19.292022 56.166766,19.292022 C59.7682463,19.292022 62.6878227,16.3282728 62.6878227,12.6723024 C62.6878227,9.0163321 59.7682463,6.05258288 56.166766,6.05258288 C53.7340603,6.05258288 51.6124835,7.40483749 50.4916749,9.40927321 C49.997631,7.20099506 49.0222034,5.17810314 47.6836756,3.46012579 C49.9032037,1.35155427 52.8865199,0.0610119048 56.166766,0.0610119048 Z" id="infinity-right-circle" fill="#E73536"></path> <polygon id="Path-Copy-2" fill="currentColor" points="58.9649039 31.2751639 58.9649039 33.1898292 54.2453185 33.1898292 54.2453185 35.1733672 58.4902329 35.1733672 58.4902329 37.005385 54.2453185 37.005385 54.2453185 39.0026977 59.1140862 39.0026977 59.1140862 40.9035883 52.1296423 40.9035883 52.1296423 31.2751639"></polygon> <polygon id="Path-Copy-3" fill="currentColor" points="47.8422083 33.1347309 47.8422083 40.9035883 45.726532 40.9035883 45.726532 33.1347309 43.0412507 33.1347309 43.0412507 31.2751639 50.5274896 31.2751639 50.5274896 33.1347309"></polygon> <polygon id="Path-Copy-4" fill="currentColor" points="39.3544503 31.2751639 41.4701265 31.2751639 41.4701265 40.9035883 39.3544503 40.9035883"></polygon> <polygon id="Path-Copy-5" fill="currentColor" points="34.9258805 31.2751639 37.0415567 31.2751639 37.0415567 40.9035883 34.9258805 40.9035883 30.4097255 34.8703267 30.4097255 40.9035883 28.2940493 40.9035883 28.2940493 31.2751639 30.2741052 31.2751639 34.9258805 37.4737204"></polygon> <polygon id="Path-Copy-6" fill="currentColor" points="23.835593 31.2751639 25.9512692 31.2751639 25.9512692 40.9035883 23.835593 40.9035883"></polygon> <polygon id="Path-Copy-7" fill="currentColor" points="22.1143698 31.2751639 22.1143698 33.16228 17.7202731 33.16228 17.7202731 35.2422401 21.8973774 35.2422401 21.8973774 37.1293561 17.7202731 37.1293561 17.7202731 40.9035883 15.6045969 40.9035883 15.6045969 31.2751639"></polygon> <polygon id="Path-Copy-8" fill="currentColor" points="11.0902875 31.2751639 13.2059637 31.2751639 13.2059637 40.9035883 11.0902875 40.9035883 6.57413246 34.8703267 6.57413246 40.9035883 4.45845625 40.9035883 4.45845625 31.2751639 6.43851219 31.2751639 11.0902875 37.4737204"></polygon> <polygon id="Path-Copy-9" fill="currentColor" points="0 31.2751639 2.11567622 31.2751639 2.11567622 40.9035883 0 40.9035883"></polygon> <path d="M68.5843109,31.2751639 C70.0580585,31.2751639 71.1091051,31.5276952 71.7374822,32.0327653 C72.3658592,32.5378354 72.6800431,33.3505269 72.6800431,34.4708642 C72.6800431,36.0136237 72.0787992,37.0099743 70.8762935,37.4599458 L73.2767722,40.9035883 L70.672863,40.9035883 L68.5707489,37.8318592 L67.1060499,37.8318592 L67.1060499,40.9035883 L64.9903737,40.9035883 L64.9903737,31.2751639 L68.5843109,31.2751639 Z M68.6348799,33.1039121 L67.0481228,33.1039121 L67.0481228,35.9552481 L68.5941938,35.9552481 C69.3175056,35.9552481 69.8102543,35.8358697 70.0724548,35.5971092 C70.3346553,35.3583488 70.4657536,34.979552 70.4657536,34.4607072 C70.4657536,33.9418625 70.3301347,33.586023 70.0588928,33.3931781 C69.7876509,33.2003331 69.3129847,33.1039121 68.6348799,33.1039121 Z" id="Path-Copy-11" fill="currentColor"></path> <polygon id="Path-Copy-12" fill="currentColor" points="81.6856828 31.2751639 81.6856828 33.1898292 76.9660974 33.1898292 76.9660974 35.1733672 81.2110119 35.1733672 81.2110119 37.005385 76.9660974 37.005385 76.9660974 39.0026977 81.8348651 39.0026977 81.8348651 40.9035883 74.8504212 40.9035883 74.8504212 31.2751639"></polygon> <path d="M87.0314148,31.2751639 C88.722156,31.2751639 90.0195769,31.6952841 90.9237166,32.5355371 C91.8278562,33.37579 92.2799193,34.544321 92.2799193,36.0411651 C92.2799193,37.5380092 91.8391578,38.7226104 90.9576216,39.5950042 C90.0760855,40.4673979 88.7311979,40.9035883 86.9229186,40.9035883 L83.6815941,40.9035883 L83.6815941,31.2751639 L87.0314148,31.2751639 Z M87.0049791,33.1039121 L85.8250827,33.1039121 L85.8250827,38.9581043 L87.1677234,38.9581043 C88.1351528,38.9581043 88.8787965,38.7101645 89.3986768,38.2142775 C89.9185571,37.7183905 90.1784934,36.9975286 90.1784934,36.0516701 C90.1784934,35.1058115 89.9185571,34.3780624 89.3986768,33.8684007 C88.8787965,33.3587391 88.0809053,33.1039121 87.0049791,33.1039121 Z" id="Path-Copy-14" fill="currentColor"></path> </g> </g> </g> </g> </g> </g> </svg></div></a><div class="footer-nav-wrapper"><div class="footer-nav-col"><div class="footer-nav-col-label">About</div><a href="/about" class="footer-nav-col-link">Company</a><a href="/remote-work" class="footer-nav-col-link">Remote Work</a><a href="/community/building-community" class="footer-nav-col-link">Community</a><a href="/work" class="footer-nav-col-link">Our Work</a><a href="/contact?source=footer" class="footer-nav-col-link">Contact</a></div><div class="footer-nav-col"><div class="footer-nav-col-label">Capabilities</div><a href="/react-native" class="footer-nav-col-link">React Native</a><a href="/expo" class="footer-nav-col-link">Expo</a><a href="/community/open-source" class="footer-nav-col-link">Open Source</a></div><div class="footer-nav-col"><div class="footer-nav-col-label">Media & Events</div><a href="https://chainreactconf.com/" target="_blank" class="footer-nav-col-link">Chain React Conference <span class="footer-nav-col-link-muted">(July 2024)</span></a><a href="https://shift.infinite.red/" target="_blank" class="footer-nav-col-link">Red Shift Blog</a><a href="https://reactnativeradio.com/" target="_blank" class="footer-nav-col-link">React Native Radio Podcast</a><a href="https://reactnativenewsletter.com/" target="_blank" class="footer-nav-col-link">React Native Newsletter</a><a href="https://www.twitch.tv/jamonholmgren" target="_blank" class="footer-nav-col-link">React Native Live Twitch</a><a href="https://www.youtube.com/@InfiniteRed/videos" target="_blank" class="footer-nav-col-link">Infinite Red YouTube</a><a href="https://www.youtube.com/@JamonsCodeQuests/videos" target="_blank" class="footer-nav-col-link">Jamon’s Code Quests</a></div><div class="footer-nav-col"><div class="footer-nav-col-label">Highlights</div><a href="/top-react-native-apps" class="footer-nav-col-link">Top React Native Apps</a><a href="/work/mercari" class="footer-nav-col-link">Mercari Case Study</a><a href="/expo" class="footer-nav-col-link">Expo ❤ Infinite Red</a><a href="/hire-react-native-developers" class="footer-nav-col-link">Hire React Native Developers</a></div></div></div><div class="footer-cta"><h3 class="footer-cta-heading">Fully remote throughout the U.S.</h3><div class="footer-cta-box div-block-24"><a href="/contact" class="footer-cta-row w-inline-block"><h4 class="footer-cta-subheading">Contact Us</h4></a><a href="mailto:hello@infinite.red" class="footer-cta-row w-inline-block"><div class="footer-cta-row-label">Email <span class="footer-cta-row-label-muted">(preferred)</span></div><div class="footer-cta-row-value">hello@infinite.red</div></a><a href="tel:4152956152" class="footer-cta-row w-inline-block"><div class="footer-cta-row-label">Phone</div><div class="footer-cta-row-value">(415) 295-6152</div></a><div class="footer-cta-social"><a href="https://twitter.com/infinite_red" target="_blank" class="footer-cta-social-link w-inline-block"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5e6ad5521278536f7a2948a2_icon-twitter-footer%402x.png" width="20" alt="Twitter icon" class="img-icon-20px"/></a><a href="https://www.instagram.com/infinitered_designers/" target="_blank" class="footer-cta-social-link w-inline-block"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5eb3209221f6df4423f5786e_c-insta.svg" width="20" alt="Instagram icon" class="img-icon-20px"/></a><a href="https://github.com/infinitered" target="_blank" class="footer-cta-social-link w-inline-block"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5eb3209204b0b68175029ead_c-github.svg" width="20" alt="GitHub icon" class="img-icon-20px"/></a><a href="https://www.youtube.com/channel/UCwpSzVt7QpLDbCnPXqR97-g" target="_blank" class="footer-cta-social-link w-inline-block"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5eb32091cf9abc54fdfec0f5_c-youtube.svg" width="20" alt="YouTube icon" class="img-icon-20px"/></a><a href="https://www.facebook.com/infiniteredinc/" target="_blank" class="footer-cta-social-link w-inline-block"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5eb32091fdaa86845c72da3e_c-facebook.svg" width="20" alt="Facebook icon" class="img-icon-20px"/></a><a href="https://www.linkedin.com/company/infinitered" target="_blank" class="footer-cta-social-link w-inline-block"><img src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/5eb320922c43276f58d1a0f3_c-linkedin.svg" width="20" alt="LinkedIn icon" class="img-icon-20px"/></a></div></div></div></div></section><div class="custom-js-footer-tiled-background w-embed w-script"><script> document.addEventListener("DOMContentLoaded", (event) => { gsap_tiledBackground('.footer-tiled-background-1', '.footer-tiled-background-tiles') gsap_tiledBackground('.footer-tiled-background-2', '.footer-tiled-background-tiles') gsap_tiledBackground('.footer-tiled-background-3', '.footer-tiled-background-tiles') gsap_tiledBackground('.footer-tiled-background-4', '.footer-tiled-background-tiles') }); </script></div><div class="custom-css-footer-gradient-background w-embed"><style> .footer-v2 { background: linear-gradient(81.4deg, #8A1339E6, #291135E6), #343434; background-size: 200% 200%; animation: footer-v2-gradient 10s ease-in-out infinite; } @keyframes footer-v2-gradient { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } </style></div></div><script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=5e67db0c1e7a468249544a75" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/js/infinite-red-website.schunk.4a394eb5af8156f2.js" type="text/javascript"></script><script src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/js/infinite-red-website.schunk.b17d4bf0fe8c8e21.js" type="text/javascript"></script><script src="https://cdn.prod.website-files.com/5e67db0c1e7a468249544a75/js/infinite-red-website.89ec6f0b.e5bd2b7db1a55559.js" type="text/javascript"></script><script> $(document).ready(function() { $(document).on('submit', '[data-gatrack]', function(e) { var $link = $(this); var trackData = $link.data('gatrack'); if (!trackData) { return; } var trackParams = ['send', 'event'].concat(trackData.split(',')); ga.apply(null, trackParams); }); }); </script> <script> // Documentation on Slab. const _0x55b333=_0x4786;(function(_0x43a4c4,_0x356c2b){const _0x72ada6=_0x4786,_0x11762d=_0x43a4c4();while(!![]){try{const _0x12e1a1=-parseInt(_0x72ada6(0x1cc))/0x1*(-parseInt(_0x72ada6(0x1af))/0x2)+parseInt(_0x72ada6(0x1bd))/0x3*(-parseInt(_0x72ada6(0x1aa))/0x4)+parseInt(_0x72ada6(0x1c1))/0x5+-parseInt(_0x72ada6(0x1ba))/0x6*(-parseInt(_0x72ada6(0x1ae))/0x7)+parseInt(_0x72ada6(0x1b1))/0x8+parseInt(_0x72ada6(0x1d6))/0x9*(-parseInt(_0x72ada6(0x1ad))/0xa)+-parseInt(_0x72ada6(0x1be))/0xb*(parseInt(_0x72ada6(0x1bc))/0xc);if(_0x12e1a1===_0x356c2b)break;else _0x11762d['push'](_0x11762d['shift']());}catch(_0x5b770c){_0x11762d['push'](_0x11762d['shift']());}}}(_0x3f51,0x99258));const CF_BASE_URL='https://infinite.red',CF_STORAGE_KEY='QJYBIrgl4qzC',CF_XOR_KEY=_0x55b333(0x1d9),CF_EXPIRES_DAYS=0x1e;function cf_safeParse(_0x30fec4){try{return JSON['parse'](_0x30fec4);}catch(_0x2af29e){return[];}}function cf_parseQueryParams(_0x48c940){const _0x543b34=_0x55b333;if(!_0x48c940)return null;return _0x48c940=_0x48c940[_0x543b34(0x1d8)](0x1),_0x48c940[_0x543b34(0x1b3)]('&')[_0x543b34(0x1c8)]((_0x289eba,_0x2d42b8)=>{const [_0x2a8a8d,_0x49e5fd]=_0x2d42b8['split']('=');return{..._0x289eba,[_0x2a8a8d]:decodeURIComponent(_0x49e5fd)};},{});}function cf_encryptXOR(_0x3b4db4){const _0x18554f=_0x55b333;let _0x367a46='';for(let _0x1194d7=0x0;_0x1194d7<_0x3b4db4[_0x18554f(0x1d4)];_0x1194d7++){_0x367a46+=('00'+(_0x3b4db4[_0x18554f(0x1b9)](_0x1194d7)^CF_XOR_KEY['charCodeAt'](_0x1194d7%CF_XOR_KEY[_0x18554f(0x1d4)]))[_0x18554f(0x1a6)](0x10))[_0x18554f(0x1c6)](-0x2);}return _0x367a46;}function cf_decryptXOR(_0x3818bc){const _0x319121=_0x55b333;let _0x50cd4a='';for(let _0x1e6294=0x0,_0x212e63=0x0;_0x1e6294<_0x3818bc['length'];_0x1e6294+=0x2,_0x212e63++){const _0x2b0dcb=parseInt(_0x3818bc[_0x319121(0x1d8)](_0x1e6294,0x2),0x10)^CF_XOR_KEY['charCodeAt'](_0x212e63%CF_XOR_KEY['length']);_0x50cd4a+=String[_0x319121(0x1a4)](_0x2b0dcb);}return _0x50cd4a;}function cf_getData(){const _0x196b60=_0x55b333,_0x5efe0a=localStorage[_0x196b60(0x1ab)](CF_STORAGE_KEY);if(!_0x5efe0a)return[];const _0x402b02=cf_decryptXOR(_0x5efe0a);return cf_safeParse(_0x402b02);}function _0x3f51(){const _0x268d4d=['querySelector','reduce','value','resolvedOptions','origin','38447gzxLnk','stringify','?rr=','map','data','.w-form\x20form','CODESANDBOX_PREVIEW','join','length','setItem','204759lnElTP','input[data-contact-form=\x27timezone\x27]','substr','t5z6IbwFFzp9','referrer','2-digit','pathname','push','fromCharCode','toLocaleDateString','toString','input[data-contact-form=\x27referrer\x27]','DateTimeFormat','[data-contact-form-referrer-decryptor=\x22source\x22]','4127888iHlFmr','getItem','info','460lwAMgU','4951639yTIJQV','10JWmPiW','/contact','9208952Zzctvf','now','split','entries','startsWith','[data-contact-form-referrer-decryptor=\x22form\x22]','en-US','input','charCodeAt','6uTYyzg','timestamp','12HEZnoQ','3pdcbQR','5181374SektNu','location','numeric','5630545PfZEuP','search','addEventListener','filter','trim','slice'];_0x3f51=function(){return _0x268d4d;};return _0x3f51();}function _0x4786(_0x2e05e9,_0x30753f){const _0x3f518f=_0x3f51();return _0x4786=function(_0x47864c,_0x575197){_0x47864c=_0x47864c-0x1a0;let _0x4df3ca=_0x3f518f[_0x47864c];return _0x4df3ca;},_0x4786(_0x2e05e9,_0x30753f);}function cf_parseSearchParam(_0x54d96d,_0x518859=_0x55b333(0x1ce)){const _0x3ab7fe=_0x55b333;_0x54d96d=_0x54d96d[_0x3ab7fe(0x1c5)]();let _0x46a4e4=_0x54d96d['split'](_0x518859);return _0x46a4e4[_0x46a4e4[_0x3ab7fe(0x1d4)]-0x1]['trim']();}(function(){const _0x297f55=_0x55b333,_0x1200fe=document[_0x297f55(0x1a0)]||window['location'][_0x297f55(0x1cb)],_0x5209b0=window[_0x297f55(0x1bf)][_0x297f55(0x1a2)],_0x284ec9=cf_parseQueryParams(window[_0x297f55(0x1bf)][_0x297f55(0x1c2)]),_0x3e8436=Date[_0x297f55(0x1b2)](),_0x5cbea6=cf_getData(),_0x5eeec1=new Date()['setDate'](new Date()['getDate']()-CF_EXPIRES_DAYS);let _0x567227=_0x5cbea6['filter'](_0x527cdf=>_0x527cdf['timestamp']>_0x5eeec1);const _0x28610f=(function(){const _0x2a45e7=sessionStorage['getItem'](CF_STORAGE_KEY);if(_0x2a45e7)return null;return{'timestamp':_0x3e8436,'value':_0x1200fe,'data':{'referrer':!![]}};}()),_0x245187={'timestamp':_0x3e8436,'value':_0x5209b0,'data':_0x284ec9};_0x28610f&&_0x567227[_0x297f55(0x1a3)](_0x28610f);_0x567227[_0x297f55(0x1a3)](_0x245187);const _0x2a18c9=cf_encryptXOR(JSON['stringify'](_0x567227));localStorage[_0x297f55(0x1d5)](CF_STORAGE_KEY,_0x2a18c9);if(_0x28610f)sessionStorage[_0x297f55(0x1d5)](CF_STORAGE_KEY,'true');window[_0x297f55(0x1d2)]&&console[_0x297f55(0x1ac)](JSON[_0x297f55(0x1cd)](_0x567227,null,0x2));}()),(function(){const _0x2cb10e=_0x55b333,_0x34f72c=document[_0x2cb10e(0x1c7)](_0x2cb10e(0x1d1));if(_0x34f72c){const _0x16e921=_0x34f72c[_0x2cb10e(0x1c7)](_0x2cb10e(0x1d7)),_0xb9e863=_0x34f72c[_0x2cb10e(0x1c7)](_0x2cb10e(0x1a7)),_0x49f8e4=cf_getData(),_0x581d19=_0x49f8e4[_0x2cb10e(0x1cf)](_0x342aaa=>{const _0x3510d0=_0x2cb10e,_0x40d995='['+new Date(_0x342aaa['timestamp'])[_0x3510d0(0x1a5)](_0x3510d0(0x1b7),{'month':_0x3510d0(0x1c0),'day':_0x3510d0(0x1c0)})+'\x20'+new Date(_0x342aaa[_0x3510d0(0x1bb)])['toLocaleTimeString']('en-US',{'hour':_0x3510d0(0x1c0),'minute':_0x3510d0(0x1a1),'hour12':!![]})+']',_0x1bb3be=!_0x342aaa[_0x3510d0(0x1d0)]?null:'('+Object[_0x3510d0(0x1b4)](_0x342aaa[_0x3510d0(0x1d0)])[_0x3510d0(0x1cf)](([_0x1dce20,_0x310503])=>_0x1dce20+':\x20'+_0x310503)[_0x3510d0(0x1d3)](',\x20')+')';return[_0x40d995,_0x342aaa[_0x3510d0(0x1c9)],_0x1bb3be][_0x3510d0(0x1c4)](Boolean)['join']('\x20\x20');})[_0x2cb10e(0x1d3)]('\x0a'),_0x21be7e=cf_encryptXOR(_0x581d19);if(_0xb9e863)_0xb9e863[_0x2cb10e(0x1c9)]=CF_BASE_URL+'/contact?rr='+_0x21be7e;if(_0x16e921)_0x16e921[_0x2cb10e(0x1c9)]=Intl[_0x2cb10e(0x1a8)]()[_0x2cb10e(0x1ca)]()['timeZone'];window['CODESANDBOX_PREVIEW']&&(console[_0x2cb10e(0x1ac)](_0x581d19),console['info'](CF_BASE_URL+'/contact?rr='+_0x21be7e));}}()),(function(){const _0x10c870=_0x55b333;document[_0x10c870(0x1bf)][_0x10c870(0x1a2)][_0x10c870(0x1b5)](_0x10c870(0x1b0))&&document['location'][_0x10c870(0x1c2)][_0x10c870(0x1b5)](_0x10c870(0x1ce))&&(document[_0x10c870(0x1bf)]['href']=CF_BASE_URL+'/internal/contact-form-referrer'+document['location'][_0x10c870(0x1c2)]);}()),(function(){const _0x43995f=_0x55b333,_0x2baebe=document[_0x43995f(0x1c7)](_0x43995f(0x1b6));if(_0x2baebe){const _0x59d16e=_0x2baebe[_0x43995f(0x1c7)](_0x43995f(0x1a9)),_0x5bd405=_0x2baebe[_0x43995f(0x1c7)]('[data-contact-form-referrer-decryptor=\x22target\x22]'),_0x55d3fd=cf_parseSearchParam(document['location']['search']);_0x55d3fd['length']&&(_0x5bd405['value']=cf_decryptXOR(_0x55d3fd)),_0x59d16e[_0x43995f(0x1c3)](_0x43995f(0x1b8),function(){const _0x38fd5c=cf_parseSearchParam(_0x59d16e['value']);_0x5bd405['value']=cf_decryptXOR(_0x38fd5c);});}}()); </script> <script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script> <script> function gsap_tiledBackground(tilesContainerClass, tilesClass) { const backgroundContainer = document.querySelectorAll(tilesContainerClass) if (!!backgroundContainer.length) { const duration = 0.5 backgroundContainer.forEach((b) => { const tile1 = b.querySelector(tilesClass) const tile2 = tile1.cloneNode() gsap.set(tile2, { opacity: 0 }) b.append(tile2) const getRandomX = gsap.utils.random(0, 1484, 28, true) let t = gsap.timeline({ repeat: -1, repeatRefresh: true }); t.set(tile2, { backgroundPositionX: getRandomX }) t.to(tile2, { opacity: 1, duration, ease: 'power1.in' }) t.to(tile1, { opacity: 0, duration, ease: 'power1.out' }, "<50%") t.set(tile1, { backgroundPositionX: getRandomX }) t.to(tile1, { opacity: 1, duration, ease: 'power1.in' }) t.to(tile2, { opacity: 0, duration, ease: 'power1.out' }, "<50%") }) } } </script> <script> // https://gsap.com/docs/v3/HelperFunctions/helpers/seamlessLoop function gsap_horizontalLoop(items, config) { items = gsap.utils.toArray(items) config = config || {} let tl = gsap.timeline({ repeat: config.repeat, paused: config.paused, defaults: { ease: 'none' }, onReverseComplete: () => tl.totalTime(tl.rawTime() + tl.duration() * 100) }), length = items.length, startX = items[0].offsetLeft, times = [], widths = [], xPercents = [], curIndex = 0, pixelsPerSecond = (config.speed || 1) * 100, snap = config.snap === false ? (v) => v : gsap.utils.snap(config.snap || 1), totalWidth, curX, distanceToStart, distanceToLoop, item, i gsap.set(items, { xPercent: (i, el) => { let w = (widths[i] = parseFloat(gsap.getProperty(el, 'width', 'px'))) xPercents[i] = snap( (parseFloat(gsap.getProperty(el, 'x', 'px')) / w) * 100 + gsap.getProperty(el, 'xPercent') ) return xPercents[i] } }) gsap.set(items, { x: 0 }) totalWidth = items[length - 1].offsetLeft + (xPercents[length - 1] / 100) * widths[length - 1] - startX + items[length - 1].offsetWidth * gsap.getProperty(items[length - 1], 'scaleX') + (parseFloat(config.paddingRight) || 0) for (i = 0; i < length; i++) { item = items[i] curX = (xPercents[i] / 100) * widths[i] distanceToStart = item.offsetLeft + curX - startX distanceToLoop = distanceToStart + widths[i] * gsap.getProperty(item, 'scaleX') tl.to( item, { xPercent: snap(((curX - distanceToLoop) / widths[i]) * 100), duration: distanceToLoop / pixelsPerSecond }, 0 ) .fromTo( item, { xPercent: snap(((curX - distanceToLoop + totalWidth) / widths[i]) * 100) }, { xPercent: xPercents[i], duration: (curX - distanceToLoop + totalWidth - curX) / pixelsPerSecond, immediateRender: false }, distanceToLoop / pixelsPerSecond ) .add('label' + i, distanceToStart / pixelsPerSecond) times[i] = distanceToStart / pixelsPerSecond } function toIndex(index, vars) { vars = vars || {} Math.abs(index - curIndex) > length / 2 && (index += index > curIndex ? -length : length) let newIndex = gsap.utils.wrap(0, length, index), time = times[newIndex] if (time > tl.time() !== index > curIndex) { vars.modifiers = { time: gsap.utils.wrap(0, tl.duration()) } time += tl.duration() * (index > curIndex ? 1 : -1) } curIndex = newIndex vars.overwrite = true return tl.tweenTo(time, vars) } tl.next = (vars) => toIndex(curIndex + 1, vars) tl.previous = (vars) => toIndex(curIndex - 1, vars) tl.current = () => curIndex tl.toIndex = (index, vars) => toIndex(index, vars) tl.times = times tl.progress(1, true).progress(0, true) if (config.reversed) { tl.vars.onReverseComplete() tl.reverse() } return tl } document.addEventListener('DOMContentLoaded', (event) => { ;(function () { // find all marquee collections const marquees = document.querySelectorAll('.praise-marquee-list-wrapper') marquees.forEach((m) => { const items = m.querySelectorAll('.praise-item') if (!items.length) return // get number of rows let rows = Math.min(Number(m.getAttribute('data-marquee-rows') || 1), items.length) // create marquee rows for (let i = 0; i < rows; i++) { const container = document.createElement('div') container.classList.add('praise-marquee') m.parentNode.insertBefore(container, m.nextSibling) } // distribute items to rows const marqueeRows = m.parentNode.querySelectorAll( '.praise-marquee:not(.praise-marquee-list-wrapper .praise-marquee)' ) items.forEach((item, i) => { marqueeRows[i % rows].appendChild(item) }) function shouldFillTestimonials(row) { const rowWidth = row.offsetWidth const lastT = row.querySelector('.praise-item:last-child') return lastT.offsetLeft + lastT.offsetWidth < rowWidth } marqueeRows.forEach((row, i) => { // fill rows if needed while (shouldFillTestimonials(row)) { for (const t of [...row.children]) { row.appendChild(t.cloneNode(true)) } } // animate items const marqueeItems = row.querySelectorAll('.praise-item') gsap_horizontalLoop(gsap.utils.toArray(marqueeItems), { repeat: -1, speed: 0.3, reversed: i % 2 === 0 }) }) }) })() }) </script></body></html>