you have full control over the HTML code
This documentation website is a Nabble application with custom NAML code.

A new language for web applications

NAML (Nabble Application Markup Language) is a free templating language that allows you to customize the code behind your Nabble applications. It gives you full control over the HTML code of your pages in such a way that you can change not only how things look, but also how things work. NAML was designed with some important ideas in mind:

  • Intuitive: NAML looks like an extension of HTML. The tag-oriented nature of the code is still the same, although new tags have been introduced to allow more advanced features and communication with Nabble's database;
  • Reusable: NAML has the concept of macros, which works like a reusable function that can be called multiple times by your pages. So you can move the complexity of page elements into macros and easily reuse them as abstractions.
  • Extensible: Nabble plans to open source an API and let users build new modules and components.
  • Sharing: Users can exchange their NAML code and share custom designs and applications with the community. Importing and exporting NAML code is quick and easy.

Since the most basic requirement for creating web pages is the generation of HTML code, we have chosen the XML format for this language in order to keep the code consistent with its generated output. The result is a language that extends the HTML code and defines a set of new rules and commands for organizing elements, creating abstractions and handling information.

Audience

NAML is meant to be simple, intuitive and readable, but you must understand how to create a page with HTML and its related technologies (e.g., Cascading Style Sheets, Javascript, etc.) in order to use it efficiently. In other words, the language is not aimed at dummies, but at people with the minimum experience with the building blocks of a web page. But this doesn't mean that only savvy users can take advantage of this technology. Everyone that has a Nabble application can easily import and export NAML code and share designs, widgets and complete features with the community.

Node-oriented backend

NAML is primarily focused on Nabble's node-oriented backend. To Nabble, every piece of information is stored as a node in the database and such nodes can be organized in a tree structure that gives meaning to the applications. The way the tree is displayed makes a big difference to the end user. See these examples:

Nodes can represent anything you want, including a forum, a post, a gallery, a question in a FAQ, a directory, a document, a category, etc. So the way you store the information and display it to the end user is what makes your application so special.

NAML has commands to manipulate every aspect of nodes and save the information the way you want it. It also gives you a complete infrastructure for your applications, including user management, permissions, email subscriptions and a lot more.