<!DOCTYPE html>
<html lang="en-US">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="profile" href="http://gmpg.org/xfn/11">
	<!-- favicon part -->
	<link rel="apple-touch-icon" sizes="180x180" href="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/images/icons/apple-touch-icon.png">
	<link rel="icon" type="image/png" href="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/images/icons/favicon-32x32.png" sizes="32x32">
	<link rel="icon" type="image/png" href="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/images/icons/favicon-16x16.png" sizes="16x16">
	<link rel="manifest" href="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/images/icons/manifest.json">
	<link rel="mask-icon" href="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/images/icons/safari-pinned-tab.svg" color="#0090c1">
	<link rel="shortcut icon" href="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/images/icons/favicon.ico">
	<meta name="msapplication-config" content="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/images/icons/browserconfig.xml">
	<meta name="theme-color" content="#ffffff">
	<!-- /favicon part -->

  <!-- enqueue all stylesheets and scripts in functions.php instead of here -->

  <!-- Google Tag Manager -->
  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  })(window,document,'script','dataLayer','GTM-TSN9J9L');</script>
  <!-- End Google Tag Manager -->

	<!-- Custom Audience Pixel Code -->
	<script type="text/plain" class=" _iub_cs_activate-inline" data-iub-purposes="5">
	!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
	n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
	n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
	t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
	document,'script','//connect.facebook.net/en_US/fbevents.js');
	// Insert Your Custom Audience Pixel ID below.
	fbq('init', '1633196166939045');
	fbq('track', 'PageView');
	</script>
	<!-- Insert Your Custom Audience Pixel ID below. -->
	<noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1633196166939045&amp;ev=PageView&amp;noscript=1"></noscript>
	<!-- End Custom Audience Pixel Code -->

				<script type="text/javascript" class="_iub_cs_skip">
				var _iub = _iub || {};
				_iub.csConfiguration = _iub.csConfiguration || {};
				_iub.csConfiguration.siteId = "1203383";
				_iub.csConfiguration.cookiePolicyId = "62035696";
			</script>
			<script data-minify="1" class="_iub_cs_skip" src="https://appsembler.com/wp-content/cache/min/1/sync/1203383.js?ver=1772915991" defer></script>
			<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1">
	<style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style>
	    <!-- Start VWO Common Smartcode -->
    <script data-cfasync="false" nowprocket type="text/javascript">
        var _vwo_clicks = 10;
    </script>
    <!-- End VWO Common Smartcode -->
        <!-- Start VWO Async SmartCode -->
    <link rel="preconnect" href="https://dev.visualwebsiteoptimizer.com">
    <script data-cfasync="false" nowprocket type="text/javascript" id="vwoCode">
        /* Fix: wp-rocket (application/ld+json) */
        window._vwo_code || (function () {
            var account_id=763904,
                version=2.1,
                settings_tolerance=2000,
                library_tolerance=2500,
                use_existing_jquery=false,
                hide_element='body',
                hide_element_style = 'opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important;transition:none !important;',
                /* DO NOT EDIT BELOW THIS LINE */
                f=false,w=window,d=document,v=d.querySelector('#vwoCode'),cK='_vwo_'+account_id+'_settings',cc={};try{var c=JSON.parse(localStorage.getItem('_vwo_'+account_id+'_config'));cc=c&&typeof c==='object'?c:{}}catch(e){}var stT=cc.stT==='session'?w.sessionStorage:w.localStorage;code={use_existing_jquery:function(){return typeof use_existing_jquery!=='undefined'?use_existing_jquery:undefined},library_tolerance:function(){return typeof library_tolerance!=='undefined'?library_tolerance:undefined},settings_tolerance:function(){return cc.sT||settings_tolerance},hide_element_style:function(){return'{'+(cc.hES||hide_element_style)+'}'},hide_element:function(){if(performance.getEntriesByName('first-contentful-paint')[0]){return''}return typeof cc.hE==='string'?cc.hE:hide_element},getVersion:function(){return version},finish:function(e){if(!f){f=true;var t=d.getElementById('_vis_opt_path_hides');if(t)t.parentNode.removeChild(t);if(e)(new Image).src='https://dev.visualwebsiteoptimizer.com/ee.gif?a='+account_id+e}},finished:function(){return f},addScript:function(e){var t=d.createElement('script');t.type='text/javascript';if(e.src){t.src=e.src}else{t.text=e.text}d.getElementsByTagName('head')[0].appendChild(t)},load:function(e,t){var i=this.getSettings(),n=d.createElement('script'),r=this;t=t||{};if(i){n.textContent=i;d.getElementsByTagName('head')[0].appendChild(n);if(!w.VWO||VWO.caE){stT.removeItem(cK);r.load(e)}}else{var o=new XMLHttpRequest;o.open('GET',e,true);o.withCredentials=!t.dSC;o.responseType=t.responseType||'text';o.onload=function(){if(t.onloadCb){return t.onloadCb(o,e)}if(o.status===200||o.status===304){_vwo_code.addScript({text:o.responseText})}else{_vwo_code.finish('&e=loading_failure:'+e)}};o.onerror=function(){if(t.onerrorCb){return t.onerrorCb(e)}_vwo_code.finish('&e=loading_failure:'+e)};o.send()}},getSettings:function(){try{var e=stT.getItem(cK);if(!e){return}e=JSON.parse(e);if(Date.now()>e.e){stT.removeItem(cK);return}return e.s}catch(e){return}},init:function(){if(d.URL.indexOf('__vwo_disable__')>-1)return;var e=this.settings_tolerance();w._vwo_settings_timer=setTimeout(function(){_vwo_code.finish();stT.removeItem(cK)},e);var t;if(this.hide_element()!=='body'){t=d.createElement('style');var i=this.hide_element(),n=i?i+this.hide_element_style():'',r=d.getElementsByTagName('head')[0];t.setAttribute('id','_vis_opt_path_hides');v&&t.setAttribute('nonce',v.nonce);t.setAttribute('type','text/css');if(t.styleSheet)t.styleSheet.cssText=n;else t.appendChild(d.createTextNode(n));r.appendChild(t)}else{t=d.getElementsByTagName('head')[0];var n=d.createElement('div');n.style.cssText='z-index: 2147483647 !important;position: fixed !important;left: 0 !important;top: 0 !important;width: 100% !important;height: 100% !important;background: white !important;';n.setAttribute('id','_vis_opt_path_hides');n.classList.add('_vis_hide_layer');t.parentNode.insertBefore(n,t.nextSibling)}var o='https://dev.visualwebsiteoptimizer.com/j.php?a='+account_id+'&u='+encodeURIComponent(d.URL)+'&vn='+version;if(w.location.search.indexOf('_vwo_xhr')!==-1){this.addScript({src:o})}else{this.load(o+'&x=true')}}};w._vwo_code=code;code.init();})();
    </script>
    <!-- End VWO Async SmartCode -->
    
	<!-- This site is optimized with the Yoast SEO Premium plugin v24.3 (Yoast SEO v26.0) - https://yoast.com/wordpress/plugins/seo/ -->
	<title>Blog - Appsembler</title>
<link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=Roboto%3A300%2C300i%2C400%2C400i%2C500%2C500i%2C600%2C600i%2C700%2C700i%2C900%2C900i%7CRubik%3A300%2C300i%2C400%2C400i%2C500%2C500i%2C600%2C600i%2C700%2C700i%2C900%2C900i&amp;subset=latin-ext&amp;display=swap">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto%3A300%2C300i%2C400%2C400i%2C500%2C500i%2C600%2C600i%2C700%2C700i%2C900%2C900i%7CRubik%3A300%2C300i%2C400%2C400i%2C500%2C500i%2C600%2C600i%2C700%2C700i%2C900%2C900i&amp;subset=latin-ext&amp;display=swap" media="print" onload="this.media='all'">
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto%3A300%2C300i%2C400%2C400i%2C500%2C500i%2C600%2C600i%2C700%2C700i%2C900%2C900i%7CRubik%3A300%2C300i%2C400%2C400i%2C500%2C500i%2C600%2C600i%2C700%2C700i%2C900%2C900i&amp;subset=latin-ext&amp;display=swap"></noscript>
<link rel="preload" as="image" href="https://appsembler.com/wp-content/uploads/2020/02/Deploying-Open-edX-with-Google-Cloud-Build-How-to-Guide-300x169.png" imagesrcset="https://appsembler.com/wp-content/uploads/2020/02/Deploying-Open-edX-with-Google-Cloud-Build-How-to-Guide-300x169.png 300w, https://appsembler.com/wp-content/uploads/2020/02/Deploying-Open-edX-with-Google-Cloud-Build-How-to-Guide-1024x576.png 1024w, https://appsembler.com/wp-content/uploads/2020/02/Deploying-Open-edX-with-Google-Cloud-Build-How-to-Guide-768x432.png 768w, https://appsembler.com/wp-content/uploads/2020/02/Deploying-Open-edX-with-Google-Cloud-Build-How-to-Guide-1536x864.png 1536w, https://appsembler.com/wp-content/uploads/2020/02/Deploying-Open-edX-with-Google-Cloud-Build-How-to-Guide-2048x1152.png 2048w, https://appsembler.com/wp-content/uploads/2020/02/Deploying-Open-edX-with-Google-Cloud-Build-How-to-Guide-360x203.png 360w" imagesizes="(max-width: 300px) 100vw, 300px" fetchpriority="high">
	<meta name="description" content="Appsembler's blog: Your gateway to expert insights on e-learning, software training, virtual labs, and the future of online education">
	<link rel="canonical" href="https://appsembler.com/blog/">
	<link rel="next" href="https://appsembler.com/blog/page/2/">
	<meta property="og:locale" content="en_US">
	<meta property="og:type" content="article">
	<meta property="og:title" content="Blog">
	<meta property="og:description" content="Appsembler's blog: Your gateway to expert insights on e-learning, software training, virtual labs, and the future of online education">
	<meta property="og:url" content="https://appsembler.com/blog/">
	<meta property="og:site_name" content="Appsembler">
	<meta property="og:image" content="https://appsembler.com/wp-content/uploads/2017/04/appsembler-default-post-img.jpg">
	<meta property="og:image:width" content="640">
	<meta property="og:image:height" content="480">
	<meta property="og:image:type" content="image/jpeg">
	<meta name="twitter:card" content="summary_large_image">
	<meta name="twitter:site" content="@appsembler">
	<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":["WebPage","CollectionPage"],"@id":"https://appsembler.com/blog/","url":"https://appsembler.com/blog/","name":"Blog - Appsembler","isPartOf":{"@id":"https://appsembler.com/#website"},"datePublished":"2017-04-28T14:11:19+00:00","dateModified":"2024-06-19T08:23:30+00:00","description":"Appsembler's blog: Your gateway to expert insights on e-learning, software training, virtual labs, and the future of online education","breadcrumb":{"@id":"https://appsembler.com/blog/#breadcrumb"},"inLanguage":"en-US"},{"@type":"BreadcrumbList","@id":"https://appsembler.com/blog/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://appsembler.com/"},{"@type":"ListItem","position":2,"name":"Blog"}]},{"@type":"WebSite","@id":"https://appsembler.com/#website","url":"https://appsembler.com/","name":"Appsembler","description":"Hands-on learning platform","publisher":{"@id":"https://appsembler.com/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://appsembler.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://appsembler.com/#organization","name":"Appsembler","url":"https://appsembler.com/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://appsembler.com/#/schema/logo/image/","url":"https://appsembler.com/wp-content/uploads/2017/05/logo-full-positive.png","contentUrl":"https://appsembler.com/wp-content/uploads/2017/05/logo-full-positive.png","width":1000,"height":357,"caption":"Appsembler"},"image":{"@id":"https://appsembler.com/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/appsembler","https://x.com/appsembler","https://www.linkedin.com/company/appsembler/","https://www.youtube.com/@Appsembler"],"description":"Appsembler is the leading training platform for experiential learning. Built on the belief that learning by doing is the most effective way to learn, we are on a mission to help companies unlock the full potential of their employees, customers, and users. Appsembler&#8217;s cloud-based training platform makes it easy to create and instantly deliver hands-on, immersive learning experiences that stick. The world&#8217;s most innovative software companies &#8212; Chef, Redis Labs, Dremio and more &#8212; trust us to power their online learning programs. We are proud to be a fast-growing, 100% globally distributed team.","email":"sales@appsembler.com","telephone":"+1 617-702-4331"}]}</script>
	<!-- / Yoast SEO Premium plugin. -->


<link rel="dns-prefetch" href="//cdn.iubenda.com">
<link rel="dns-prefetch" href="//cdnjs.cloudflare.com">
<link rel="dns-prefetch" href="//fonts.googleapis.com">
<link href="//hb.wpmucdn.com" rel="preconnect">
<link href="http://fonts.googleapis.com" rel="preconnect">
<link href="//fonts.gstatic.com" crossorigin="" rel="preconnect">
<link href="https://fonts.gstatic.com" crossorigin rel="preconnect">
<link rel="alternate" type="application/rss+xml" title="Appsembler &raquo; Feed" href="https://appsembler.com/feed/">
<link rel="alternate" type="application/rss+xml" title="Appsembler &raquo; Comments Feed" href="https://appsembler.com/comments/feed/">
<style id="wp-emoji-styles-inline-css" type="text/css">

	img.wp-smiley, img.emoji {
		display: inline !important;
		border: none !important;
		box-shadow: none !important;
		height: 1em !important;
		width: 1em !important;
		margin: 0 0.07em !important;
		vertical-align: -0.1em !important;
		background: none !important;
		padding: 0 !important;
	}
</style>
<link rel="stylesheet" id="wp-block-library-css" href="https://appsembler.com/wp-includes/css/dist/block-library/style.min.css?ver=6.8.3" type="text/css" media="all">
<style id="classic-theme-styles-inline-css" type="text/css">
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<link data-minify="1" rel="stylesheet" id="betterdocs-blocks-category-slate-layout-css" href="https://appsembler.com/wp-content/cache/min/1/wp-content/plugins/betterdocs/assets/blocks/category-slate-layout/default.css?ver=1772915991" type="text/css" media="all">
<style id="safe-svg-svg-icon-style-inline-css" type="text/css">
.safe-svg-cover{text-align:center}.safe-svg-cover .safe-svg-inside{display:inline-block;max-width:100%}.safe-svg-cover svg{fill:currentColor;height:100%;max-height:100%;max-width:100%;width:100%}

</style>
<link data-minify="1" rel="stylesheet" id="ultimate_blocks-cgb-style-css-css" href="https://appsembler.com/wp-content/cache/min/1/wp-content/plugins/ultimate-blocks/dist/blocks.style.build.css?ver=1772915991" type="text/css" media="all">
<style id="global-styles-inline-css" type="text/css">
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
</style>
<link data-minify="1" rel="stylesheet" id="ub-extension-style-css-css" href="https://appsembler.com/wp-content/cache/min/1/wp-content/plugins/ultimate-blocks/src/extensions/style.css?ver=1772915991" type="text/css" media="all">
<link data-minify="1" rel="stylesheet" id="appsembler-root-stylesheet-css" href="https://appsembler.com/wp-content/cache/min/1/wp-content/themes/wordpress-appsembler-theme/style.css?ver=1772915991" type="text/css" media="all">
<link rel="stylesheet" id="appsembler-main-stylesheet-css" href="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/css/main.min.css?ver=1773135174" type="text/css" media="all">
<link data-minify="1" rel="stylesheet" id="fontawesome-6-brands-css" href="https://appsembler.com/wp-content/cache/min/1/wp-content/themes/wordpress-appsembler-theme/assets/fontawesome/css/brands.min.css?ver=1772915991" type="text/css" media="all">
<link rel="stylesheet" id="fontawesome-6-fontawesome-css" href="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/fontawesome/css/fontawesome.min.css?ver=1773135174" type="text/css" media="all">
<link data-minify="1" rel="stylesheet" id="fontawesome-6-regular-css" href="https://appsembler.com/wp-content/cache/min/1/wp-content/themes/wordpress-appsembler-theme/assets/fontawesome/css/regular.min.css?ver=1772915991" type="text/css" media="all">
<link data-minify="1" rel="stylesheet" id="fontawesome-6-solid-css" href="https://appsembler.com/wp-content/cache/min/1/wp-content/themes/wordpress-appsembler-theme/assets/fontawesome/css/solid.min.css?ver=1772915991" type="text/css" media="all">
<link rel="stylesheet" id="fontawesome-6-4-shims-css" href="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/fontawesome/css/v4-shims.min.css?ver=1773135174" type="text/css" media="all">



<script type="text/javascript" class=" _iub_cs_skip" id="iubenda-head-inline-scripts-0">
/* <![CDATA[ */
            var _iub = _iub || [];
            _iub.csConfiguration ={"floatingPreferencesButtonDisplay":"bottom-right","lang":"en","siteId":"1203383","cookiePolicyId":"62035696","whitelabel":false,"banner":{"closeButtonDisplay":false,"position":"float-top-center","style":"dark"},"enableUspr":true,"enableGdpr":false,"countryDetection":true,"invalidateConsentWithoutLog":true}; 
/* ]]> */
</script>
<script data-minify="1" type="text/javascript" class=" _iub_cs_skip" src="https://appsembler.com/wp-content/cache/min/1/cs/gpp/stub.js?ver=1772915991" id="iubenda-head-scripts-0-js" defer></script>
<script data-minify="1" type="text/javascript" charset="UTF-8" async="" class=" _iub_cs_skip" src="https://appsembler.com/wp-content/cache/min/1/cs/iubenda_cs.js?ver=1772915991" id="iubenda-head-scripts-1-js"></script>
<script type="text/javascript" src="https://appsembler.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js" defer></script>
<script type="text/javascript" src="https://appsembler.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js" defer></script>
<script data-minify="1" type="text/javascript" src="https://appsembler.com/wp-content/cache/min/1/wp-content/themes/wordpress-appsembler-theme/assets/js/custom/jquery-compatibility-mode.js?ver=1772915991" id="jquery-compatibility-mode-js" defer></script>
<link rel="https://api.w.org/" href="https://appsembler.com/wp-json/">
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://appsembler.com/xmlrpc.php?rsd">
<meta name="generator" content="WordPress 6.8.3">
		<style type="text/css" id="wp-custom-css">
			.betterdocs-wrapper.betterdocs-single-wrapper {
	background-color: #fff !important;
}

.betterdocs-wrapper.betterdocs-single-wrapper .betterdocs-content-wrapper {
	max-width: 1440px;
}

.betterdocs-wrapper .betterdocs-search-form-wrapper:not(.betterdocs-elementor) {
	border-bottom: none;
}

.betterdocs-live-search .betterdocs-searchform {
	max-width: 445px;
	margin: 0 auto;
	border: 1px solid #c2c2c2;
	box-shadow: 0px 5px 15px rgba(140,129,129,0.16);
}

.betterdocs-live-search .betterdocs-searchform .betterdocs-search-field::placeholder {
	color: rgba(0,144,193,.75);
	font-weight: 500;
}

.betterdocs-search-heading h3.subheading {
	font-weight: 400;
	line-height: 24px;
}

.betterdocs-category-title:not(:has(a)) {
	line-height: 1.3 !important;
}

.betterdocs-searchform-input-wrap {
	padding: 0 14px;
}

.betterdocs-live-search .betterdocs-searchform .betterdocs-search-field {
	order: 1;
	padding-left: 0;
}

.betterdocs-searchform svg.docs-search-icon {
	order: 2;
	cursor: auto;
}

.betterdocs-live-search .docs-search-result li a {
	width: 100%;
}

.betterdocs-live-search .docs-search-result li a span {
	text-wrap: wrap;
}

.betterdocs-live-search .betterdocs-searchform .betterdocs-search-result-wrap .docs-search-result li a span.betterdocs-search-category:hover {
	color: #0090c1;
}

/* .betterdocs-category-icon-img {
	filter: brightness(0) saturate(100%) invert(61%) sepia(44%) saturate(2835%) hue-rotate(332deg) brightness(103%) contrast(102%);
} */

.betterdocs-wrapper.betterdocs-docs-archive-wrapper.betterdocs-category-layout-1 .betterdocs-footer a {
	font-weight: 700;
	letter-spacing: 1px;
}

.betterdocs-category-grid-wrapper .betterdocs-category-grid-inner-wrapper>.betterdocs-single-category-wrapper .betterdocs-single-category-inner {
	box-shadow: 0px 5px 15px rgba(140,129,129,0.16);
}

.betterdocs-ia-launcher-wrapper {
	width: fit-content;
}

@media only screen and (max-width: 767px) {
	.betterdocs-searchform-input-wrap {
		border: none !important;
		margin-bottom: 0 !important;
	}
}

@media only screen and (max-width: 767px) {
	.betterdocs-searchform .betterdocs-search-category {
		border: none !important;
	}
}

/* For code element */
code {
    background-color: #f4f4f4;
    border-radius: 0.2rem;
    color: inherit;
    font-size: 85%;
    padding: 0.1em 0.25em 0.1em 0.25em;
    text-decoration: none;
    white-space: nowrap;
}

/* For code block element */
pre.wp-block-code {
    background-color: #f4f4f4;
    border: 1px solid #ccc;
    border-radius: 5px;
    padding: 10px;
    overflow-x: auto;
}

.wp-block-table {
  margin-bottom: 3rem;
}
		</style>
		
    <!-- BEGIN - Make Tables Responsive -->
    <style type="text/css">
        
    /* Multi-row tables */
    @media (max-width: 650px) {

        .mtr-table tbody,
        .mtr-table {
        	width: 100% !important;
            display: table !important;
        }

        .mtr-table tr,
        .mtr-table .mtr-th-tag,
        .mtr-table .mtr-td-tag {
        	display: block !important;
            clear: both !important;
            height: auto !important;
        }

        .mtr-table .mtr-td-tag,
        .mtr-table .mtr-th-tag {
        	text-align: right !important;
            width: auto !important;
            box-sizing: border-box !important;
            overflow: auto !important;
        }
    
            .mtr-table .mtr-cell-content {
            	text-align: right !important;
            }
            
        .mtr-table tbody,
        .mtr-table tr,
        .mtr-table {
        	border: none !important;
            padding: 0 !important;
        }

        .mtr-table .mtr-td-tag,
        .mtr-table .mtr-th-tag {
        	border: none;
        }

        .mtr-table tr:nth-child(even) .mtr-td-tag,
        .mtr-table tr:nth-child(even) .mtr-th-tag {
            border-bottom: 1px solid #dddddd !important;
            border-left: 1px solid #dddddd !important;
            border-right: 1px solid #dddddd !important;
            border-top: none !important;
        }

        .mtr-table tr:nth-child(odd) .mtr-td-tag,
        .mtr-table tr:nth-child(odd) .mtr-th-tag {
            border-bottom: 1px solid #bbbbbb !important;
            border-left: 1px solid #bbbbbb !important;
            border-right: 1px solid #bbbbbb !important;
            border-top: none !important;
        }

        .mtr-table tr:first-of-type td:first-of-type,
        .mtr-table tr:first-of-type th:first-of-type {
            border-top: 1px solid #bbbbbb !important;
        }

        .mtr-table.mtr-thead-td tr:nth-of-type(2) td:first-child,
        .mtr-table.mtr-thead-td tr:nth-of-type(2) th:first-child,
        .mtr-table.mtr-tr-th tr:nth-of-type(2) td:first-child,
        .mtr-table.mtr-tr-th tr:nth-of-type(2) th:first-child,
        .mtr-table.mtr-tr-td tr:nth-of-type(2) td:first-child,
        .mtr-table.mtr-tr-td tr:nth-of-type(2) th:first-child {
            border-top: 1px solid #dddddd !important;
        }
            .mtr-table tr:nth-child(even),
            .mtr-table tr:nth-child(even) .mtr-td-tag,
            .mtr-table tr:nth-child(even) .mtr-th-tag {
                background: #ffffff !important;
            }

            .mtr-table tr:nth-child(odd),
            .mtr-table tr:nth-child(odd) .mtr-td-tag,
            .mtr-table tr:nth-child(odd) .mtr-th-tag {
                background: #dddddd !important;
            }
        .mtr-table .mtr-td-tag,
        .mtr-table .mtr-td-tag:first-child,
        .mtr-table .mtr-th-tag,
        .mtr-table .mtr-th-tag:first-child {
            padding: 5px 10px !important;
        }
        
        .mtr-table td[data-mtr-content]:before,
        .mtr-table th[data-mtr-content]:before {
        	display: inline-block !important;
        	content: attr(data-mtr-content) !important;
        	float: left !important;
            text-align: left !important;
            white-space: pre-line !important;
        }
        
        .mtr-table thead,
        .mtr-table.mtr-tr-th tr:first-of-type,
        .mtr-table.mtr-tr-td tr:first-of-type,
        .mtr-table colgroup {
        	display: none !important;
        }
    
        .mtr-cell-content {
            max-width: 49% !important;
            display: inline-block !important;
        }
            
        .mtr-table td[data-mtr-content]:before,
        .mtr-table th[data-mtr-content]:before {
            max-width: 49% !important;
        }
            
    }
    
    /* Single-row tables */
    @media (max-width: 650px) {

        .mtr-one-row-table .mtr-td-tag,
        .mtr-one-row-table .mtr-th-tag {
            box-sizing: border-box !important;
        }

        .mtr-one-row-table colgroup {
        	display: none !important;
        }

    
        .mtr-one-row-table tbody,
        .mtr-one-row-table tr,
        .mtr-one-row-table {
        	border: none !important;
            padding: 0 !important;
            width: 100% !important;
            display: block;
        }

        .mtr-one-row-table .mtr-td-tag,
        .mtr-one-row-table .mtr-th-tag {
            border: none;
        }
        
        .mtr-one-row-table .mtr-td-tag,
        .mtr-one-row-table .mtr-th-tag {
        	display: block !important;
            width: 50% !important;
        }
        .mtr-one-row-table tr {
            display: flex !important;
            flex-wrap: wrap !important;
        }
        
            .mtr-one-row-table td:nth-child(4n+1),
            .mtr-one-row-table th:nth-child(4n+1),
            .mtr-one-row-table td:nth-child(4n+2),
            .mtr-one-row-table th:nth-child(4n+2) {
                background: #dddddd !important;
            }

            .mtr-one-row-table th:nth-child(2n+1),
            .mtr-one-row-table td:nth-child(2n+1) {
                border-right: 1px solid #bbbbbb !important;
                border-left: 1px solid #bbbbbb !important;
            }

            .mtr-one-row-table td:nth-child(2n+2),
            .mtr-one-row-table th:nth-child(2n+2) {
                border-right: 1px solid #bbbbbb !important;
            }

            /* last two */
            .mtr-one-row-table td:nth-last-child(-n+2),
            .mtr-one-row-table th:nth-last-child(-n+2) {
                border-bottom: 1px solid #bbbbbb !important;
            }
            
        .mtr-one-row-table .mtr-td-tag,
        .mtr-one-row-table .mtr-th-tag {
            border-top: 1px solid #bbbbbb !important;
            padding: 5px 10px !important;
        }
        
    }
    </style>
    <!-- END - Make Tables Responsive -->
        <noscript><style id="rocket-lazyload-nojs-css">.rll-youtube-player, [data-lazy-src]{display:none !important;}</style></noscript>
</head>

<body class="blog wp-embed-responsive wp-theme-wordpress-appsembler-theme group-blog hfeed">
    <!-- Google Tag Manager (noscript) -->
    <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TSN9J9L" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
    <!-- End Google Tag Manager (noscript) -->

		<!-- top navigation -->
    		<header class="header" id="site-header">
      <nav class="nav" id="main-nav">
        <a href="https://appsembler.com/" class="nav__logo" id="header-logo-desktop" aria-label="Appsembler Logo">
          <img src="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/images/branding/appsembler-logo-positive.svg" alt="Appsembler logo">
        </a>

        <!-- Left side nav items -->
        <ul class="nav__left-nav">
																		<li class="nav__item submenu-exists">
								<span class="nav__item-title nav__item-title--submenu">
									Products								</span>
								<div class="nav__item-submenu">
                  <img class="nav__mobile-submenu-back-arrow" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Mobile nav back arrow" data-lazy-src="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/images/icons/navbar/icon-nav-mobile-back-arrow.svg"><noscript><img class="nav__mobile-submenu-back-arrow" src="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/images/icons/navbar/icon-nav-mobile-back-arrow.svg" alt="Mobile nav back arrow"></noscript>
																			<ul class="nav__item-submenu-group">
												<li class="nav__item-submenu-item">
													<a href="/products/tahoe/" class="nav__item-submenu-item-link">
																													<img class="item-icon" src="https://appsembler.com/wp-content/uploads/2023/08/Tahoe-icon-negative.svg" alt="">
																												<span class="item-title">
															Tahoe LMS														</span>
													</a>
												</li>
                                              <li class="nav__item-submenu-subtitle">
                          A bundled solution for delivering immersive learning experiences at scale.                        </li>
                      										</ul>
																			<ul class="nav__item-submenu-group">
												<li class="nav__item-submenu-item">
													<a href="/products/virtual-labs/" class="nav__item-submenu-item-link">
																													<img class="item-icon" src="https://appsembler.com/wp-content/uploads/2023/08/Virtual-Labs-icon-negative.svg" alt="">
																												<span class="item-title">
															Virtual Labs														</span>
													</a>
												</li>
                                              <li class="nav__item-submenu-subtitle">
                          Offer hands-on software experiences to learners, leads, customers, and developers.                        </li>
                      										</ul>
																	</div>
							</li>

																								<li class="nav__item submenu-exists">
								<span class="nav__item-title nav__item-title--submenu">
									Solutions								</span>
								<div class="nav__item-submenu">
                  <img class="nav__mobile-submenu-back-arrow" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Mobile nav back arrow" data-lazy-src="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/images/icons/navbar/icon-nav-mobile-back-arrow.svg"><noscript><img class="nav__mobile-submenu-back-arrow" src="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/images/icons/navbar/icon-nav-mobile-back-arrow.svg" alt="Mobile nav back arrow"></noscript>
																			<ul class="nav__item-submenu-group">
												<li class="nav__item-submenu-item">
													<a href="/solutions/appsembler-for-online-training/" class="nav__item-submenu-item-link">
																													<img class="item-icon" src="https://appsembler.com/wp-content/uploads/2023/08/icon-nav-appsembler-for-online-training-.svg" alt="">
																												<span class="item-title">
															Appsembler for Online Training														</span>
													</a>
												</li>
                                              <li class="nav__item-submenu-subtitle">
                          Appsembler for Online Training Deliver Self-Paced Courses at Scale                        </li>
                      										</ul>
																			<ul class="nav__item-submenu-group">
												<li class="nav__item-submenu-item">
													<a href="/solutions/appsembler-for-marketing/" class="nav__item-submenu-item-link">
																													<img class="item-icon" src="https://appsembler.com/wp-content/uploads/2023/08/icon-nav-appsembler-for-marketing.svg" alt="">
																												<span class="item-title">
															Appsembler for Marketing														</span>
													</a>
												</li>
                                              <li class="nav__item-submenu-subtitle">
                          Generate Leads and MQLs Through Education                        </li>
                      										</ul>
																			<ul class="nav__item-submenu-group">
												<li class="nav__item-submenu-item">
													<a href="/solutions/appsembler-for-developer-marketing/" class="nav__item-submenu-item-link">
																													<img class="item-icon" src="https://appsembler.com/wp-content/uploads/2023/08/icon-nav-appsembler-for-developer-marketing.svg" alt="">
																												<span class="item-title">
															Appsembler for Developer Marketing														</span>
													</a>
												</li>
                                              <li class="nav__item-submenu-subtitle">
                          More Registered Developers and Built Applications                        </li>
                      										</ul>
																			<ul class="nav__item-submenu-group">
												<li class="nav__item-submenu-item">
													<a href="/solutions/appsembler-for-developer-advocacy/" class="nav__item-submenu-item-link">
																													<img class="item-icon" src="https://appsembler.com/wp-content/uploads/2023/08/icon-nav-appsembler-for-developer-advocacy.svg" alt="">
																												<span class="item-title">
															Appsembler for Developer Advocacy														</span>
													</a>
												</li>
                                              <li class="nav__item-submenu-subtitle">
                          Reduce Developer Support Costs and Improve Product Usage                        </li>
                      										</ul>
																	</div>
							</li>

																								<li class="nav__item">
								<a href="/customers/" class="nav__item-title nav__item-title--link">Customers</a>
							</li>
																								<li class="nav__item submenu-exists">
								<span class="nav__item-title nav__item-title--submenu">
									Resources								</span>
								<div class="nav__item-submenu">
                  <img class="nav__mobile-submenu-back-arrow" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Mobile nav back arrow" data-lazy-src="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/images/icons/navbar/icon-nav-mobile-back-arrow.svg"><noscript><img class="nav__mobile-submenu-back-arrow" src="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/images/icons/navbar/icon-nav-mobile-back-arrow.svg" alt="Mobile nav back arrow"></noscript>
																			<ul class="nav__item-submenu-group">
												<li class="nav__item-submenu-item">
													<a href="/blog/" class="nav__item-submenu-item-link">
																													<img class="item-icon" src="https://appsembler.com/wp-content/uploads/2023/08/icon-nav-blog.svg" alt="">
																												<span class="item-title">
															Blog														</span>
													</a>
												</li>
                      										</ul>
																			<ul class="nav__item-submenu-group">
												<li class="nav__item-submenu-item">
													<a href="/ebooks/" class="nav__item-submenu-item-link">
																													<img class="item-icon" src="https://appsembler.com/wp-content/uploads/2024/02/icon-nav-ebooks-updated.svg" alt="">
																												<span class="item-title">
															E-books														</span>
													</a>
												</li>
                      										</ul>
																			<ul class="nav__item-submenu-group">
												<li class="nav__item-submenu-item">
													<a href="/webinars/" class="nav__item-submenu-item-link">
																													<img class="item-icon" src="https://appsembler.com/wp-content/uploads/2023/08/icon-nav-webinars.svg" alt="">
																												<span class="item-title">
															Webinars														</span>
													</a>
												</li>
                      										</ul>
																			<ul class="nav__item-submenu-group">
												<li class="nav__item-submenu-item">
													<a href="https://academy.appsembler.com/" class="nav__item-submenu-item-link">
																													<img class="item-icon" src="https://appsembler.com/wp-content/uploads/2023/08/icon-nav-academy.svg" alt="">
																												<span class="item-title">
															Academy														</span>
													</a>
												</li>
                      										</ul>
																			<ul class="nav__item-submenu-group">
												<li class="nav__item-submenu-item">
													<a href="/glossary/" class="nav__item-submenu-item-link">
																													<img class="item-icon" src="https://appsembler.com/wp-content/uploads/2023/08/icon-nav-glossary.svg" alt="">
																												<span class="item-title">
															Glossary														</span>
													</a>
												</li>
                      										</ul>
																			<ul class="nav__item-submenu-group">
												<li class="nav__item-submenu-item">
													<a href="/docs/" class="nav__item-submenu-item-link">
																													<img class="item-icon" src="https://appsembler.com/wp-content/uploads/2023/11/icon-nav-help.svg" alt="">
																												<span class="item-title">
															Help &amp; How-to														</span>
													</a>
												</li>
                      										</ul>
																			<ul class="nav__item-submenu-group">
												<li class="nav__item-submenu-item">
													<a href="/release-notes/" class="nav__item-submenu-item-link">
																													<img class="item-icon" src="https://appsembler.com/wp-content/uploads/2024/02/icon-nav-release-notes.svg" alt="">
																												<span class="item-title">
															Release Notes														</span>
													</a>
												</li>
                      										</ul>
																	</div>
							</li>

																								<li class="nav__item">
								<a href="/products/tahoe/pricing/" class="nav__item-title nav__item-title--link">Plans</a>
							</li>
																								<li class="nav__item submenu-exists">
								<span class="nav__item-title nav__item-title--submenu">
									About								</span>
								<div class="nav__item-submenu">
                  <img class="nav__mobile-submenu-back-arrow" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Mobile nav back arrow" data-lazy-src="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/images/icons/navbar/icon-nav-mobile-back-arrow.svg"><noscript><img class="nav__mobile-submenu-back-arrow" src="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/images/icons/navbar/icon-nav-mobile-back-arrow.svg" alt="Mobile nav back arrow"></noscript>
																			<ul class="nav__item-submenu-group">
												<li class="nav__item-submenu-item">
													<a href="/about/" class="nav__item-submenu-item-link">
																													<img class="item-icon" src="https://appsembler.com/wp-content/uploads/2023/08/icon-nav-about-us.svg" alt="">
																												<span class="item-title">
															About Us														</span>
													</a>
												</li>
                      										</ul>
																			<ul class="nav__item-submenu-group">
												<li class="nav__item-submenu-item">
													<a href="/about/careers/" class="nav__item-submenu-item-link">
																													<img class="item-icon" src="https://appsembler.com/wp-content/uploads/2023/08/icon-nav-careers.svg" alt="">
																												<span class="item-title">
															Careers														</span>
													</a>
												</li>
                      										</ul>
																			<ul class="nav__item-submenu-group">
												<li class="nav__item-submenu-item">
													<a href="/about/contact-us/" class="nav__item-submenu-item-link">
																													<img class="item-icon" src="https://appsembler.com/wp-content/uploads/2023/08/icon-nav-contact-us.svg" alt="">
																												<span class="item-title">
															Contact Us														</span>
													</a>
												</li>
                      										</ul>
																	</div>
							</li>

											
          <!-- Right side mobile nav items (display as left nav items) -->
                      <li class="nav__item nav__item--right-nav-mobile">
              <a href="tel:+1%20617-702-4331" class="nav__item-title nav__item-title--link ">
                              <img class="nav__item-mobile-icon" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Phone Icon" data-lazy-src="https://appsembler.com/wp-content/uploads/2023/09/icon-nav-phone.svg"><noscript><img class="nav__item-mobile-icon" src="https://appsembler.com/wp-content/uploads/2023/09/icon-nav-phone.svg" alt="Phone Icon"></noscript>
                            +1 617-702-4331</a>
            </li>
                      <li class="nav__item nav__item--right-nav-mobile">
              <a href="https://product-signup.appsembler.com/" class="nav__item-title nav__item-title--link menu-button">
                            Get Started</a>
            </li>
                  </ul>

        <!-- Right side nav items -->
				<ul class="nav__right-nav">
					            <li class="nav__item">
              <a href="tel:+1%20617-702-4331" class="nav__item-title nav__item-title--link ">+1 617-702-4331</a>
            </li>
					            <li class="nav__item">
              <a href="https://product-signup.appsembler.com/" class="nav__item-title nav__item-title--link menu-button">Get Started</a>
            </li>
					        </ul>

        <button class="nav__hamburger" id="nav-hamburger" role="button" aria-pressed="false" title="Nav Menu Toggle Button">
          <span class="toggle-bar"></span>
          <span class="toggle-bar"></span>
          <span class="toggle-bar"></span>
        </button>
      </nav>
    </header>
    		<!-- end of top navigation -->

		
<main class="main-content">
  

<section class="archive__top">
  <div class="archive__top-inner-container">
    <div class="archive__top-heading-container">
      <h1 class="archive__top-heading-big">Blog</h1>
      <h2 class="archive__top-heading-small">Blog</h2>
    </div>
    <p class="archive__top-text">Appsembler's blogs are your go-to source for insights and expertise on all things related to online learning, eLearning platforms, and digital education. Dive into a world of informative articles, tips, and best practices that cover the latest trends in online education, instructional design, and the power of technology in transforming learning experiences. Whether you're an educator, eLearning professional, or simply passionate about the future of education, Appsembler's blogs provide valuable content to keep you informed and inspired in the ever-evolving world of online learning.</p>
    
<form class="form form--search-filter" role="search" method="get" id="searchform" action="https://appsembler.com/">
  <label class="form__label form__label--sr-only" for="s">Search</label>
  <input type="hidden" name="post_type" value="post">  <input type="text" value="" name="s" id="s" class="form__input form__input--search-filter" placeholder="Search">
  <button type="submit" id="searchsubmit" value="Search" class="form__button form__button--search-filter"></button>
</form>
  </div>
</section>
  <section class="section section--white">
    <div class="section__inner-container section__inner-container--white">
      <div class="blog--listing__group__header">
        <h4 class="listing-type">All articles</h4>
      </div>

      <!-- Begin the loop and display all posts in their original order -->
      
        <div class="cards">
          
<div class="card card--posts">
  <div class="card__section card__section--top">
    <div class="card__container card__container--thumbnail-image-posts">
      <a href="https://appsembler.com/blog/deploying-open-edx-with-google-cloud-build/">
        <img width="300" height="169" src="https://appsembler.com/wp-content/uploads/2020/02/Deploying-Open-edX-with-Google-Cloud-Build-How-to-Guide-300x169.png" class="card__image card__image--posts wp-post-image" alt="Learn how to deploy Open edX on Google Cloud using Google Cloud Build, with steps for Docker, Kubernetes, and best practices for scaling." decoding="async" fetchpriority="high" srcset="https://appsembler.com/wp-content/uploads/2020/02/Deploying-Open-edX-with-Google-Cloud-Build-How-to-Guide-300x169.png 300w, https://appsembler.com/wp-content/uploads/2020/02/Deploying-Open-edX-with-Google-Cloud-Build-How-to-Guide-1024x576.png 1024w, https://appsembler.com/wp-content/uploads/2020/02/Deploying-Open-edX-with-Google-Cloud-Build-How-to-Guide-768x432.png 768w, https://appsembler.com/wp-content/uploads/2020/02/Deploying-Open-edX-with-Google-Cloud-Build-How-to-Guide-1536x864.png 1536w, https://appsembler.com/wp-content/uploads/2020/02/Deploying-Open-edX-with-Google-Cloud-Build-How-to-Guide-2048x1152.png 2048w, https://appsembler.com/wp-content/uploads/2020/02/Deploying-Open-edX-with-Google-Cloud-Build-How-to-Guide-360x203.png 360w" sizes="(max-width: 300px) 100vw, 300px">      </a>
    </div>
    <div class="card__container card__container--content-posts">
      <div class="card__info card__info--most-popular-primary">
        
  <a class="card__text card__text--category" href="https://appsembler.com/blog/category/technical/">TECHNICAL</a>
        <span class="card__text card__text--date-time">October 15, 2024 &middot; 22 min read</span>
      </div>
      <h2 class="card__heading"><a href="https://appsembler.com/blog/deploying-open-edx-with-google-cloud-build/">Deploying Open edX with Google Cloud Build: How to Guide</a></h2>
      <p class="card__text card__text--description">
        <a class="card__text card__text--excerpt" href="https://appsembler.com/blog/deploying-open-edx-with-google-cloud-build/">
          In this article, we&rsquo;ll walk you through the process of deploying Open edX on Google Cloud using Google Cloud Build.&hellip;        </a>
      </p>
    </div>
  </div>
  <div class="card__container card__container--author">
    <div class="card__container card__container--author-image">
    <a href="https://appsembler.com/blog/author/appsembler/">
        <img class="card__image card__image--author" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Author" data-lazy-src="https://secure.gravatar.com/avatar/938192307e2c1fb7d2fbc2155dffa0c5367c9fe6331d77fc3b2975efb78b0d0b?s=96&amp;d=404&amp;r=g"><noscript><img class="card__image card__image--author" src="https://secure.gravatar.com/avatar/938192307e2c1fb7d2fbc2155dffa0c5367c9fe6331d77fc3b2975efb78b0d0b?s=96&amp;d=404&amp;r=g" alt="Author"></noscript>
    </a>
    </div>
    <a class="card__text card__text--author" href="https://appsembler.com/blog/author/appsembler/">Appsembler</a>
  </div>
</div>

<div class="card card--posts">
  <div class="card__section card__section--top">
    <div class="card__container card__container--thumbnail-image-posts">
      <a href="https://appsembler.com/blog/learn-appsembler-apis/">
        <img width="300" height="169" src="https://appsembler.com/wp-content/uploads/2019/07/Unlock-the-Power-of-Appsemblers-Tahoe-APIs-300x169.png" class="card__image card__image--posts wp-post-image" alt="Discover how Tahoe APIs enhance Open edX with automation, customization, and seamless LMS integration for a better eLearning experience." decoding="async" srcset="https://appsembler.com/wp-content/uploads/2019/07/Unlock-the-Power-of-Appsemblers-Tahoe-APIs-300x169.png 300w, https://appsembler.com/wp-content/uploads/2019/07/Unlock-the-Power-of-Appsemblers-Tahoe-APIs-1024x576.png 1024w, https://appsembler.com/wp-content/uploads/2019/07/Unlock-the-Power-of-Appsemblers-Tahoe-APIs-768x432.png 768w, https://appsembler.com/wp-content/uploads/2019/07/Unlock-the-Power-of-Appsemblers-Tahoe-APIs-1536x864.png 1536w, https://appsembler.com/wp-content/uploads/2019/07/Unlock-the-Power-of-Appsemblers-Tahoe-APIs-2048x1152.png 2048w, https://appsembler.com/wp-content/uploads/2019/07/Unlock-the-Power-of-Appsemblers-Tahoe-APIs-360x203.png 360w" sizes="(max-width: 300px) 100vw, 300px">      </a>
    </div>
    <div class="card__container card__container--content-posts">
      <div class="card__info card__info--most-popular-primary">
        
  <a class="card__text card__text--category" href="https://appsembler.com/blog/category/technical/">TECHNICAL</a>
        <span class="card__text card__text--date-time">October 14, 2024 &middot; 27 min read</span>
      </div>
      <h2 class="card__heading"><a href="https://appsembler.com/blog/learn-appsembler-apis/">Unlock the Power of Appsembler&rsquo;s Tahoe APIs</a></h2>
      <p class="card__text card__text--description">
        <a class="card__text card__text--excerpt" href="https://appsembler.com/blog/learn-appsembler-apis/">
          In this article, we&rsquo;ll explore how APIs (Application Programming Interfaces) are transforming Learning Management Systems (LMS), specifically within the Open&hellip;        </a>
      </p>
    </div>
  </div>
  <div class="card__container card__container--author">
    <div class="card__container card__container--author-image">
    <a href="https://appsembler.com/blog/author/appsembler/">
        <img class="card__image card__image--author" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Author" data-lazy-src="https://secure.gravatar.com/avatar/938192307e2c1fb7d2fbc2155dffa0c5367c9fe6331d77fc3b2975efb78b0d0b?s=96&amp;d=404&amp;r=g"><noscript><img class="card__image card__image--author" src="https://secure.gravatar.com/avatar/938192307e2c1fb7d2fbc2155dffa0c5367c9fe6331d77fc3b2975efb78b0d0b?s=96&amp;d=404&amp;r=g" alt="Author"></noscript>
    </a>
    </div>
    <a class="card__text card__text--author" href="https://appsembler.com/blog/author/appsembler/">Appsembler</a>
  </div>
</div>

<div class="card card--posts">
  <div class="card__section card__section--top">
    <div class="card__container card__container--thumbnail-image-posts">
      <a href="https://appsembler.com/blog/benefits-of-contributing-to-open-source-projects/">
        <img width="300" height="169" src="https://appsembler.com/wp-content/uploads/2019/06/Benefits-of-Contributing-to-Open-Source-Projects-300x169.png" class="card__image card__image--posts wp-post-image" alt="Discover the benefits of contributing to open-source projects, including skill development, networking, recognition, and career growth." decoding="async" srcset="https://appsembler.com/wp-content/uploads/2019/06/Benefits-of-Contributing-to-Open-Source-Projects-300x169.png 300w, https://appsembler.com/wp-content/uploads/2019/06/Benefits-of-Contributing-to-Open-Source-Projects-1024x576.png 1024w, https://appsembler.com/wp-content/uploads/2019/06/Benefits-of-Contributing-to-Open-Source-Projects-768x432.png 768w, https://appsembler.com/wp-content/uploads/2019/06/Benefits-of-Contributing-to-Open-Source-Projects-1536x864.png 1536w, https://appsembler.com/wp-content/uploads/2019/06/Benefits-of-Contributing-to-Open-Source-Projects-2048x1152.png 2048w, https://appsembler.com/wp-content/uploads/2019/06/Benefits-of-Contributing-to-Open-Source-Projects-360x203.png 360w" sizes="(max-width: 300px) 100vw, 300px">      </a>
    </div>
    <div class="card__container card__container--content-posts">
      <div class="card__info card__info--most-popular-primary">
        
  <a class="card__text card__text--category" href="https://appsembler.com/blog/category/business/">BUSINESS</a>
        <span class="card__text card__text--date-time">October 12, 2024 &middot; 24 min read</span>
      </div>
      <h2 class="card__heading"><a href="https://appsembler.com/blog/benefits-of-contributing-to-open-source-projects/">Benefits of Contributing to Open Source Projects</a></h2>
      <p class="card__text card__text--description">
        <a class="card__text card__text--excerpt" href="https://appsembler.com/blog/benefits-of-contributing-to-open-source-projects/">
          Contributing to open source projects offers numerous benefits for developers, instructional designers, and professionals in tech. This article explores how&hellip;        </a>
      </p>
    </div>
  </div>
  <div class="card__container card__container--author">
    <div class="card__container card__container--author-image">
    <a href="https://appsembler.com/blog/author/abe/">
        <img class="card__image card__image--author" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Author" data-lazy-src="https://secure.gravatar.com/avatar/4b16be4de713a80f9c74ffb6a6c16767c856fe474fd562ded2d2236dacfc0307?s=96&amp;d=404&amp;r=g"><noscript><img class="card__image card__image--author" src="https://secure.gravatar.com/avatar/4b16be4de713a80f9c74ffb6a6c16767c856fe474fd562ded2d2236dacfc0307?s=96&amp;d=404&amp;r=g" alt="Author"></noscript>
    </a>
    </div>
    <a class="card__text card__text--author" href="https://appsembler.com/blog/author/abe/">Abe Dearmer</a>
  </div>
</div>

<div class="card card--posts">
  <div class="card__section card__section--top">
    <div class="card__container card__container--thumbnail-image-posts">
      <a href="https://appsembler.com/blog/software-learning/">
        <img width="300" height="169" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20300%20169'%3E%3C/svg%3E" class="card__image card__image--posts wp-post-image" alt="Discover how virtual training labs revolutionize software learning with hands-on, scalable, and cost-effective solutions for modern teams." decoding="async" data-lazy-srcset="https://appsembler.com/wp-content/uploads/2019/05/The-Future-of-Software-Learning-Virtual-Training-Labs-300x169.png 300w, https://appsembler.com/wp-content/uploads/2019/05/The-Future-of-Software-Learning-Virtual-Training-Labs-1024x576.png 1024w, https://appsembler.com/wp-content/uploads/2019/05/The-Future-of-Software-Learning-Virtual-Training-Labs-768x432.png 768w, https://appsembler.com/wp-content/uploads/2019/05/The-Future-of-Software-Learning-Virtual-Training-Labs-1536x864.png 1536w, https://appsembler.com/wp-content/uploads/2019/05/The-Future-of-Software-Learning-Virtual-Training-Labs-2048x1152.png 2048w, https://appsembler.com/wp-content/uploads/2019/05/The-Future-of-Software-Learning-Virtual-Training-Labs-360x203.png 360w" data-lazy-sizes="(max-width: 300px) 100vw, 300px" data-lazy-src="https://appsembler.com/wp-content/uploads/2019/05/The-Future-of-Software-Learning-Virtual-Training-Labs-300x169.png"><noscript><img width="300" height="169" src="https://appsembler.com/wp-content/uploads/2019/05/The-Future-of-Software-Learning-Virtual-Training-Labs-300x169.png" class="card__image card__image--posts wp-post-image" alt="Discover how virtual training labs revolutionize software learning with hands-on, scalable, and cost-effective solutions for modern teams." decoding="async" srcset="https://appsembler.com/wp-content/uploads/2019/05/The-Future-of-Software-Learning-Virtual-Training-Labs-300x169.png 300w, https://appsembler.com/wp-content/uploads/2019/05/The-Future-of-Software-Learning-Virtual-Training-Labs-1024x576.png 1024w, https://appsembler.com/wp-content/uploads/2019/05/The-Future-of-Software-Learning-Virtual-Training-Labs-768x432.png 768w, https://appsembler.com/wp-content/uploads/2019/05/The-Future-of-Software-Learning-Virtual-Training-Labs-1536x864.png 1536w, https://appsembler.com/wp-content/uploads/2019/05/The-Future-of-Software-Learning-Virtual-Training-Labs-2048x1152.png 2048w, https://appsembler.com/wp-content/uploads/2019/05/The-Future-of-Software-Learning-Virtual-Training-Labs-360x203.png 360w" sizes="(max-width: 300px) 100vw, 300px"></noscript>      </a>
    </div>
    <div class="card__container card__container--content-posts">
      <div class="card__info card__info--most-popular-primary">
        
  <a class="card__text card__text--category" href="https://appsembler.com/blog/category/business/">BUSINESS</a>
        <span class="card__text card__text--date-time">October 12, 2024 &middot; 24 min read</span>
      </div>
      <h2 class="card__heading"><a href="https://appsembler.com/blog/software-learning/">The Future of Software Learning: Virtual Training Labs</a></h2>
      <p class="card__text card__text--description">
        <a class="card__text card__text--excerpt" href="https://appsembler.com/blog/software-learning/">
          Software learning is evolving rapidly, and organizations are turning to innovative solutions like virtual training labs to keep pace with&hellip;        </a>
      </p>
    </div>
  </div>
  <div class="card__container card__container--author">
    <div class="card__container card__container--author-image">
    <a href="https://appsembler.com/blog/author/abe/">
        <img class="card__image card__image--author" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Author" data-lazy-src="https://secure.gravatar.com/avatar/4b16be4de713a80f9c74ffb6a6c16767c856fe474fd562ded2d2236dacfc0307?s=96&amp;d=404&amp;r=g"><noscript><img class="card__image card__image--author" src="https://secure.gravatar.com/avatar/4b16be4de713a80f9c74ffb6a6c16767c856fe474fd562ded2d2236dacfc0307?s=96&amp;d=404&amp;r=g" alt="Author"></noscript>
    </a>
    </div>
    <a class="card__text card__text--author" href="https://appsembler.com/blog/author/abe/">Abe Dearmer</a>
  </div>
</div>

<div class="card card--posts">
  <div class="card__section card__section--top">
    <div class="card__container card__container--thumbnail-image-posts">
      <a href="https://appsembler.com/blog/virtual-lab-environment-supercharge-sales-strategy/">
        <img width="300" height="169" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20300%20169'%3E%3C/svg%3E" class="card__image card__image--posts wp-post-image" alt="Discover 4 ways virtual lab environments can enhance sales strategy with hands-on training, interactive demos, and data-driven insights." decoding="async" data-lazy-srcset="https://appsembler.com/wp-content/uploads/2019/05/4-Ways-Virtual-Lab-Environments-Can-Supercharge-Your-Sales-Strategy-300x169.png 300w, https://appsembler.com/wp-content/uploads/2019/05/4-Ways-Virtual-Lab-Environments-Can-Supercharge-Your-Sales-Strategy-1024x576.png 1024w, https://appsembler.com/wp-content/uploads/2019/05/4-Ways-Virtual-Lab-Environments-Can-Supercharge-Your-Sales-Strategy-768x432.png 768w, https://appsembler.com/wp-content/uploads/2019/05/4-Ways-Virtual-Lab-Environments-Can-Supercharge-Your-Sales-Strategy-1536x864.png 1536w, https://appsembler.com/wp-content/uploads/2019/05/4-Ways-Virtual-Lab-Environments-Can-Supercharge-Your-Sales-Strategy-2048x1152.png 2048w, https://appsembler.com/wp-content/uploads/2019/05/4-Ways-Virtual-Lab-Environments-Can-Supercharge-Your-Sales-Strategy-360x203.png 360w" data-lazy-sizes="(max-width: 300px) 100vw, 300px" data-lazy-src="https://appsembler.com/wp-content/uploads/2019/05/4-Ways-Virtual-Lab-Environments-Can-Supercharge-Your-Sales-Strategy-300x169.png"><noscript><img width="300" height="169" src="https://appsembler.com/wp-content/uploads/2019/05/4-Ways-Virtual-Lab-Environments-Can-Supercharge-Your-Sales-Strategy-300x169.png" class="card__image card__image--posts wp-post-image" alt="Discover 4 ways virtual lab environments can enhance sales strategy with hands-on training, interactive demos, and data-driven insights." decoding="async" srcset="https://appsembler.com/wp-content/uploads/2019/05/4-Ways-Virtual-Lab-Environments-Can-Supercharge-Your-Sales-Strategy-300x169.png 300w, https://appsembler.com/wp-content/uploads/2019/05/4-Ways-Virtual-Lab-Environments-Can-Supercharge-Your-Sales-Strategy-1024x576.png 1024w, https://appsembler.com/wp-content/uploads/2019/05/4-Ways-Virtual-Lab-Environments-Can-Supercharge-Your-Sales-Strategy-768x432.png 768w, https://appsembler.com/wp-content/uploads/2019/05/4-Ways-Virtual-Lab-Environments-Can-Supercharge-Your-Sales-Strategy-1536x864.png 1536w, https://appsembler.com/wp-content/uploads/2019/05/4-Ways-Virtual-Lab-Environments-Can-Supercharge-Your-Sales-Strategy-2048x1152.png 2048w, https://appsembler.com/wp-content/uploads/2019/05/4-Ways-Virtual-Lab-Environments-Can-Supercharge-Your-Sales-Strategy-360x203.png 360w" sizes="(max-width: 300px) 100vw, 300px"></noscript>      </a>
    </div>
    <div class="card__container card__container--content-posts">
      <div class="card__info card__info--most-popular-primary">
        
  <a class="card__text card__text--category" href="https://appsembler.com/blog/category/business/">BUSINESS</a>
        <span class="card__text card__text--date-time">September 17, 2024 &middot; 19 min read</span>
      </div>
      <h2 class="card__heading"><a href="https://appsembler.com/blog/virtual-lab-environment-supercharge-sales-strategy/">4 Ways Virtual Lab Environments Can Supercharge Your Sales Strategy</a></h2>
      <p class="card__text card__text--description">
        <a class="card__text card__text--excerpt" href="https://appsembler.com/blog/virtual-lab-environment-supercharge-sales-strategy/">
          In today&rsquo;s competitive sales environment, virtual lab environments are proving to be powerful tools that can significantly enhance your sales&hellip;        </a>
      </p>
    </div>
  </div>
  <div class="card__container card__container--author">
    <div class="card__container card__container--author-image">
    <a href="https://appsembler.com/blog/author/abe/">
        <img class="card__image card__image--author" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Author" data-lazy-src="https://secure.gravatar.com/avatar/4b16be4de713a80f9c74ffb6a6c16767c856fe474fd562ded2d2236dacfc0307?s=96&amp;d=404&amp;r=g"><noscript><img class="card__image card__image--author" src="https://secure.gravatar.com/avatar/4b16be4de713a80f9c74ffb6a6c16767c856fe474fd562ded2d2236dacfc0307?s=96&amp;d=404&amp;r=g" alt="Author"></noscript>
    </a>
    </div>
    <a class="card__text card__text--author" href="https://appsembler.com/blog/author/abe/">Abe Dearmer</a>
  </div>
</div>

<div class="card card--posts">
  <div class="card__section card__section--top">
    <div class="card__container card__container--thumbnail-image-posts">
      <a href="https://appsembler.com/blog/riff-learning-lti-open-edx/">
        <img width="300" height="169" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20300%20169'%3E%3C/svg%3E" class="card__image card__image--posts wp-post-image" alt="How Riff Learning used LTI and Open edX to deliver a seamless learner experience" decoding="async" data-lazy-srcset="https://appsembler.com/wp-content/uploads/2019/05/How-Riff-Learning-used-LTI-and-Open-edX-to-deliver-a-seamless-learner-experience-300x169.png 300w, https://appsembler.com/wp-content/uploads/2019/05/How-Riff-Learning-used-LTI-and-Open-edX-to-deliver-a-seamless-learner-experience-1024x576.png 1024w, https://appsembler.com/wp-content/uploads/2019/05/How-Riff-Learning-used-LTI-and-Open-edX-to-deliver-a-seamless-learner-experience-768x432.png 768w, https://appsembler.com/wp-content/uploads/2019/05/How-Riff-Learning-used-LTI-and-Open-edX-to-deliver-a-seamless-learner-experience-1536x864.png 1536w, https://appsembler.com/wp-content/uploads/2019/05/How-Riff-Learning-used-LTI-and-Open-edX-to-deliver-a-seamless-learner-experience-2048x1152.png 2048w, https://appsembler.com/wp-content/uploads/2019/05/How-Riff-Learning-used-LTI-and-Open-edX-to-deliver-a-seamless-learner-experience-360x203.png 360w" data-lazy-sizes="(max-width: 300px) 100vw, 300px" data-lazy-src="https://appsembler.com/wp-content/uploads/2019/05/How-Riff-Learning-used-LTI-and-Open-edX-to-deliver-a-seamless-learner-experience-300x169.png"><noscript><img width="300" height="169" src="https://appsembler.com/wp-content/uploads/2019/05/How-Riff-Learning-used-LTI-and-Open-edX-to-deliver-a-seamless-learner-experience-300x169.png" class="card__image card__image--posts wp-post-image" alt="How Riff Learning used LTI and Open edX to deliver a seamless learner experience" decoding="async" srcset="https://appsembler.com/wp-content/uploads/2019/05/How-Riff-Learning-used-LTI-and-Open-edX-to-deliver-a-seamless-learner-experience-300x169.png 300w, https://appsembler.com/wp-content/uploads/2019/05/How-Riff-Learning-used-LTI-and-Open-edX-to-deliver-a-seamless-learner-experience-1024x576.png 1024w, https://appsembler.com/wp-content/uploads/2019/05/How-Riff-Learning-used-LTI-and-Open-edX-to-deliver-a-seamless-learner-experience-768x432.png 768w, https://appsembler.com/wp-content/uploads/2019/05/How-Riff-Learning-used-LTI-and-Open-edX-to-deliver-a-seamless-learner-experience-1536x864.png 1536w, https://appsembler.com/wp-content/uploads/2019/05/How-Riff-Learning-used-LTI-and-Open-edX-to-deliver-a-seamless-learner-experience-2048x1152.png 2048w, https://appsembler.com/wp-content/uploads/2019/05/How-Riff-Learning-used-LTI-and-Open-edX-to-deliver-a-seamless-learner-experience-360x203.png 360w" sizes="(max-width: 300px) 100vw, 300px"></noscript>      </a>
    </div>
    <div class="card__container card__container--content-posts">
      <div class="card__info card__info--most-popular-primary">
        
  <a class="card__text card__text--category" href="https://appsembler.com/blog/category/business/">BUSINESS</a>
        <span class="card__text card__text--date-time">September 17, 2024 &middot; 25 min read</span>
      </div>
      <h2 class="card__heading"><a href="https://appsembler.com/blog/riff-learning-lti-open-edx/">How Riff Learning used LTI and Open edX to deliver a seamless learner experience</a></h2>
      <p class="card__text card__text--description">
        <a class="card__text card__text--excerpt" href="https://appsembler.com/blog/riff-learning-lti-open-edx/">
          In this article, we explore how Riff Learning used Learning Tools Interoperability (LTI) with Open edX to create a seamless&hellip;        </a>
      </p>
    </div>
  </div>
  <div class="card__container card__container--author">
    <div class="card__container card__container--author-image">
    <a href="https://appsembler.com/blog/author/abe/">
        <img class="card__image card__image--author" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Author" data-lazy-src="https://secure.gravatar.com/avatar/4b16be4de713a80f9c74ffb6a6c16767c856fe474fd562ded2d2236dacfc0307?s=96&amp;d=404&amp;r=g"><noscript><img class="card__image card__image--author" src="https://secure.gravatar.com/avatar/4b16be4de713a80f9c74ffb6a6c16767c856fe474fd562ded2d2236dacfc0307?s=96&amp;d=404&amp;r=g" alt="Author"></noscript>
    </a>
    </div>
    <a class="card__text card__text--author" href="https://appsembler.com/blog/author/abe/">Abe Dearmer</a>
  </div>
</div>
        </div>

        
	<nav class="navigation list--pagination" aria-label="Posts pagination">
		<h2 class="screen-reader-text">Posts pagination</h2>
		<div class="nav-links">
<span aria-current="page" class="page-numbers current">1</span>
<a class="page-numbers" href="https://appsembler.com/blog/page/2/">2</a>
<span class="page-numbers dots">&hellip;</span>
<a class="page-numbers" href="https://appsembler.com/blog/page/32/">32</a>
<a class="next page-numbers" href="https://appsembler.com/blog/page/2/">Next</a>
</div>
	</nav>
            </div>
  </section>
  
<section class="banner banner--rounded">
	<div class="banner__inner-container">
    <div class="banner__content-container">
      <h3 class="banner__preheading">GET STARTED NOW</h3>
      <h2 class="banner__heading">See the difference with the <span>leading</span> experiential learning platform</h2>
    </div>
    <a href="https://appsembler.com/request-product-demo/" class="button button--orange">Get Started</a>
	</div>
</section>
</main>

<!-- footer section -->
<footer class="footer">
    <div class="footer__top">
    <ul class="footer__logo-section">
      <li class="footer__main-logo">
        <a href="https://appsembler.com/" aria-label="Appsembler Logo"><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Appsembler logo" data-lazy-src="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/images/branding/appsembler-icon-positive.svg"><noscript><img src="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/images/branding/appsembler-icon-positive.svg" alt="Appsembler logo"></noscript></a>
      </li>
      <!-- <li class="footer__separator">
      </li>
      <li class="footer__certificate">
      </li> -->
    </ul>
          <div style="order:3" class="footer__menu-group">
        <div class="footer__menu-group-heading-container">
          <h3 class="footer__menu-group-heading">
            Appsembler          </h3>
        </div>
                <div class="footer__menu-group-items-container">
          <ul class="footer__menu-group-items">
                      <li class="footer__menu-group-item">
              <a href="/about/" class="footer__menu-group-item-link">About Us</a>
            </li>
                      <li class="footer__menu-group-item">
              <a href="/customers/" class="footer__menu-group-item-link">Customers</a>
            </li>
                      <li class="footer__menu-group-item">
              <a href="/about/careers/" class="footer__menu-group-item-link">Careers</a>
            </li>
                      <li class="footer__menu-group-item">
              <a href="/security/" class="footer__menu-group-item-link">Security</a>
            </li>
                    </ul>
        </div>
              </div>
          <div style="order:4" class="footer__menu-group">
        <div class="footer__menu-group-heading-container">
          <h3 class="footer__menu-group-heading">
            Resources          </h3>
        </div>
                <div class="footer__menu-group-items-container">
          <ul class="footer__menu-group-items">
                      <li class="footer__menu-group-item">
              <a href="/blog/" class="footer__menu-group-item-link">Blog</a>
            </li>
                      <li class="footer__menu-group-item">
              <a href="/ebooks/" class="footer__menu-group-item-link">E-books</a>
            </li>
                      <li class="footer__menu-group-item">
              <a href="/webinars/" class="footer__menu-group-item-link">Webinars</a>
            </li>
                      <li class="footer__menu-group-item">
              <a href="https://academy.appsembler.com/?_ga=2.202062420.493344411.1702269617-337759961.1696850968" class="footer__menu-group-item-link">Academy</a>
            </li>
                      <li class="footer__menu-group-item">
              <a href="/glossary/" class="footer__menu-group-item-link">Glossary</a>
            </li>
                      <li class="footer__menu-group-item">
              <a href="/docs/" class="footer__menu-group-item-link">Help &amp; How-to</a>
            </li>
                      <li class="footer__menu-group-item">
              <a href="/release-notes/" class="footer__menu-group-item-link">Release Notes</a>
            </li>
                    </ul>
        </div>
              </div>
          <div style="order:5" class="footer__menu-group">
        <div class="footer__menu-group-heading-container">
          <h3 class="footer__menu-group-heading">
            Solutions          </h3>
        </div>
                <div class="footer__menu-group-items-container">
          <ul class="footer__menu-group-items">
                      <li class="footer__menu-group-item">
              <a href="/solutions/appsembler-for-online-training/" class="footer__menu-group-item-link">For Online Training</a>
            </li>
                      <li class="footer__menu-group-item">
              <a href="/solutions/appsembler-for-marketing/" class="footer__menu-group-item-link">For Marketing</a>
            </li>
                      <li class="footer__menu-group-item">
              <a href="/solutions/appsembler-for-developer-marketing/" class="footer__menu-group-item-link">For Developer Marketing</a>
            </li>
                      <li class="footer__menu-group-item">
              <a href="/solutions/appsembler-for-developer-advocacy/" class="footer__menu-group-item-link">For Developer Advocacy</a>
            </li>
                    </ul>
        </div>
              </div>
          <div style="order:6" class="footer__menu-group">
        <div class="footer__menu-group-heading-container">
          <h3 class="footer__menu-group-heading">
            Contact          </h3>
        </div>
                <div class="footer__menu-group-items-container">
          <ul class="footer__menu-group-items">
                      <li class="footer__menu-group-item">
              <a href="/request-product-demo/" class="footer__menu-group-item-link">Schedule a Demo</a>
            </li>
                      <li class="footer__menu-group-item">
              <a href="/about/contact-us/" class="footer__menu-group-item-link">Contact Us</a>
            </li>
                    </ul>
        </div>
              </div>
        <div class="footer__newsletter">
      <h3 class="footer__newsletter-heading">Signup for our newsletter</h3>
      <p class="footer__newsletter-text">Development news, tutorials and tips about Appsembler products and Open edX. Enter your email below to subscribe!</p>
      <!-- Begin Mailchimp Signup Form -->
      <div id="mc_embed_signup">
        <form action="https://appsembler.us1.list-manage.com/subscribe?u=cd9e18f659a2d89263cbef294&amp;id=dcf8bd459c" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_self">
          <div id="mc_embed_signup_scroll">
            <div class="mc-field-group">
              <label for="mce-EMAIL" class="sr-only">Email Address</label>
              <input type="email" value="" name="EMAIL" class="required email" id="mce-EMAIL" placeholder="Enter your email" required>
              <span id="mce-EMAIL-HELPERTEXT" class="helper_text"></span>
            </div>
            <div id="mce-responses" class="clear">
              <div class="response" id="mce-error-response" style="display:none"></div>
              <div class="response" id="mce-success-response" style="display:none"></div>
            </div>    <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
            <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_cd9e18f659a2d89263cbef294_f40eafdfc7" tabindex="-1" value=""></div>
            <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
          </div>
        </form>
      </div>
      <!--End mc_embed_signup-->
    </div>
    <!-- <div class="footer__certificate footer__certificate--mobile">
    </div> -->
  </div>
    <div class="footer__bottom">
    <div class="footer__bottom-items">
              <ul class="footer__bottom-items-container">
                  <li class="footer__bottom-item">
            <a href="https://www.iubenda.com/terms-and-conditions/62035696">Terms of Use</a>
          </li>
                  <li class="footer__bottom-item">
            <a href="https://www.iubenda.com/privacy-policy/62035696">Privacy Policy</a>
          </li>
                  <li class="footer__bottom-item">
            <a href="/msa/">MSA</a>
          </li>
                </ul>
            <span class="footer__bottom-copyright">edX and Open edX are registered trademarks of edX LLC. All Rights Reserved. &copy; Appsembler 2026. All Rights Reserved.</span>
    </div>
          <ul class="footer__bottom-socials">
              <li class="footer__socials-icon">
          <a href="https://www.linkedin.com/company/appsembler" target="_blank" aria-label="linkedin icon">
            <i class="fa-brands fa-linkedin"></i>
          </a>
        </li>
              <li class="footer__socials-icon">
          <a href="https://www.youtube.com/appsembler" target="_blank" aria-label="square-youtube icon">
            <i class="fa-brands fa-square-youtube"></i>
          </a>
        </li>
              <li class="footer__socials-icon">
          <a href="https://github.com/appsembler" target="_blank" aria-label="github icon">
            <i class="fa-brands fa-github"></i>
          </a>
        </li>
              <li class="footer__socials-icon">
          <a href="https://x.com/appsembler" target="_blank" aria-label="square-x-twitter icon">
            <i class="fa-brands fa-square-x-twitter"></i>
          </a>
        </li>
              <li class="footer__socials-icon">
          <a href="https://www.facebook.com/appsembler" target="_blank" aria-label="facebook-square icon">
            <i class="fa-brands fa-facebook-square"></i>
          </a>
        </li>
            </ul>
      </div>
</footer>
<!-- /footer section -->

<!-- Mailchimp Goals Tracking -->
<script type="text/javascript">
  var $mcGoal = {'settings':{'uuid':'cd9e18f659a2d89263cbef294','dc':'us1'}};
  (function() {
    var sp = document.createElement('script'); sp.type = 'text/javascript'; sp.async = true; sp.defer = true;
    sp.src = ('https:' == document.location.protocol ? 'https://s3.amazonaws.com/downloads.mailchimp.com' : 'http://downloads.mailchimp.com') + '/js/goal.min.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(sp, s);
  })();
</script>
<!-- Intercom chatbot -->
  <script>
    window.intercomSettings = {
      app_id: "e4awi275"
    };
  </script>
  <!-- Original snippet -->
  <!-- <script>(function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',intercomSettings);}else{var d=document;var i=function(){i.c(arguments)};i.q=[];i.c=function(args){i.q.push(args)};w.Intercom=i;function l(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/e4awi275';var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);}if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})()</script> -->

  <!-- Delay load by 5 seconds instead to improve LCP -->
  <!-- l() needs to be called straight away for the setTimeout to work. The if/else block in the original snippet above covers older versions of IE that use onload instead of load, but since loadIntercom is being loaded after 5 seconds anyway we can just call it straight away after the delay. -->
  <script>function loadIntercom(){var w=window,ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',intercomSettings)}else{var d=document,i=function(){i.c(arguments)};i.q=[];i.c=function(args){i.q.push(args)};w.Intercom=i;function l(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/e4awi275';var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x)}l()}}setTimeout(loadIntercom,5000);</script>
<!-- /Intercom chatbot -->

<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/wordpress-appsembler-theme\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script type="text/javascript" src="https://appsembler.com/wp-includes/js/imagesloaded.min.js?ver=5.0.0" id="imagesloaded-js" defer></script>
<script type="text/javascript" src="https://appsembler.com/wp-includes/js/masonry.min.js?ver=4.2.2" id="masonry-js" defer></script>
<script data-minify="1" type="text/javascript" src="https://appsembler.com/wp-content/cache/min/1/wp-content/plugins/betterdocs/assets/blocks/categorygrid/frontend.js?ver=1772915991" id="betterdocs-categorygrid-js" defer></script>
<script type="text/javascript" id="disqus_count-js-extra">
/* <![CDATA[ */
var countVars = {"disqusShortname":"appsembler"};
/* ]]> */
</script>
<script data-minify="1" type="text/javascript" src="https://appsembler.com/wp-content/cache/min/1/wp-content/plugins/disqus-comment-system/public/js/comment_count.js?ver=1772916095" id="disqus_count-js" defer></script>
<script type="text/javascript" id="rocket-browser-checker-js-after">
/* <![CDATA[ */
"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var RocketBrowserCompatibilityChecker=function(){function RocketBrowserCompatibilityChecker(options){_classCallCheck(this,RocketBrowserCompatibilityChecker),this.passiveSupported=!1,this._checkPassiveOption(this),this.options=!!this.passiveSupported&&options}return _createClass(RocketBrowserCompatibilityChecker,[{key:"_checkPassiveOption",value:function(self){try{var options={get passive(){return!(self.passiveSupported=!0)}};window.addEventListener("test",null,options),window.removeEventListener("test",null,options)}catch(err){self.passiveSupported=!1}}},{key:"initRequestIdleCallback",value:function(){!1 in window&&(window.requestIdleCallback=function(cb){var start=Date.now();return setTimeout(function(){cb({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-start))}})},1)}),!1 in window&&(window.cancelIdleCallback=function(id){return clearTimeout(id)})}},{key:"isDataSaverModeOn",value:function(){return"connection"in navigator&&!0===navigator.connection.saveData}},{key:"supportsLinkPrefetch",value:function(){var elem=document.createElement("link");return elem.relList&&elem.relList.supports&&elem.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype}},{key:"isSlowConnection",value:function(){return"connection"in navigator&&"effectiveType"in navigator.connection&&("2g"===navigator.connection.effectiveType||"slow-2g"===navigator.connection.effectiveType)}}]),RocketBrowserCompatibilityChecker}();
/* ]]> */
</script>
<script type="text/javascript" id="rocket-preload-links-js-extra">
/* <![CDATA[ */
var RocketPreloadLinksConfig = {"excludeUris":"\/developer-marketing\/|\/(?:.+\/)?feed(?:\/(?:.+\/?)?)?$|\/(?:.+\/)?embed\/|\/(index.php\/)?(.*)wp-json(\/.*|$)|\/refer\/|\/go\/|\/recommend\/|\/recommends\/","usesTrailingSlash":"1","imageExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php","fileExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php|html|htm","siteUrl":"https:\/\/appsembler.com","onHoverDelay":"100","rateThrottle":"3"};
/* ]]> */
</script>
<script type="text/javascript" id="rocket-preload-links-js-after">
/* <![CDATA[ */
(function() {
"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}();function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var t=function(){function n(e,t){i(this,n),this.browser=e,this.config=t,this.options=this.browser.options,this.prefetched=new Set,this.eventTime=null,this.threshold=1111,this.numOnHover=0}return e(n,[{key:"init",value:function(){!this.browser.supportsLinkPrefetch()||this.browser.isDataSaverModeOn()||this.browser.isSlowConnection()||(this.regex={excludeUris:RegExp(this.config.excludeUris,"i"),images:RegExp(".("+this.config.imageExt+")$","i"),fileExt:RegExp(".("+this.config.fileExt+")$","i")},this._initListeners(this))}},{key:"_initListeners",value:function(e){-1<this.config.onHoverDelay&&document.addEventListener("mouseover",e.listener.bind(e),e.listenerOptions),document.addEventListener("mousedown",e.listener.bind(e),e.listenerOptions),document.addEventListener("touchstart",e.listener.bind(e),e.listenerOptions)}},{key:"listener",value:function(e){var t=e.target.closest("a"),n=this._prepareUrl(t);if(null!==n)switch(e.type){case"mousedown":case"touchstart":this._addPrefetchLink(n);break;case"mouseover":this._earlyPrefetch(t,n,"mouseout")}}},{key:"_earlyPrefetch",value:function(t,e,n){var i=this,r=setTimeout(function(){if(r=null,0===i.numOnHover)setTimeout(function(){return i.numOnHover=0},1e3);else if(i.numOnHover>i.config.rateThrottle)return;i.numOnHover++,i._addPrefetchLink(e)},this.config.onHoverDelay);t.addEventListener(n,function e(){t.removeEventListener(n,e,{passive:!0}),null!==r&&(clearTimeout(r),r=null)},{passive:!0})}},{key:"_addPrefetchLink",value:function(i){return this.prefetched.add(i.href),new Promise(function(e,t){var n=document.createElement("link");n.rel="prefetch",n.href=i.href,n.onload=e,n.onerror=t,document.head.appendChild(n)}).catch(function(){})}},{key:"_prepareUrl",value:function(e){if(null===e||"object"!==(void 0===e?"undefined":r(e))||!1 in e||-1===["http:","https:"].indexOf(e.protocol))return null;var t=e.href.substring(0,this.config.siteUrl.length),n=this._getPathname(e.href,t),i={original:e.href,protocol:e.protocol,origin:t,pathname:n,href:t+n};return this._isLinkOk(i)?i:null}},{key:"_getPathname",value:function(e,t){var n=t?e.substring(this.config.siteUrl.length):e;return n.startsWith("/")||(n="/"+n),this._shouldAddTrailingSlash(n)?n+"/":n}},{key:"_shouldAddTrailingSlash",value:function(e){return this.config.usesTrailingSlash&&!e.endsWith("/")&&!this.regex.fileExt.test(e)}},{key:"_isLinkOk",value:function(e){return null!==e&&"object"===(void 0===e?"undefined":r(e))&&(!this.prefetched.has(e.href)&&e.origin===this.config.siteUrl&&-1===e.href.indexOf("?")&&-1===e.href.indexOf("#")&&!this.regex.excludeUris.test(e.href)&&!this.regex.images.test(e.href))}}],[{key:"run",value:function(){"undefined"!=typeof RocketPreloadLinksConfig&&new n(new RocketBrowserCompatibilityChecker({capture:!0,passive:!0}),RocketPreloadLinksConfig).init()}}]),n}();t.run();
}());
/* ]]> */
</script>
<script data-minify="1" type="text/javascript" src="https://appsembler.com/wp-content/cache/min/1/ajax/libs/lottie-web/5.12.2/lottie.min.js?ver=1772915991" id="Lottie-js" defer></script>
<script type="text/javascript" src="https://appsembler.com/wp-content/themes/wordpress-appsembler-theme/assets/js/main.min.js?ver=1773135174" id="appsembler-main-script-file-js" defer></script>
<script>window.lazyLoadOptions=[{elements_selector:"img[data-lazy-src],.rocket-lazyload",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}},{elements_selector:".rocket-lazyload",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,}];window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue}
if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue}
images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1}
if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1)</script><script data-no-minify="1" async src="https://appsembler.com/wp-content/plugins/wp-rocket/assets/js/lazyload/17.8.3/lazyload.min.js"></script>
</body>
</html><!-- Performance optimized by Redis Object Cache. Learn more: https://wprediscache.com -->
<!-- Parsed with iubenda experimental class in 0.0088 sec. -->