# -   name: Example Tool
#     image: cordova.png
#     url: http://example.com
#     description: >
#         A description that can
#         span multiple lines.

-   name: Adobe PhoneGap
    image: phonegap.svg
    url: http://phonegap.com/
    description: >
        PhoneGap is the original and most popular distribution of Apache
        Cordova. Turn your HTML, CSS and JavaScript into an app on your
        device in minutes using our simple <a href="http://docs.phonegap.com/getting-started/1-install-phonegap/desktop/">
        desktop</a> and <a href="http://docs.phonegap.com/references/developer-app/">
        developer</a> apps.

-   name: Ionic
    image: ionic.png
    url: http://ionicframework.com/
    description: >
        Ionic is a front-end SDK for building cross-platform mobile apps.
        Built on top of Angular, Ionic also provides a platform for
        integrating services like push notifications and analytics.

-   name: Monaca
    image: monaca.png
    url: https://monaca.io/
    description: >
        Comprehensive cloud-powered and framework-agnostic set of tools
        Monaca supports both online and offline development, debugging with
        live-reload feature and cloud build experience.

-   name: Onsen UI
    image: onsen.png
    url: http://onsen.io/
    description: >
        Custom Elements-based HTML5 framework offers a large selection of
        components and responsive layout support. Onsen UI lets you create
        professionally designed multiplatform apps without acquiring additional
        skillset.

-   name: Visual Studio
    image: visual_studio_white.png
    url: http://aka.ms/cordova
    description: >
        Popular IDE for building cross-platform apps for Android, iOS, and
        Windows. Complete with advanced build and debugging support.

-   name: Telerik
    image: telerik.png
    url: http://www.telerik.com/
    description: >
        Telerik Platform is a complete mobile app development platform for
        developing hybrid and native apps with JavaScript. Use our free and
        open source Kendo UI framework with Telerik Platform to address every
        stage of your application lifecycle - from idea to deployment.

-   name: GapDebug
    image: gapdebug-logo100.png
    url: https://www.genuitec.com/products/gapdebug/
    description: >
        GapDebug is a free tool for debugging and managing hybrid-mobile
        Android and iOS apps. With Drag and drop App Installation, Instant
        debugging, and full cross-platform support, GapDebug changes how you
        view debugging for good.

-   name: App Builder
    image: appbuilder.png
    url: http://www.getappbuilder.com/
    description: >
        App Builder is a complete IDE for Microsoft Windows which allows to
        create HTML5 and native apps without programming knowledge. Offers
        dozens of controls and actions ready to be used in your apps and
        lot of app samples to learn it.

-   name: Cocoon
    image: cocoon.png
    url: http://cocoon.io/
    description: >
        Cocoon is a Cordova based cloud service for building native HTML5 apps
        and games. Cocoon is focused on providing the best webview engines and
        features like Canvas+, JS encryption or a custom Developer App.

-   name: Framework7
    image: framework7.png
    url: http://www.idangero.us/framework7/
    description: >
        Framework7 is a free and open source mobile HTML framework for
        developing hybrid mobile apps or web apps with iOS & Android
        native look and feel.

-   name: Evothings Studio
    image: evothings.png
    url: https://evothings.com/
    description: >
        Evothings Studio provides Cordova developers with a rapid development
        workflow, tutorials and example apps for the Internet of Things.
        Support for Bluetooth Low Energy (BLE) and other IoT related
        technologies.

-   name: NSB/AppStudio
    image: appstudio.png
    url: https://www.nsbasic.com/
    description: >
        NSB/AppStudio is an IDE for webapps/native apps. One step install
        includes complete PhoneGap integration, plus Bootstrap, jQuery Mobile
        and jqWidgets. Drag and Drop Designer. Easy programming in JavaScript
        or BASIC. Windows and MacOS.
        
-   name: Mobiscroll
    image: mobiscroll.png
    url: https://mobiscroll.com
    description: >
        Mobiscroll is a collection of cross platform UI
        controls for delivering polished iOS, Android & Windows Phone apps. 
        Framework agnostic, use it with plain Javascript, 
        jQuery, Angular, React or Knockout.
