Login



It is critical that you have the NativeScript key in the package like explained below. In addition it is recommended you have text "NativeScript" as either part of the title of the plugin or as a keyword in the package file. This site automatically catalogs the plugins in realtime.

If your plugin still isn't showing; you can try typing plugins.nativescript.rocks/plugin/my-plugin-name and seeing what it says about your plugin. The site will allow you to see any errors that we had while attempting to process your plugin. We have actually cataloged another 20 percent more plugins that have serious issues; so they won't show in the catalog until the major issues are solved.

For your plugin to show up properly please add a "nativescript" key to your plugin; it should look like this:

"nativescript": {
  "platforms": {
    "android": "1.0.0",
    "ios": "1.0.0"
  },
  "plugin": {
    "nan": "true",
    "pan": "true",
    "core3": "true",
    "vue": "false",
    "webpack": "false",
    "category": "Processing",
    "wrapper" : ""
  },
  "demo": "Your PAN demo url",
  "demong": "Your NAN demo url"
  "demovue": "Your VUE demo url"
}

  • The platforms key, tells us which platforms are supported and which runtimes. You need to have at least one or both of ios or android sub-keys for the plugin sites to detect this is a valid plugin. You should only have the key that your plugin supports. So if your plugin only supports android, only put the android platform key in.

  • The plugin key gives us a bit of extra plugin meta-data; all are optional and are attempted to be auto-detected.
    • pan = Plain Awesome NativeScript support. (Default: true)
    • nan = NativeScript Angular; set to true if the plugin works properly in a NAN application. (Default: false)
    • vue - This is a plugin for the Vue environment. (Default: false)
    • webpack - This is a plugin designed for use in Webpack (Default: false)
    • core3 = Support TNS 3.0 core modules; defaults to true if either platforms' keys are set to >= 3.0.0, otherwise false.
    • wrapper = This is normally blank, you fill it in if you create a dummy wrapper for a platform, you can then just put "android" or "ios" in this field for which wrapper you created.
    • category - The category for this plugin
      The valid categories currently are:
      • Interface
      • Processing
      • Templates
      • Themes
      • Developer
      • Network
      • Payment
      • Database
      • Audio
      • Bluetooth
    • Demo, DemoNg, DemoVue - These are automatically detected as "/demo", "/demo_ng" (or "/demo_angular"), and "/demo_vue". If you have the demo's in their normal location in github, you don't have to fill in these keys.
"name": "nativescript-master-technology",
This is where you put the name of your plugin.

"version": "1.1.1",
This is your version of the plugin.

"description": "A Simple NativeScript Utility Library",
This is your description of the plugin, it is better if you keep it pure text.

"main": "sqlite",
This is the name of your master file for your plugin, DO NOT add the .js!!!

"typings": "index.d.ts",
This is how you tell it which typings file the plugin uses.

"repository": {
    "type": "git",
    "url": "https://github.com/nathanaela/nativescript-sqlite.git"
},
This is how you point your package to your repository, in this example I'm pointing it to my sqlite repo.

"keywords": [
    "NativeScript",
    "SQLite",
],
This is how you setup your keywords, I would recomend you have at the minimum NativeScript and the title of your plugin, but add other keywords to make it easily seachable.

"author": {
    "name": "Nathanael Anderson",
    "email": "nathan@master-technology.com"
},
This is how you create who created this awesome plugin, you should take some credit!

"license": {
    "type": "MIT",
    "url": "https://github.com/nathanaela/nativescript-sqlite/blob/master/LICENSE"
},
What license the plugin is under. This also is a pretty important key.

"contributors": [
    {
        "name": "Brad Martin",
        "email": "email@email.com",
        "url": "https://github.com/bradmartin"
    },
    {
        "name": "Nathan Walker",
        "email": "email@email.com",
        "url": "https://github.com/ludwiktrammer"
    }
],
This is how you add any contributors to your plugin, do NOT add your name to this list.
The plugins on this site are scoring is calculated based on several automated tests and factors:

Warning: If you LIE about your plugin and say you support iOS and Android and you do NOT actually support both platforms, It will be at zero points until the issue is fixed and I can verify it. Please note there is a "wrapper" flag, for when you have a wrapper so that it doesn't crash on the other platform, but you don't actually "support" the platform.

For the first platform you support you get 50 points.
For the second platform you support you get and additional 40 points
You get 10 points for each platform that you have dummy wrappers for. A dummy wrapper is like if you create a cool plugin on iOS, the android version would just be a simple file with the same interface that does nothing; so that your main app code doesn't crash when you call it on android.
If you supply a category; you get an additional 5 points.
If you supply a PAN demo with your plugin, you get an additional 25 points. (Folder: demo)
If you supply a NAN demo with your plugin, you get an additional 25 points. (Folder: demo_ng or demo-angular)
If you supply a VUE demo with your plugin, you get an additional 25 points. (Folder: demo_vue)
If you supply TypeScript typings you get an additional 10 points.
If you are missing a readme, you lose 10 points.
if your plugin can't be webpacked you lose 20 points.
If you are packaging up TS files in your distributed plugin (i.e. the npm pacakge), you lose 5 points.
If you are embedding a demo in your distributed plugin (i.e. the npm package), you lose 20 points.
If your package.json is missing the "NativeScript" key or "Platforms" key, you lose 5 points each.
If your plugin package file has a dependancy on "tns-core-modules", you lose 40 points.

Please note in the future more critera may be added... Please feel free to suggest more rating factors.