NativeScript
NativeScript is an open-source framework for building truly native iOS, Android, and visionOS apps from JavaScript or TypeScript, exposing platform APIs directly to JS without a WebView. It integrates with Angular, React, Vue, Svelte, and Solid front-end stacks.
MITPermissive — free to use in commercial and proprietary software, with attribution.View license →
Production readiness
4/5- Actively maintainedCommits in the last 6 months
- No known vulnerabilitiesNot yet scanned
- Clear, usable licenseMIT (permissive)
- Proven adoptionWidely used
- Has documentationDocumentation indexed
npm install nativescriptOur analysis
NativeScript is a runtime and framework that lets you write native mobile apps in JavaScript/TypeScript, calling iOS, Android, and visionOS platform APIs directly from JS via dedicated runtimes rather than through a web browser shell.
When to use NativeScript
Choose it when you want genuinely native UI and full, immediate access to platform SDKs from JS/TS while reusing skills from Angular, Vue, Svelte, Solid, or React. It's a good fit for teams wanting no-WebView native rendering and the freedom to call any native API without writing a bridge plugin first.
When not to
If your team is already standardized on React Native or Flutter, those have far larger ecosystems and hiring pools. For content-driven apps that are essentially wrapped web, Capacitor/Ionic is simpler, and for pure web you'd skip mobile frameworks entirely.
Strengths
- Direct, synchronous access to native APIs from JS without writing native bridge code
- Supports multiple popular UI flavors (Angular, Vue 3, Svelte, Solid, React, plain TS)
- Native UI rendering (not WebView) for closer-to-platform look and performance
- Backed by the OpenJS Foundation with open governance
Trade-offs
- Significantly smaller community and plugin ecosystem than React Native or Flutter
- Native API access can leak platform-specific code into the JS layer, hurting portability
- Mindshare has declined relative to competitors, affecting third-party support and hiring
- Build/runtime tooling (webpack configs, native runtimes) adds setup complexity
Maturity
A mature, long-running project (now under the OpenJS Foundation) with 25k+ stars, established CLI, multi-platform runtimes, and active releases, but with a smaller and slower-growing ecosystem compared to dominant cross-platform competitors.
NativeScript empowers you to access native APIs from JavaScript directly. Currently iOS, Android, and visionOS runtimes are provided for rich mobile development across a variety of diverse use cases.
Quick Start
To get started with NativeScript, follow these steps:
Install the NativeScript CLI globally:
npm install -g nativescriptCreate a new project:
ns create my-appNavigate into your project directory:
cd my-appRun your app on an emulator or device:
ns run androidor
ns run ios
Contribute
Clone to contribute:
$ git clone https://github.com/NativeScript/NativeScript.git
$ cd NativeScript
# setup workspace for development
$ npm run setup
# list all available commands to run
$ npm start
We love you and your pull requests 🤗. Please follow our contributing guide and see our code of governance to become as involved as you want to be.
@nativescript/*
@nativescript/core Singular primitives offering an easy-to-use API surface for diverse iOS/visionOS/Android APIs implemented with NativeScript.
@nativescript/types Types for both iOS/Android below wrapped up as a convenience. Most commonly used.
@nativescript/types-ios Types for iOS.
@nativescript/types-android Types for Android.
@nativescript/types-minimal A very minimal set of types for only the latest Android and iOS sdks. Most commonly used to optimize Web-based IDE's which auto load all type declarations from node_modules.
@nativescript/ui-mobile-base UI mobile base native classes used by core.
@nativescript/webpack Webpack build utilities and configs used by NativeScript apps.
Quick Links
JavaScript starter: https://nativescript.new/javascript
TypeScript starter: https://nativescript.new/typescript
Angular starter: https://nativescript.new/angular
React starter: https://nativescript.new/react
Solid starter: https://nativescript.new/solid
Svelte starter: https://nativescript.new/svelte
Vue starter: https://nativescript.new/vue
Vue 3 starter: https://nativescript.new/vue3
Other source repos
Outside the source centralized in this repo, NativeScript consists of a few other source repos. Here are the major ones:
iOS and visionOS Runtime Empowers JavaScript code to be executed on iOS and visionOS devices written in a mix of C++, Objective-C, and Swift.
Android Runtime Empowers JavaScript code to be executed on Android devices written in a mix of C++, Java and Kotlin.
CLI Command-line interface empowering you to create, build, and run apps using NativeScript.
Docs Documentation available at http://docs.nativescript.org/ written in Markdown.
Plugins Various TSC managed plugins. Also a good reference is the plugin marketplace with several additional plugins.
Firebase Modular Firebase 🔥 implementation for supported platforms.
ML Kit Google's ML Kit SDKs for supported platforms.
Payments In-App Purchase, Subscriptions, Google Pay and Apple Pay.
Artwork Want to use our logo or colors? Feel free to use any of our ready-to-use media material.
Copyright notice
Copyright OpenJS Foundation and NativeScript contributors. All rights reserved. The OpenJS Foundation has registered trademarks and uses trademarks. For a list of trademarks of the OpenJS Foundation, please see our Trademark Policy and Trademark List. Trademarks and logos not indicated on the list of OpenJS Foundation trademarks are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.
The OpenJS Foundation | Terms of Use | Privacy Policy | OpenJS Foundation Bylaws | Trademark Policy | Trademark List | Cookie Policy
