Build native apps for mobile and desktop is a compact and versatile cross-platform HTML browser, available as an app development tool with an integrated editor, debugger, and app-packager. It can be used to quickly and easily build native mobile and desktop apps. It builds single-file apps by packaging your HTML files with a version of its browser compiled for the target operating system.

Click here for technical details, or here to see how easy it is to build an app.

Standard features implements most of the HTML5, CSS3, and ES6 web browser specs and will continue working towards full implementation. Click to generate lists of available HTML elements, CSS attributes, DOM Objects, Javascript objects, and SVG elements. Ask the Internet for help when using standard browser features.

Extended HTML for app development

<!if condition>, <!else>, <!elif condition>, <!endif> directives can be used to select or discard parts of a web page. <!include filename> directive inserts a file into a page.

Built-in data binding can be used to initialize an HTML element attribute with the value of a variable or expression, or retrieve the value of an input element, using an 'eval-' or 'bind-' attribute prefix.

Additional CSS like density-independent pixels and touch-padding are available to help solve common cross-platform styling issues.

Share data between HTML pages using window.sharedObject, a global object available to every page, including pages inside iframes.

The built-in DOMQuery object provides a useful subset of jQuery's features without any overhead.

JavaScript API for app development

Built-in file, folder, and drive objects can be used to read, write, copy, and delete files and folders on the device's file system.

A built-in shared library object can load a DLL or shared library from disk or from within a packaged app. C-style function declarations are compiled to easily bind library functions, which can then be called directly from JavaScript.

A built-in HTTP server can be used to listen for incoming connections and respond to requests.

Several databases are available including: SQLite, IndexedDB, syncronous IndexedDB, or an integrated unstructured database built into the script engine which stores data in a simple and efficient way.

EJS and PHP templates

Files with an .ejs or .php extension will be interpreted as EJS or PHP template files and rendered as HTML pages. The home page or any other page of an app may be a template file.

EJS and PHP templates may also be included in HTML pages inside script tags, or may be rendered to HTML by the built-in web server in response to page requests.

Other mentionables

Any attribute can be overwritten with a specific value using the dev: prefix. For example, text inside <p style='color:green' dev:style='color:blue'> will appear blue in and green in other browsers.

<a target='_blank' href='filename'> will open the filename in a new tab of the operating system's default browser. If the file is packaged inside the app, it will first be copied into the app's private data folder. ('filename', '_blank') will also open the operating system's default browser, otherwise ('filename') opens a window over the top of the current window like in a stack view. Closing it reveals the window beneath.