PageSourceSearch

https://kotlinlang.org/backend/

html kotlinlang.org collected 2026-09-24 07:04:49 UTC 68,748 bytes, 1 lines download raw bytes

1<!DOCTYPE html><html lang="en" class="no-js"><head><meta charSet="utf-8"/><link rel="icon" href="/images/favicon/favicon.svg" type="image/svg+xml"/><link rel="alternate icon" href="/images/favicon/favicon.ico" type="image/x-icon"/><link rel="apple-touch-icon" sizes="57x57" href="/images/favicon/apple-touch-icon.png"/><link rel="apple-touch-icon" sizes="72x72" href="/images/favicon/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon" sizes="114x114" href="/images/favicon/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon" sizes="144x144" href="/images/favicon/apple-touch-icon-144x144.png"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Kotlin for Backend</title><meta property="og:title" content="Kotlin for Backend"/><meta property="og:type" content="website"/><meta property="og:url" content="https://kotlinlang.org/backend"/><meta name="description" content="Build scalable backend apps with Kotlin, from web backends to AI-powered services. Use Spring, Ktor, and the vast Java ecosystem"/><meta property="og:image" content="https://kotlinlang.org/assets/images/open-graph/server-side.png"/><meta property="og:description" content="Build scalable backend apps with Kotlin, from web backends to AI-powered services. Use Spring, Ktor, and the vast Java ecosystem"/><meta property="og:site_name" content="Kotlin"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@kotlin"/><meta name="twitter:title" content="Kotlin for Backend"/><meta name="twitter:description" content="Build scalable backend apps with Kotlin, from web backends to AI-powered services. Use Spring, Ktor, and the vast Java ecosystem"/><meta name="twitter:image:src" content="https://kotlinlang.org/assets/images/open-graph/server-side.png"/><link rel="canonical" href="https://kotlinlang.org/backend/"/><meta name="next-head-count" content="17"/>
1<script src="https://cdn.optimizely.com/js/26633200186.js"></script>
1<script>document.documentElement.classList.replace('no-js', 'js');</script>
1<link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/a83bfb8578ebcc49.css" as="style"/><link rel="stylesheet" href="/_next/static/css/a83bfb8578ebcc49.css" data-n-g=""/><link rel="preload" href="/_next/static/css/247f7bdcae2a5234.css" as="style"/><link rel="stylesheet" href="/_next/static/css/247f7bdcae2a5234.css" data-n-p=""/><link rel="preload" href="/_next/static/css/50f0e5525019dddb.css" as="style"/><link rel="stylesheet" href="/_next/static/css/50f0e5525019dddb.css" data-n-p=""/><link rel="preload" href="/_next/static/css/9dd5e35c8512d35a.css" as="style"/><link rel="stylesheet" href="/_next/static/css/9dd5e35c8512d35a.css" data-n-p=""/><link rel="preload" href="/_next/static/css/8402c58e2b9e4236.css" as="style"/><link rel="stylesheet" href="/_next/static/css/8402c58e2b9e4236.css" data-n-p=""/><noscript data-n-css=""></noscript>
1<script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script>
1<script src="/_next/static/chunks/webpack-21d26caa92aa0082.js" defer=""></script>
1<script src="/_next/static/chunks/framework-945b357d4a851f4b.js" defer=""></script>
1<script src="/_next/static/chunks/main-6c278a455fc51081.js" defer=""></script>
1<script src="/_next/static/chunks/pages/_app-0acdec120b64e5c7.js" defer=""></script>
1<script src="/_next/static/chunks/55-2c1759e54d547c87.js" defer=""></script>
1<script src="/_next/static/chunks/6944-b16c38043fddb224.js" defer=""></script>
1<script src="/_next/static/chunks/1664-75f24d836dbc8dde.js" defer=""></script>
1<script src="/_next/static/chunks/5675-d5c259e0dc915f46.js" defer=""></script>
1<script src="/_next/static/chunks/7420-3e0b738077443597.js" defer=""></script>
1<script src="/_next/static/chunks/8471-8bfc977239f27069.js" defer=""></script>
1<script src="/_next/static/chunks/26-8adb1381f0d6d822.js" defer=""></script>
1<script src="/_next/static/chunks/3197-41780bf46065335d.js" defer=""></script>
1<script src="/_next/static/chunks/8016-4175380cb29da81c.js" defer=""></script>
1<script src="/_next/static/chunks/pages/backend-740bdcc558b7a522.js" defer=""></script>
1<script src="/_next/static/E3zqn3acXf1A8YpugSXmg/_buildManifest.js" defer=""></script>
1<script src="/_next/static/E3zqn3acXf1A8YpugSXmg/_ssgManifest.js" defer=""></script>
1</head><body class="nextjs"><div id="__next">
vendor: 67 bytes, line 1
1<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
1GTM-5P98
vendor: 82 bytes, line 1
1" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1<header class="ktl-header-module_header-menu_wh71L" data-test="header"><div class="ktl-logo-large-module_container_35w4p _rs-text-3_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_average_1owszn1_1"><a class="ktl-logo-large-module_link_AOGas" href="https://kotlinlang.org" aria-label="Kotlin Home Page"><svg width="98" height="22" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M43.314 1.067h-4.031L30.5 10.422V1.098H27.27v20.273H30.5v-9.82l8.814 9.82h4.177l-9.397-10.484 9.22-9.82Z" fill="#fff"></path><path d="M54.303 7.186c-1.153-.66-2.45-.994-3.901-.994-1.478 0-2.803.33-3.973.994a7.042 7.042 0 0 0-2.735 2.758c-.65 1.179-.976 2.515-.976 4.01 0 1.494.325 2.835.972 4.01a6.967 6.967 0 0 0 2.716 2.758c1.166.659 2.486.993 3.964.993 1.46 0 2.766-.33 3.923-.993a6.941 6.941 0 0 0 2.694-2.759c.642-1.178.963-2.515.963-4.01 0-1.494-.32-2.83-.963-4.009a6.949 6.949 0 0 0-2.684-2.758Zm-.204 9.328c-.357.74-.859 1.314-1.505 1.73-.646.415-1.392.622-2.233.622-.85 0-1.604-.207-2.26-.623a4.184 4.184 0 0 1-1.528-1.73c-.361-.74-.542-1.589-.542-2.555 0-.966.185-1.815.551-2.555a4.177 4.177 0 0 1 1.537-1.73c.656-.415 1.415-.623 2.278-.623.832 0 1.573.208 2.22.623a4.125 4.125 0 0 1 1.5 1.73c.353.74.529 1.59.529 2.555-.009.962-.19 1.815-.547 2.556ZM64.555 2.836h-3.132v2.52c0 .397-.095.695-.29.889-.194.198-.492.298-.899.298h-1.537v2.664h2.667v7.978c0 .83.167 1.562.506 2.194a3.591 3.591 0 0 0 1.442 1.472c.624.348 1.36.52 2.21.52h2.391v-2.782h-1.798c-.466 0-.841-.163-1.13-.483-.29-.325-.434-.75-.434-1.282V9.207h3.448V6.543h-3.448V2.836h.004ZM73.68.286h-3.186V21.37h3.187V.286ZM80.498.312H77.28v3.273h3.218V.312ZM80.466 6.544H77.28V21.37h3.186V6.544ZM96.67 8.99a4.969 4.969 0 0 0-1.899-2.054c-.818-.492-1.772-.74-2.866-.74-1.161 0-2.178.284-3.05.848-.697.447-1.257 1.052-1.7 1.797l-.018-2.298H84.09V21.37h3.191v-8.298c0-.8.154-1.513.457-2.136a3.39 3.39 0 0 1 1.293-1.45c.556-.342 1.202-.514 1.948-.514.669 0 1.238.14 1.717.42.48.28.841.682 1.085 1.201.249.52.37 1.142.37 1.87v8.907h3.192v-9.355c0-1.138-.226-2.149-.674-3.025Z" fill="#fff"></path><path d="M20 21H0V1h20L9.793 10.855 20 21Z" fill="url(#kotlin-logo-large_svg__a)"></path><defs><radialGradient id="kotlin-logo-large_svg__a" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(19.335 1.822) scale(22.9097)"><stop offset="0.003" stop-color="#EF4857"></stop><stop offset="0.469" stop-color="#D211EC"></stop><stop offset="1" stop-color="#7F52FF"></stop></radialGradient></defs></svg></a><a class="ktl-logo-large-module_version-tag_k12Hw" href="https://github.com/JetBrains/kotlin/releases/tag/v2.4.20" target="_blank">v2.4.20</a></div><nav class="ktl-horizontal-menu-module_nav_gbA7M ktl-horizontal-menu-module_dark-theme_gfxx6"><ul class="ktl-horizontal-menu-module_menu-list_TJnOF"><li class="ktl-horizontal-menu-module_menu-item-wrap_j6zB-"><span class="ktl-horizontal-menu-module_menu-item_CXDEW _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 ktl-horizontal-menu-module_item-active_Zca2K">Solutions<svg viewBox="0 0 24 24" class="_icon_i5poj_4 _sizeM_i5poj_22"><path d="M18.707 8.293a1 1 0 0 0-1.414 0L12 13.586 6.707 8.293a1 1 0 0 0-1.414 1.414l6 6a1 1 0 0 0 1.414 0l6-6a1 1 0 0 0 0-1.414"></path></svg></span><ul class="ktl-horizontal-menu-module_dropdown-menu_jwdWI _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1"><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="/multiplatform/">Multiplatform</a></li><li><span class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH ktl-horizontal-menu-module_active_m5fs-" href="/backend/">Backend</span></li><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="/docs/android-overview.html">Android</a></li></ul></li><li class="ktl-horizontal-menu-module_menu-item-wrap_j6zB-"><a href="/case-studies/" class="ktl-horizontal-menu-module_menu-item_CXDEW _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Case studies</a></li><li class="ktl-horizontal-menu-module_menu-item-wrap_j6zB-">
1<span class="ktl-horizontal-menu-module_menu-item_CXDEW _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Docs<svg viewBox="0 0 24 24" class="_icon_i5poj_4 _sizeM_i5poj_22"><path d="M18.707 8.293a1 1 0 0 0-1.414 0L12 13.586 6.707 8.293a1 1 0 0 0-1.414 1.414l6 6a1 1 0 0 0 1.414 0l6-6a1 1 0 0 0 0-1.414"></path></svg></span><ul class="ktl-horizontal-menu-module_dropdown-menu_jwdWI _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1"><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="/docs/home.html">Language guide</a></li><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="/docs/multiplatform/get-started.html">Multiplatform development</a></li></ul></li><li class="ktl-horizontal-menu-module_menu-item-wrap_j6zB-"><span class="ktl-horizontal-menu-module_menu-item_CXDEW _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">API<svg viewBox="0 0 24 24" class="_icon_i5poj_4 _sizeM_i5poj_22"><path d="M18.707 8.293a1 1 0 0 0-1.414 0L12 13.586 6.707 8.293a1 1 0 0 0-1.414 1.414l6 6a1 1 0 0 0 1.414 0l6-6a1 1 0 0 0 0-1.414"></path></svg></span><ul class="ktl-horizontal-menu-module_dropdown-menu_jwdWI _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1"><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="/docs/api-references.html">APIs overview</a></li><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="/api/core/kotlin-stdlib/">Standard library</a></li><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="/api/core/kotlin-test/">Test library</a></li><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="/api/kotlinx.coroutines/kotlinx-coroutines-core/">Coroutines</a></li><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="/api/kotlinx.serialization/kotlinx-serialization-core/">Serialization</a></li><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="/api/kotlinx-io/">Kotlin I/O library</a></li><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="/api/kotlinx-datetime/">Date and time</a></li><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="/api/kotlinx.collections.immutable/">Collections Immutable</a></li><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="/api/kotlinx-metadata-jvm/">JVM Metadata</a></li><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="/api/kotlin-gradle-plugin/">Kotlin Gradle plugins</a></li><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="https://api.ktor.io/">Ktor</a></li><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="https://kotlinlang.org/api/compose-multiplatform/material3/">Compose Multiplatform Material3</a></li></ul></li><li class="ktl-horizontal-menu-module_menu-item-wrap_j6zB-"><a href="/community/" class="ktl-horizontal-menu-module_menu-item_CXDEW _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Community</a></li><li class="ktl-horizontal-menu-module_menu-item-wrap_j6zB-"><a href="/education/" class="ktl-horizontal-menu-module_menu-item_CXDEW _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Teach</a></li><li class="ktl-horizontal-menu-module_menu-item-wrap_j6zB-"><span class="ktl-horizontal-menu-module_menu-item_CXDEW _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Play<svg viewBox="0 0 24 24" class="_icon_i5poj_4 _sizeM_i5poj_22"><path d="M18.707 8.293a1 1 0 0 0-1.414 0L12 13.586 6.707 8.293a1 1 0 0 0-1.414 1.414l6 6a1 1 0 0 0 1.414 0l6-6a1 1 0 0 0 0-1.414"></path></svg></span><ul class="ktl-horizontal-menu-module_dropdown-menu_jwdWI _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 ktl-horizontal-menu-module_dropdown-menu-align-right_YeB-9"><li><a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="https://play.kotlinlang.org/">Playground</a></li><li>
1<a class="ktl-horizontal-menu-module_dropdown-menu-item_9gjwH" href="https://play.kotlinlang.org/koans">Koans</a></li></ul></li></ul></nav><button type="button" class="ktl-search-button-module_button_YHJPv ktl-search-button-module_active_lUmdh" data-test="header-search-button" aria-label="Search"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.847 6.861A6.99 6.99 0 0 0 9.587 3a6.997 6.997 0 1 0 4.186 12.601l6.106 6.106 1.414-1.414-6.107-6.106a6.99 6.99 0 0 0 .66-7.326ZM14.587 10a5 5 0 1 1-10.001 0 5 5 0 0 1 10 0Z" fill="currentColor"></path></svg></button><a data-test="button" data-testid="ab-hero-button" type="button" href="/docs/getting-started.html" class="_main_1dmt5cy_56 _modeClassic_1dmt5cy_33 _sizeM_1dmt5cy_26 _alignIconLeft_1dmt5cy_49 _dark_1dmt5cy_9 ktl-header-module_abTestButton_Jeac8"><span class="_content_1dmt5cy_224" data-rs-internal="button__content" data-test="button__content">Get started</span></a></header><div class="sticky-header_stickyHeader__8qmss"><div data-testid="top-menu"><div class="ktl-top-menu-module_top-menu_PRX9X ktl-top-menu-module_top-menu-dark-theme_aNBxr"><a href="/backend/" class="ktl-top-menu-module_logo_CNH2W _rs-h3_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Backend</a><nav class="ktl-horizontal-menu-module_horizontal-menu_pB2-S _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1"><a href="/case-studies/?type=backend" class="ktl-horizontal-menu-module_item_yv0RR _rs-link_1owszn1_1 _rs-link_mode_clear_1owszn1_1 _rs-link_hardness_average_1owszn1_1 _rs-typography_theme_dark_1owszn1_1">Success stories</a></nav><a data-test="button" type="button" href="#get-started" class="_main_1dmt5cy_56 _modeClassic_1dmt5cy_33 _sizeM_1dmt5cy_26 _alignIconLeft_1dmt5cy_49 _dark_1dmt5cy_9"><span class="_content_1dmt5cy_224" data-rs-internal="button__content" data-test="button__content">Get started</span></a></div></div></div><div class="landing-layout_contentWrapper__MtGs4" data-testid="server-side-page"><div class="hero_wrapper__0EJID" data-testid="hero-block"><img alt="Server-side graphic" loading="lazy" width="1000" height="1000" decoding="async" data-nimg="1" class="hero_heroImage__A8Dfg" style="color:transparent" src="/_next/static/media/hero-graphics.e3112e86.webp"/><div class="ktl-layout ktl-layout--center"><div class="hero_content__8Fr5N"><h1 class="_rs-hero_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 hero_heroTitle__hQUx3" data-testid="hero-block-title">Modern backend<br/> development <br/> with Kotlin</h1><p class="_rs-subtitle-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 hero_heroSubtitle__ak4KS" data-testid="hero-block-subtitle">Kotlin is a perfect fit for building backends on the JVM, including AI-powered services, and is trusted by major tech companies worldwide.</p><div class="hero_featuresList__3gzWx"><a class="hero_feature__yxAMJ" data-testid="hero-block-anchor" href="/backend/#safety"><p class="_rs-subtitle-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 hero_featureTitle__ri63s">Safety</p></a><a class="hero_feature__yxAMJ" data-testid="hero-block-anchor" href="/backend/#performance"><p class="_rs-subtitle-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 hero_featureTitle__ri63s">Runtime performance</p></a><a class="hero_feature__yxAMJ" data-testid="hero-block-anchor" href="/backend/#ecosystem"><p class="_rs-subtitle-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 hero_featureTitle__ri63s">Access to the rich JVM ecosystem</p></a><a class="hero_feature__yxAMJ" data-testid="hero-block-anchor" href="/backend/#tools"><p class="_rs-subtitle-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 hero_featureTitle__ri63s">Great developer experience</p></a></div><div class="hero_buttons___hh4_"><a data-test="button" data-testid="hero-block-get-started-link" type="button" href="#get-started" class="_main_1dmt5cy_56 _modeRock_1dmt5cy_36 _sizeL_1dmt5cy_29 _alignIconLeft_1dmt5cy_49 _dark_1dmt5cy_9"><span class="_content_1dmt5cy_224" data-rs-internal="button__content" data-test="button__content">Get started</span></a><a data-test="button" data-testid="hero-block-case-studies-link" type="button" href="/case-studies/?type=backend" class="_main_1dmt5cy_56 _modeOutline_1
1dmt5cy_42 _sizeL_1dmt5cy_29 _alignIconLeft_1dmt5cy_49 _dark_1dmt5cy_9"><span class="_content_1dmt5cy_224" data-rs-internal="button__content" data-test="button__content">Who uses Kotlin</span></a></div></div></div></div><div class="customer-logo-marquee_section__71EwD" data-testid="customers-block"><div class="marquee_marquee__fcrUJ marquee_fadingEdges__pscCE customer-logo-marquee_list__YtLJN"><div class="marquee_group__eYuvN " data-testid="marquee-component"><a href="https://blog.jetbrains.com/kotlin/2025/07/case-study-why-kakao-pay-chose-kotlin-for-backend-development/" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/kakao-pay-logo-dark.svg" alt="https://blog.jetbrains.com/kotlin/2025/07/case-study-why-kakao-pay-chose-kotlin-for-backend-development/" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://medium.com/kingfisher-technology/server-side-kotlin-our-new-default-2d15644f8ed0" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/kingfisher.svg" alt="https://medium.com/kingfisher-technology/server-side-kotlin-our-new-default-2d15644f8ed0" class="customer-logo-marquee_logo__IahwP"/></a><a href="/case-studies/novatec/" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/novatec.svg" alt="/case-studies/novatec/" class="customer-logo-marquee_logo__IahwP"/></a><a href="/case-studies/faire/" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/faire.svg" alt="/case-studies/faire/" class="customer-logo-marquee_logo__IahwP"/></a><a href="/case-studies/doordash/" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/doordash-logo.svg" alt="/case-studies/doordash/" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://medium.com/adobetech/streamlining-server-side-app-development-with-kotlin-be8cf9d8b61a" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/adobe.svg" alt="https://medium.com/adobetech/streamlining-server-side-app-development-with-kotlin-be8cf9d8b61a" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://www.youtube.com/live/Ar73Axsz2YA?t=2766" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/aws.svg" alt="https://www.youtube.com/live/Ar73Axsz2YA?t=2766" class="customer-logo-marquee_logo__IahwP"/></a><a href="/case-studies/expedia/" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/expedia-logo.svg" alt="/case-studies/expedia/" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://medium.com/intuit-engineering/what-the-f-p-is-kotlin-7c55e2643b07" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/intuit.svg" alt="https://medium.com/intuit-engineering/what-the-f-p-is-kotlin-7c55e2643b07" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://open.spotify.com/episode/3VS5dSUfcsC4fSvzbm2OxV" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/flux.svg" alt="https://open.spotify.com/episode/3VS5dSUfcsC4fSvzbm2OxV" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://open.spotify.com/episode/6gRiIJSWN515tAvZuMAwRR" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/allegro-logo.svg" alt="https://open.spotify.com/episode/6gRiIJSWN515tAvZuMAwRR" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://open.spotify.com/episode/3XBlKY3x4vVojuay4oSh8g" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/olx.svg" alt="https://open.spotify.com/episode/3XBlKY3x4vVojuay4oSh8g" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://open.spotify.com/episode/6oZdJE7XU1GF6Dlir6tP50" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/shazam.svg" alt="https://open.spotify.com/episode/6oZdJE7XU1GF6Dlir6tP50" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://medium.com/insiden26/5-reasons-why-n26-is-moving-to-kotlin-f920b184ab58" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/n26.svg" alt="https://medium.com/insiden26/5-reasons-why-n26-is-moving-to-kotlin-f920b184ab58" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://medium.com/memobank/cuddling-with-kotlin-35f4f96931bb" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/memo-bank.svg" alt="https://medium.com/memobank/cuddling-with-kotlin-35f4f96931bb" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://open.spotify.com/episode/7rcwW7gNFIOrDqy6tgA1HU" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/ktor.svg" alt="https://open.spotify.com/episode/7rcwW7gNFIOrDqy6tgA1HU" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://youtu.be/QExksqeNWbY?si=KSy63mxDTh07DYPM" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/spring-logo.svg" alt="https://youtu.be/QExksqeNWbY?si=KSy63mxDTh07DYPM" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://kotlin.link/articles/Corda-Kotlin.html" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/corda-logo.svg" alt="https://kotlin.link/articles/Corda-Kotlin.html" class="customer-logo-marquee_logo__IahwP"/></a></div><div class="marquee_group__eYuvN undefined "><a href="https://blog.jetbrains.com/kotlin/2025/07/case-study-why-kakao-pay-chose-kotlin-for-backend-development/" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/kakao-pay-logo-dark.svg" alt="https://blog.jetbrains.com/kotlin/2025/07/case-study-why-kakao-pay-chose-kotlin-for-backend-development/" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://medium.com/kingfisher-technology/server-side-kotlin-our-new-default-2d15644f8ed0" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/kingfisher.svg" alt="https://medium.com/kingfisher-technology/server-side-kotlin-our-new-default-2d15644f8ed0" class="customer-logo-marquee_logo__IahwP"/></a><a href="/case-studies/novatec/" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/novatec.svg" alt="/case-studies/novatec/" class="customer-logo-marquee_logo__IahwP"/></a><a href="/case-studies/faire/" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/faire.svg" alt="/case-studies/faire/" class="customer-logo-marquee_logo__IahwP"/></a><a href="/case-studies/doordash/" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/doordash-logo.svg" alt="/case-studies/doordash/" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://medium.com/adobetech/streamlining-server-side-app-development-with-kotlin-be8cf9d8b61a" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/adobe.svg" alt="https://medium.com/adobetech/streamlining-server-side-app-development-with-kotlin-be8cf9d8b61a" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://www.youtube.com/live/Ar73Axsz2YA?t=2766" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/aws.svg" alt="https://www.youtube.com/live/Ar73Axsz2YA?t=2766" class="customer-logo-marquee_logo__IahwP"/></a><a href="/case-studies/expedia/" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/expedia-logo.svg" alt="/case-studies/expedia/" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://medium.com/intuit-engineering/what-the-f-p-is-kotlin-7c55e2643b07" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/intuit.svg" alt="https://medium.com/intuit-engineering/what-the-f-p-is-kotlin-7c55e2643b07" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://open.spotify.com/episode/3VS5dSUfcsC4fSvzbm2OxV" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/flux.svg" alt="https://open.spotify.com/episode/3VS5dSUfcsC4fSvzbm2OxV" class="customer-logo-marquee_logo__IahwP"/></a>
1<a href="https://open.spotify.com/episode/6gRiIJSWN515tAvZuMAwRR" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/allegro-logo.svg" alt="https://open.spotify.com/episode/6gRiIJSWN515tAvZuMAwRR" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://open.spotify.com/episode/3XBlKY3x4vVojuay4oSh8g" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/olx.svg" alt="https://open.spotify.com/episode/3XBlKY3x4vVojuay4oSh8g" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://open.spotify.com/episode/6oZdJE7XU1GF6Dlir6tP50" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/shazam.svg" alt="https://open.spotify.com/episode/6oZdJE7XU1GF6Dlir6tP50" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://medium.com/insiden26/5-reasons-why-n26-is-moving-to-kotlin-f920b184ab58" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/n26.svg" alt="https://medium.com/insiden26/5-reasons-why-n26-is-moving-to-kotlin-f920b184ab58" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://medium.com/memobank/cuddling-with-kotlin-35f4f96931bb" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/memo-bank.svg" alt="https://medium.com/memobank/cuddling-with-kotlin-35f4f96931bb" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://open.spotify.com/episode/7rcwW7gNFIOrDqy6tgA1HU" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/carousel/ktor.svg" alt="https://open.spotify.com/episode/7rcwW7gNFIOrDqy6tgA1HU" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://youtu.be/QExksqeNWbY?si=KSy63mxDTh07DYPM" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/spring-logo.svg" alt="https://youtu.be/QExksqeNWbY?si=KSy63mxDTh07DYPM" class="customer-logo-marquee_logo__IahwP"/></a><a href="https://kotlin.link/articles/Corda-Kotlin.html" target="_blank" rel="noopener noreferrer" data-testid="customers-link"><img src="/images/case-studies/corda-logo.svg" alt="https://kotlin.link/articles/Corda-Kotlin.html" class="customer-logo-marquee_logo__IahwP"/></a></div></div></div><section class="ktl-layout ktl-layout--center"><div class="ktl-container section-offset" id="safety"><h2 class="_rs-h1_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Safety: fewer production bugs and crashes</h2><div class="features-switcher_slideshow__73UHh"><div class="features-switcher_slidesPanel__o7ZZk"><ul class="features-switcher_slidesSwitcher__wW26g"><li class=""><button type="button" tabindex="0" class="features-switcher_tab__UfD6_ features-switcher_tabActive__gnobR"><p class="_rs-h3_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 features-switcher_tabTitle__Q7_oK">Null-safety</p><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_hard_1owszn1_1 features-switcher_tabDescription__GA4wh">Switching backend development to Kotlin significantly reduces crashes at runtime.</p></button></li><li class="features-switcher_offsettop12__64E94"><button type="button" tabindex="0" class="features-switcher_tab__UfD6_"><p class="_rs-h3_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 features-switcher_tabTitle__Q7_oK">Immutability</p></button></li><li class="features-switcher_offsettop12__64E94"><button type="button" tabindex="0" class="features-switcher_tab__UfD6_"><p class="_rs-h3_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 features-switcher_tabTitle__Q7_oK">Type-safety</p></button></li></ul></div><div class="features-switcher_slides__5Z3bt"><div class="features-switcher_slide__yrbOm features-switcher_slideVisible__NHvvb"><div class="features-switcher_slide__yrbOm"><button data-test="button" type="button" class="_main_1dmt5cy_56 _modeRock_1dmt5cy_36 _sizeXs_1dmt5cy_20 _alignIconLeft_1dmt5cy_49 _dark_1dmt5cy_9 features-switcher_copyButton__0rJYL"><span class="_content_1dmt5cy_224" data-rs-internal="button__content" data-test="button__content">
1Copy Kotlin code</span></button><div class="code-hightlight_codeHighlight__eAyEL features-switcher_codeBlock__e2aiO"></div></div></div><div class="features-switcher_slide__yrbOm features-switcher_slideHidden__zNaMm"><div class="features-switcher_slide__yrbOm"><button data-test="button" type="button" class="_main_1dmt5cy_56 _modeRock_1dmt5cy_36 _sizeXs_1dmt5cy_20 _alignIconLeft_1dmt5cy_49 _dark_1dmt5cy_9 features-switcher_copyButton__0rJYL"><span class="_content_1dmt5cy_224" data-rs-internal="button__content" data-test="button__content">Copy Kotlin code</span></button><div class="code-hightlight_codeHighlight__eAyEL features-switcher_codeBlock__e2aiO"></div></div></div><div class="features-switcher_slide__yrbOm features-switcher_slideHidden__zNaMm"><div class="features-switcher_slide__yrbOm"><button data-test="button" type="button" class="_main_1dmt5cy_56 _modeRock_1dmt5cy_36 _sizeXs_1dmt5cy_20 _alignIconLeft_1dmt5cy_49 _dark_1dmt5cy_9 features-switcher_copyButton__0rJYL"><span class="_content_1dmt5cy_224" data-rs-internal="button__content" data-test="button__content">Copy Kotlin code</span></button><div class="code-hightlight_codeHighlight__eAyEL features-switcher_codeBlock__e2aiO"></div></div></div></div></div></div></section><section class="ktl-layout ktl-layout--center"><div class="ktl-container section-offset" id="performance"><h2 class="_rs-h1_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Performance: optimized for high-load</h2><div class="performance_cards__sjvjP"><div class="card_card__yUQZ6"><h3 class="_rs-h3_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 card_cardTitle__Rgfdb">Kotlin coroutines</h3><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 card_cardDescription__F4Jcz">Run 10,000+ lightweight tasks on just a few threads</p></div><div class="card_card__yUQZ6"><h3 class="_rs-h3_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 card_cardTitle__Rgfdb">Inline functions</h3><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 card_cardDescription__F4Jcz">Less overhead as the compiler copies function bodies at the call site</p></div><div class="card_card__yUQZ6"><h3 class="_rs-h3_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 card_cardTitle__Rgfdb">Inline classes</h3><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 card_cardDescription__F4Jcz">Wrap primitives without extra allocations or garbage collector pressure</p></div><div class="card_card__yUQZ6"><h3 class="_rs-h3_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 card_cardTitle__Rgfdb">The JVM</h3><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 card_cardDescription__F4Jcz">Decades of fine-tuning for high throughput and low latency</p></div></div><div class="performance_videos__mYfNl ktl-offset-top-l"><div class="performance_videoCard__o7NmP"><div><div class="ktl-youtube-player-module_youtube-player_aSb0a"><div class="ktl-youtube-player-module_preview_SuIdr"><img src="https://img.youtube.com/vi/hQrFfwT1IMo/maxresdefault.jpg" alt="" class="ktl-youtube-player-module_image-preview_qXCFf"/><button type="button" aria-label="Play video" class="ktl-youtube-player-module_play-button_SNPG7 ktl-youtube-player-module_play-button_white_jsj-J"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path d="M19 12 8 4v16l11-8z"></path></svg></button></div><div class="ktl-youtube-player-module_player_nH-tB"></div></div></div><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 performance_videoCardDescription__31cIT">Watch the full story on Kotlin coroutines from their creator, Roman Elizarov.</p></div><div class="performance_videoCard__o7NmP"><div><div class="ktl-youtube-player-module_youtube-player_aSb0a"><div class="ktl-youtube-player-module_preview_SuIdr"><img src="https://img.youtube.com/vi/TT62OL48Vl0/maxresdefault.jpg" alt="" class="ktl-youtube-player
1-module_image-preview_qXCFf"/><button type="button" aria-label="Play video" class="ktl-youtube-player-module_play-button_SNPG7 ktl-youtube-player-module_play-button_white_jsj-J"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path d="M19 12 8 4v16l11-8z"></path></svg></button></div><div class="ktl-youtube-player-module_player_nH-tB"></div></div></div><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 performance_videoCardDescription__31cIT">Watch Adobe’s talk on using coroutines to scale under massive load.</p></div></div></div></section><section class="ktl-layout ktl-layout--center"><div class="ktl-container section-offset" id="ecosystem"><h2 class="_rs-h1_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Rich JVM ecosystem for backend development</h2><div class="ecosystem_cards__XWTwR"><div class="card_card__yUQZ6"><h3 class="_rs-h3_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 card_cardTitle__Rgfdb">Seamless Java integration</h3><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 card_cardDescription__F4Jcz">Full interop with Java allows using any JVM library or framework</p></div><div class="card_card__yUQZ6"><h3 class="_rs-h3_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 card_cardTitle__Rgfdb">Enhanced Java frameworks with Kotlin</h3><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 card_cardDescription__F4Jcz">Kotlin takes frameworks that were originally written in Java and enhances them with expressive features, making the API clearer and more intuitive</p></div><div class="card_card__yUQZ6"><h3 class="_rs-h3_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 card_cardTitle__Rgfdb">Gradual Kotlin adoption</h3><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 card_cardDescription__F4Jcz">100% interoperability between Java and Kotlin allows you to adopt Kotlin incrementally and on your own terms</p></div><div class="card_card__yUQZ6"><h3 class="_rs-h3_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 card_cardTitle__Rgfdb">Rich framework ecosystem</h3><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 card_cardDescription__F4Jcz">Quickly develop backend solutions with the most popular frameworks, including Spring, Hibernate, Ktor, Koog, MCP Kotlin SDK, and others.</p></div></div><div class="ecosystem_bigCards__UZLAB ktl-offset-top-l"><a class="ecosystem_ecosystemCard__7rmk_" href="https://spring.io/guides/tutorials/spring-boot-kotlin/"><img src="/_next/static/media/spring.770eebcd.svg" alt="Spring Logo"/><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">With its versatile set of features, Spring is the world’s most popular Java framework. When it’s paired with Kotlin, and its concise syntax, the two make the ultimate combo for application development.</p><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1"><span class="_rs-link_1owszn1_1 _rs-link_mode_standalone_1owszn1_1 _rs-link_external_1owszn1_1 _rs-typography_theme_dark_1owszn1_1">Read tutorial</span></p></a><a class="ecosystem_ecosystemCard__7rmk_" href="https://ktor.io/quickstart/"><img src="/_next/static/media/ktor.c670df18.svg" alt="Ktor Logo"/><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Ktor is a multiplatform toolkit built by JetBrains for creating Web applications in Kotlin. It makes use of coroutines for high scalability and offers an easy-to-use API.</p><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1"><span class="_rs-link_1owszn1_1 _rs-link_mode_standalone_1owszn1_1 _rs-link_external_1owszn1_1 _rs-typography_theme_dark_1owszn1_1">How to start</span></p></a></div><div class="ecosystem_grid__8_0J5 ktl-offset-top-m"><div><a class="ecosystem_ecosystemCard__7rmk_" href="https://guides.micronaut.io/latest/creating-your-first-micronaut-app-maven-kotlin.html"><div class="ecosystem_cardLogo__0SiNl"><img src="/_next/static/media/micronaut-foundation.e2852254.svg" alt="Micronaut Logo"/></div><div class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Build your next Kotlin microservice application with ease and test it, too.</div></a></div><div><a class="ecosystem_ecosystemCard__7rmk_" href="https://quarkus.io/guides/kotlin"><div class="ecosystem_cardLogo__0SiNl"><img src="/_next/static/media/quarkus-dark.f51619f7.svg" alt="Quarkus Logo"/></div><div class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Looking to implement the next cloud-native service with Kotlin? Try Quarkus!</div></a></div><div><a class="ecosystem_ecosystemCard__7rmk_" href="https://vaadin.com/kotlin"><div class="ecosystem_cardLogo__0SiNl"><img src="/_next/static/media/vaadin-dark.61199109.svg" alt="Vaadin Logo"/></div><div class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Create web applications with great-looking UI using Java and Kotlin.</div></a></div><div><a class="ecosystem_ecosystemCard__7rmk_" href="https://docs.koog.ai/"><div class="ecosystem_cardLogo__0SiNl"><div class="_rs-h3_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Koog</div></div><div class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">A Kotlin-based framework designed to build and run AI agents entirely in idiomatic Kotlin.</div><div class="ecosystem_tag__3wooE"><span data-test="tag" class="_main_1g1lw52_31 _sizeXs_1g1lw52_18 _alignIconLeft_1g1lw52_7 _main_1uyx2kg_1" style="color:#FFFFFF;background-color:var(--rs-color-primary-light-theme, #6B57FF)">by JetBrains</span></div></a></div><div><a class="ecosystem_ecosystemCard__7rmk_" href="https://vertx.io/docs/"><div class="ecosystem_cardLogo__0SiNl"><img src="/_next/static/media/vertx-dark.853acf04.svg" alt="Vert.x Logo"/></div><div class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">A tool-kit for building reactive applications on the JVM.</div></a></div><div><a class="ecosystem_ecosystemCard__7rmk_" href="https://www.http4k.org/"><div class="ecosystem_cardLogo__0SiNl"><img src="/_next/static/media/http4k-dark.c9013d9e.svg" alt="HTTP4K Logo"/></div><div class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">The HTTP toolkit written in pure Kotlin. Enables the serving and consuming of HTTP services in a functional and consistent way.</div></a></div><div><a class="ecosystem_ecosystemCard__7rmk_" href="https://kafka.apache.org/"><div class="ecosystem_cardLogo__0SiNl"><img src="/_next/static/media/kafka.9718bb61.svg" alt="Apache Kafka Logo"/></div><div class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Build event-driven, scalable applications effortlessly in Kotlin using Apache Kafka, the industry-standard platform for real-time data streaming.</div></a></div><div><a class="ecosystem_ecosystemCard__7rmk_" href="https://github.com/modelcontextprotocol/kotlin-sdk"><div class="ecosystem_cardLogo__0SiNl"><div class="_rs-h3_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">MCP Kotlin SDK</div></div><div class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">A Kotlin SDK for building MCP clients and servers across JVM, WebAssembly, and iOS, with full support for standard transports and protocol events.</div><div class="ecosystem_tag__3wooE"><span data-test="tag" class="_main_1g1lw52_31 _sizeXs_1g1lw52_18 _alignIconLeft_1g1lw52_7 _main_1uyx2kg_1" style="color:#FFFFFF;background-color:var(--rs-color-primary-light-theme, #6B57FF)">by JetBrains</span></div></a></div></div></div></section><section class="ktl-layout ktl-layout--center"><div class="ktl-container section-offset"><h2 class="_rs-h1_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">How to start – incremental adoption in Java projects</h2><h3 class="_rs-subtitle-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Because of Kotlin’s full interoperability with Java, <br/>teams can introduce it gradually</h3><div class="ktl-row ktl-offset-top-l"><div class="ktl-col "><div><div class="how-to-start_item__l7nHM">
1<svg viewBox="0 0 24 24" class="_icon_i5poj_4 _dark_i5poj_34 _sizeM_i5poj_22 how-to-start_icon__hO8sR"><path d="M15.256 18.866a1.5 1.5 0 0 1-2.122-2.122L16.38 13.5H4a1.5 1.5 0 1 1 0-3h12.378l-3.244-3.244a1.5 1.5 0 1 1 2.121-2.121l5.78 5.78a1.5 1.5 0 0 1 .307 1.755 1.5 1.5 0 0 1-.281.391z"></path></svg><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 how-to-start_title__L1Gqc">Start using Kotlin for your tests.</p></div><div class="how-to-start_item__l7nHM"><svg viewBox="0 0 24 24" class="_icon_i5poj_4 _dark_i5poj_34 _sizeM_i5poj_22 how-to-start_icon__hO8sR"><path d="M15.256 18.866a1.5 1.5 0 0 1-2.122-2.122L16.38 13.5H4a1.5 1.5 0 1 1 0-3h12.378l-3.244-3.244a1.5 1.5 0 1 1 2.121-2.121l5.78 5.78a1.5 1.5 0 0 1 .307 1.755 1.5 1.5 0 0 1-.281.391z"></path></svg><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 how-to-start_title__L1Gqc">Implement new services from scratch in Kotlin using your existing framework (Spring, Quarkus, Jakarta EE, etc.).</p></div><div class="how-to-start_item__l7nHM"><svg viewBox="0 0 24 24" class="_icon_i5poj_4 _dark_i5poj_34 _sizeM_i5poj_22 how-to-start_icon__hO8sR"><path d="M15.256 18.866a1.5 1.5 0 0 1-2.122-2.122L16.38 13.5H4a1.5 1.5 0 1 1 0-3h12.378l-3.244-3.244a1.5 1.5 0 1 1 2.121-2.121l5.78 5.78a1.5 1.5 0 0 1 .307 1.755 1.5 1.5 0 0 1-.281.391z"></path></svg><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 how-to-start_title__L1Gqc">Develop new features in Kotlin within existing Java projects.</p></div><div class="how-to-start_item__l7nHM"><svg viewBox="0 0 24 24" class="_icon_i5poj_4 _dark_i5poj_34 _sizeM_i5poj_22 how-to-start_icon__hO8sR"><path d="M15.256 18.866a1.5 1.5 0 0 1-2.122-2.122L16.38 13.5H4a1.5 1.5 0 1 1 0-3h12.378l-3.244-3.244a1.5 1.5 0 1 1 2.121-2.121l5.78 5.78a1.5 1.5 0 0 1 .307 1.755 1.5 1.5 0 0 1-.281.391z"></path></svg><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 how-to-start_title__L1Gqc">Gradually convert your existing Java codebase to Kotlin.</p></div></div></div><div class="ktl-col how-to-start_codeSample__cahbR"><div class="code-hightlight_codeHighlight__eAyEL how-to-start_codeBlock__2oISV"></div></div></div></div></section><section class="ktl-layout ktl-layout--center"><div class="ktl-container section-offset" id="tools"><h2 class="_rs-h1_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Use your favorite tools</h2><div class="ktl-row ktl-offset-top-l"><div class="ktl-col-12 ktl-col-sm-8"><img alt="IDE support" loading="lazy" width="2794" height="1912" decoding="async" data-nimg="1" class="favorite-tools_image__ufzLo" style="color:transparent" src="/_next/static/media/tools-screen-2.2425d6f6.webp"/></div><div class="ktl-col-12 ktl-col-sm-4"><h3 class="_rs-h3_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 favorite-tools_sectionTitle__VM4GO spacer-md">IDE support</h3><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">IntelliJ IDEA is the best environment for Kotlin developers, created by JetBrains – the makers of Kotlin. It makes coding easier with features like smart navigation, refactoring, and code analysis. The built-in AI assistant Junie helps by converting Java to clean Kotlin and generating tests quickly.</p><a data-test="button" data-testid="download-idea-button" type="button" href="https://www.jetbrains.com/idea/download/" class="_main_1dmt5cy_56 _modeOutline_1dmt5cy_42 _sizeL_1dmt5cy_29 _alignIconRight_1dmt5cy_52 _dark_1dmt5cy_9"><svg viewBox="0 0 24 24" class="_icon_i5poj_4 _sizeM_i5poj_22 _icon_1dmt5cy_182"><path d="M19.5 14.21a1.5 1.5 0 1 1-3 0V9.622L7.06 19.06a1.5 1.5 0 0 1-2.12-2.122L14.378 7.5H9.79a1.5 1.5 0 1 1 0-3H18A1.5 1.5 0 0 1 19.5 6z"></path></svg><span class="_content_1dmt5cy_224" data-rs-internal="button__content" data-test="button__content">Download</span></a><div class="favorite-tools_logos__u1wLF"><img src="/_next/static/media/intellij-idea.872ee33b.svg" alt="IntelliJ IDEA logo"/></div></div></div><div class="ktl-row ktl-offset-top-xl"><div class="ktl-col-12 ktl-col-sm-4"><h3 class="_rs-h3_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 favorite-tools_sectionTitle__VM4GO">Build tools</h3><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Use your favorite build tool for building Kotlin programs. Plugins are available for <a class="_rs-link_1owszn1_1 _rs-link_mode_classic_1owszn1_1 _rs-typography_theme_dark_1owszn1_1" href="https://kotlinlang.org/docs/reference/using-gradle.html">Gradle</a>, <a class="_rs-link_1owszn1_1 _rs-link_mode_classic_1owszn1_1 _rs-typography_theme_dark_1owszn1_1" href="https://kotlinlang.org/docs/reference/using-maven.html">Maven</a>, and <a class="_rs-link_1owszn1_1 _rs-link_mode_classic_1owszn1_1 _rs-typography_theme_dark_1owszn1_1" href="https://github.com/bazelbuild/rules_kotlin">Bazel ↗</a></p><div class="favorite-tools_logos__u1wLF"><img src="/_next/static/media/maven.03e89d9a.svg" alt="Maven logo"/><img src="/_next/static/media/gradle.b8c7ff22.svg" alt="Gradle logo"/><img src="/_next/static/media/bazel.0c7e836c.svg" alt="Bazel logo"/></div></div><div class="ktl-col-12 ktl-col-sm-8 spacer-md"><img alt="Build tools" loading="lazy" width="2794" height="1912" decoding="async" data-nimg="1" class="favorite-tools_image__ufzLo" style="color:transparent" src="/_next/static/media/tools-screen-2.2425d6f6.webp"/></div></div></div></section><section class="ktl-layout ktl-layout--center"><div class="ktl-container section-offset"><h2 class="_rs-h1_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Additional materials</h2><h3 class="_rs-subtitle-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 additional-materials_subtitle__8O4mS">Build better backends with Kotlin. Check out the Kotlin for Backend playlist for real-world use cases, expert insights, and performance tips.</h3><div class="ktl-row"><div class="ktl-col-12"><div class="wt-youtube-playlist wt-youtube-playlist_theme_dark" data-test="youtube-player
1-wrapper"><div class="wt-youtube-playlist__player-wrapper wt-youtube-playlist__player-wrapper_loading"></div><div class="wt-youtube-playlist__list-wrapper"><div class="wt-youtube-playlist__list-header"><div class="wt-youtube-playlist__list-title wt-youtube-playlist__list-title_theme_dark" data-test="youtube-playlist-title">Backend Development with Kotlin</div><label class="wt-list-item wt-list-item_placement_right wt-list-item_mode_nude wt-list-item_size_xs wt-list-item_theme_dark wt-toggle__wrapper wt-youtube-playlist__autoplay" data-test="toggle"><span class="wt-list-item__content">Autoplay</span><label class="wt-toggle wt-toggle_size_xs wt-toggle_theme_dark wt-list-item__icon wt-list-item__icon_placement_right"><input type="checkbox" checked=""/><span class="wt-toggle__slider"></span></label></label></div><div class="wt-youtube-playlist__scrollable"><div class="wt-playlist" data-test="youtube-playlist"><div class="wt-playlist__loader"></div><div class="wt-playlist__loader"></div><div class="wt-playlist__loader"></div></div></div><div class="wt-youtube-playlist__bottom-line"></div></div></div></div></div></div></section><section class="get-started_wrapper__Stkam" data-testid="get-started-block"><div class="ktl-layout ktl-layout--center" id="get-started"><img alt="Get started graphic" loading="lazy" width="1277" height="605" decoding="async" data-nimg="1" class="get-started_backgroundImage__lK8VE" style="color:transparent" src="/_next/static/media/get-started-graphics-cut.41c8e33c.webp"/><div class="ktl-container get-started_content__sJoFc"><h2 class="_rs-h1_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Get started</h2><div class="ktl-row ktl-offset-top-l"><div class="ktl-col-12 ktl-col-md-6"><a class="get-started_card___cmdP" data-testid="ktor-get-started-link" href="https://ktor.io/docs/welcome.html"><div><img src="/_next/static/media/ktor.28de6534.svg" alt="Ktor Logo"/></div><div><h2 class="_rs-h2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Ktor quick start</h2></div><div><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Ktor is a multiplatform toolkit built by JetBrains for creating Web applications in Kotlin. It makes use of coroutines for high scalability and offers an easy-to-use API.</p></div></a></div><div class="ktl-col-12 ktl-col-md-6 spacer-md"><a class="get-started_card___cmdP" data-testid="spring-get-started-link" href="/docs/jvm-get-started-spring-boot.html"><div><img src="/_next/static/media/spring.ca230bc0.svg" alt="Spring Logo"/></div><div><h2 class="_rs-h2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Go server-side with Spring</h2></div><div><p class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1">Use Kotlin with the familiar Spring framework to build powerful enterprise applications.</p></div></a></div></div></div></div></section></div><footer class="ktl-footer-module_footer_m67Up"><div class="ktl-layout ktl-layout--center"><div class="ktl-footer-module_social-list-area_bS3eE"><div class="_rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 ktl-footer-module_social-list-title_HPzIP">Stay in touch:</div><div class="ktl-social-list-module_social-list_K2Nqu"><a data-test="button" target="_blank" title="Kotlin on GitHub" type="button" href="https://github.com/JetBrains/kotlin" class="_main_1dmt5cy_56 _modeClear_1dmt5cy_45 _sizeL_1dmt5cy_29 _alignIconLeft_1dmt5cy_49 _dark_1dmt5cy_9 _withoutText_1dmt5cy_203 ktl-social-item-module_social-item_GpKEF undefined"><svg viewBox="0 0 24 24" class="_icon_i5poj_4 _sizeM_i5poj_22 _icon_1dmt5cy_182"><path d="M12.008 2C6.474 2 2 6.583 2 12.254c0 4.532 2.867 8.369 6.843 9.727.498.102.68-.221.68-.493 0-.237-.017-1.052-.017-1.901-2.784.611-3.364-1.222-3.364-1.222-.447-1.189-1.11-1.494-1.11-1.494-.911-.628.067-.628.067-.628 1.01.068 1.54 1.052 1.54 1.052.895 1.562 2.337 1.12 2.917.85.083-.663.348-1.121.63-1.376-2.22-.238-4.557-1.12-4.557-5.059 0-1.12.397-2.037 1.027-2.75-.1-.254-.447-1.307.1-2.716 0 0 .845-.272 2.75 1.052a9.5 9.5 0 0 1 2.502-.34c.845 0 1.707.12 2.502.34 1.906-1.324 2.75-1.052 2.75-1.052.548 1.409.2 2.462.1 2.716.647.713 1.028 1.63 1.028 2.75 0 3.939-2.337 4.804-4.574 5.06.365.322.68.933.68 1.9 0 1.375-.017 2.479-.017 2.818 0 .272.183.595.68.493C19.133 20.622 22 16.786 22 12.253 22.016 6.584 17.526 2 12.008 2"></path></svg></a><a data-test="button" target="_blank" title="Kotlin on Twitter" type="button" href="https://x.com/kotlin" class="_main_1dmt5cy_56 _modeClear_1dmt5cy_45 _sizeL_1dmt5cy_29 _alignIconLeft_1dmt5cy_49 _dark_1dmt5cy_9 _withoutText_1dmt5cy_203 ktl-social-item-module_social-item_GpKEF undefined">
1<svg viewBox="0 0 24 24" class="_icon_i5poj_4 _sizeM_i5poj_22 _icon_1dmt5cy_182"><path d="M17.13 4h2.715l-5.93 6.777L20.89 20h-5.462l-4.278-5.593L6.255 20H3.54l6.343-7.25L3.19 4h5.6l3.868 5.113zm-.952 14.375h1.504L7.974 5.54H6.36z"></path></svg></a><a data-test="button" target="_blank" title="Kotlin on Bluesky" type="button" href="https://bsky.app/profile/kotlinlang.org" class="_main_1dmt5cy_56 _modeClear_1dmt5cy_45 _sizeL_1dmt5cy_29 _alignIconLeft_1dmt5cy_49 _dark_1dmt5cy_9 _withoutText_1dmt5cy_203 ktl-social-item-module_social-item_GpKEF undefined"><svg viewBox="0 0 24 24" class="_icon_i5poj_4 _sizeM_i5poj_22 _icon_1dmt5cy_182"><path d="M6.902 5.07C8.965 6.625 11.185 9.776 12 11.467v4.467c0-.095-.037.012-.115.244-.426 1.253-2.087 6.144-5.885 2.234-2-2.059-1.074-4.117 2.566-4.739-2.082.356-4.424-.232-5.066-2.535-.185-.663-.5-4.745-.5-5.296C3 3.081 5.413 3.95 6.902 5.07m10.196 0C15.035 6.625 12.815 9.776 12 11.467v4.467c0-.095.037.012.115.244.426 1.253 2.087 6.144 5.885 2.234 2-2.059 1.074-4.117-2.566-4.739 2.082.356 4.424-.232 5.066-2.535.185-.663.5-4.745.5-5.296 0-2.761-2.413-1.893-3.902-.772"></path></svg></a><a data-test="button" target="_blank" title="Kotlin Slack" type="button" href="https://surveys.jetbrains.com/s3/kotlin-slack-sign-up" class="_main_1dmt5cy_56 _modeClear_1dmt5cy_45 _sizeL_1dmt5cy_29 _alignIconLeft_1dmt5cy_49 _dark_1dmt5cy_9 _withoutText_1dmt5cy_203 ktl-social-item-module_social-item_GpKEF undefined"><svg viewBox="0 0 24 24" class="_icon_i5poj_4 _sizeM_i5poj_22 _icon_1dmt5cy_182"><path d="M9.362 6.202A2.106 2.106 0 0 1 7.26 4.1c0-1.155.945-2.1 2.1-2.1s2.102.945 2.102 2.101v2.1zM4.101 16.739a2.106 2.106 0 0 0 2.101-2.1v-2.102h-2.1A2.106 2.106 0 0 0 2 14.638c0 1.156.945 2.101 2.101 2.101m5.261-4.202a2.106 2.106 0 0 0-2.101 2.101v5.26c0 1.157.944 2.102 2.1 2.102a2.106 2.106 0 0 0 2.102-2.101v-5.26a2.106 2.106 0 0 0-2.101-2.102m2.101-3.176a2.106 2.106 0 0 0-2.101-2.1h-5.26A2.106 2.106 0 0 0 2 9.36c0 1.157.945 2.101 2.101 2.101h5.26a2.106 2.106 0 0 0 2.102-2.1m6.335 0c0-1.156.945-2.1 2.1-2.1 1.157 0 2.102.944 2.102 2.1s-.945 2.101-2.101 2.101h-2.101zm-3.159 2.101c1.156 0 2.1-.944 2.1-2.1V4.1A2.106 2.106 0 0 0 14.64 2a2.106 2.106 0 0 0-2.101 2.101v5.26c0 1.157.944 2.101 2.1 2.101m-.001 6.336c1.157 0 2.101.944 2.101 2.1A2.106 2.106 0 0 1 14.64 22a2.107 2.107 0 0 1-2.102-2.102v-2.1zm-2.1-3.16c0 1.156.944 2.101 2.1 2.101H19.9a2.106 2.106 0 0 0 2.101-2.1 2.106 2.106 0 0 0-2.1-2.102H14.64a2.106 2.106 0 0 0-2.101 2.101"></path></svg></a><a data-test="button" target="_blank" title="Kotlin on Reddit" type="button" href="https://www.reddit.com/r/Kotlin/" class="_main_1dmt5cy_56 _modeClear_1dmt5cy_45 _sizeL_1dmt5cy_29 _alignIconLeft_1dmt5cy_49 _dark_1dmt5cy_9 _withoutText_1dmt5cy_203 ktl-social-item-module_social-item_GpKEF undefined"><svg viewBox="0 0 24 24" class="_icon_i5poj_4 _sizeM_i5poj_22 _icon_1dmt5cy_182"><path d="M22 11.06a2.188 2.188 0 0 0-3.704-1.574 10.7 10.7 0 0 0-5.85-1.856l.996-4.687 3.256.692a1.562 1.562 0 1 0 .16-.765l-3.638-.773a.39.39 0 0 0-.463.3l-1.113 5.231a10.74 10.74 0 0 0-5.937 1.854A2.187 2.187 0 1 0 3.3 13.054q-.05.329-.05.661c0 3.366 3.916 6.094 8.75 6.094 4.835 0 8.75-2.728 8.75-6.094q0-.33-.051-.657A2.19 2.19 0 0 0 22 11.059M7 12.621a1.562 1.562 0 1 1 3.125 0 1.562 1.562 0 0 1-3.124 0m8.713 4.128c-1.066 1.063-3.11 1.148-3.71 1.148s-2.645-.083-3.71-1.148a.406.406 0 0 1 .573-.572c.671.671 2.11.91 3.136.91s2.465-.239 3.139-.91a.405.405 0 1 1 .572.572m-.275-2.566a1.562 1.562 0 1 1 0-3.124 1.562 1.562 0 0 1 0 3.124"></path></svg></a><a data-test="button" target="_blank" title="Kotlin on Stack Overflow" type="button" href="https://stackoverflow.com/questions/tagged/kotlin" class="_main_1dmt5cy_56 _modeClear_1dmt5cy_45 _sizeL_1dmt5cy_29 _alignIconLeft_1dmt5cy_49 _dark_1dmt5cy_9 _withoutText_1dmt5cy_203 ktl-social-item-module_social-item_GpKEF undefined"><svg viewBox="0 0 24 24" class="_icon_i5poj_4 _sizeM_i5poj_22 _icon_1dmt5cy_182"><path d="m16.44 16.198-8.727-1.834.367-1.746 8.728 1.836zm.513-2.248-8.085-3.765.753-1.617 8.085 3.765zm1.007-2.024L11.104 6.22l1.142-1.37 6.854 5.707zm-3.862-8.861L15.53 2l5.323 7.156-1.431 1.065zm2.341 15.381H7.554V16.
167h8.885zm3.554-3.553h-1.777v5.33H5.776v-5.33H4V22h15.993z"></path></svg></a><a data-test="button" target="_blank" title="Kotlin on YouTube" type="button" href="https://www.youtube.com/channel/UCP7uiEZIqci43m22KDl0sNw" class="_main_1dmt5cy_56 _modeClear_1dmt5cy_45 _sizeL_1dmt5cy_29 _alignIconLeft_1dmt5cy_49 _dark_1dmt5cy_9 _withoutText_1dmt5cy_203 ktl-social-item-module_social-item_GpKEF undefined"><svg viewBox="0 0 24 24" class="_icon_i5poj_4 _sizeM_i5poj_22 _icon_1dmt5cy_182"><path d="M19.816 5.417c.86.23 1.537.908 1.768 1.769h-.002C22 8.745 22 12 22 12s0 3.255-.418 4.814a2.5 2.5 0 0 1-1.768 1.768C18.254 19 12 19 12 19s-6.254 0-7.813-.418a2.5 2.5 0 0 1-1.769-1.768C2 15.254 2 12 2 12s0-3.255.418-4.814a2.5 2.5 0 0 1 1.769-1.769C5.746 5 12 5 12 5s6.255 0 7.816.418M10 15l5-3-5-3z"></path></svg></a></div></div><nav><ul class="ktl-nav-list-module_nav-list_-k4np"><li class="ktl-nav-item-module_nav-item_isoyN _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 ktl-nav-item-module_nav-item-dark-theme_FijdH"><a href="https://kotlinlang.org/docs/contribute.html" title="Contributing to Kotlin" class="_rs-link_1owszn1_1 _rs-link_mode_clear_1owszn1_1 _rs-link_hardness_hard_1owszn1_1 _rs-typography_theme_dark_1owszn1_1">Contributing to Kotlin</a></li><li class="ktl-nav-item-module_nav-item_isoyN _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 ktl-nav-item-module_nav-item-dark-theme_FijdH"><a href="https://kotlinlang.org/docs/releases.html" title="Releases" class="_rs-link_1owszn1_1 _rs-link_mode_clear_1owszn1_1 _rs-link_hardness_hard_1owszn1_1 _rs-typography_theme_dark_1owszn1_1">Releases</a></li><li class="ktl-nav-item-module_nav-item_isoyN _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 ktl-nav-item-module_nav-item-dark-theme_FijdH"><a href="https://kotlinlang.org/assets/kotlin-media-kit.pdf" title="Press Kit" class="_rs-link_1owszn1_1 _rs-link_mode_clear_1owszn1_1 _rs-link_hardness_hard_1owszn1_1 _rs-typography_theme_dark_1owszn1_1">Press Kit</a></li><li class="ktl-nav-item-module_nav-item_isoyN _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 ktl-nav-item-module_nav-item-dark-theme_FijdH"><a href="https://kotlinlang.org/docs/security.html" title="Security" class="_rs-link_1owszn1_1 _rs-link_mode_clear_1owszn1_1 _rs-link_hardness_hard_1owszn1_1 _rs-typography_theme_dark_1owszn1_1">Security</a></li><li class="ktl-nav-item-module_nav-item_isoyN _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 ktl-nav-item-module_nav-item-dark-theme_FijdH"><a target="_blank" href="https://blog.jetbrains.com/kotlin/" title="Blog" class="_rs-link_1owszn1_1 _rs-link_mode_clear_1owszn1_1 _rs-link_hardness_hard_1owszn1_1 _rs-typography_theme_dark_1owszn1_1">Blog</a></li><li class="ktl-nav-item-module_nav-item_isoyN _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 ktl-nav-item-module_nav-item-dark-theme_FijdH"><a target="_blank" href="https://youtrack.jetbrains.com/issues/KT" title="Issue Tracker" class="_rs-link_1owszn1_1 _rs-link_mode_clear_1owszn1_1 _rs-link_hardness_hard_1owszn1_1 _rs-typography_theme_dark_1owszn1_1">Issue Tracker</a></li><li class="ktl-nav-item-module_nav-item_isoyN _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 ktl-nav-item-module_nav-item-dark-theme_FijdH"><a target="_blank" href="https://kotlinlang.org/docs/kotlin-brand-assets.html" title="Brand Assets" class="_rs-link_1owszn1_1 _rs-link_mode_clear_1owszn1_1 _rs-link_hardness_hard_1owszn1_1 _rs-typography_theme_dark_1owszn1_1">Brand Assets</a></li><li class="ktl-nav-item-module_nav-item_isoyN _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 ktl-nav-item-module_nav-item-dark-theme_FijdH"><a target="_blank" href="https://job-boards.eu.greenhouse.io/jetbrains?field_11295751101%5B%5D=25001078101" title="Careers" class="_rs-link_1owszn1_1 _rs-link_mode_clear_1owszn1_1 _rs-link_hardness_hard_1owszn1_1 _rs-typography_theme_dark_1owszn1_1">Careers</a></li><li class="ktl-nav-item-module_nav-item_isoyN _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 ktl-nav-item-module_nav-item-dark-theme_FijdH"><a target="_blank" href="https://www.jetbrainsmerchandise.com/view-all.html?brand=32" title="Kotlin Merch" class="_rs-link_1owszn1_1 _rs-link_mode_clear_1owszn1_1 _rs-link_hardness_hard_1owszn1_1 _rs-typography_theme_dark_1owszn1_1">Kotlin Merch</a></li><li class="ktl-nav-item-module_nav-item_isoyN _rs-text-2_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_auto_1owszn1_1 ktl-nav-item-module_nav-item-dark-theme_FijdH"><a href="#opt-out" title="Opt-Out" class="_rs-link_1owszn1_1 _rs-link_mode_clear_1owszn1_1 _rs-link_hardness_hard_1owszn1_1 _rs-typography_theme_dark_1owszn1_1">Opt-Out</a></li></ul></nav><a href="https://jetbrains.com" target="_blank" class="ktl-footer-module_logo-area_SsNTa ktl-logo-module_link_bNecp" aria-label="jetbrains.com link" rel="noreferrer"><svg width="149" height="32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M43.242 20.293c0 .423-.09.797-.269 1.125a1.86 1.86 0 0 1-.756.762c-.33.18-.698.269-1.12.269H39V25.5h2.54c.955 0 1.812-.214 2.574-.642a4.679 4.679 0 0 0 1.792-1.773c.433-.752.652-1.598.652-2.544V10.509h-3.316v9.784Zm8.928-.911h6.946v-2.804H52.17v-3.181h7.678v-2.888h-10.91v14.987h11.124v-2.888H52.17v-3.226Zm8.932-5.9h4.442v12.01h3.316v-12.01h4.421v-2.973H61.097v2.977l.005-.005Zm23.512 4.5a3.94 3.94 0 0 0-.837-.323c.224-.065.438-.144.638-.244a3.18 3.18 0 0 0 1.29-1.195c.308-.513.467-1.1.467-1.768 0-.761-.209-1.444-.622-2.046-.413-.598-.996-1.066-1.743-1.404-.747-.334-1.603-.503-2.56-.503h-6.656v14.987h6.786c1.006 0 1.902-.174 2.694-.528.787-.353 1.4-.841 1.837-1.473.433-.628.653-1.345.653-2.151 0-.742-.17-1.405-.513-1.992a3.525 3.525 0 0 0-1.43-1.364l-.004.005Zm-6.802-4.959h2.943c.408 0 .767.075 1.08.22.314.144.558.353.732.627.175.269.264.587.264.95 0 .364-.09.708-.264.992a1.726 1.726 0 0 1-.732.652 2.41 2.41 0 0 1-1.08.229h-2.943v-3.675.005Zm5.069 9.067c-.19.284-.458.503-.802.658a2.908 2.908 0 0 1-1.195.229h-3.072v-3.844h3.072c.444 0 .837.084 1.185.249.344.164.618.393.807.692.19.299.289.637.289 1.02 0 .384-.095.712-.284.996Zm14.798-2.654c.831-.398 1.474-.96 1.932-1.683.458-.721.687-1.558.687-2.514 0-.956-.224-1.763-.672-2.48-.448-.716-1.086-1.27-1.907-1.662-.822-.394-1.773-.588-2.858-.588h-6.563v14.987h3.321V20.04h2.161l3.043 5.457h3.789l-3.426-5.86c.17-.06.339-.125.498-.2h-.005Zm-1.076-3.062a1.798 1.798 0 0 1-.791.722c-.344.17-.747.254-1.21.254h-2.988v-4.147h2.988c.463 0 .866.
1084 1.21.249.343.164.607.408.791.717.185.308.28.677.28 1.095 0 .418-.095.787-.28 1.1v.01ZM106.9 10.51l-5.352 14.987h3.371l1.06-3.306h5.557l1.135 3.306h3.306l-5.482-14.987H106.9Zm-.169 9.171 1.723-5.287.204-.961.204.96 1.842 5.288h-3.973Zm10.347 5.816h3.425V10.51h-3.425v14.987Zm15.51-4.85L126.14 10.51h-3.232v14.987h3.027V15.36l6.414 10.137h3.266V10.51h-3.027v10.137Zm15.763-1.678a4.466 4.466 0 0 0-1.364-1.568 4.95 4.95 0 0 0-2.011-.846l-2.55-.523c-.398-.095-.717-.26-.951-.498a1.228 1.228 0 0 1-.353-.891c0-.324.084-.603.259-.842.169-.239.413-.423.722-.558.308-.134.667-.199 1.075-.199.408 0 .777.07 1.091.21.313.139.557.333.731.587.175.254.264.538.264.861h3.321c-.019-.871-.263-1.643-.722-2.31-.458-.672-1.1-1.195-1.916-1.573-.817-.379-1.753-.568-2.799-.568-1.045 0-1.971.194-2.783.588-.812.393-1.449.936-1.902 1.633-.453.697-.682 1.488-.682 2.38 0 .722.144 1.374.438 1.951a3.954 3.954 0 0 0 1.24 1.45 4.906 4.906 0 0 0 1.862.801l2.699.558c.443.104.791.299 1.05.577.259.28.384.623.384 1.041 0 .334-.095.637-.284.901a1.826 1.826 0 0 1-.792.613c-.338.144-.737.214-1.195.214-.458 0-.891-.08-1.265-.24a1.94 1.94 0 0 1-.866-.686 1.72 1.72 0 0 1-.309-1.021h-3.321c.015.936.264 1.757.757 2.474.488.712 1.16 1.27 2.017 1.668.856.399 1.837.598 2.942.598 1.106 0 2.101-.204 2.958-.612.861-.409 1.528-.971 2.011-1.688.483-.717.722-1.529.722-2.435a4.4 4.4 0 0 0-.488-2.052l.01.005Z" fill="#fff"></path><path d="m10.17 1.83-8.34 8.34A6.252 6.252 0 0 0 0 14.59V29.5A2.5 2.5 0 0 0 2.5 32h14.91a6.26 6.26 0 0 0 4.42-1.83l8.34-8.34A6.252 6.252 0 0 0 32 17.41V2.5A2.5 2.5 0 0 0 29.5 0H14.59a6.26 6.26 0 0 0-4.42 1.83Z" fill="url(#jetbrains-logo_svg__a)"></path><path d="M24 8H4v20h20V8Z" fill="#000"></path><path d="M15 23.5H6.5v2H15v-2Z" fill="#fff"></path><defs><linearGradient id="jetbrains-logo_svg__a" x1="0.425" y1="31.36" x2="31.31" y2="0.905" gradientUnits="userSpaceOnUse"><stop stop-color="#FF9419"></stop><stop offset="0.43" stop-color="#FF021D"></stop><stop offset="0.99" stop-color="#E600FF"></stop></linearGradient></defs></svg></a><div class="_rs-text-3_1owszn1_1 _rs-typography_theme_dark_1owszn1_1 _rs-text_hardness_hard_1owszn1_1 ktl-footer-module_text-area_flccc"><div>Supported and developed by <a class="_rs-link_1owszn1_1 _rs-link_mode_classic_1owszn1_1 _rs-link_hardness_hard_1owszn1_1 _rs-typography_theme_dark_1owszn1_1" href="https://www.jetbrains.com/" target="_blank">JetBrains</a>.</div><div class="ktl-footer-module_copyright_XjtgY">Kotlin™ is protected under the<!-- --> <a class="_rs-link_1owszn1_1 _rs-link_mode_classic_1owszn1_1 _rs-link_hardness_hard_1owszn1_1 _rs-typography_theme_dark_1owszn1_1" href="https://kotlinlang.org/foundation/kotlin-foundation.html">Kotlin Foundation</a> <br class="ktl-footer-module_copyrightBreakLine_0hI7E"/>and licensed under the<!-- --> <a class="_rs-link_1owszn1_1 _rs-link_mode_classic_1owszn1_1 _rs-link_hardness_hard_1owszn1_1 _rs-typography_theme_dark_1owszn1_1" target="_blank" href="https://github.com/JetBrains/kotlin-web-site/blob/master/LICENSE" rel="noreferrer">Apache 2 license</a>.</div></div></div></footer></div>
1<script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/backend","query":{},"buildId":"E3zqn3acXf1A8YpugSXmg","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script>
1</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.