CINXE.COM
Solving Remote Development Challenges With CodeCanvas: A CDE Orchestration Tool by JetBrains | The JetBrains Blog
<!doctype html> <html lang="en_US"> <head> <title>Solving Remote Development Challenges With CodeCanvas: A CDE Orchestration Tool by JetBrains | The JetBrains Blog</title> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="Cache-Control" content="no-cache"> <link rel="preload" href="https://resources.jetbrains.com/storage/jetbrains-sans/JetBrainsSans-Regular.woff" as="font" type="font/woff" crossorigin> <link rel="preload" href="https://resources.jetbrains.com/storage/jetbrains-sans/JetBrainsSans-Regular.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="https://resources.jetbrains.com/storage/jetbrains-sans/JetBrainsSans-SemiBold.woff" as="font" type="font/woff" crossorigin> <link rel="preload" href="https://resources.jetbrains.com/storage/jetbrains-sans/JetBrainsSans-SemiBold.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/wp-content/themes/jetbrains/assets/fonts/JetBrainsMono-Regular.woff" as="font" type="font/woff" crossorigin> <link rel="preload" href="/wp-content/themes/jetbrains/assets/fonts/JetBrainsMono-Regular.woff2" as="font" type="font/woff2" crossorigin> <style type="text/css"> /* * Core styles for PriorityNav.js * These styles are not optional and should always be included * * Free to use under the MIT License. * http://twitter.com/GijsRoge */ .priority-nav { white-space: nowrap; /* * Makes sure the menu's are inline-block so they don't take up * the entire width of its parent. This will break the plugin. */ } .priority-nav > ul { display: inline-block; } .priority-nav > ul > li { display: inline-block; } .priority-nav-has-dropdown .priority-nav__dropdown-toggle { position: relative; } .priority-nav__wrapper { position: relative; } .priority-nav__dropdown { position: absolute; visibility: hidden; } .priority-nav__dropdown.show { visibility: visible; } .priority-nav__dropdown-toggle { visibility: hidden; position: absolute; } .priority-nav-is-visible { visibility: visible; } .priority-nav-is-hidden { visibility: hidden; } /* light weight */ @font-face { font-family: "JetBrains Sans"; src: url("https://resources.jetbrains.com/storage/jetbrains-sans/JetBrainsSans-Light.woff2") format("woff2"), url("https://resources.jetbrains.com/storage/jetbrains-sans/JetBrainsSans-Light.woff") format("woff"); font-weight: 300; font-style: normal; font-display: swap; } /* Regular weight */ @font-face { font-family: "JetBrains Sans"; src: url("https://resources.jetbrains.com/storage/jetbrains-sans/JetBrainsSans-Regular.woff2") format("woff2"), url("https://resources.jetbrains.com/storage/jetbrains-sans/JetBrainsSans-Regular.woff") format("woff"); font-weight: 400; font-style: normal; font-display: swap; } /* SemiBold weight */ @font-face { font-family: "JetBrains Sans"; src: url("https://resources.jetbrains.com/storage/jetbrains-sans/JetBrainsSans-SemiBold.woff2") format("woff2"), url("https://resources.jetbrains.com/storage/jetbrains-sans/JetBrainsSans-SemiBold.woff") format("woff"); font-weight: 530; font-style: normal; font-display: swap; } .custom-select-container { position: relative; box-sizing: border-box;; } .custom-select-container * { box-sizing: border-box; } .custom-select-container.is-disabled { opacity: .333; } .custom-select-opener { background-color: #ccc; padding: 0.5em; display: block; cursor: pointer; width: 100%; } .custom-select-container select { visibility: hidden; position: absolute; top: 0; left: 0; } .custom-select-panel { max-height: 0; transition: max-height .5s ease-out, overflow-y 0.1s 0.5s; overflow: hidden; background-color: #e9e9e9; position: absolute; top: 100%; z-index: 1; width: 100%; } .custom-select-container.is-open .custom-select-panel { max-height: 10.7em; overflow-y: auto } .custom-select-option { padding: 0.5em; } .custom-select-option.has-focus { background-color: LightBlue; } .custom-select-option.is-selected::before { content: "✔"; padding-right: 0.5em; } .custom-select-optgroup > .custom-select-option { padding-left: 2em; } .custom-select-optgroup::before { content: attr(data-label); display: block; padding: 0.5em; color: #888; } .menu-list,.dropdown-language,.navbar ul.row,.navbar ul.row>li ul,.sub-menu,main .article-section .content ol:not([class]):not([id]),main ul:not([class]):not([id]),.menu__nav>ul,.priority-nav__dropdown,.social{margin:0;padding:0;list-style:none}.clearfix:after{content:'';display:block;clear:both}.ellipsis{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.alert-notification{padding:16px 0 0}@media (min-width: 1024px){.alert-notification{padding:32px 0 0}}.alert-notification__box{padding:16px;background:rgba(250,92,74,0.2)}@media (min-width: 1024px){.alert-notification__box{padding:24px}}.alert-notification p{margin:0}.alert-notification p strong{font-weight:600}.space-notification{padding:16px 0 0;width:100vw}@media (min-width: 1024px){.space-notification{padding:24px 0 0;margin-bottom:-34px}}.space-notification__box{padding:16px;background-color:#6B57FF;max-width:100%}@media (min-width: 1024px){.space-notification__box{padding:14px}}.space-notification p{margin:0;color:#ffffff;text-align:center}.space-notification p a{color:#ffffff;border:unset;display:inline-block}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}*{max-height:1000000px}body{color:#19191C;background:#fff;font:16px/1.2 "Arial","Helvetica Neue","Helvetica",sans-serif;min-width:320px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;height:auto;vertical-align:top}.gm-style img{max-width:none}h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6,.h{font-family:"Arial","Helvetica Neue","Helvetica",sans-serif;font-weight:530;margin:0 0 0.5em;color:#19191C}h1,.h1{font-size:35px}h2,.h2{font-size:28px}h3,.h3{font-size:20px}h4,.h4{font-size:17px}h5,.h5{font-size:14px}h6,.h6{font-size:16px}p{margin:0 0 1em}a{color:#19191C}a:hover,a:focus{text-decoration:none}form,fieldset{margin:0;padding:0;border-style:none}input[type='text'],input[type='tel'],input[type='email'],input[type='search'],input[type='password'],textarea{-webkit-appearance:none;-webkit-border-radius:0;box-sizing:border-box;outline:none;border:1px solid rgba(39,40,44,0.15);padding:0.4em 0.7em}input[type='text']::-webkit-input-placeholder,input[type='tel']::-webkit-input-placeholder,input[type='email']::-webkit-input-placeholder,input[type='search']::-webkit-input-placeholder,input[type='password']::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#19191C}input[type='text']::-moz-placeholder,input[type='tel']::-moz-placeholder,input[type='email']::-moz-placeholder,input[type='search']::-moz-placeholder,input[type='password']::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#19191C}input[type='text']:-moz-placeholder,input[type='tel']:-moz-placeholder,input[type='email']:-moz-placeholder,input[type='search']:-moz-placeholder,input[type='password']:-moz-placeholder,textarea:-moz-placeholder{color:#19191C}input[type='text']:-ms-input-placeholder,input[type='tel']:-ms-input-placeholder,input[type='email']:-ms-input-placeholder,input[type='search']:-ms-input-placeholder,input[type='password']:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#19191C}input[type='text'].placeholder,input[type='tel'].placeholder,input[type='email'].placeholder,input[type='search'].placeholder,input[type='password'].placeholder,textarea.placeholder{color:#19191C}select{-webkit-border-radius:0}textarea{resize:vertical;vertical-align:top}button,input[type='button'],input[type='reset'],input[type='file'],input[type='submit']{-webkit-appearance:none;-webkit-border-radius:0;cursor:pointer}/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}mark{background:#ff00;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}[class^="icon-"],[class*=" icon-"]{font-family:"icomoon" !important;speak:never;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-heart:before{content:"\e928"}.icon-thumbs-up:before{content:"\e927"}.icon-merchandise:before{content:"\e926"}.icon-arrow-up:before{content:"\e925"}.icon-twitter:before{content:"\e902"}.icon-date:before{content:"\e923"}.icon-link:before{content:"\e922"}.icon-tiktok:before{content:"\e921"}.icon-warning:before{content:"\e91f"}.icon-alert:before{content:"\e920"}.icon-dots:before{content:"\e91e"}.icon-vk:before{content:"\e915"}.icon-notification:before{content:"\e91d"}.icon-facebook:before{content:"\e904"}.icon-instagram:before{content:"\e907"}.icon-linkedin:before{content:"\e914"}.icon-rss-feed:before{content:"\e918"}.icon-language:before{content:"\e919"}.icon-union:before{content:"\e91a"}.icon-pocket:before{content:"\e906"}.icon-reddit:before{content:"\e908"}.icon-search:before{content:"\e909"}.icon-share:before{content:"\e911"}.icon-slack:before{content:"\e912"}.icon-stackoverflow:before{content:"\e913"}.icon-weibo:before{content:"\e916"}.icon-email:before{content:"\e917"}.icon-cart:before{content:"\e900"}.icon-comments:before{content:"\e901"}.icon-globus:before{content:"\e903"}.icon-like:before{content:"\e905"}.icon-user:before{content:"\e90a"}.icon-wechat:before{content:"\e90b"}.icon-youtube:before{content:"\e90c"}.icon-arrow-left:before{content:"\e90d"}.icon-arrow-right:before{content:"\e90e"}.icon-bag:before{content:"\e90f"}.icon-down:before{content:"\e910"}.icon-django:before{content:"\e924"}.icon-close:before{content:"\e91c"}.icon-menu:before{content:"\e91b"}.icon-play:before{content:"\ea1c"}.icon-stop:before{content:"\ea1e"}.quiz{position:relative;padding:64px 0 96px;color:#fff}@media (min-width: 768px){.quiz{padding:96px 0 145px}}@media (min-width: 1024px){.quiz{padding:134px 0 145px}}.quiz:before{content:"";position:absolute;top:-600px;left:-625px;width:1249px;height:1145px;background:radial-gradient(ellipse at center, #6101bf 0%, #6101bf 30%, #4400d5 55%, #000 80%);filter:blur(240px);opacity:0.6}@media (min-width: 768px){.quiz:before{left:-417px}}@media (min-width: 1200px){.quiz:before{left:-141px}}.quiz:after{content:"";position:absolute;bottom:-550px;right:-342px;width:1004px;height:921px;background:radial-gradient(ellipse at center, #5e00d5 1%, #000356 73%, #000 100%);filter:blur(240px);opacity:0.7}@media (min-width: 768px){.quiz:after{right:-323px}}@media (min-width: 1200px){.quiz:after{right:-190px;bottom:-550px}}.quiz .container{position:relative;z-index:10;max-width:1544px}.quiz h1{font-size:42px;line-height:1.2;color:#fff;margin:0 0 32px}@media (min-width: 768px){.quiz h1{font-size:72px;line-height:1;letter-spacing:-0.8px;margin:0 0 50px}}@media (min-width: 1024px){.quiz h1{font-size:92px}}.quiz__head{font-size:23px;line-height:1.3044;font-weight:300;max-width:1015px;margin:0 0 96px}@media (min-width: 768px){.quiz__head{font-size:39px;line-height:1.26}}.quiz__head h1{margin:0 0 32px}@media (min-width: 768px){.quiz__head h1{margin:0 0 50px}}.quiz__head p{margin:0 0 24px}@media (min-width: 768px){.quiz__head p{margin:0 0 32px}}.quiz h2{font-size:28px;letter-spacing:-0.05px;color:#fff}@media (min-width: 768px){.quiz h2{font-size:43px}}.quiz__works{background:#5244bb;border-radius:16px;padding:16px;margin:0 0 25px}@media (max-width: 767px){.quiz__works .js-slide-hidden{position:unset !important}}@media (min-width: 768px){.quiz__works{border-radius:24px;padding:32px 32px 16px}}.quiz__works-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;padding:0 0 24px}@media (min-width: 768px){.quiz__works-head{padding:0 0 16px}}.quiz__works-head h2{margin:0}.quiz__works-opener{display:none}@media (min-width: 768px){.quiz__works-opener{font-size:20px;display:inline-block;vertical-align:middle;background:#fff;border-radius:3em;color:#19191C;padding:11px 32px;text-align:center}}.quiz__works-opener--hide{display:none}.active .quiz__works-opener--hide{display:block}.quiz__works-opener--reveal{display:block}.active .quiz__works-opener--reveal{display:none}.quiz__works-items{counter-reset:counter;padding:0 10px}@media (min-width: 768px){.quiz__works-items{padding:0 16px}}.quiz__works-item{position:relative;font-size:20px;line-height:1.4;counter-increment:counter;padding:0 0 17px;margin:0 0 32px;border-bottom:1px solid rgba(255,255,255,0.95)}@media (min-width: 768px){.quiz__works-item{padding:32px 0 17px 82px;margin:0}}.quiz__works-item:before{content:counter(counter) ". ";display:block;font-size:40px;line-height:1.1;margin:0 0 16px}@media (min-width: 768px){.quiz__works-item:before{font-size:69px;line-height:1.03;position:absolute;top:32px;left:0;letter-spacing:-0.47px;margin:0}}@media (min-width: 768px){.quiz__works-item:first-child{padding-top:16px}}@media (min-width: 768px){.quiz__works-item:first-child:before{top:16px}}.quiz__works-item:last-child{border:none}@media (max-width: 767px){.quiz__works-item:last-child{padding:0;margin:0}}@media (max-width: 767px){.quiz__works-item:last-child p:last-of-type{margin:0}}.quiz__works-item-wrap{max-width:970px}.quiz__works-item-wrap p{margin:0 0 15px}.quiz__media{position:relative;width:100%;margin:0 0 32px}@media (min-width: 1024px){.quiz__media{margin:0 0 69px}}.quiz__media:before{content:"";display:block;padding-top:56.25%}.quiz__media iframe{position:absolute;top:0;left:0;width:100%;height:100%}.quiz__row{position:relative}@media (min-width: 1024px){.quiz__row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}}.quiz__questions{position:relative;padding:16px;background:#303033;border-radius:16px}@media (min-width: 768px){.quiz__questions{padding:32px 33px;border-radius:24px}}@media (min-width: 1024px){.quiz__questions{width:calc(55% - 8px)}}@media (min-width: 1200px){.quiz__questions{width:calc(58.5% - 16px)}}.quiz__questions h2{margin:0 0 29px}@media (min-width: 768px){.quiz__questions h2{margin:0 0 48px}}@media (min-width: 1024px){.quiz__questions h2{margin:0 0 29px}}.quiz__questions .quiz__box-count{display:inline-block;margin:0 0 18px}@media (min-width: 1024px){.quiz__questions .quiz__box-count{display:none}}.quiz__questions textarea{font-size:16px;width:100%;color:#fff;border:1px solid rgba(255,255,255,0.2);height:112px;padding:8px;background:transparent;resize:none}.quiz__questions textarea::-webkit-input-placeholder{color:rgba(255,255,255,0.5)}.quiz__questions textarea::-moz-placeholder{opacity:1;color:rgba(255,255,255,0.5)}.quiz__questions textarea:-moz-placeholder{color:rgba(255,255,255,0.5)}.quiz__questions textarea:-ms-input-placeholder{color:rgba(255,255,255,0.5)}.quiz__questions textarea.placeholder{color:rgba(255,255,255,0.5)}@media (min-width: 768px){.quiz__questions textarea{font-size:20px;padding:12px 16px;height:136px}}.quiz__questions button[type="submit"]{font-size:16px;padding:8px 24px;color:#19191C;background:#fff;border-radius:3em}@media (min-width: 768px){.quiz__questions button[type="submit"]{font-size:20px;padding:11px 32px}}.quiz__questions button[type="submit"].disabled{background:#59595b;color:rgba(255,255,255,0.5)}.quiz__slider{position:relative}.quiz__slider-wrapper{position:relative;overflow:hidden;height:112px;margin:0 0 32px}@media (min-width: 768px){.quiz__slider-wrapper{height:136px}}.quiz__slider-prev,.quiz__slider-next{font-size:21px;position:absolute;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid #fff;color:#fff;bottom:0;right:0}.quiz__slider-prev.hidden,.quiz__slider-next.hidden{opacity:0}@media (min-width: 768px){.quiz__slider-prev,.quiz__slider-next{font-size:23px;width:52px;height:52px}}.quiz__slider-prev.disabled,.quiz__slider-next.disabled{color:rgba(255,255,255,0.5);border-color:rgba(255,255,255,0.2)}.quiz__slider-prev{right:56px;transform:rotate(180deg)}@media (min-width: 768px){.quiz__slider-prev{right:68px}}.quiz__slide{position:absolute;top:0;left:0;right:0;bottom:0;transition:transform 0.6s ease-in-out}.quiz__slide:not(.active):not(.correct):not(.hidden):not(:first-child){display:none}.quiz__slide.active{transform:translateX(0)}.quiz__slide.hidden{transform:translateX(calc(100% + 32px))}.quiz__slide.correct{transform:translateX(-100%)}.quiz__slide.correct.active{transform:translateX(0)}.quiz__slide.correct textarea{pointer-events:none}.quiz .quiz__slide.correct.active+.quiz__slide.correct.hidden{transform:translateX(calc(100% + 32px))}.quiz .quiz__slide.correct.active:first-child+.quiz__slide.correct.hidden{transform:translateX(calc(100% + 32px))}.quiz__box{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:16px;padding:16px;background:#303033;transform:translateX(calc(100% + 32px));transition:transform 0.6s ease-in-out}@media (min-width: 768px){.quiz__box{border-radius:24px;padding:32px;min-height:384px}}@media (min-width: 1024px){.quiz__box{position:relative;border:solid #fff;border-width:2px 2px 0;background:transparent;width:calc(45% - 8px);min-height:364px;transform:none}}@media (min-width: 1200px){.quiz__box{width:calc(41.5% - 16px)}}@media (max-width: 1023px){.quiz__box--correct{transform:translateX(0)}}@media (max-width: 1023px){.quiz__box--correct .btn.btn--correct{display:block}}@media (max-width: 1023px){.quiz__box--next{transform:translateX(calc(-100% - 32px))}}@media (max-width: 1023px){.quiz__box--not-correct{transform:translateX(0)}}@media (max-width: 1023px){.quiz__box--not-correct .btn.btn--not-correct{display:block}}@media (min-width: 1024px){.quiz__box:before{content:"";position:absolute;left:-2px;bottom:-2px;width:36px;height:50px;border-bottom-left-radius:24px;border:solid #fff;border-width:0 0 2px 2px}}@media (min-width: 1024px){.quiz__box:after{content:"";position:absolute;right:-2px;bottom:-2px;width:calc(100% - 94px);height:50px;border-bottom-right-radius:24px;border:solid #fff;border-width:0 2px 2px 0}}@media (min-width: 1024px){.quiz__box .arrow{position:absolute;top:100%;left:32px;width:64px;height:64px;border:solid #fff;border-width:0 0 2px 2px;transform:skewY(-45deg);transform-origin:0 0;margin-top:2px}}.quiz__box h2{margin:0 0 32px}@media (min-width: 768px){.quiz__box h2{margin:0 0 18px}}@media (min-width: 1024px){.quiz__box h2{display:none}}.quiz__box-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;margin:0 0 16px}@media (min-width: 768px){.quiz__box-head{margin:0 0 30px}}.quiz__box-img{display:flex;align-items:center;justify-content:center;width:68px;height:68px;border-radius:50%;border:2px solid #fff;margin:-4px 0 0 -4px}@media screen and (min-width: 768px) and (max-width: 1023px){.quiz__box-img{position:absolute;top:132px;left:36px}}@media (min-width: 768px){.quiz__box-img{width:132px;height:132px}}.quiz__box-img img{width:100%}.quiz__box-count{font-size:20px;line-height:1.1;font-weight:300;padding:10px;color:rgba(255,255,255,0.5);border-radius:8px;background:rgba(255,255,255,0.2)}@media screen and (min-width: 768px) and (max-width: 1024px){.quiz__box-count{position:absolute;top:32px;right:32px;min-width:114px}}@media (min-width: 768px){.quiz__box-count{font-size:40px;padding:12px}}.quiz__box-count.updated{background:#5244bb;color:#fff}.quiz__box-message{font-size:16px;line-height:1.5;font-weight:300;color:#fff;border-radius:8px;background:rgba(255,255,255,0.05);padding:8px;min-height:88px;margin:0 0 36px}@media (min-width: 768px){.quiz__box-message{font-size:20px;line-height:1.4;padding:16px;border-radius:16px;min-height:136px;margin:0 0 32px 152px}}@media (min-width: 1024px){.quiz__box-message{font-size:29px;line-height:1.345;min-height:141px;margin:0}}.quiz__box-message p{margin:0}.quiz__box .btn{display:none;background:#fff;color:#19191C}@media (min-width: 768px){.quiz__box .btn{font-size:20px;padding:11px 32px}}@media (min-width: 1024px){.quiz__box .btn{display:none}}.quiz__done{font-size:23px;line-height:1.30435;font-weight:300}@media (min-width: 768px){.quiz__done{font-size:29px;line-height:1.345}}@media (min-width: 1200px){.quiz__done{padding:0 35% 0 0}}@media (min-width: 1366px){.quiz__done{padding:0 28% 0 0}}@media (min-width: 1440px){.quiz__done{padding:0 32% 0 0}}.quiz__done p{margin:0 0 24px}@media (min-width: 768px){.quiz__done p{margin:0 0 32px}}.quiz .form-subscribe{background:transparent;max-width:544px;padding:24px 0 0}@media (min-width: 768px){.quiz .form-subscribe{padding:32px 0 0}}@media (min-width: 1200px){.quiz .form-subscribe{max-width:598px}}.quiz .form-subscribe input[type="text"],.quiz .form-subscribe input[type="tel"],.quiz .form-subscribe input[type="email"],.quiz .form-subscribe input[type="search"],.quiz .form-subscribe input[type="password"],.quiz .form-subscribe input[type="url"],.quiz .form-subscribe input[type="date"],.quiz .form-subscribe textarea{font-size:16px;line-height:1.5;width:100%;color:#fff;border:1px solid rgba(255,255,255,0.2);height:40px;padding:4px 7px;background:#303033}.quiz .form-subscribe input[type="text"]::-webkit-input-placeholder,.quiz .form-subscribe input[type="tel"]::-webkit-input-placeholder,.quiz .form-subscribe input[type="email"]::-webkit-input-placeholder,.quiz .form-subscribe input[type="search"]::-webkit-input-placeholder,.quiz .form-subscribe input[type="password"]::-webkit-input-placeholder,.quiz .form-subscribe input[type="url"]::-webkit-input-placeholder,.quiz .form-subscribe input[type="date"]::-webkit-input-placeholder,.quiz .form-subscribe textarea::-webkit-input-placeholder{color:rgba(255,255,255,0.5)}.quiz .form-subscribe input[type="text"]::-moz-placeholder,.quiz .form-subscribe input[type="tel"]::-moz-placeholder,.quiz .form-subscribe input[type="email"]::-moz-placeholder,.quiz .form-subscribe input[type="search"]::-moz-placeholder,.quiz .form-subscribe input[type="password"]::-moz-placeholder,.quiz .form-subscribe input[type="url"]::-moz-placeholder,.quiz .form-subscribe input[type="date"]::-moz-placeholder,.quiz .form-subscribe textarea::-moz-placeholder{opacity:1;color:rgba(255,255,255,0.5)}.quiz .form-subscribe input[type="text"]:-moz-placeholder,.quiz .form-subscribe input[type="tel"]:-moz-placeholder,.quiz .form-subscribe input[type="email"]:-moz-placeholder,.quiz .form-subscribe input[type="search"]:-moz-placeholder,.quiz .form-subscribe input[type="password"]:-moz-placeholder,.quiz .form-subscribe input[type="url"]:-moz-placeholder,.quiz .form-subscribe input[type="date"]:-moz-placeholder,.quiz .form-subscribe textarea:-moz-placeholder{color:rgba(255,255,255,0.5)}.quiz .form-subscribe input[type="text"]:-ms-input-placeholder,.quiz .form-subscribe input[type="tel"]:-ms-input-placeholder,.quiz .form-subscribe input[type="email"]:-ms-input-placeholder,.quiz .form-subscribe input[type="search"]:-ms-input-placeholder,.quiz .form-subscribe input[type="password"]:-ms-input-placeholder,.quiz .form-subscribe input[type="url"]:-ms-input-placeholder,.quiz .form-subscribe input[type="date"]:-ms-input-placeholder,.quiz .form-subscribe textarea:-ms-input-placeholder{color:rgba(255,255,255,0.5)}.quiz .form-subscribe input[type="text"].placeholder,.quiz .form-subscribe input[type="tel"].placeholder,.quiz .form-subscribe input[type="email"].placeholder,.quiz .form-subscribe input[type="search"].placeholder,.quiz .form-subscribe input[type="password"].placeholder,.quiz .form-subscribe input[type="url"].placeholder,.quiz .form-subscribe input[type="date"].placeholder,.quiz .form-subscribe textarea.placeholder{color:rgba(255,255,255,0.5)}@media (min-width: 768px){.quiz .form-subscribe input[type="text"],.quiz .form-subscribe input[type="tel"],.quiz .form-subscribe input[type="email"],.quiz .form-subscribe input[type="search"],.quiz .form-subscribe input[type="password"],.quiz .form-subscribe input[type="url"],.quiz .form-subscribe input[type="date"],.quiz .form-subscribe textarea{font-size:20px;line-height:1.4;height:52px;padding:7px 14px}}.quiz .form-subscribe input[type="text"]:focus,.quiz .form-subscribe input[type="tel"]:focus,.quiz .form-subscribe input[type="email"]:focus,.quiz .form-subscribe input[type="search"]:focus,.quiz .form-subscribe input[type="password"]:focus,.quiz .form-subscribe input[type="url"]:focus,.quiz .form-subscribe input[type="date"]:focus,.quiz .form-subscribe textarea:focus{border-color:rgba(255,255,255,0.6);outline:1px solid rgba(255,255,255,0.6)}.quiz .form-subscribe label{font-size:13px;color:rgba(255,255,255,0.7)}@media (min-width: 768px){.quiz .form-subscribe label{font-size:16px}}.quiz .form-subscribe label a{color:#fff;box-shadow:inset 0 -1px 0 #fff;border:none}@media (min-width: 768px){.quiz .form-subscribe label a{margin:0 0 0 4px}}.quiz .form-subscribe label a:hover{box-shadow:inset 0 -1px 0 transparent}.quiz .form-subscribe label a i{top:0;font-size:13px;right:-20px}@media (min-width: 768px){.quiz .form-subscribe label a i{top:4px}}@media (min-width: 768px){.quiz .form-subscribe__group-checkbox{margin-top:-6px}}.quiz .form-subscribe button{transition:background .15s ease-in-out;font-size:16px;line-height:1.5;background:#fff;color:#19191C;border-radius:3em;padding:8px 24px;margin:30px 0 0}@media (min-width: 768px){.quiz .form-subscribe button{font-size:20px;line-height:1.4;padding:12px 32px}}.quiz .form-subscribe button:hover{background:rgba(255,255,255,0.8)}.quiz .form-subscribe #checkbox+label{position:relative;cursor:pointer;padding:0 0 16px 0}.quiz .form-subscribe #subscribe-checkbox,.quiz .form-subscribe #agree-to-enter-the-Easter-Egg-Hunt-Challenge{position:absolute;z-index:-1;opacity:0}.quiz .form-subscribe #subscribe-checkbox+label,.quiz .form-subscribe #agree-to-enter-the-Easter-Egg-Hunt-Challenge+label{position:relative;cursor:pointer;padding:0 0 16px 24px}.quiz .form-subscribe #subscribe-checkbox+label::before,.quiz .form-subscribe #agree-to-enter-the-Easter-Egg-Hunt-Challenge+label::before{content:"";position:absolute;top:1px;left:0;width:16px;height:16px;background-color:#303033;border:1px solid rgba(255,255,255,0.2);cursor:pointer;-webkit-appearance:none}@media (min-width: 768px){.quiz .form-subscribe #subscribe-checkbox+label::before,.quiz .form-subscribe #agree-to-enter-the-Easter-Egg-Hunt-Challenge+label::before{top:2px}}.quiz .form-subscribe #subscribe-checkbox:checked+label:before,.quiz .form-subscribe #agree-to-enter-the-Easter-Egg-Hunt-Challenge:checked+label:before{background:#fff}.quiz .form-subscribe #subscribe-checkbox:checked+label:after,.quiz .form-subscribe #agree-to-enter-the-Easter-Egg-Hunt-Challenge:checked+label:after{content:"";display:block;position:absolute;top:3px;left:6px;width:5px;height:10px;border:solid #19191C;border-width:0 2px 2px 0;transform:rotate(45deg)}@media (min-width: 768px){.quiz .form-subscribe #subscribe-checkbox:checked+label:after,.quiz .form-subscribe #agree-to-enter-the-Easter-Egg-Hunt-Challenge:checked+label:after{top:4px}}.quiz .form_massage{font-size:20px;padding:30px 0 0 4px}.quiz .form_massage p i{margin:0 12px 0 0}.quiz__img{position:relative;width:288px;height:288px;background:rgba(107,87,255,0.9);border-radius:50%;margin:64px auto 0}@media (min-width: 768px){.quiz__img{width:346px;height:346px;margin:96px auto 0}}@media (min-width: 1200px){.quiz__img{position:absolute;top:0;right:32px;margin:0}}.quiz__img .heart{display:flex;align-items:center;justify-content:center;position:absolute;top:2px;right:8px;width:80px;height:80px;background:#fff;border-radius:50%;cursor:pointer}@media (min-width: 768px){.quiz__img .heart{width:96px;height:96px}}.quiz__img .heart i{font-size:32px;color:#6b57ff}@media (min-width: 768px){.quiz__img .heart i{font-size:38px}}.quiz__img .heart .heart-animate{position:absolute;width:80px;top:-104px;right:8px}@media (min-width: 768px){.quiz__img .heart .heart-animate{width:96px}}.quiz__terms{text-align:center;margin:0 0 20px}@media (min-width: 768px){.quiz__terms{margin:0 0 40px}}.quiz__terms a{color:#ffffff}.header{position:relative;flex-shrink:0;background:#27282c;z-index:999;padding:10px 0}@media (min-width: 769px){.header{padding:14px 0}}.header>.container{display:flex;flex-wrap:wrap;align-items:center}.logo{display:block;width:172px}@media (min-width: 769px){.logo{width:221px}}.logo a{display:flex;flex-wrap:wrap;align-items:center;color:#fff;font-size:16px;line-height:1.5;border:none}@media (min-width: 769px){.logo a{font-size:20px;line-height:1.4}}.logo img{display:block;width:100%;max-height:26px;max-width:max-content}.logo p{margin:0}.menu-list{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;width:calc(100% - 172px);padding:0 40px 0 0}@media (min-width: 641px){.menu-list{padding:0 24px 0 0}}@media (min-width: 769px){.menu-list{width:calc(100% - 221px);padding:0 6px 0 30px}}.menu-list>li{margin-left:18px}@media (min-width: 768px){.menu-list>li{margin-left:26px}}.menu-list>li:first-child{margin-left:0}@media (min-width: 769px){.menu-list>li:first-child{margin-left:26px}}@media (min-width: 1024px){.menu-list>li:first-child{margin-right:14px}}.menu-list a{display:inline-block;vertical-align:middle;line-height:1;color:rgba(255,255,255,0.7);border:none;box-shadow:none}.menu-list a .mobile-hidden{display:none}@media (min-width: 769px){.menu-list a .mobile-hidden{display:block}}.menu-list a:hover{color:#fff;text-decoration:none;box-shadow:none}.menu-list a:hover i:not(.burger-icon){color:#fff}.menu-list a:hover i:not(.burger-icon):after{background:rgba(255,255,255,0.1)}.menu-list i:not(.burger-icon){transition:color .15s ease-in-out;position:relative;font-size:16px;color:rgba(255,255,255,0.7)}.menu-list i:not(.burger-icon).icon-search{font-size:22px}.menu-list i:not(.burger-icon):after{transition:background .15s ease-in-out;content:"";position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:35px;height:35px;border-radius:50%}@media (min-width: 769px){.menu-list i:not(.burger-icon):after{width:40px;height:40px}}.dropdown-language{transition:opacity .15s ease-in-out,visibility .15s ease-in-out;font-size:14px;position:absolute;top:100%;right:-15px;transform:none;background:#27282c;margin:8px 0 0;border:1px solid #5e5e60;opacity:0;visibility:hidden;width:180px}@media (min-width: 481px){.dropdown-language{margin:22px 0 0}}@media (min-width: 1024px){.dropdown-language{font-size:16px;right:0;width:auto;display:inline-grid;grid-auto-flow:column;grid-template-rows:auto auto auto auto;grid-template-columns:auto auto auto auto}}@media (min-width: 769px){.dropdown-language li{display:flex;min-width:120px}}.dropdown-language a{transition:background .15s ease-in-out,color .15s ease-in-out;display:block;padding:8px 16px;color:rgba(255,255,255,0.7);border:none;box-shadow:none}@media (min-width: 769px){.dropdown-language a{padding:12px 16px;flex-grow:1}}.dropdown-language a.active{background:rgba(22,125,255,0.2);color:#fff;text-decoration:none}.dropdown-language a:hover{background:rgba(255,255,255,0.1);color:#fff;text-decoration:none}.navbar{transition:opacity .15s ease-in-out,visibility .15s ease-in-out;position:absolute;top:100%;left:0;right:0;z-index:99;background:#fff;padding:24px 0 32px;opacity:0;visibility:hidden}@media (min-width: 481px){.navbar{padding-bottom:0}}@media (min-width: 768px){.navbar{padding-top:32px}}.navbar ul.row{display:flex;flex-wrap:wrap;font-size:13px;line-height:1.5}@media (min-width: 1280px){.navbar ul.row{justify-content:space-between}}@media (min-width: 1540px){.navbar ul.row{flex-wrap:nowrap;font-size:16px}}.navbar ul.row>li{padding:0 24px 16px 0;width:100%}@media (min-width: 481px){.navbar ul.row>li{width:50%}}@media (min-width: 768px){.navbar ul.row>li{width:33.332%}}@media (min-width: 1024px){.navbar ul.row>li{width:25%;padding-right:30px}}@media (min-width: 1280px){.navbar ul.row>li{width:auto}}@media (min-width: 1540px){.navbar ul.row>li{padding-right:38px}}.navbar ul.row>li:last-child{padding-right:0}.navbar ul.row>li ul{letter-spacing:0.0015em;font-feature-settings:"tnum" on, "lnum" on}@media (min-width: 640px){.navbar ul.row>li ul{width:57%}}@media (min-width: 1024px){.navbar ul.row>li ul{width:auto}}.navbar ul.row>li ul.column-count{display:grid;grid-template-columns:1fr 1fr;column-gap:46px}@media (min-width: 481px){.navbar ul.row>li ul.column-count{grid-template-columns:repeat(2, auto);column-gap:24px}}.navbar ul.row>li ul li{padding:0 0 16px}.navbar ul.row>li ul a{border:none;white-space:nowrap;color:rgba(25,25,28,0.7)}.navbar ul.row>li ul a:hover{color:#19191C}.navbar h4{font-size:13px !important;line-height:1.5;margin:0 0 16px;white-space:nowrap}@media (min-width: 1540px){.navbar h4{font-size:16px !important}}.sub-menu{display:flex;flex-wrap:wrap;margin-bottom:16px}.sub-menu li{margin:0 0 10px;width:50%;padding:6px 0 0}@media (min-width: 641px){.sub-menu li{width:25%}}@media (min-width: 769px){.sub-menu li{width:100%}}@media (min-width: 1025px){.sub-menu li.columns .sub-menu{display:block;column-count:2}}@media (min-width: 1025px){.sub-menu li.columns .sub-menu li{width:auto}}.sub-menu a{position:relative;color:rgba(25,25,28,0.7);border:none;box-shadow:none}.sub-menu a:hover{color:#19191C;text-decoration:none}@media (min-width: 769px){.sub-menu a:hover img{opacity:1;visibility:visible}}.sub-menu a img{transition:opacity .15s ease-in-out,visibility .15s ease-in-out;position:absolute;width:32px;height:32px;left:-40px;top:-6px;opacity:0;visibility:hidden}.burger-icon{position:absolute;top:50%;transform:translateY(-50%);right:16px;width:16px;height:18px;text-indent:-9999px;overflow:hidden;text-decoration:none;z-index:999}@media (min-width: 769px){.burger-icon{display:none}}.burger-icon:before,.burger-icon:after,.burger-icon span{background:rgba(255,255,255,0.7);position:absolute;top:10px;left:0;right:0;height:2px;margin-top:-2px;transition:all 0.2s linear}.burger-icon:before,.burger-icon:after{content:"";top:4px}.burger-icon:after{top:16px}.nav-active .burger-icon:before,.nav-active .burger-icon:after{transform:rotate(45deg);top:10px}.nav-active .burger-icon span{opacity:0}.nav-active .burger-icon:after{transform:rotate(-45deg)}.resize-active *{transition:none !important}html body{font-family:"JetBrains Sans","Arial","Helvetica Neue","Helvetica",sans-serif}html body h1,html body .h1,html body h2,html body .h2,html body h3,html body .h3,html body h4,html body .h4,html body h5,html body .h5,html body h6,html body .h6,html body .h{font-family:inherit}body.admin-bar #wp-admin-bar-customize,body.admin-bar #wp-admin-bar-comments,body.admin-bar #wp-admin-bar-all-in-one-seo-pack{display:none}body.admin-bar #wp-admin-bar-new-content>.ab-item{pointer-events:none}body.admin-bar #wp-admin-bar-new-content #wp-admin-bar-new-post{display:none}body{font-size:16px;line-height:1.5}body.nav-active .navbar{opacity:1;visibility:visible}body.nav-active .overlay{opacity:1;visibility:visible}body.lang-active .header .dropdown-language{opacity:1;visibility:visible}body.toc-active{overflow:hidden}body.hide-menu .menu,body.hideScrollUp .menu{opacity:0;visibility:hidden;transition:none}@media (min-width: 1025px){body.post-type-archive .promo__img{width:calc(50% - 13px)}}body.page-template-template-easter-egg main{background:#000}body.footer-lang-active .footer .dropdown-language{opacity:1;visibility:visible}body .tag{transition:border-color .15s ease-in-out,background .15s ease-in-out;font-size:13px;line-height:1.54;padding:1px 15px;display:inline-block;border:1px solid rgba(25,25,28,0.3);border-radius:4px;margin:0 8px 8px 0;white-space:nowrap;cursor:pointer}body .tag:hover{background:rgba(25,25,28,0.1);border-color:rgba(25,25,28,0.4);text-decoration:none;box-shadow:none}@media (max-width: 767px){body.search .top-page{padding-bottom:35px}}@media (max-width: 767px){body.search .menu{display:none}}#wrapper{min-height:100vh;width:100%;display:flex;flex-direction:column;overflow:hidden;position:relative}a{transition:color .15s ease-in-out,box-shadow .15s ease-in-out,border-color .15s ease-in-out;text-decoration:none;border-bottom:1px solid rgba(25,25,28,0.4)}a:hover{border-color:#19191C}h1{line-height:1.22}@media (min-width: 641px){h1{font-size:43px;line-height:1.14}}h2{line-height:1.143}@media (min-width: 641px){h2{font-size:35px;line-height:1.2}}h3{line-height:1.4;margin:0 0 16px}h4{font-size:17px;line-height:1.412;margin:0 0 16px}h5{font-size:14px;line-height:1.43;margin:0 0 8px}.btn,.jb-download-button{transition:background .15s ease-in-out,color .15s ease-in-out;font-size:16px;line-height:1.5;display:inline-block;vertical-align:middle;text-align:center;border-radius:2em;color:#fff;background:#6B57FF;padding:8px 24px;border:none}.btn:hover,.jb-download-button:hover{text-decoration:none;box-shadow:none;background:rgba(107,87,255,0.8)}pre,code{font-family:"JetBrainsMono","Times","Baskerville","Georgia",serif;font-style:normal;font-weight:400;font-size:15px;line-height:23px;background:#f4f4f4;border-radius:4px;padding:12px 16px}pre code{padding:0}code{padding:4px 6px}input[type="search"]{-webkit-appearance:none}.container{max-width:1534px;margin:0 auto;padding:0 15px}@media (min-width: 641px){.container{padding:0 32px}}main{flex-grow:1}main .article-section .content ul a:hover{box-shadow:inset 0 -1px 0 #19191c}main .article-section .content ol:not([class]):not([id]){list-style:none;counter-reset:counter;margin-top:16px}@media (min-width: 769px){main .article-section .content ol:not([class]):not([id]){margin-top:32px}}main .article-section .content ol:not([class]):not([id])>li{position:relative;counter-increment:counter;padding:0 0 16px 24px}@media (min-width: 769px){main .article-section .content ol:not([class]):not([id])>li{padding-bottom:24px}}main .article-section .content ol:not([class]):not([id])>li:before{content:counter(counter) ". ";position:absolute;top:0;left:2px}main .article-section .content ol:not([class]):not([id])>li:last-child{padding-bottom:0}main .article-section .content ol:not([class]):not([id])>li a:hover{box-shadow:inset 0 -1px 0 #19191c}main .article-section .content ol:not([class]):not([id])>li ol:not([class]):not([id]){margin-top:16px;margin-bottom:0}@media (min-width: 769px){main .article-section .content ol:not([class]):not([id])>li ol:not([class]):not([id]){margin-top:24px}}main .article-section .content ol:not([class]):not([id])>li ol:not([class]):not([id]) li{padding:0 0 16px 25px}main .article-section .content ol:not([class]):not([id])>li ol:not([class]):not([id]) li:last-child{padding-bottom:0}main .article-section .content ol:not([class]):not([id]) img{margin:22px 0 24px}main .article-section .content ul:not([class]):not([id]){margin-bottom:24px}main .article-section .content ul:not([class]):not([id]) li:last-child{padding-bottom:0}main .article-section .content ul:not([class]):not([id]) li ul:not([class]):not([id]){margin-top:16px;margin-bottom:0}@media (min-width: 769px){main .article-section .content ul:not([class]):not([id]) li ul:not([class]):not([id]){margin-top:24px}}main .article-section .content ul:not([class]):not([id]) li ul:not([class]):not([id]) li{padding-bottom:16px}main .article-section .content ul:not([class]):not([id]) li ul:not([class]):not([id]) li:last-child{padding-bottom:0}main .article-section .content ul:not([class]):not([id]) img{margin:22px 0 24px}main .article-section .content ul:not([class]):not([id])+h2{margin-top:32px}main .article-section table{margin-bottom:16px;min-width:600px}main .article-section table+figcaption{font-style:italic;font-size:16px}main .article-section table,main .article-section th,main .article-section td{border-bottom:1px solid rgba(25,25,28,0.2);border-collapse:collapse;padding:8px 8px 8px 0;border-right:none;border-left:none;border-top:none;vertical-align:baseline;font-size:16px;line-height:24px}main .article-section figure.wp-block-table{overflow-x:scroll}main .article-section figure.wp-block-table::-webkit-scrollbar{width:0;height:0}main .article-section figure.wp-block-table table{margin-bottom:16px;min-width:600px;width:100%}main .article-section figure.wp-block-table table+figcaption{font-style:italic;font-size:16px}main .article-section figure.wp-block-table table,main .article-section figure.wp-block-table th,main .article-section figure.wp-block-table td{border-bottom:1px solid rgba(25,25,28,0.2);border-collapse:collapse;padding:8px 8px 8px 0;border-right:none;border-left:none;border-top:none;vertical-align:baseline;font-size:16px;line-height:24px}main .article-section .has-text-align-center:not(td){display:flex;flex-wrap:wrap;align-items:center;justify-content:center;margin:0 0 16px}main ul:not([class]):not([id]) li{position:relative;padding:0 0 16px 25px}@media (min-width: 769px){main ul:not([class]):not([id]) li{padding-bottom:24px}}main ul:not([class]):not([id]) li:before{content:"";position:absolute;top:8px;left:2px;width:5px;height:5px;background:#19191C;border-radius:50%}@media (min-width: 769px){main ul:not([class]):not([id]) li:before{top:10px}}main ul:not([class]):not([id]) li ul:not([class]):not([id]){margin-top:24px}main ul:not([class]):not([id]) li ul:not([class]):not([id]) li{padding-left:32px}main ul:not([class]):not([id]) li ul:not([class]):not([id]) li:before{left:8px;background:transparent;border:1px solid #19191C}button{background:transparent;border:none;outline:none}.form-group{position:relative}.found-wrap{padding:0 16px}@media (min-width: 769px){.row{display:flex;flex-wrap:wrap;margin:0 -16px}}@media (min-width: 769px){.row.card_container .col:nth-child(4n+4){display:flex}}@media (min-width: 769px){.col{display:flex;width:50%;padding:0 16px}}@media (min-width: 1025px){.col{width:33.332%}}@media (min-width: 1281px){.col{width:25%}}@media (min-width: 1025px){.col:nth-child(4n+4){display:none}}@media (min-width: 1281px){.col:nth-child(4n+4){display:flex}}@media (max-width: 767px){.col:last-child .card{margin:0}}.col--double{display:block;width:100%}@media (min-width: 1281px){.col--double{width:66.664%}}.col--double img{border-radius:10px}@media (min-width: 1025px){.row.last-col-home .col:nth-child(4n+4){display:flex}}@media (min-width: 1025px){.row.last-col-home .col:nth-child(4n+7),.row.last-col-home .col:nth-child(4n+8){display:none}}@media (min-width: 1281px){.row.last-col-home .col:nth-child(4n+7),.row.last-col-home .col:nth-child(4n+8){display:flex}}@media (min-width: 1025px){.row.last-col-home.show_all .col:nth-child(4n+7),.row.last-col-home.show_all .col:nth-child(4n+8){display:flex}}@media (min-width: 1281px){.row.last-col-home.show_all .col:nth-child(4n+7),.row.last-col-home.show_all .col:nth-child(4n+8){display:flex}}@media (min-width: 1025px){.row.latest_posts .col:nth-child(4n+6){display:none}}@media (min-width: 1281px){.row.latest_posts .col:nth-child(4n+6){display:flex}}@media (min-width: 1025px){.row.latest_posts .col:nth-child(4n+5){display:none}}@media (min-width: 1281px){.row.latest_posts .col:nth-child(4n+5){display:flex}}@media (min-width: 1025px){.row.latest_posts .col:nth-child(4n+4){display:flex}}.row.latest_posts .col--double{display:block;width:100%}@media (min-width: 1025px){.row.latest_posts .col--double{width:66.66%}}@media (min-width: 1281px){.row.latest_posts .col--double{width:50%}}.dark-theme{background:#19191C;color:white}.light-gray-bg{background:#F4F4F4}.light-gray-bg .card{background:#fff}.top-page{position:relative;padding:35px 0 66px}@media (min-width: 768px){.top-page{min-height:199px}}@media (min-width: 1024px){.top-page{padding:30px 0 90px}}.top-page .social-opener{display:block;position:relative;padding:7px 24px 6px 32px;border-radius:3em;border:1px solid rgba(25,25,28,0.3);text-align:center}.top-page .social-opener:hover{box-shadow:none}.top-page .social-opener:after{content:"\e910";font-size:24px;line-height:1;font-family:"icomoon";cursor:pointer;pointer-events:none;display:inline-block;vertical-align:middle;margin:0 0 0 8px}.top-page h1{font-size:28px;line-height:1.143;color:#000;margin:0}@media (min-width: 641px){.top-page h1{font-size:35px;line-height:1.2}}.top-page h1+p{margin-top:10px}.top-page__row{display:flex;flex-wrap:wrap;align-items:flex-start}.top-page__head{position:relative;z-index:15}@media (min-width: 1024px){.top-page__head{width:50%}}.top-page__wrap a{display:flex;align-items:center;border:none;margin:0 0 8px}@media (min-width: 1025px){.top-page__wrap a{margin:0 0 16px}}.top-page__wrap a:hover{box-shadow:none}.top-page__wrap p{width:100%;margin:0}.top-page__wrap img{width:48px;height:48px;margin:0 16px 0 0}.top-page__hold{color:rgba(25,25,28,0.7)}@media (min-width: 1025px){.top-page__hold{color:#19191C}}.top-page__hold a{display:inline-block;vertical-align:top;text-decoration:none;border:none;margin:0 0 8px}@media (min-width: 1025px){.top-page__hold a{margin:0 0 16px}}.top-page__hold a img{max-width:79%}@media (min-width: 1025px){.top-page__hold a img{max-width:100%}}.top-page .hidden-heading{position:absolute;left:-9999px}.top-page__social-wrap{position:relative;order:2}@media (min-width: 461px){.top-page__social-wrap{margin:0 0 0 16px}}@media (min-width: 1200px){.top-page__social-wrap{order:1;margin:0}}.top-page__right{display:flex;flex-direction:column;width:100%;margin:16px 0}@media (min-width: 461px){.top-page__right{flex-direction:row;align-items:center}}@media (min-width: 1024px){.top-page__right{justify-content:flex-end;width:50%;margin:0}}@media (max-width: 1199px){.top-page__right.social-active .social{opacity:1;visibility:visible}}@media (max-width: 1199px){.top-page__right .social{position:absolute;top:calc(100% + 8px);left:0;right:0;background:#fff;display:flex;flex-direction:column;border:1px solid #d1d1d2;z-index:10;align-items:flex-start;margin:0;opacity:0;visibility:hidden}}@media (min-width: 1024px){.top-page__right .social{margin:0 -6px}}@media (max-width: 1199px){.top-page__right .social li{padding:0;width:100%}}.top-page__right .social li:first-child{display:none}@media (min-width: 1200px){.top-page__right .social li:first-child{display:block;padding-right:20px}}@media (max-width: 1199px){.top-page__right .social li a{align-items:center;padding:8px 11px}}.top-page__right .social li a:hover{box-shadow:none}@media (max-width: 1023px){.top-page__right .social li a:hover{background:rgba(25,25,28,0.1)}}@media (max-width: 1023px){.top-page__right .social li a:hover i:after{background:transparent}}@media (max-width: 1199px){.top-page__right .social li a i{margin:-3px 10px 0 0}}@media (min-width: 1200px){.top-page__right .social li a span{display:none}}.top-page__right .btn{order:1;margin:0 0 16px}@media (min-width: 461px){.top-page__right .btn{margin:0}}@media (min-width: 1200px){.top-page__right .btn{margin:0 0 0 38px;order:2}}@media (min-width: 768px){.top-page__right .social-opener{text-align:left}}@media (min-width: 1200px){.top-page__right .social-opener{display:none}}.menu{transition:transform .15s ease-in-out;display:flex;justify-content:space-between;padding:17px 0 0;position:absolute;bottom:0;left:15px;right:15px;background:#fff;z-index:9;max-width:1470px;margin:0 auto;transform:translateY(0)}@media (min-width: 641px){.menu{left:32px;right:32px}}@media (min-width: 768px){.menu{align-items:flex-end;padding:24px 0 0}}@media (min-width: 1501px){.menu{width:100%;left:auto;right:auto}}@media (min-width: 1024px){.menu:before{content:"";position:absolute;top:0;left:0;bottom:0;background:#fff;padding:0 0 0 9999px;margin:0 0 0 -9999px}}.menu:after{content:"";position:absolute;top:0;right:-16px;bottom:2px;background:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.6) 50%, #fff 100%);width:115px;pointer-events:none}@media (min-width: 768px){.menu:after{right:-32px}}@media (min-width: 1024px){.menu:after{top:0;right:0;bottom:0;padding:0 9999px 0 0;margin:0 -9999px 0 0;background:#fff;width:auto}}.menu__border{position:absolute;bottom:0;left:0;right:0;height:1px;background:rgba(39,40,44,0.15)}.menu__border:before{content:"";position:absolute;bottom:0;right:0;padding:0 9999px 0 0;margin:0 -9999px 0 0;height:1px;background:rgba(39,40,44,0.15);z-index:99}.menu__border:after{content:"";position:absolute;bottom:0;left:0;padding:0 0 0 9999px;margin:0 0 0 -9999px;height:1px;background:rgba(39,40,44,0.15);z-index:99}.menu.fixed{position:fixed;top:0;bottom:auto;z-index:991;padding-top:13px}.menu__wrapper{display:flex;justify-content:space-between;width:100%}.menu__nav{overflow-x:auto;white-space:nowrap;flex:1 0 0}@media (min-width: 1024px){.menu__nav{padding:0 40px 0 0}}@media (min-width: 1201px){.menu__nav{padding:0}}.menu__nav>ul{display:inline-block;margin:0 -10px;white-space:nowrap}@media (min-width: 1024px){.menu__nav>ul{margin:0 -14px}}.menu__nav>ul li{display:inline-block;padding:0 10px}@media (min-width: 1024px){.menu__nav>ul li{padding:0 14px}}.menu__nav>ul a{position:relative;display:block;color:rgba(25,25,28,0.7);border:none;box-shadow:none;padding:0 0 8px;font-feature-settings:"ss19" on}.menu__nav>ul a:hover{color:#19191C;text-decoration:none}.menu__nav>ul a:hover:after{background:#19191C}.menu__nav>ul a:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:transparent}.menu__nav>ul a.curent_tax{color:#6B57FF;text-decoration:none}.menu__nav>ul a.curent_tax:after{background:#6B57FF;height:2px}.menu__nav .priority-nav__wrapper{font-size:16px;line-height:1.5;padding:0 0 0 16px}.menu__nav .nav__dropdown-toggle{transition:color .15s ease-in-out;color:rgba(25,25,28,0.7)}.menu__nav .nav__dropdown-toggle:hover{color:#19191C}.menu__nav .nav__dropdown-toggle:hover:after{color:#19191C}.menu__nav .nav__dropdown-toggle:after{transition:color .15s ease-in-out;content:"\e910";font-size:24px;font-family:"icomoon";display:inline-block;vertical-align:middle;color:rgba(25,25,28,0.7)}.menu__right{display:none}@media (min-width: 1024px){.menu__right{position:relative;display:flex;justify-content:flex-end;width:20%;align-items:center;padding:0 0 13px}}.menu__right *{position:relative;z-index:10}@media (min-width: 1024px){.menu__right:after{content:"";position:absolute;top:0;left:-36px;right:0;bottom:2px;background:linear-gradient(270deg, #fff 90.63%, rgba(255,255,255,0) 99.17%)}}@media (max-width: 767px){.menu__right .btn{font-size:13px}}.menu__cta{display:none}@media (min-width: 1025px){.menu__cta{display:flex;align-items:center;position:relative;z-index:99;justify-content:flex-end;text-decoration:none;border:none;white-space:nowrap;margin:0 0 6px}}@media (min-width: 1200px){.menu__cta{padding-left:62px}}@media (min-width: 1025px){.menu__cta:after{content:"";position:absolute;top:-2px;left:-40px;right:0;bottom:-2px;background:linear-gradient(270deg, #fff 90.63%, rgba(255,255,255,0) 99.17%)}}.menu__cta-mobile{font-size:18px;position:fixed;display:flex;align-items:center;justify-content:center;bottom:72px;right:16px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(25,25,28,0.3);background:#fff;z-index:99}@media (min-width: 1025px){.menu__cta-mobile{display:none}}.menu__cta-mobile:before{content:"";position:absolute;top:-1px;right:4px;width:8px;height:8px;border-radius:50%;background:#6B57FF}.menu__cta-mobile i{margin:0 0 0 -2px}.menu__cta:hover i{color:#19191C}.menu__cta:hover .menu__cta-text{color:#19191C}.menu__cta i{transition:color .15s ease-in-out}@media (min-width: 1025px){.menu__cta i{position:relative;z-index:10;font-size:18px;color:rgba(25,25,28,0.7)}}.menu__cta-text{transition:color .15s ease-in-out}@media (min-width: 1025px){.menu__cta-text{position:relative;z-index:10;margin:0 4px 0 10px;color:rgba(25,25,28,0.7)}}@media (min-width: 1025px){.menu__cta .label{position:relative;z-index:10;font-size:13px;line-height:1.54;display:inline-block;vertical-align:middle;background:#6B57FF;color:#fff;padding:2px 8px;border-radius:3px}}.priority-nav__dropdown{top:100%;left:16px;border:1px solid #d1d1d2;background-color:white;margin:35px 0 0;z-index:99;width:320px}@media (min-width: 768px){.priority-nav__dropdown{margin-top:28px}}@media (min-width: 1024px){.priority-nav__dropdown{margin-top:35px}}.priority-nav__dropdown li:last-child{margin:0}.priority-nav__dropdown a{display:block;color:#19191c;border:none;padding:8px 16px}.priority-nav__dropdown a.curent_tax{background:#19191C;color:#fff}.priority-nav__dropdown a.curent_tax:hover{background:#19191C;color:#fff}.priority-nav__dropdown a:hover{color:#19191C;text-decoration:none;box-shadow:none;background:rgba(25,25,28,0.1)}.social{display:flex;flex-wrap:wrap;align-items:center;margin:0 -11px}.social li{padding:0 11px}.social a{display:flex;color:#19191C;border:none;box-shadow:none}.social a:hover i:after{background:rgba(25,25,28,0.1)}.social a i{position:relative;font-size:17px}.social a i.icon-twitter{font-size:15px}.social a i.icon-youtube{font-size:13px}.social a i.icon-link{font-size:11px}.social a i:after{transition:background .15s ease-in-out;content:"";position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:35px;height:35px;border-radius:50%}@media (min-width: 769px){.social a i:after{width:40px;height:40px}}.social a:hover{text-decoration:none}.intro{padding:72px 0 56px;background:#F4F4F4}.intro h1{margin:0 0 24px}.intro h2{max-width:720px}.promo{padding:32px 0 0}.promo .tag{margin:0 8px 16px 0}.promo__row{display:flex;flex-wrap:wrap;flex-direction:column;position:relative;overflow:hidden}@media (min-width: 1024px){.promo__row{align-items:center;flex-direction:row}}.promo__img{width:100%;overflow:hidden;border-radius:8px;border:none}@media (min-width: 1025px){.promo__img{width:calc(50% - 16px)}}.promo__img:hover{border:none;box-shadow:none}.promo__img:only-child{width:100%}.promo__img img{width:100%}.promo__text{font-size:16px;line-height:1.5;padding:16px 0}@media (min-width: 641px){.promo__text{padding:32px 0}}@media (min-width: 1025px){.promo__text{width:51%;padding:0 0 0 32px}}@media (min-width: 1201px){.promo__text{font-size:20px;line-height:1.4;width:42%}}.promo__text:only-child{width:100%;padding:0}@media (min-width: 1280px){.promo__text:only-child{width:74.5%}}.promo__text h1,.promo__text h2,.promo__text .h1{font-size:28px;line-height:1.143;letter-spacing:0;margin-top:0;margin-bottom:16px}@media (min-width: 1201px){.promo__text h1,.promo__text h2,.promo__text .h1{font-size:35px;line-height:1.2;margin-bottom:32px}}.promo__text h1 a,.promo__text h2 a,.promo__text .h1 a{display:inline-block;color:inherit;-webkit-line-clamp:3;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;border:none;box-shadow:none}@media (min-width: 769px){.promo__text h1 a,.promo__text h2 a,.promo__text .h1 a{-webkit-line-clamp:2}}@media (min-width: 1201px){.promo__text h1 a,.promo__text h2 a,.promo__text .h1 a{-webkit-line-clamp:4}}.promo__text h1 a:hover,.promo__text h2 a:hover,.promo__text .h1 a:hover{text-decoration:none}.promo__text p{margin:0 0 16px;opacity:0.7}@media (min-width: 1200px){.promo__text p{margin:0 0 32px}}.promo__text .tag{display:none}.promo__link a{border:none;box-shadow:none}.promo__link a:hover{text-decoration:underline}.promo__link a i{display:inline-block;vertical-align:middle;font-size:15px;margin:0 0 0 4px}.promo__link .btn{padding:10px 30px;margin:0 22px 0 0}@media (min-width: 769px){.promo+.section{padding:32px 0 96px}}.overlay{transition:opacity .15s ease-in-out,visibility .15s ease-in-out;position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.8);z-index:11;opacity:0;visibility:hidden}.tag-list{display:flex;flex-wrap:wrap;align-items:baseline}.subscribe{font-size:20px;line-height:1.6;background-color:#F4F4F4;background-image:url(./edfb9b9971efea6f04ad75dc85db7c3a.svg);background-repeat:no-repeat;background-position-x:390%;background-position-y:25%;background-size:93%;width:100%;padding:32px}.subscribe h2{margin:0}.subscribe p{margin:0 0 15px}.subscribe form input[type="email"]{font-size:16px;line-height:1.5;max-width:328px;width:100%;height:42px;padding:6px 15px;margin:0 0 9px}.subscribe form .checkbox{padding:0 4px 28px}.subscribe form label{font-size:13px;line-height:1.54}.subscribe form button,.subscribe form input[type="submit"],.subscribe form .btn{transition:opacity .15s ease-in-out;font-size:16px;line-height:1.5;border-radius:2em;outline:none;background:#19191C;color:#fff;border:none;padding:8px 24px}.subscribe form button:hover,.subscribe form input[type="submit"]:hover,.subscribe form .btn:hover{opacity:0.8}.form-subscribe{width:100%}@media (min-width: 769px){.form-subscribe{max-width:472px;background:#f4f4f4;padding:16px 16px 22px}}.form-subscribe__group-input{position:relative;margin:0 0 16px}@media (min-width: 768px){.form-subscribe__group-input{margin:0 0 24px}}.form-subscribe__group-input button{transition:color .15s ease-in-out;position:absolute;top:50%;transform:translateY(-50%);right:10px;padding:0;font-size:22px;line-height:1;color:rgba(25,25,28,0.7)}.form-subscribe__group-input button:hover{color:#19191C}.form-subscribe__group-input button:focus{outline:2px solid #19191C}.form-subscribe__group-checkbox{position:relative}.form-subscribe input[type="text"],.form-subscribe input[type="tel"],.form-subscribe input[type="email"],.form-subscribe input[type="search"],.form-subscribe input[type="password"],.form-subscribe input[type="url"],.form-subscribe input[type="date"],.form-subscribe textarea{font-size:16px;line-height:1.5;width:100%;color:#19191C;border:1px solid rgba(25,25,28,0.2);height:40px;padding:7px 46px 7px 7px}.form-subscribe input[type="text"]::-webkit-input-placeholder,.form-subscribe input[type="tel"]::-webkit-input-placeholder,.form-subscribe input[type="email"]::-webkit-input-placeholder,.form-subscribe input[type="search"]::-webkit-input-placeholder,.form-subscribe input[type="password"]::-webkit-input-placeholder,.form-subscribe input[type="url"]::-webkit-input-placeholder,.form-subscribe input[type="date"]::-webkit-input-placeholder,.form-subscribe textarea::-webkit-input-placeholder{color:rgba(25,25,28,0.5)}.form-subscribe input[type="text"]::-moz-placeholder,.form-subscribe input[type="tel"]::-moz-placeholder,.form-subscribe input[type="email"]::-moz-placeholder,.form-subscribe input[type="search"]::-moz-placeholder,.form-subscribe input[type="password"]::-moz-placeholder,.form-subscribe input[type="url"]::-moz-placeholder,.form-subscribe input[type="date"]::-moz-placeholder,.form-subscribe textarea::-moz-placeholder{opacity:1;color:rgba(25,25,28,0.5)}.form-subscribe input[type="text"]:-moz-placeholder,.form-subscribe input[type="tel"]:-moz-placeholder,.form-subscribe input[type="email"]:-moz-placeholder,.form-subscribe input[type="search"]:-moz-placeholder,.form-subscribe input[type="password"]:-moz-placeholder,.form-subscribe input[type="url"]:-moz-placeholder,.form-subscribe input[type="date"]:-moz-placeholder,.form-subscribe textarea:-moz-placeholder{color:rgba(25,25,28,0.5)}.form-subscribe input[type="text"]:-ms-input-placeholder,.form-subscribe input[type="tel"]:-ms-input-placeholder,.form-subscribe input[type="email"]:-ms-input-placeholder,.form-subscribe input[type="search"]:-ms-input-placeholder,.form-subscribe input[type="password"]:-ms-input-placeholder,.form-subscribe input[type="url"]:-ms-input-placeholder,.form-subscribe input[type="date"]:-ms-input-placeholder,.form-subscribe textarea:-ms-input-placeholder{color:rgba(25,25,28,0.5)}.form-subscribe input[type="text"].placeholder,.form-subscribe input[type="tel"].placeholder,.form-subscribe input[type="email"].placeholder,.form-subscribe input[type="search"].placeholder,.form-subscribe input[type="password"].placeholder,.form-subscribe input[type="url"].placeholder,.form-subscribe input[type="date"].placeholder,.form-subscribe textarea.placeholder{color:rgba(25,25,28,0.5)}.form-subscribe input[type="text"]:focus,.form-subscribe input[type="tel"]:focus,.form-subscribe input[type="email"]:focus,.form-subscribe input[type="search"]:focus,.form-subscribe input[type="password"]:focus,.form-subscribe input[type="url"]:focus,.form-subscribe input[type="date"]:focus,.form-subscribe textarea:focus{border-color:#19191C;outline:1px solid #19191C}.form-subscribe input[type="checkbox"]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip:rect(0, 0, 0, 0);border:0}.form-subscribe label{display:block;font-size:13px;line-height:1.54;position:relative}.form-subscribe label a{position:relative;display:inline-block;vertical-align:middle}.form-subscribe label a:hover{box-shadow:inset 0 -1px 0 #19191c}.form-subscribe label a i{font-size:12px;position:absolute;top:4px;right:-18px}.form-subscribe .tooltip{font-size:13px;line-height:1.54;letter-spacing:0.0045em;position:absolute;top:100%;left:28px;right:0;border:1px solid rgba(255,255,255,0.1);background:#303033;box-shadow:0px 6px 12px rgba(0,0,0,0.1);border-radius:4px;color:#fff;z-index:99;padding:8px 6px 6px 8px;margin-top:5px;display:none}@media (min-width: 768px){.form-subscribe .tooltip{right:auto;max-width:380px;width:100%}}.form-subscribe .tooltip p{margin:0}.form-subscribe .tooltip p a{color:#fff;border-bottom:1px solid #fff}.form-subscribe .tooltip p a:hover{border-color:#fff;box-shadow:inset 0 -1px 0 #fff}.follow h4{font-size:16px;line-height:1.5;margin:0 0 8px}.select-row{margin:0 0 32px}@media (min-width: 481px){.select-row{display:flex;flex-wrap:wrap}}@media (max-width: 767px){.select-row .select{width:100%;margin:0 0 16px}}@media (min-width: 481px){.select-row .select{width:calc(50% - 8px)}}@media (min-width: 769px){.select-row .select{width:calc(50% - 16px)}}@media (min-width: 1025px){.select-row .select{width:calc(33.332% - 21px)}}@media (min-width: 1281px){.select-row .select{width:calc(25% - 24px)}}@media (min-width: 481px){.select-row .select+.select{margin:0 0 0 16px}}@media (min-width: 769px){.select-row .select+.select{margin:0 0 0 32px}}@media (max-width: 767px){.select-row .select:only-child{width:100%}}select{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;outline:0;box-shadow:none;border:1px solid rgba(39,40,44,0.15);background-image:none}select:focus{border-color:#19191C}select::-ms-expand{display:none}select{flex:1;padding:8px 48px 8px 17px;cursor:pointer}.select{position:relative;display:flex}.custom-select-container{width:100%}.custom-select-container:after{content:"\e910";font-family:"icomoon";position:absolute;top:3px;right:8px;font-size:24px;cursor:pointer;pointer-events:none}.custom-select-container.is-open .custom-select-opener{border-color:#19191C}.custom-select-container.is-open .custom-select-panel{border:1px solid #d1d1d2;max-height:202px}.custom-select-opener{transition:border-color .15s ease-in-out;background:#fff;padding:7px;border:1px solid rgba(25,25,28,0.3)}.custom-select-opener:hover{border-color:rgba(25,25,28,0.5)}.custom-select-panel{transition:none;top:calc(100% + 8px);background:#fff}.custom-select-option{cursor:pointer}.custom-select-option.is-selected{background:#19191C;color:#fff}.custom-select-option.is-selected:before{display:none}.custom-select-option.is-selected.has-focus{background:#19191C}.custom-select-option.has-focus{background:rgba(25,25,28,0.1)}.scrollUp .menu{transform:translate3d(0, -100%, 0)}.page-not-found{padding:60px 0}.page-not-found .container{max-width:800px}.page-not-found form{position:relative;display:flex;flex-wrap:wrap;justify-content:space-between}.page-not-found input[type="text"]{width:100%;height:40px;padding:5px 15px;margin:0 0 16px}@media (min-width: 769px){.page-not-found input[type="text"]{width:calc(100% - 118px);margin:0}}.page-not-found input[type="submit"]{border:none;outline:none;border-radius:2em;color:#fff;background:#167dff;padding:8px 24px}.disabled{pointer-events:none}.buttons__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;margin:0 0 16px}@media (min-width: 769px){.buttons__row{margin:0 0 24px}}.buttons .btn{margin:0 25px 0 0}.buttons .btn:only-child{margin:0}.buttons .btn--transparent{border:1px solid rgba(25,25,28,0.3);background:transparent;color:#19191c}.buttons .btn--transparent:hover{background:rgba(25,25,28,0.1);border-color:rgba(25,25,28,0.4)}.fake-hash{position:absolute;top:-9999px;left:-9999px;opacity:0;visibility:hidden}.sr-only{border:0;clip:rect(0, 0, 0, 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.skip-content{font-size:16px;line-height:1.5;left:-10000px;opacity:0;position:absolute;top:auto;background-color:rgba(107,87,255,0.9);border:2px solid #fff;border-radius:2em;color:#fff;display:inline-block;padding:8px 24px;text-align:center;transition:opacity 0.2s ease}.skip-content:focus{left:50%;margin:0 0 0 -100px;opacity:1;top:80px}.blockquote{position:relative;padding:16px 0 32px}@media (min-width: 768px){.blockquote{padding:24px 0 48px 120px}}.blockquote blockquote{color:rgba(25,25,28,0.7);margin:0 0 24px;padding:0;border:none}@media (min-width: 769px){.blockquote blockquote{font-size:20px;line-height:1.4;margin:0 0 16px}}.blockquote blockquote p{margin:0 0 16px}.blockquote__author{font-size:16px;line-height:1.5;display:flex;flex-wrap:wrap;align-items:center}.blockquote__author-img{display:block;border-radius:50%;width:64px}@media (min-width: 768px){.blockquote__author-img{position:absolute;top:24px;left:0;width:96px}}.blockquote__author-info{flex:1;padding:0 0 0 8px}@media (min-width: 768px){.blockquote__author-info{padding:0}}.blockquote__author-title{display:block;font-weight:600}.twitter-timeline.twitter-timeline-rendered{border:1px solid rgba(25,25,28,0.2);overflow:hidden;border-radius:10px}.rider-code-highlight{position:relative}.rider-code-highlight:hover .rider-code-highlight-btn-copy{display:block}.rider-code-highlight .rider-code-highlight-btn-copy{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTE1Ljc3IDEyMi44OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTE1Ljc3IDEyMi44OCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4uc3Qwe2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO308L3N0eWxlPjxnPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik04OS42MiwxMy45NnY3LjczaDEyLjE5aDAuMDF2MC4wMmMzLjg1LDAuMDEsNy4zNCwxLjU3LDkuODYsNC4xYzIuNSwyLjUxLDQuMDYsNS45OCw0LjA3LDkuODJoMC4wMnYwLjAyIHY3My4yN3YwLjAxaC0wLjAyYy0wLjAxLDMuODQtMS41Nyw3LjMzLTQuMSw5Ljg2Yy0yLjUxLDIuNS01Ljk4LDQuMDYtOS44Miw0LjA3djAuMDJoLTAuMDJoLTYxLjdINDAuMXYtMC4wMiBjLTMuODQtMC4wMS03LjM0LTEuNTctOS44Ni00LjFjLTIuNS0yLjUxLTQuMDYtNS45OC00LjA3LTkuODJoLTAuMDJ2LTAuMDJWOTIuNTFIMTMuOTZoLTAuMDF2LTAuMDJjLTMuODQtMC4wMS03LjM0LTEuNTctOS44Ni00LjEgYy0yLjUtMi41MS00LjA2LTUuOTgtNC4wNy05LjgySDB2LTAuMDJWMTMuOTZ2LTAuMDFoMC4wMmMwLjAxLTMuODUsMS41OC03LjM0LDQuMS05Ljg2YzIuNTEtMi41LDUuOTgtNC4wNiw5LjgyLTQuMDdWMGgwLjAyaDYxLjcgaDAuMDF2MC4wMmMzLjg1LDAuMDEsNy4zNCwxLjU3LDkuODYsNC4xYzIuNSwyLjUxLDQuMDYsNS45OCw0LjA3LDkuODJoMC4wMlYxMy45Nkw4OS42MiwxMy45NnogTTc5LjA0LDIxLjY5di03Ljczdi0wLjAyaDAuMDIgYzAtMC45MS0wLjM5LTEuNzUtMS4wMS0yLjM3Yy0wLjYxLTAuNjEtMS40Ni0xLTIuMzctMXYwLjAyaC0wLjAxaC02MS43aC0wLjAydi0wLjAyYy0wLjkxLDAtMS43NSwwLjM5LTIuMzcsMS4wMSBjLTAuNjEsMC42MS0xLDEuNDYtMSwyLjM3aDAuMDJ2MC4wMXY2NC41OXYwLjAyaC0wLjAyYzAsMC45MSwwLjM5LDEuNzUsMS4wMSwyLjM3YzAuNjEsMC42MSwxLjQ2LDEsMi4zNywxdi0wLjAyaDAuMDFoMTIuMTlWMzUuNjUgdi0wLjAxaDAuMDJjMC4wMS0zLjg1LDEuNTgtNy4zNCw0LjEtOS44NmMyLjUxLTIuNSw1Ljk4LTQuMDYsOS44Mi00LjA3di0wLjAyaDAuMDJINzkuMDRMNzkuMDQsMjEuNjl6IE0xMDUuMTgsMTA4LjkyVjM1LjY1di0wLjAyIGgwLjAyYzAtMC45MS0wLjM5LTEuNzUtMS4wMS0yLjM3Yy0wLjYxLTAuNjEtMS40Ni0xLTIuMzctMXYwLjAyaC0wLjAxaC02MS43aC0wLjAydi0wLjAyYy0wLjkxLDAtMS43NSwwLjM5LTIuMzcsMS4wMSBjLTAuNjEsMC42MS0xLDEuNDYtMSwyLjM3aDAuMDJ2MC4wMXY3My4yN3YwLjAyaC0wLjAyYzAsMC45MSwwLjM5LDEuNzUsMS4wMSwyLjM3YzAuNjEsMC42MSwxLjQ2LDEsMi4zNywxdi0wLjAyaDAuMDFoNjEuN2gwLjAyIHYwLjAyYzAuOTEsMCwxLjc1LTAuMzksMi4zNy0xLjAxYzAuNjEtMC42MSwxLTEuNDYsMS0yLjM3aC0wLjAyVjEwOC45MkwxMDUuMTgsMTA4LjkyeiIvPjwvZz48L3N2Zz4=);background-repeat:no-repeat;display:none;position:absolute;right:10px;top:10px;z-index:10;color:#717171;font-size:1em;padding:0;margin:0 0 0 8px;text-decoration:none;width:23px;height:23px;cursor:pointer;background-size:18px;background-position:center;border-radius:3px}.rider-code-highlight .rider-code-highlight-btn-copy:hover .rider-code-highlight-tooltip{visibility:visible}.rider-code-highlight .rider-code-highlight-btn-copy .rider-code-highlight-tooltip{font-size:15px;font-family:inherit;visibility:hidden;width:140px;background-color:#000;color:#fff;text-align:center;padding:8px 0;border-radius:5px;position:absolute;z-index:10;bottom:30px;transform:translateX(-42%)}.rider-code-highlight__dark .transparent{opacity:0.5}.rider-code-highlight__dark pre{background-color:#262626;color:#d0d0d0;padding:24px;font-family:JetBrains Mono;font-size:medium;border:1px solid rgba(25,25,28,0.5);border-radius:6px}.rider-code-highlight__dark pre code{background-color:inherit}.rider-code-highlight__dark .keyword{color:#6c95eb}.rider-code-highlight__dark .keyword-control{color:#6c95eb}.rider-code-highlight__dark .preprocessor-keyword{color:#6c95eb}.rider-code-highlight__dark .namespace-name{color:#c191ff}.rider-code-highlight__dark .class-name{color:#c191ff}.rider-code-highlight__dark .struct-name{color:#e1bfff}.rider-code-highlight__dark .record-class-name{color:#c191ff}.rider-code-highlight__dark .record-struct-name{color:#e1bfff}.rider-code-highlight__dark .interface-name{color:#c191ff}.rider-code-highlight__dark .type-parameter-name{color:#c191ff}.rider-code-highlight__dark .delegate-name{color:#e1bfff}.rider-code-highlight__dark .enum-name{color:#e1bfff}.rider-code-highlight__dark .event-name{color:#ed94c0}.rider-code-highlight__dark .field-name{color:#66c3cc}.rider-code-highlight__dark .property-name{color:#66c3cc}.rider-code-highlight__dark .enum-member-name{color:#e1bfff}.rider-code-highlight__dark .constant-name{color:#66c3cc;font-weight:bold}.rider-code-highlight__dark .parameter-name{color:#bdbdbd}.rider-code-highlight__dark .local-name{color:#bdbdbd}.rider-code-highlight__dark .reassigned-variable{color:#bdbdbd;border-color:#787878;text-decoration:underline}.rider-code-highlight__dark .method-name{color:#39cc8f}.rider-code-highlight__dark .extension-method-name{color:#39cc8f}.rider-code-highlight__dark .number{color:#ed94c0}.rider-code-highlight__dark .string{color:#c9a26d}.rider-code-highlight__dark .string-verbatim{color:#c9a26d}.rider-code-highlight__dark .string-escape-character{color:#d688d4}.rider-code-highlight__dark .string-escape-character1{color:#d688d4}.rider-code-highlight__dark .string-escape-character2{color:#66c3cc}.rider-code-highlight__dark .comment{color:#85c46c;font-style:italic}.rider-code-highlight__dark .xml-doc-comment-text{color:#85c46c;font-style:italic}.rider-code-highlight__dark .xml-doc-comment-delimiter{color:#85c46c;font-style:italic}.rider-code-highlight__dark .xml-doc-comment-name{color:#487d34}.rider-code-highlight__dark .xml-doc-comment-attribute-name{color:#487d34}.rider-code-highlight__dark .xml-doc-comment-attribute-quotes{color:#c9a26d}.rider-code-highlight__dark .xml-doc-comment-attribute-value{color:#c9a26d}.rider-code-highlight__dark .rider-code-highlight-btn-copy{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTE1Ljc3IDEyMi44OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTE1Ljc3IDEyMi44OCIgZmlsbD0iI2ZmZiIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+ICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+LnN0MHtmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDt9PC9zdHlsZT48Zz48cGF0aCBjbGFzcz0ic3QwIiBkPSJNODkuNjIsMTMuOTZ2Ny43M2gxMi4xOWgwLjAxdjAuMDJjMy44NSwwLjAxLDcuMzQsMS41Nyw5Ljg2LDQuMWMyLjUsMi41MSw0LjA2LDUuOTgsNC4wNyw5LjgyaDAuMDJ2MC4wMiB2NzMuMjd2MC4wMWgtMC4wMmMtMC4wMSwzLjg0LTEuNTcsNy4zMy00LjEsOS44NmMtMi41MSwyLjUtNS45OCw0LjA2LTkuODIsNC4wN3YwLjAyaC0wLjAyaC02MS43SDQwLjF2LTAuMDIgYy0zLjg0LTAuMDEtNy4zNC0xLjU3LTkuODYtNC4xYy0yLjUtMi41MS00LjA2LTUuOTgtNC4wNy05LjgyaC0wLjAydi0wLjAyVjkyLjUxSDEzLjk2aC0wLjAxdi0wLjAyYy0zLjg0LTAuMDEtNy4zNC0xLjU3LTkuODYtNC4xIGMtMi41LTIuNTEtNC4wNi01Ljk4LTQuMDctOS44Mkgwdi0wLjAyVjEzLjk2di0wLjAxaDAuMDJjMC4wMS0zLjg1LDEuNTgtNy4zNCw0LjEtOS44NmMyLjUxLTIuNSw1Ljk4LTQuMDYsOS44Mi00LjA3VjBoMC4wMmg2MS43IGgwLjAxdjAuMDJjMy44NSwwLjAxLDcuMzQsMS41Nyw5Ljg2LDQuMWMyLjUsMi41MSw0LjA2LDUuOTgsNC4wNyw5LjgyaDAuMDJWMTMuOTZMODkuNjIsMTMuOTZ6IE03OS4wNCwyMS42OXYtNy43M3YtMC4wMmgwLjAyIGMwLTAuOTEtMC4zOS0xLjc1LTEuMDEtMi4zN2MtMC42MS0wLjYxLTEuNDYtMS0yLjM3LTF2MC4wMmgtMC4wMWgtNjEuN2gtMC4wMnYtMC4wMmMtMC45MSwwLTEuNzUsMC4zOS0yLjM3LDEuMDEgYy0wLjYxLDAuNjEtMSwxLjQ2LTEsMi4zN2gwLjAydjAuMDF2NjQuNTl2MC4wMmgtMC4wMmMwLDAuOTEsMC4zOSwxLjc1LDEuMDEsMi4zN2MwLjYxLDAuNjEsMS40NiwxLDIuMzcsMXYtMC4wMmgwLjAxaDEyLjE5VjM1LjY1IHYtMC4wMWgwLjAyYzAuMDEtMy44NSwxLjU4LTcuMzQsNC4xLTkuODZjMi41MS0yLjUsNS45OC00LjA2LDkuODItNC4wN3YtMC4wMmgwLjAySDc5LjA0TDc5LjA0LDIxLjY5eiBNMTA1LjE4LDEwOC45MlYzNS42NXYtMC4wMiBoMC4wMmMwLTAuOTEtMC4zOS0xLjc1LTEuMDEtMi4zN2MtMC42MS0wLjYxLTEuNDYtMS0yLjM3LTF2MC4wMmgtMC4wMWgtNjEuN2gtMC4wMnYtMC4wMmMtMC45MSwwLTEuNzUsMC4zOS0yLjM3LDEuMDEgYy0wLjYxLDAuNjEtMSwxLjQ2LTEsMi4zN2gwLjAydjAuMDF2NzMuMjd2MC4wMmgtMC4wMmMwLDAuOTEsMC4zOSwxLjc1LDEuMDEsMi4zN2MwLjYxLDAuNjEsMS40NiwxLDIuMzcsMXYtMC4wMmgwLjAxaDYxLjdoMC4wMiB2MC4wMmMwLjkxLDAsMS43NS0wLjM5LDIuMzctMS4wMWMwLjYxLTAuNjEsMS0xLjQ2LDEtMi4zN2gtMC4wMlYxMDguOTJMMTA1LjE4LDEwOC45MnoiLz48L2c+PC9zdmc+Cg==)}.rider-code-highlight__light .transparent{opacity:0.5}.rider-code-highlight__light pre{background-color:#ffffff;color:#202020;padding:24px;font-family:JetBrains Mono;font-size:medium;border:1px solid rgba(25,25,28,0.5);border-radius:6px}.rider-code-highlight__light pre code{background-color:inherit}.rider-code-highlight__light .keyword{color:#0f54d6}.rider-code-highlight__light .keyword-control{color:#0f54d6}.rider-code-highlight__light .preprocessor-keyword{color:#0f54d6}.rider-code-highlight__light .namespace-name{color:#6b2fba}.rider-code-highlight__light .class-name{color:#6b2fba}.rider-code-highlight__light .struct-name{color:#300073}.rider-code-highlight__light .record-class-name{color:#6b2fba}.rider-code-highlight__light .record-struct-name{color:#300073}.rider-code-highlight__light .interface-name{color:#6b2fba}.rider-code-highlight__light .type-parameter-name{color:#6b2fba}.rider-code-highlight__light .delegate-name{color:#300073}.rider-code-highlight__light .enum-name{color:#300073}.rider-code-highlight__light .event-name{color:#ab2f6b}.rider-code-highlight__light .field-name{color:#0093a1}.rider-code-highlight__light .property-name{color:#0093a1}.rider-code-highlight__light .enum-member-name{color:#300073}.rider-code-highlight__light .constant-name{color:#0093a1;font-weight:bold}.rider-code-highlight__light .parameter-name{color:#383838}.rider-code-highlight__light .local-name{color:#383838}.rider-code-highlight__light .reassigned-variable{color:#383838;border-color:#949494;text-decoration:underline}.rider-code-highlight__light .method-name{color:#00855f}.rider-code-highlight__light .extension-method-name{color:#00855f}.rider-code-highlight__light .number{color:#ab2f6b}.rider-code-highlight__light .string{color:#8c6c41}.rider-code-highlight__light .string-verbatim{color:#8c6c41}.rider-code-highlight__light .string-escape-character{color:#941290}.rider-code-highlight__light .string-escape-character1{color:#941290}.rider-code-highlight__light .string-escape-character2{color:#0093a1}.rider-code-highlight__light .comment{color:#248700;font-style:italic}.rider-code-highlight__light .xml-doc-comment-text{color:#248700;font-style:italic}.rider-code-highlight__light .xml-doc-comment-delimiter{color:#248700;font-style:italic}.rider-code-highlight__light .xml-doc-comment-name{color:#8bc775}.rider-code-highlight__light .xml-doc-comment-attribute-name{color:#8bc775}.rider-code-highlight__light .xml-doc-comment-attribute-quotes{color:#8c6c41}.rider-code-highlight__light .xml-doc-comment-attribute-value{color:#8c6c41} /*# sourceMappingURL=app.min.css.map*/ </style> <script> var ALGOLIA_INSIGHTS_SRC = "https://cdn.jsdelivr.net/npm/search-insights@2.0.2"; !function(e,a,t,n,s,i,c){e.AlgoliaAnalyticsObject=s,e[s]=e[s]||function(){ (e[s].queue=e[s].queue||[]).push(arguments)},i=a.createElement(t),c=a.getElementsByTagName(t)[0], i.async=1,i.src=n,c.parentNode.insertBefore(i,c) }(window,document,"script",ALGOLIA_INSIGHTS_SRC,"aa"); </script> <link rel="icon" href="https://blog.jetbrains.com/wp-content/themes/jetbrains/assets/img/favicons/favicon.ico" sizes="any"><!-- 32×32 --> <link rel="icon" href="https://blog.jetbrains.com/wp-content/themes/jetbrains/assets/img/favicons/icon.svg" type="image/svg+xml"> <link rel="apple-touch-icon" href="https://blog.jetbrains.com/wp-content/themes/jetbrains/assets/img/favicons/apple-touch-icon.png"><!-- 180×180 --> <link rel="manifest" href="https://blog.jetbrains.com/wp-content/themes/jetbrains/assets/img/favicons/site.webmanifest"> <meta name="apple-mobile-web-app-title" content="JetBrains Blog"> <meta name="application-name" content="JetBrains Blog"> <meta name="msapplication-TileColor" content="#000000"> <meta name="theme-color" content="#000000"> <link rel="alternate" hreflang="en" href="https://blog.jetbrains.com/blog/2024/09/17/introducing-codecanvas/" /> <link rel="alternate" hreflang="x-default" href="https://blog.jetbrains.com/blog/2024/09/17/introducing-codecanvas/" /> <!-- Search Engine Optimization by Rank Math PRO - https://rankmath.com/ --> <meta name="description" content="CodeCanvas is the JetBrains' new platform for orchestrating cloud development environments (CDEs). Read more to learn what CodeCanvas is."/> <meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large"/> <link rel="canonical" href="https://blog.jetbrains.com/blog/2024/09/17/introducing-codecanvas/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Solving Remote Development Challenges With CodeCanvas: A CDE Orchestration Tool by JetBrains | The JetBrains Blog" /> <meta property="og:description" content="CodeCanvas is the JetBrains' new platform for orchestrating cloud development environments (CDEs). Read more to learn what CodeCanvas is." /> <meta property="og:url" content="https://blog.jetbrains.com/blog/2024/09/17/introducing-codecanvas/" /> <meta property="og:site_name" content="The JetBrains Blog" /> <meta property="article:publisher" content="https://www.facebook.com/JetBrains" /> <meta property="article:tag" content="CodeCanvas" /> <meta property="article:section" content="Cloud Development Environments" /> <meta property="og:updated_time" content="2025-01-13T18:40:02+01:00" /> <meta property="og:image" content="https://blog.jetbrains.com/wp-content/uploads/2024/09/JETBRAINS_CodeCanvas_new.png" /> <meta property="og:image:secure_url" content="https://blog.jetbrains.com/wp-content/uploads/2024/09/JETBRAINS_CodeCanvas_new.png" /> <meta property="og:image:width" content="768" /> <meta property="og:image:height" content="432" /> <meta property="og:image:alt" content="Solving Remote Development Challenges With CodeCanvas: A CDE Orchestration Tool by JetBrains" /> <meta property="og:image:type" content="image/png" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:title" content="Solving Remote Development Challenges With CodeCanvas: A CDE Orchestration Tool by JetBrains | The JetBrains Blog" /> <meta name="twitter:description" content="CodeCanvas is the JetBrains' new platform for orchestrating cloud development environments (CDEs). Read more to learn what CodeCanvas is." /> <meta name="twitter:site" content="@jetbrains" /> <meta name="twitter:creator" content="@jetbrains" /> <meta name="twitter:image" content="https://blog.jetbrains.com/wp-content/uploads/2024/09/JETBRAINS_CodeCanvas_new.png" /> <!-- /Rank Math WordPress SEO plugin --> <link rel='dns-prefetch' href='//maxcdn.bootstrapcdn.com' /> <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> <style id='global-styles-inline-css' type='text/css'> body{--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-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{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;} .wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;} :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;} .wp-block-pullquote{font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='wpml-blocks-css' href='https://blog.jetbrains.com/wp-content/plugins/sitepress-multilingual-cms/dist/css/blocks/styles.css?ver=4.6.3' type='text/css' media='all' /> <link rel='stylesheet' id='pb-accordion-blocks-style-css' href='https://blog.jetbrains.com/wp-content/plugins/accordion-blocks/build/index.css?ver=1.5.0' type='text/css' media='all' /> <link rel='stylesheet' id='ppress-frontend-css' href='https://blog.jetbrains.com/wp-content/plugins/wp-user-avatar/assets/css/frontend.min.css?ver=4.15.4' type='text/css' media='all' /> <link rel='stylesheet' id='ppress-flatpickr-css' href='https://blog.jetbrains.com/wp-content/plugins/wp-user-avatar/assets/flatpickr/flatpickr.min.css?ver=4.15.4' type='text/css' media='all' /> <link rel='stylesheet' id='ppress-select2-css' href='https://blog.jetbrains.com/wp-content/plugins/wp-user-avatar/assets/select2/select2.min.css?ver=1d837425d173a9a11b4b5bc34ccb3401' type='text/css' media='all' /> <link rel='stylesheet' id='cms-navigation-style-base-css' href='https://blog.jetbrains.com/wp-content/plugins/wpml-cms-nav/res/css/cms-navigation-base.css?ver=1.5.5' type='text/css' media='screen' /> <link rel='stylesheet' id='cms-navigation-style-css' href='https://blog.jetbrains.com/wp-content/plugins/wpml-cms-nav/res/css/cms-navigation.css?ver=1.5.5' type='text/css' media='screen' /> <link rel='stylesheet' id='font-awesome-css' href='https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css?ver=4.7.0' type='text/css' media='all' /> <link rel='stylesheet' id='enlighterjs-css' href='https://blog.jetbrains.com/wp-content/plugins/enlighter/cache/enlighterjs.min.css?ver=ZGyDHRSQPMewFUQ' type='text/css' media='all' /> <link rel='stylesheet' id='icomoon_font-css' href='https://blog.jetbrains.com/wp-content/themes/jetbrains/assets/dist/icomoon_font.min.css?ver=2.22.0' type='text/css' media='all' /> <link rel='stylesheet' id='font-jetbrains-mono-css' href='https://blog.jetbrains.com/wp-content/themes/jetbrains/assets/dist/fontjetbrainsmono.min.css?ver=2.22.0' type='text/css' media='all' /> <link rel='stylesheet' id='single-post-css' href='https://blog.jetbrains.com/wp-content/themes/jetbrains/assets/dist/singlepost.min.css?ver=2.22.0' type='text/css' media='all' /> <script type='text/javascript' src='https://blog.jetbrains.com/wp-content/themes/jetbrains/assets/jquery/jquery.min.js' id='jquery-js'></script> <script type='text/javascript' id='wpml-cookie-js-extra'> /* <![CDATA[ */ var wpml_cookies = {"wp-wpml_current_language":{"value":"en","expires":1,"path":"\/"}}; var wpml_cookies = {"wp-wpml_current_language":{"value":"en","expires":1,"path":"\/"}}; /* ]]> */ </script> <script type='text/javascript' src='https://blog.jetbrains.com/wp-content/plugins/sitepress-multilingual-cms/res/js/cookies/language-cookie.js?ver=4.6.3' id='wpml-cookie-js'></script> <script type='text/javascript' src='https://blog.jetbrains.com/wp-content/plugins/wp-user-avatar/assets/flatpickr/flatpickr.min.js?ver=4.15.4' id='ppress-flatpickr-js'></script> <script type='text/javascript' src='https://blog.jetbrains.com/wp-content/plugins/wp-user-avatar/assets/select2/select2.min.js?ver=4.15.4' id='ppress-select2-js'></script> <link rel="https://api.w.org/" href="https://blog.jetbrains.com/wp-json/" /><link rel="alternate" type="application/json" href="https://blog.jetbrains.com/wp-json/wp/v2/blog/510432" /><link rel='shortlink' href='https://blog.jetbrains.com/?p=510432/' /> <link rel="alternate" type="application/json+oembed" href="https://blog.jetbrains.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fblog.jetbrains.com%2Fblog%2F2024%2F09%2F17%2Fintroducing-codecanvas%2F" /> <link rel="alternate" type="text/xml+oembed" href="https://blog.jetbrains.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fblog.jetbrains.com%2Fblog%2F2024%2F09%2F17%2Fintroducing-codecanvas%2F&format=xml" /> <meta name="generator" content="WPML ver:4.6.3 stt:60,9,1,4,3,28,29,43,46,2,54;" /> <!-- Google+ / Schema.org --> <meta itemprop="name" content="Solving Remote Development Challenges With CodeCanvas: A CDE Orchestration Tool by JetBrains | The JetBrains Blog"/> <meta itemprop="headline" content="Solving Remote Development Challenges With CodeCanvas: A CDE Orchestration Tool by JetBrains | The JetBrains Blog"/> <meta itemprop="image" content="https://blog.jetbrains.com/wp-content/uploads/2024/09/JETBRAINS_CodeCanvas_new.png"/> <meta name="image" content="https://blog.jetbrains.com/wp-content/uploads/2024/09/JETBRAINS_CodeCanvas_new.png"/> <link rel="icon" href="https://blog.jetbrains.com/wp-content/uploads/2024/01/cropped-mstile-310x310-1-32x32.png" sizes="32x32" /> <link rel="icon" href="https://blog.jetbrains.com/wp-content/uploads/2024/01/cropped-mstile-310x310-1-192x192.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://blog.jetbrains.com/wp-content/uploads/2024/01/cropped-mstile-310x310-1-180x180.png" /> <meta name="msapplication-TileImage" content="https://blog.jetbrains.com/wp-content/uploads/2024/01/cropped-mstile-310x310-1-270x270.png" /> <!-- 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-5P98');</script> <!-- End Google Tag Manager --> <style type="text/css" id="wp-custom-css"> /* blog.jetbrains.com-theme/blob/master/custom.css */ #extendify-templates-inserter { display: none !important; } .enlighter-k3{ background-color: transparent !important; } .enlighter-t-enlighter div.enlighter>div.enlighter-special, .enlighter-t-wpcustom div.enlighter>div.enlighter-special{ background-color: #FFEBCC; } a[href*="/tag/newsletter"], a[href*="/tag/newsletter"], a[href*="/tag/how2pro"], a[href*="/tag/sendtoall"], a[href*="/tag/newsletter-resharper"], a[href*="/tag/newsletter-rider"], a[href*="/tag/newsletter-cpp"], a[href*="/tag/newsletter-rust"], a[href*="/webstorm/tag/digest"], a[href*="/category/uncategorized"], a[href*="/category/newsletter"],a[href*="/category/java-annotated"],a[href*="/tag/news-company/"],a[href*="/tag/major-news/"], a[href*="/category/newsletter"], a[href*="/category/how2pro"], a[href*="/category/sendtoall"], a[href*="/category/newsletter-resharper"], a[href*="/category/newsletter-rider"], a[href*="/category/newsletter-cpp"], a[href*="/category/newsletter-rust"] { display: none !important; } #wrapper > main > section.promo div.promo__text > a.tag { display: none !important; } table, th, td { border: 1px solid rgba(50,50,93,.1); border-collapse: collapse; padding: 8px; } .wp-block-image figcaption { font-size: .7em; margin-top: .5em; margin-bottom: 1em; text-align: center; font-style: italic; } div.content>p[data-nosnippet] { font-size: 80%; } blockquote, blockquote.wp-block-quote { font-size: 100%; line-height: 1.5; margin: 32px 0px; padding: 0px 18px; border-left: 2px solid rgba(0, 0, 0, 0.12); } figure.wp-block-embed.is-type-video .wp-block-embed__wrapper, figure.wp-block-embed.is-type-video .wp-block-embed__wrapper { position: relative; width: 100%; height: 0; padding-bottom: 56.25%; } .navbar h3 { font-size:20px !important; } h2, h3, h4, h5 { margin-top: 20px; } h4, h5 { font-size: 20px !important; } figure.wp-block-embed.is-type-video iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } div.content > ul > li > img { margin: 0.5em 0; } .alignright { float: right; } .single-space .content__form { display: none; } .post-type-archive-space .form-subscribe { display: none; } .single .top-page h2.h1 + p { margin-top: 10px; } .single .top-page h2.h1 { margin-bottom: 0; } @media (min-width: 1281px) { .post-type-archive-space .product-blog .product-blog__content .col { width: 25%; } .post-type-archive-space .product-blog__content { width: 100%; } } main .article-section .content>ol:not([class]):not([id])[start] { counter-reset: start; } .wp-block-video { margin: 0 0 1em !important; } video { max-width: 100%; } .copy-heading { margin-top: 20px; } .border+div .slick-list { border: solid 1px #aeaeaf; } .wp-block-image.aligncenter__image>figure.aligncenter { margin-left: auto !important; margin-right: auto !important; } main .article-section .content ol:not([class]):not([id]) { margin-bottom: 24px; } .js-toc { overflow-y: hidden; scrollbar-width: none; } .js-toc::-webkit-scrollbar { display: none; } section.article-section .content .copy-heading h4.font-size-18 { font-size:18px!important; } .copy-heading:has(h3.hidden-h3) { margin: 0 !important; visibility: hidden; height: 0; width: 0; position: absolute; } .footer span.copyright a:hover { color: #fff; box-shadow: none; border-color: #fff; } .footer span.copyright a { color: #fff; } </style> <link rel="alternate" type="application/rss+xml" title="Company : The JetBrains Blog" href="https://blog.jetbrains.com/blog/feed/"> </head> <body class="blog-template-default single single-blog postid-510432 wp-embed-responsive"><!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5P98" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div id="wrapper"> <header class="header"> <div class="container"> <strong class="logo"> <a href="https://blog.jetbrains.com/"> <img src="https://blog.jetbrains.com/wp-content/uploads/2024/06/JETBRAINS-Blog.svg" alt=""> </a> </strong> <a href="#main" class="skip-content">Skip to content</a> <ul class="menu-list"> <li> <a href="#" class="nav-opener"> <span class="mobile-hidden">Topics</span> </a> </li> <li><a href="https://blog.jetbrains.com/search/"><i class="icon-search"><span class="sr-only">Search</span></i></a></li> </ul> <a href="#" class="burger-icon"><span class="sr-only">Burger menu icon</span><span></span></a> <nav class="navbar"> <div class="container"> <ul class="row"><li id="menu-item-284" class="columns menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-284"><h4>IDEs</h4> <ul class="sub-menu"> <li id="menu-item-286" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-286"><a title="CLion Blog" href="/clion/">CLion</a></li> <li id="menu-item-287" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-287"><a title="DataGrip Blog" href="/datagrip/">DataGrip</a></li> <li id="menu-item-231265" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-231265"><a href="/dataspell/">DataSpell</a></li> <li id="menu-item-217910" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-217910"><a href="/fleet/">Fleet</a></li> <li id="menu-item-288" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-288"><a title="GoLand Blog" href="/go/">GoLand</a></li> <li id="menu-item-289" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-289"><a title="IntelliJ IDEA Blog" href="/idea/">IntelliJ IDEA</a></li> <li id="menu-item-291" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-291"><a title="PhpStorm Blog" href="/phpstorm/">PhpStorm</a></li> <li id="menu-item-292" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-292"><a title="PyCharm Blog" href="/pycharm/">PyCharm</a></li> <li id="menu-item-155027" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-155027"><a href="/rust/">RustRover</a></li> <li id="menu-item-293" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-293"><a title="Rider Blog" href="/dotnet/tag/rider/">Rider</a></li> <li id="menu-item-294" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-294"><a title="RubyMine Blog" href="/ruby/">RubyMine</a></li> <li id="menu-item-296" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-296"><a title="WebStorm Blog" href="/webstorm/">WebStorm</a></li> </ul> </li> <li id="menu-item-155084" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-155084"><h4>Plugins & Services</h4> <ul class="sub-menu"> <li id="menu-item-126770" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-126770"><a href="/big-data-tools/">Big Data Tools</a></li> <li id="menu-item-136584" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-136584"><a href="https://blog.jetbrains.com/blog/tag/codewithme/">Code With Me</a></li> <li id="menu-item-170477" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-170477"><a href="/qa/">Quality Assurance</a></li> <li id="menu-item-310" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-310"><a title="JetBrains Platform Blog" href="/platform/">JetBrains Platform</a></li> <li id="menu-item-123129" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-123129"><a href="/scala/">Scala</a></li> <li id="menu-item-295" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-295"><a title="Toolbox App Blog" href="/toolbox-app/">Toolbox App</a></li> <li id="menu-item-268151" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-268151"><a href="/writerside/">Writerside</a></li> <li id="menu-item-434711" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-434711"><a href="/ai/">JetBrains AI</a></li> <li id="menu-item-472822" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-472822"><a href="/grazie/">Grazie</a></li> <li id="menu-item-540490" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-540490"><a href="/junie/">Junie</a></li> </ul> </li> <li id="menu-item-305" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-305"><h4>Team Tools</h4> <ul class="sub-menu"> <li id="menu-item-65109" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-65109"><a href="/datalore/">Datalore</a></li> <li id="menu-item-753" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-753"><a title="JetBrains Space Blog" href="/space/">Space</a></li> <li id="menu-item-306" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-306"><a title="TeamCity Blog" href="/teamcity/">TeamCity</a></li> <li id="menu-item-307" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-307"><a title="Upsource Blog" href="/upsource/">Upsource</a></li> <li id="menu-item-308" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-308"><a title="YouTrack Blog" href="/youtrack/">YouTrack</a></li> <li id="menu-item-309" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-309"><a title="Hub Blog" href="/hub/">Hub</a></li> <li id="menu-item-165129" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-165129"><a href="/qodana/">Qodana</a></li> <li id="menu-item-522426" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-522426"><a href="/codecanvas/">CodeCanvas</a></li> </ul> </li> <li id="menu-item-297" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-297"><h4>.NET & Visual Studio</h4> <ul class="sub-menu"> <li id="menu-item-304" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-304"><a title=".NET Tools" href="/dotnet/">.NET Tools</a></li> <li id="menu-item-300" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-300"><a title="ReSharper C++ Blog" href="/rscpp/">ReSharper C++</a></li> </ul> </li> <li id="menu-item-63316" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-63316"><h4>Languages & Frameworks</h4> <ul class="sub-menu"> <li id="menu-item-311" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-311"><a title="Kotlin Blog" href="/kotlin/">Kotlin</a></li> <li id="menu-item-63315" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-63315"><a href="/ktor/">Ktor</a></li> <li id="menu-item-290" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-290"><a title="MPS Blog" href="/mps/">MPS</a></li> <li id="menu-item-422188" class="menu-item menu-item-type-post_type_archive menu-item-object-amper menu-item-422188"><a href="https://blog.jetbrains.com/amper/">Amper</a></li> </ul> </li> <li id="menu-item-63314" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-63314"><h4>Education & Research</h4> <ul class="sub-menu"> <li id="menu-item-118360" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-118360"><a href="/education/">JetBrains Academy</a></li> <li id="menu-item-285585" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-285585"><a href="/research/">Research</a></li> </ul> </li> <li id="menu-item-312" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-312"><h4>Company</h4> <ul class="sub-menu"> <li id="menu-item-313" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-313"><a title="JetBrains Company Blog" href="/blog/">Company Blog</a></li> <li id="menu-item-227873" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-227873"><a href="/security/">Security</a></li> </ul> </li> </ul> </div> </nav> </div> </header> <main id="main"> <div class="top-page"> <div class="container"> <div class="top-page__row"> <div class="top-page__head"> <div class="top-page__wrap"> <a href="https://blog.jetbrains.com/blog/"> <img src="https://blog.jetbrains.com/wp-content/uploads/2020/07/JetBrains.svg" alt="Blog logo"> <h2 class="h1">Company</h2> </a> </div> </div> <div class="top-page__right"> <div class="top-page__social-wrap"> <a href="#" class="social-opener">Follow</a> <ul class="social"> <li><span>Follow:</span></li> <li><a href="https://twitter.com/jetbrains" target="_blank" aria-label="Twitter"><i class="icon-twitter"><span class="sr-only">Twitter</span></i> <span>Twitter</span></a></li> <li><a href="https://www.facebook.com/JetBrains/" target="_blank" aria-label="Facebook"><i class="icon-facebook"><span class="sr-only">Facebook</span></i> <span>Facebook</span></a></li> <li><a href="https://www.linkedin.com/company/jetbrains/" target="_blank" aria-label="Linkedin"><i class="icon-linkedin"><span class="sr-only">Linkedin</span></i> <span>Linkedin</span></a></li> <li><a href="https://www.instagram.com/jetbrains/" target="_blank" aria-label="Instagram"><i class="icon-instagram"><span class="sr-only">Instagram</span></i> <span>Instagram</span></a></li> <li><a href="https://www.youtube.com/user/JetBrainsTV" target="_blank" aria-label="Youtube"><i class="icon-youtube"><span class="sr-only">Youtube</span></i> <span>Youtube</span></a></li> <li><a href="https://blog.jetbrains.com/blog/feed/" target="_blank" aria-label="RSS"><i class="icon-rss-feed"><span class="sr-only">RSS</span></i> <span>RSS</span></a></li> <li><a href="https://www.tiktok.com/@jetbrains?lang=en" target="_blank" aria-label="Tiktok"><i class="icon-tiktok"><span class="sr-only">Tiktok</span></i> <span>Tiktok</span></a></li> </ul> </div> <a href="https://www.jetbrains.com/" class="btn">Visit jetbrains.com</a> </div> </div> <div class="menu"> <span class="menu__border"></span> <div class="menu__wrapper"> <nav class="menu__nav"> <ul class="menu__nav-list"> <li> <a href="/blog/" >All</a> </li> <li><a href="/blog/category/news/" attr-class="curent_tax">News</a></li> <li><a href="/blog/category/events/" >Events</a></li> <li><a href="/blog/category/new-products/" attr-class="curent_tax">New Products</a></li> <li><a href="/blog/category/interviews/" >Interviews</a></li> </ul> </nav> </div> </div> </div> </div> <section class="article-section" data-clarity-region="article"> <div class="content js-toc-content"> <a href="/blog/category/cloud-development-environments/" class="tag">Cloud Development Environments</a> <a href="/blog/category/new-products/" class="tag">New Products</a> <a href="/blog/category/news/" class="tag">News</a> <a href="/blog/category/releases/" class="tag">Releases</a> <a href="/blog/category/remote-development/" class="tag">Remote Development</a> <h1 id="major-updates">Solving Remote Development Challenges With CodeCanvas: A CDE Orchestration Tool by JetBrains</h1> <div class="author-post"> <div class="author-post__info"> <div class="author-post__info-avatars "> <img src="https://blog.jetbrains.com/wp-content/uploads/2021/03/totin-removebg-preview-200x200.png" width="200" height="200" alt="Alexey Totin" loading="lazy" class="avatar"> </div> <div class="author-post__text"> <div class="author-post__text-title"> <a href="https://blog.jetbrains.com/author/alexey-totin">Alexey Totin</a> </div> <time class="publish-date" data-year="2024" data-month="09" data-day="17" data-hours="08" data-minutes="47" datetime="2024-09-17"></time> </div> </div> </div> <p>We’re excited to announce the public release of CodeCanvas, JetBrains’ new platform for orchestrating cloud development environments (CDEs). To better understand <a href="https://www.jetbrains.com/codecanvas/" data-type="link" data-id="https://www.jetbrains.com/codecanvas/" target="_blank" rel="noopener">CodeCanvas</a> and why it is important for JetBrains’ remote development strategy, let’s dive a bit into history and context.</p> <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper"> <iframe title="Introducing CodeCanvas: A CDE Orchestration Tool by JetBrains" width="500" height="281" src="https://www.youtube.com/embed/g_FYa-4wqPE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> </div></figure> <h1 class="wp-block-heading">Remote development trend</h1> <p>Many companies still rely on local development, a method that has several downsides, including onboarding difficulties, security risks, hardware limitations, and its inefficient use of developer time. All of this directly translates into higher costs for the business. </p> <p>To address these issues, businesses have suggested using remote machines. Initially, this was supported through virtual desktop infrastructure (VDI) solutions, where only a “video stream” of the IDE from the remote machine was delivered to the local system. However, a major problem with this setup was the input lag when typing or moving the mouse.</p> <p>Later, a new approach evolved – IDEs began supporting a split model. Heavy backend processes would run on a remote machine, while a local client would run only a lightweight UI that connects to the backend. This setup improved responsiveness and is what we now know as remote development. It first appeared in VS Code and later in JetBrains IDEs. This solution seemed to resolve the main issues: Code no longer needed to reside on local machines, and remote machines could scale as needed.</p> <figure class="wp-block-image size-full"><img decoding="async" fetchpriority="high" width="1999" height="1111" src="https://blog.jetbrains.com/wp-content/uploads/2024/09/remote-development-graph.png" alt="" class="wp-image-510433"/></figure> <p>But, as the number of these remote machines grew, managing them became more complex. Either users had to be granted access to the cloud services to create machines themselves, or the IT department had to manage the machines for them. Additionally, the cost of running these machines was significant, and ensuring they were used efficiently became essential.</p> <p>This gave rise to a<strong> </strong>new category of tools: cloud development environment (CDE) orchestrators. These platforms manage the lifecycle of CDEs, scale resources, and ensure cost efficiency. </p> <p>CodeCanvas is JetBrains’ entry into this space that, in addition to general orchestration capabilities, offers many other valuable features.</p> <p>Looking to the future, remote development and CDEs perfectly align with the growing trend of AI-assisted development. As autonomous AI developers emerge, they will require scalable dev environments to execute tasks. CDE orchestrators, like CodeCanvas, will let these AI systems create and manage their own environments through APIs.</p> <h1 class="wp-block-heading">CodeCanvas public release</h1> <p>CodeCanvas was initially launched silently in May 2024 so that we could gather early feedback from select clients. Now, it’s finally ready for public release. We’re starting with <a href="https://www.jetbrains.com/help/codecanvas/2024.2/what-s-new.html#2024_2" target="_blank" rel="noopener">version 2024.2,</a> which is already available to install.</p> <h2 class="wp-block-heading">Why CodeCanvas</h2> <figure class="wp-block-image size-full"><img decoding="async" width="1999" height="1135" src="https://blog.jetbrains.com/wp-content/uploads/2024/09/codecanvas-ui.png" alt="" class="wp-image-510444"/></figure> <p>The remote development orchestration market is still young, and existing solutions often have limitations. By working closely with our customers who need remote development, we’ve identified these pain points and are addressing them with CodeCanvas. </p> <p>Our goal is to make working in a CDE feel no different than working in a local IDE, if not better. With CodeCanvas, developers no longer need to worry about cloning repositories, selecting the right IDE version, installing dependencies, starting services, first-time compilation, or indexing. In just 10–15 seconds, a fully prepared environment is ready, allowing developers to dive straight into coding.</p> <p>In addition to core orchestration features, CodeCanvas offers:</p> <ul> <li><strong>On-premises installation</strong>: CodeCanvas is an on-premises solution deployed in Kubernetes clusters, currently supporting AWS, Google Cloud, and Azure. You can find more details about the architecture in the <a href="https://www.jetbrains.com/help/codecanvas/2024.2/rdo-architecture.html" target="_blank" rel="noopener">CodeCanvas documentation</a>.</li> <li><strong>Advanced JetBrains IDE support</strong>: CodeCanvas provides first-class support for JetBrains IDEs, handling indexing, plugins, version management, and more. It supports most IntelliJ-based IDEs, including IntelliJ IDEA, PyCharm, Rider, and others.</li> <li><strong>VS Code support</strong>: For those who prefer a different editor.</li> <li><strong>Flexible dev environment configurations</strong>: CodeCanvas allows you to configure dev environments with as much CPU, memory, and storage as needed. The only limit is your cloud provider’s resources.</li> <li><strong>GPU support</strong>: Developers can create dev environments with GPU support, enabling them to run GPU workloads like ML training.</li> <li><strong>Automated preparation of CDEs</strong>: Use dev environment templates and lifecycle scripts to create pre-configured CDEs.</li> <li><strong>Ready-to-work environments</strong>: The warm-up feature helps developers start working in a CDE with already-built indexes, downloaded dependencies, and pre-built projects. Using a standby pool of pre-created CDEs, you can reduce the time to start a new environment almost to zero.</li> <li><strong>Security</strong>: Multiple authentication options, connection to dev environments via SSH, personalized environment settings, and a robust permission system.</li> <li><strong>Ease of administration</strong>: A web-based UI allows administrators to manage users and their access to cluster resources, balance costs, and more.</li> </ul> <h1 class="wp-block-heading">How to get started</h1> <p>To try CodeCanvas or schedule a demo, <a href="https://www.jetbrains.com/codecanvas/#contact-sales" target="_blank" rel="noopener">contact our sales team</a>. You can also check out <a href="https://www.jetbrains.com/help/codecanvas/2024.2/introduction.html" target="_blank" rel="noopener">our documentation</a> to better understand how CodeCanvas works.</p> <div class="content__row"> <div class="tag-list"> <a href="/blog/tag/codecanvas/" class="tag">CodeCanvas</a> </div> <ul class="social"> <li><span>Share</span></li> <li><a target="_blank" href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fblog.jetbrains.com%2Fblog%2F2024%2F09%2F17%2Fintroducing-codecanvas%2F?facebook_en_US" rel="noopener noreferrer"><i class="icon-facebook"><span class="sr-only">Facebook</span></i></a></li> <li><a target="_blank" href="https://twitter.com/intent/tweet?source=https%3A%2F%2Fblog.jetbrains.com%2Fblog%2F2024%2F09%2F17%2Fintroducing-codecanvas%2F&text=https%3A%2F%2Fblog.jetbrains.com%2Fblog%2F2024%2F09%2F17%2Fintroducing-codecanvas%2F&via=jetbrains?twitter_en_US" rel="noopener noreferrer"><span class="sr-only">Twitter</span><i class="icon-twitter"></i></a></li> <li><a target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fblog.jetbrains.com%2Fblog%2F2024%2F09%2F17%2Fintroducing-codecanvas%2F?linkedin_en_US" rel="noopener noreferrer"><i class="icon-linkedin"><span class="sr-only">Linkedin</span></i></a></li> </ul> </div> <div class="content__pagination"><a class="content__pagination-next" href="https://blog.jetbrains.com/codecanvas/2024/10/should-your-company-adopt-remote-development/">Should Your Company Adopt Remote Development? <i class="icon-arrow-right"><span class="sr-only">Next post</span></i></a></div> <div class="content__form"> <div class="form-subscribe"> <h4>Subscribe to JetBrains Blog updates</h4> <form action="#" class="form-subscribe__form js-form-subscribe__form"> <input type="hidden" name="formid" value="consent/4332"> <input type="hidden" class="fieldName1" name="jetBrainsBlogNews" value=true> <input type="hidden" name="locale" value="en_US"> <input type="hidden" name="privacyConsentType[]" value="mkt.general.jb-intention"> <input type="hidden" name="subscriptionTopicWelcomeEmail" value="JetBrains Blog"> <div class="form-subscribe__group-input"> <label for="email" class="sr-only">Subscribe form</label> <input id="email" type="email" placeholder="Your email" name="email"> </div> <div class="form-subscribe__group-checkbox"> <input type="hidden" id="checkbox" name="privacyConsent" value="true"> <label for="checkbox">By submitting this form, I agree to the JetBrains <a href="https://www.jetbrains.com/company/privacy.html" class="tooltip-opener">Privacy Policy <i class="icon-notification"><span class="sr-only">Notification icon</span></i></a></label> <div class="tooltip"> <p>By submitting this form, I agree that JetBrains s.r.o. ("JetBrains") may use my name, email address, and location data to send me newsletters, including commercial communications, and to process my personal data for this purpose. I agree that JetBrains may process said data using <a href="https://www.jetbrains.com/legal/privacy/third-parties.html">third-party</a> services for this purpose in accordance with the <a href="https://www.jetbrains.com/company/privacy.html" target="_blank">JetBrains Privacy Policy</a>. I understand that I can revoke this consent at any time in <a href="https://account.jetbrains.com/profile-details/privacy" target="_blank">my profile</a>. In addition, an unsubscribe link is included in each email.</p> </div> </div> <button type="submit">Submit</button> </form> </div> <div class="form_massage" style="display: none"><p>Thanks, we've got you!</p></div> <div class="content__form-img"> <img src="https://blog.jetbrains.com/wp-content/themes/jetbrains/assets/img/img-form.svg" alt="image description"> </div> </div> </div> <a href="#" class="toc-opener"></a> <div class="js-toc"></div> <div class="container comments-container"> <div class="content"> <div id="remark42"></div> </div> </div> </section> <div class="section light-gray-bg"> <div class="container"> <div class="section__head"> <h2>Discover more</h2> </div> <div class="row"> <div class="col" post_id="538225"> <a class="card img-visible" href="https://blog.jetbrains.com/blog/2025/01/16/gartner-peer-insights-customers-choice/"> <img width="2560" height="1440" src="https://blog.jetbrains.com/wp-content/uploads/2025/01/jb-featured_blog_1280x720_en.png" class="attachment-full size-full wp-post-image" alt="" decoding="async" loading="lazy" sizes="(max-width: 768px) 768px , 525px" /> <div class="card__header"> <h4>JetBrains Named a Customers’ Choice Again for Integrated Development Environment Software</h4> </div> <div class="card__body"> <p>JetBrains is honored to be recognized as a Customers’ Choice in the 2024 Gartner® Peer Insights™ Voice of the Customer for Integrated Development Environment (IDE) Software. </p> </div> <div class="card__footer"> <div class="author"> <img class="avatar" src="https://blog.jetbrains.com/wp-content/uploads/2021/05/photo_2021-05-12-10.45.54-50x50.jpeg" width="50" height="50" alt="Sergey Kozlovskiy" loading="lazy"> <div class="author__info"> <span>Sergey Kozlovskiy</span> <time class="publish-date" data-year="2025" data-month="01" data-day="16" data-hours="15" data-minutes="45" datetime="2025-01-16"></time> </div> </div> <span class="remark42__counter icon-comments" data-url="https://blog.jetbrains.com/blog/2025/01/16/gartner-peer-insights-customers-choice/"></span> </div> </a> </div> <div class="col" post_id="533834"> <a class="card img-visible" href="https://blog.jetbrains.com/blog/2024/12/10/discover-jetbrains-consulting-partner-services/"> <img width="2560" height="1440" src="https://blog.jetbrains.com/wp-content/uploads/2024/12/jb-featured_blog_1280x720_en-4.png" class="attachment-full size-full wp-post-image" alt="" decoding="async" loading="lazy" sizes="(max-width: 768px) 768px , 525px" /> <div class="card__header"> <h4>Discover JetBrains Consulting Partner Services</h4> </div> <div class="card__body"> <p>Our Consulting Partners offer tailored solutions to help you succeed, from seamless deployment to hands-on training.</p> </div> <div class="card__footer"> <div class="author"> <img class="avatar" src="https://blog.jetbrains.com/wp-content/uploads/2024/12/photo-2-1.jpg" width="50" height="50" alt="Elizaveta Chepurnaia" loading="lazy"> <div class="author__info"> <span>Elizaveta Chepurnaia</span> <time class="publish-date" data-year="2024" data-month="12" data-day="10" data-hours="14" data-minutes="25" datetime="2024-12-10"></time> </div> </div> <span class="remark42__counter icon-comments" data-url="https://blog.jetbrains.com/blog/2024/12/10/discover-jetbrains-consulting-partner-services/"></span> </div> </a> </div> <div class="col" post_id="520491"> <a class="card img-visible" href="https://blog.jetbrains.com/blog/2024/10/25/ide-services-cloud-release-and-floating-license-server-end-of-life-announcements/"> <img width="1280" height="720" src="https://blog.jetbrains.com/wp-content/uploads/2024/10/DSGN-19296_Blog_Post_Image_2.png" class="attachment-full size-full wp-post-image" alt="" decoding="async" loading="lazy" sizes="(max-width: 768px) 768px , 525px" /> <div class="card__header"> <h4>IDE Services Cloud Release and Floating License Server End-of-Life Announcements</h4> </div> <div class="card__body"> <p>JetBrains IDE Services, the enterprise suite of products dedicated to improving developer productivity across an entire organization, is now available in the cloud! By offering a JetBrains-managed service, IDE Services Cloud simplifies license management, enhances security, and provides seamless …</p> </div> <div class="card__footer"> <div class="author"> <img class="avatar" src="https://blog.jetbrains.com/wp-content/uploads/2023/09/front_square-copy-50x50.jpg" width="50" height="50" alt="Yegor Naumov" loading="lazy"> <div class="author__info"> <span>Yegor Naumov</span> <time class="publish-date" data-year="2024" data-month="10" data-day="25" data-hours="11" data-minutes="15" datetime="2024-10-25"></time> </div> </div> <span class="remark42__counter icon-comments" data-url="https://blog.jetbrains.com/blog/2024/10/25/ide-services-cloud-release-and-floating-license-server-end-of-life-announcements/"></span> </div> </a> </div> <div class="col" post_id="518086"> <a class="card img-visible" href="https://blog.jetbrains.com/blog/2024/10/24/webstorm-and-rider-are-now-free-for-non-commercial-use/"> <img width="1280" height="720" src="https://blog.jetbrains.com/wp-content/uploads/2024/10/DSGN-20567_New_licensing_Social_Share_Blog_1280x720-1.png" class="attachment-full size-full wp-post-image" alt="" decoding="async" loading="lazy" sizes="(max-width: 768px) 768px , 525px" /> <div class="card__header"> <h4>WebStorm and Rider Are Now Free for Non-Commercial Use</h4> </div> <div class="card__body"> <p>WebStorm and Rider, JetBrains IDEs, are now free for non-commercial use! Learn more in the blog post.</p> </div> <div class="card__footer"> <div class="author"> <img class="avatar" src="https://blog.jetbrains.com/wp-content/uploads/2021/05/ryabukha-ekaterina-profile-pic-50x50.jpeg" width="50" height="50" alt="Ekaterina Ryabukha" loading="lazy"> <div class="author__info"> <span>Ekaterina Ryabukha</span> <time class="publish-date" data-year="2024" data-month="10" data-day="24" data-hours="13" data-minutes="54" datetime="2024-10-24"></time> </div> </div> <span class="remark42__counter icon-comments" data-url="https://blog.jetbrains.com/blog/2024/10/24/webstorm-and-rider-are-now-free-for-non-commercial-use/"></span> </div> </a> </div> </div> </div> </div> </main> <footer class="footer" id="footer"> <div class="container"> <div class="footer__top"> <ul class="footer__nav"><li id="menu-item-118361" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-118361"><a href="https://www.jetbrains.com/privacy-security/">Privacy & Security</a></li> <li id="menu-item-118362" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-118362"><a href="https://www.jetbrains.com/company/useterms.html">Terms of Use</a></li> <li id="menu-item-118363" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-118363"><a href="https://www.jetbrains.com/legal/">Legal</a></li> <li id="menu-item-118364" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-118364"><a href="https://www.jetbrains.com/genuine-tools/">Genuine tools</a></li> </ul> </div> <div class="footer__row"> <ul class="social"> <li> <a href="https://twitter.com/jetbrains"><i class="icon-twitter"><span class="sr-only">Twitter</span></i></a> </li> <li> <a href="https://www.facebook.com/JetBrains"><i class="icon-facebook"><span class="sr-only">Facebook</span></i></a> </li> <li> <a href="https://www.linkedin.com/company/jetbrains"><i class="icon-linkedin"><span class="sr-only">Linkedin</span></i></a> </li> <li> <a href="https://www.instagram.com/jetbrains/"><i class="icon-instagram"><span class="sr-only">Instagram</span></i></a> </li> <li> <a href="https://www.youtube.com/user/JetBrainsTV"><i class="icon-youtube"><span class="sr-only">Youtube</span></i></a> </li> <li> <a href="https://blog.jetbrains.com/feed/"><i class="icon-rss-feed"><span class="sr-only">RSS</span></i></a> </li> <li> <a href="https://www.tiktok.com/@jetbrains?lang=en"><i class="icon-tiktok"><span class="sr-only">Tiktok</span></i></a> </li> </ul> <a href="https://jb.gg/jetbrainsgearblog" class="footer__merch-link" ><i class="icon-merchandise"><span class="sr-only">Merchandise store icon</span></i>Merchandise store</a> </div> <span class="copyright">Copyright © 2000 <a href="https://www.jetbrains.com/" target="”_blank”">JetBrains</a> s.r.o.</span> </div> </footer> <span class="overlay"></span> </div> <script> var remark_config = { host: "https://comments.blog.jetbrains.com", site_id: "remark", components: ["counter","embed"], max_shown_comments: 150, locale: "en" }; </script><script>!function(e,n){for(var o=0;o<e.length;o++){var r=n.createElement("script"),c=".js",d=n.head||n.body;"noModule"in r?(r.type="module",c=".mjs"):r.async=!0,r.defer=!0,r.src=remark_config.host+"/web/"+e[o]+c,d.appendChild(r)}}(remark_config.components||["embed"],document);</script><script type='text/javascript' src='https://blog.jetbrains.com/wp-content/plugins/accordion-blocks/js/accordion-blocks.min.js?ver=1.5.0' id='pb-accordion-blocks-frontend-script-js'></script> <script type='module' src='https://blog.jetbrains.com/wp-content/plugins/instant-page/instantpage.js?ver=5.6.1' id='instantpage-js'></script> <script type='text/javascript' src='https://blog.jetbrains.com/wp-content/plugins/map-shortcode//map.js?ver=1d837425d173a9a11b4b5bc34ccb3401' id='gmaps-js'></script> <script type='text/javascript' id='ppress-frontend-script-js-extra'> /* <![CDATA[ */ var pp_ajax_form = {"ajaxurl":"\/ajax-admin\/admin-ajax.php","confirm_delete":"Are you sure?","deleting_text":"Deleting...","deleting_error":"An error occurred. Please try again.","nonce":"cafe111991","disable_ajax_form":"false","is_checkout":"0","is_checkout_tax_enabled":"0"}; /* ]]> */ </script> <script type='text/javascript' src='https://blog.jetbrains.com/wp-content/plugins/wp-user-avatar/assets/js/frontend.min.js?ver=4.15.4' id='ppress-frontend-script-js'></script> <script type='text/javascript' src='https://blog.jetbrains.com/wp-content/plugins/enlighter/cache/enlighterjs.min.js?ver=ZGyDHRSQPMewFUQ' id='enlighterjs-js'></script> <script id="enlighterjs-js-after" type="text/javascript"> !function(e,n){if("undefined"!=typeof EnlighterJS){var o={"selectors":{"block":"pre.EnlighterJSRAW","inline":"code.EnlighterJSRAW"},"options":{"indent":4,"ampersandCleanup":true,"linehover":true,"rawcodeDbclick":false,"textOverflow":"scroll","linenumbers":false,"theme":"wpcustom","language":"generic","retainCssClasses":false,"collapse":false,"toolbarOuter":"","toolbarTop":"{BTN_RAW}{BTN_COPY}{BTN_WINDOW}{BTN_WEBSITE}","toolbarBottom":""}};(e.EnlighterJSINIT=function(){EnlighterJS.init(o.selectors.block,o.selectors.inline,o.options)})()}else{(n&&(n.error||n.log)||function(){})("Error: EnlighterJS resources not loaded yet!")}}(window,console); </script> <script type='text/javascript' id='app-js-extra'> /* <![CDATA[ */ var loadmore_params = {"ajaxurl":"\/ajax-admin\/admin-ajax.php?wpml_lang=en","post_data":{"post_type":"blog"},"current_page":"1","max_page":"0","nonce":"f79a160a16","form_nonce":"7add939218","email_error_message":"Invalid email format"}; var current_lang = "en-us"; var nonce = "ee515eaa59"; var jetbrains_texts = {"loadmore":{"load_more":"Load more","loading":"Loading..."}}; /* ]]> */ </script> <script type='text/javascript' src='https://blog.jetbrains.com/wp-content/themes/jetbrains/assets/dist/app.min.js?ver=2.22.0' id='app-js'></script> <script type='text/javascript' src='https://blog.jetbrains.com/wp-content/themes/jetbrains/assets/dist/singlepost.min.js?ver=2.22.0' id='single-post-js'></script> <script> if(jQuery('.subscribe-form').length>0){ ui.subscribeForm('.subscribe-form'); } // if(jQuery('img[data-gif-src]').length>0){ // ui.gifPlayer('img[data-gif-src]'); // } </script> <!-- Build # --> </body> </html>