# Expo vs Kotlin Multiplatform

**Leader by vioscaleAI score:** Expo

| Attribute | Expo | Kotlin Multiplatform |
|---|---|---|
| **vioscaleAI score** | 71.3 (68% (medium)) | 55.7 (62% (medium)) |
| activity.commits_last_30d | 100 | 37 |
| adoption.dependent_repos | 120,216 | 14 |
| adoption.github_stars | 52,730 | 19,421 |
| adoption.package_downloads_weekly | 10,949,617 | - |
| content.faq | `[{"answer":"A comprehensive development platform enabling developers to build native applications for iOS, Android, and web using React. Provides integrated tools for building, testing, submitting to app stores, delivering over-the-air updates, and monitoring production applications. It is indexed under Mobile App Frameworks.","source":"https://expo.dev/pricing","question":"What is Expo?","confidence":0.6},{"answer":"Expo is open source, so it can be self-hosted and used at no licence cost. It is released under the MIT licence. A commercial or hosted edition starts at $19 per month. Prices are published openly on the vendor's own pricing page. Pricing changes often, so verify at source before relying on it.","source":"https://expo.dev/pricing","question":"Is Expo free to use?","confidence":0.6},{"answer":"Expo supports the web, iOS, Android and a command-line interface. Platforms we have not confirmed are simply not listed here rather than ruled out.","source":"https://expo.dev/pricing","question":"What platforms does Expo support?","confidence":0.6},{"answer":"We have only confirmed a cloud / SaaS deployment for Expo, so it appears to be vendor-hosted. If a self-hosted option exists we have not found it documented publicly.","source":"https://expo.dev/pricing","question":"Can Expo be self-hosted?","confidence":0.6},{"answer":"We have confirmed 10 integrations for Expo, including Slack, maestro, Fastlane, Xcode, Android Studio, ADB, Metro and Webpack, plus 2 more. This is what we could verify from public sources, so the vendor may support others we have not indexed.","source":"https://expo.dev/pricing","question":"What does Expo integrate with?","confidence":0.6},{"answer":"We have independently confirmed SOC 2 and GDPR for Expo. Certifications we do not list are ones we have not been able to verify from public sources, which is not the same as Expo not holding them. Always confirm compliance directly before you rely on it.","source":"https://expo.dev","question":"What security certifications does Expo have?","confidence":0.48},{"answer":"Yes. Expo is published under the MIT licence, a permissive licence that generally allows commercial use and modification. Licence terms can change between releases, so verify against the repository for the version you intend to use.","source":"https://github.com/expo/expo","question":"Is Expo open source?","confidence":0.99},{"answer":"Expo is available worldwide. Its primary market is the United States.","source":"https://expo.dev/pricing","question":"Where is Expo available?","confidence":0.5}]` | `[{"answer":"A framework for building applications that run on Android, iOS, desktop, and web platforms, allowing developers to share code across platforms while choosing between shared UI through Compose or platform-specific native implementations It is indexed under Mobile App Frameworks.","source":"https://kotlinlang.org/docs/multiplatform.html","question":"What is Kotlin Multiplatform?","confidence":0.6},{"answer":"Kotlin Multiplatform supports the web, iOS and Android. Platforms we have not confirmed are simply not listed here rather than ruled out.","source":"https://kotlinlang.org/docs/multiplatform.html","question":"What platforms does Kotlin Multiplatform support?","confidence":0.6},{"answer":"Yes. Kotlin Multiplatform is published under the Apache-2.0 licence, a permissive licence that generally allows commercial use and modification. Licence terms can change between releases, so verify against the repository for the version you intend to use.","source":"https://github.com/jetbrains/compose-multiplatform","question":"Is Kotlin Multiplatform open source?","confidence":0.95}]` |
| deployment.options | `{"cloud":true}` | - |
| description.long | A comprehensive development platform enabling developers to build native applications for iOS, Android, and web using React. Provides integrated tools for building, testing, submitting to app stores, delivering over-the-air updates, and monitoring production applications. | A framework for building applications that run on Android, iOS, desktop, and web platforms, allowing developers to share code across platforms while choosing between shared UI through Compose or platform-specific native implementations |
| features.capabilities | `{"targets":"iOS, Android, web","approach":"native_render","language":"JavaScript/TypeScript","web_target":true,"ota_updates":true,"native_widgets":true,"official_ui_kit":true,"single_codebase":true,"native_api_access":"full"}` | `{"targets":"Android, iOS, desktop, and web","approach":"multiplatform","language":"Kotlin","hot_reload":true,"web_target":true,"native_widgets":true,"desktop_support":true,"official_ui_kit":true,"single_codebase":true,"typescript_first":false,"native_api_access":"plugin_bridged"}` |
| integrations.count | 12 | 8 |
| integrations.list | `[{"name":"Slack"},{"name":"maestro"},{"name":"Fastlane"},{"name":"Xcode"},{"name":"Android Studio"},{"name":"ADB"},{"name":"Metro"},{"name":"Webpack"},{"name":"Repack"},{"name":"Fingerprint"},{"name":"PostHog","native":true,"category":"analytics","direction":"bidirectional"},{"name":"Sentry","native":false,"category":"monitoring","direction":"bidirectional"},{"name":"Stripe","native":false,"category":"payments","direction":"inbound"},{"name":"Cloudflare","native":false,"category":"infrastructure","direction":"inbound"},{"name":"GitHub","native":false,"category":"vcs","direction":"bidirectional"},{"name":"Google Analytics","native":false,"category":"analytics","direction":"outbound"},{"name":"RudderStack","native":false,"category":"analytics","direction":"outbound"},{"name":"Amplitude","native":false,"category":"analytics","direction":"outbound"},{"name":"HubSpot","native":false,"category":"crm","direction":"outbound"},{"name":"YouTube","native":false,"category":"video","direction":"inbound"},{"name":"React Navigation","native":true,"category":"ui","direction":"inbound"}]` | `[{"name":"Gradle","native":true,"category":"build_tool"},{"name":"Maven","native":true,"category":"build_tool"},{"name":"Xcode","native":true,"category":"ide"},{"name":"IntelliJ IDEA","native":true,"category":"ide"},{"name":"Android Studio","native":true,"category":"ide"},{"name":"CocoaPods","native":true,"category":"package_manager"},{"name":"Swift Package Manager","native":true,"category":"package_manager"},{"name":"Spring Framework","native":true,"category":"framework"}]` |
| language.primary | TypeScript | Kotlin |
| license.spdx | MIT | Apache-2.0 |
| market.availability | `{"primaryMarkets":["US"],"availabilityScope":"global","availableCountries":[],"notAvailableCountries":[]}` | - |
| platform.support | `{"ios":true,"web":true,"android":true}` | `{"ios":true,"mac":true,"linux":true,"android":true,"windows":true}` |
| pricing | `{"type":"subscription","plans":[{"free":true,"name":"Free","summary":"Free","features":["15 Android builds","15 iOS builds","Low-priority queue","60 min CI/CD Workflows","Submit to app stores","1,000 MAU updates","Community chat"],"commitment":"monthly","components":[{"kind":"fixed","amount":0,"period":"month","currency":"USD"}],"description":"For solo developers working on a passion project","contactSales":false,"includedLimits":{"maus":"1,000","storage":"20 GiB","bandwidth":"100 GiB","ios_builds":"15","ci_cd_minutes":"60","android_builds":"15","events_per_month":"100,000","requests_per_month":"100,000"}},{"free":false,"name":"Starter","summary":"$19/month + usage","features":["$45 build credit","High-priority queue","Access to large workers","3,000 MAU updates","500K events/month"],"commitment":"monthly","components":[{"kind":"fixed","amount":19,"period":"month","currency":"USD"}],"description":"For developers ready to launch real-world apps","contactSales":false,"includedLimits":{"maus":"3,000","build_credit":"$45","monthly_cost":"19","events_per_month":"500,000","requests_per_month":"100,000"}},{"free":false,"name":"Production","summary":"$199/month","features":["$225 build credit","15 concurrencies","50,000 MAU updates","10 environment variables","Priority support","Single sign-on (SSO)"],"commitment":"monthly","components":[{"kind":"fixed","amount":199,"period":"month","currency":"USD"}],"description":"For teams building and distributing production apps","contactSales":false,"includedLimits":{"maus":"50,000","storage":"1 TiB","bandwidth":"1 TiB","build_credit":"$225","monthly_cost":"199","concurrencies":"15"}},{"free":false,"name":"Enterprise","summary":"Custom pricing","features":["$1,000 build credit","20 concurrencies","1M+ MAU updates","CI/CD Workflows insights","Service Level Agreements","Strategic support add-on"],"description":"For apps with scale, security, and compliance needs","contactSales":true,"includedLimits":{"maus":"1,000,000+","build_credit":"$1,000","concurrencies":"20"}}],"summary":"Free for solo development; Starter at $19/month; Production at $199/month; Enterprise custom pricing with usage-based overage fees","currency":"USD","freeTier":true,"sourceUrl":"https://expo.dev/pricing","retrievedAt":"2026-10-15T09:23:44.056Z","startingPrice":{"amount":19,"period":"month","currency":"USD"},"billingPeriods":["month"]}` | - |
| pricing.free_tier | yes | - |
| pricing.model | freemium | - |
| pricing.price_level | mid | - |
| pricing.starting_price | `{"amount":19,"currency":"USD"}` | - |
| pricing.transparent | yes | - |
| release.cadence_days | - | 13 |
| release.history | `[{"url":"https://github.com/expo/expo/releases/tag/patch-project%4058.0.15","date":"2026-10-14T22:12:04Z","type":"stable","version":"patch-project@58.0.15"},{"url":"https://github.com/expo/expo/releases/tag/jest-expo%4058.0.10","date":"2026-10-14T22:10:52Z","type":"stable","version":"jest-expo@58.0.10"},{"url":"https://github.com/expo/expo/releases/tag/expo%4058.0.10","date":"2026-10-14T22:12:10Z","type":"stable","version":"expo@58.0.10"},{"url":"https://github.com/expo/expo/releases/tag/expo-widgets%4058.0.17","date":"2026-10-14T22:11:16Z","type":"stable","version":"expo-widgets@58.0.17"},{"url":"https://github.com/expo/expo/releases/tag/expo-template-tabs%4058.0.19","date":"2026-10-14T22:12:26Z","type":"stable","version":"expo-template-tabs@58.0.19"},{"url":"https://github.com/expo/expo/releases/tag/expo-template-default%4058.0.19","date":"2026-10-14T22:12:22Z","type":"stable","version":"expo-template-default@58.0.19"},{"url":"https://github.com/expo/expo/releases/tag/expo-template-blank%4058.0.19","date":"2026-10-14T22:12:16Z","type":"stable","version":"expo-template-blank@58.0.19"},{"url":"https://github.com/expo/expo/releases/tag/expo-template-blank-typescript%4058.0.19","date":"2026-10-14T22:12:19Z","type":"stable","version":"expo-template-blank-typescript@58.0.19"},{"url":"https://github.com/expo/expo/releases/tag/expo-template-bare-minimum%4058.0.19","date":"2026-10-14T22:12:13Z","type":"stable","version":"expo-template-bare-minimum@58.0.19"},{"url":"https://github.com/expo/expo/releases/tag/expo-sqlite%4058.0.13","date":"2026-10-14T22:10:46Z","type":"stable","version":"expo-sqlite@58.0.13"},{"url":"https://github.com/expo/expo/releases/tag/expo-splash-screen%4058.0.9","date":"2026-10-14T22:11:46Z","type":"stable","version":"expo-splash-screen@58.0.9"},{"url":"https://github.com/expo/expo/releases/tag/expo-sharing%4058.0.18","date":"2026-10-14T22:11:43Z","type":"stable","version":"expo-sharing@58.0.18"},{"url":"https://github.com/expo/expo/releases/tag/expo-router%4058.0.19","date":"2026-10-14T22:12:01Z","type":"stable","version":"expo-router@58.0.19"},{"url":"https://github.com/expo/expo/releases/tag/expo-observe%4058.0.14","date":"2026-10-14T22:11:13Z","type":"stable","version":"expo-observe@58.0.14"},{"url":"https://github.com/expo/expo/releases/tag/expo-notifications%4058.1.4","date":"2026-10-14T22:11:40Z","type":"stable","version":"expo-notifications@58.1.4"},{"url":"https://github.com/expo/expo/releases/tag/expo-modules-jsi%4058.0.13","date":"2026-10-14T22:10:43Z","type":"stable","version":"expo-modules-jsi@58.0.13"},{"url":"https://github.com/expo/expo/releases/tag/expo-modules-core%4058.0.18","date":"2026-10-14T22:11:11Z","type":"stable","version":"expo-modules-core@58.0.18"},{"url":"https://github.com/expo/expo/releases/tag/expo-modules-cli%400.3.0","date":"2026-10-14T22:10:40Z","type":"stable","version":"expo-modules-cli@0.3.0"},{"url":"https://github.com/expo/expo/releases/tag/expo-modules-autolinking%4058.0.13","date":"2026-10-14T22:11:07Z","type":"stable","version":"expo-modules-autolinking@58.0.13"},{"url":"https://github.com/expo/expo/releases/tag/expo-module-template%4058.0.7","date":"2026-10-14T22:10:38Z","type":"stable","version":"expo-module-template@58.0.7"}]` | `[{"url":"https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.13.0-alpha02","date":"2026-10-06T12:44:18Z","type":"prerelease","version":"v1.13.0-alpha02"},{"url":"https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.12.1","date":"2026-09-22T12:11:13Z","type":"stable","version":"v1.12.1"},{"url":"https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.13.0-alpha01","date":"2026-09-10T07:11:39Z","type":"prerelease","version":"v1.13.0-alpha01"},{"url":"https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.12.0","date":"2026-08-25T10:30:23Z","type":"stable","version":"v1.12.0"},{"url":"https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.12.0-rc01","date":"2026-08-11T10:40:44Z","type":"prerelease","version":"v1.12.0-rc01"},{"url":"https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.12.0-beta03","date":"2026-07-28T14:21:30Z","type":"prerelease","version":"v1.12.0-beta03"},{"url":"https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.12.0-beta02","date":"2026-07-14T11:42:36Z","type":"prerelease","version":"v1.12.0-beta02"},{"url":"https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.12.0-beta01","date":"2026-06-30T12:18:22Z","type":"prerelease","version":"v1.12.0-beta01"},{"url":"https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.12.0-alpha02","date":"2026-06-16T13:29:52Z","type":"prerelease","version":"v1.12.0-alpha02"},{"url":"https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.11.1","date":"2026-06-02T11:38:38Z","type":"stable","version":"v1.11.1"},{"url":"https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.12.0-alpha01","date":"2026-05-19T13:57:43Z","type":"prerelease","version":"v1.12.0-alpha01"},{"url":"https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.11.0","date":"2026-05-13T13:41:03Z","type":"stable","version":"v1.11.0"},{"url":"https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.11.0-rc01","date":"2026-05-05T12:37:14Z","type":"prerelease","version":"v1.11.0-rc01"},{"url":"https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.11.0-beta03","date":"2026-04-21T12:47:45Z","type":"prerelease","version":"v1.11.0-beta03"},{"url":"https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.11.0-beta02","date":"2026-04-10T09:53:50Z","type":"prerelease","version":"v1.11.0-beta02"},{"url":"https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.11.0-beta01","date":"2026-03-26T17:12:56Z","type":"prerelease","version":"v1.11.0-beta01"},{"url":"https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.10.3","date":"2026-03-19T14:01:35Z","type":"stable","version":"v1.10.3"},{"url":"https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.11.0-alpha04","date":"2026-03-11T12:53:46Z","type":"prerelease","version":"v1.11.0-alpha04"},{"url":"https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.10.2","date":"2026-03-05T11:16:32Z","type":"stable","version":"v1.10.2"},{"url":"https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.11.0-alpha03","date":"2026-02-25T13:10:13Z","type":"prerelease","version":"v1.11.0-alpha03"}]` |
| reliability.sla_pct | 99.9 | - |
| reliability.status_page | yes | - |
| security.certifications | `[{"name":"SOC 2 Type II","level":"Type II","status":"active"}]` | - |
| security.disclosure_policy | yes | yes |
| security.gdpr | yes | - |
| security.scorecard | 5.2 | - |
| security.soc2 | yes | - |
| security.vulnerabilities | `{"count":0,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=npm&package_name=expo-error-recovery&per_page=100","last_12m":0,"max_severity":null}` | `{"count":0,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=maven&package_name=org.jetbrains.compose.foundation%3Afoundation&per_page=100","last_12m":0,"max_severity":null}` |

## Capabilities (Mobile App Frameworks)

| Capability | Expo | Kotlin Multiplatform |
|---|:--:|:--:|
| **Core** |  |  |
| Target platforms | iOS, Android, web | Android, iOS, desktop, and web |
| Approach | Cross-platform native render | Multiplatform shared logic |
| Primary language | JavaScript/TypeScript | Kotlin |
| **Rendering** |  |  |
| Renders true native UI | ✓ | ✓ |
| **DX** |  |  |
| Hot reload | - | ✓ |
| TypeScript-first | - | ✗ |
| **Delivery** |  |  |
| Over-the-air code push | ✓ | - |
| **Portability** |  |  |
| Single codebase, multiple platforms | ✓ | ✓ |
| Desktop support | - | ✓ |
| Builds for web | ✓ | ✓ |
| **Capability** |  |  |
| Native API access | Full native | Plugin / bridged |
| **Ecosystem** |  |  |
| Bundled UI component library | ✓ | ✓ |

*Source: vioscaleAI. Generated 2026-10-16T20:59:21.810Z. "-" = undocumented, not absent.*
