Business Process Model & Notation (BPMN) in its current incarnation (2.0) was released in 2011 by the OMG. It exists to solve the problem of understanding internal business procedures using a graphical notation. Its popularity can perhaps be enough to attest to the fact that it has achieved this. That popularity as well as availability of helpful tutorials  has led to fast adoption, so it has quickly become the universally accepted standard for process modelling , with which analysts can accurately express their designs to developers. It was in the spirit of embracing BPMN’s alignment of design and development that the bpmn.io project was conceived.
bpmn.io  is a modelling tool for BPMN 2.0 developed by Camunda . It is available both online as a web-based tool  and off-line as a desktop application , as well as being free and open source. It also happens to be one of the best BPMN modelers available, despite still being in beta. Making it free was of course a key decision for the project. To embrace the benefits of IT-alignment with BPMN, the notation itself needs to be openly and easily available to all. In the time before the project, we noticed that there was no easy way to get started modelling with BPMN 2.0 as a beginner. The tools available (even the proprietary ones) aren’t particularly user-friendly, and don’t encourage a user to produce valid BPMN 2.0 to any reasonable standard. This is not just important in general for modelling but is a particularly critical issue for BPMN. Models created with the notation can be made to be directly executable. The goal is that any model an analyst creates can be handed to a developer and made a fully functional process. By encouraging best practices and warning of incorrect modelling choices, a modeler helps a great deal by ensuring a problem-free transformation of a model from “conceptual” to “executable”.
bpmn.io also offers great benefits to developers from being an open source project. Various 3rd parties have been able to customize and/or embed bpmn.io into their own projects, most notably Tim Sneed of Sparta Systems. He created a more restricted version of the modeler (Sparta-bpmn-js ) for scenarios where users should only be given the authority to change models in specific places and in a specific way. bpmn.io can also be very easily extended or customized in more subtle ways, like with overlays that highlight activities or changing the colors of gateways and tasks. Camunda, has also used embedded bpmn.io into some of our existing applications. The figure below displays how we’ve mapped the progress of a “token” through a model in Camunda Cockpit.
bpmn.io has accomplished the creation of an open platform for both experts and novices to model in BPMN 2.0, and has also managed to solve some of the usability issues common among other modelers. This was thanks to a decision made early in development with regard to how to divide functions for modeling, and functions for execution.
The BPMN standard is great because the model created can be described completely as a standardized .bpmn file (written in XML). This file describes everything about the model from a task name and where exactly on the canvas it should be placed, to expressions that are required to progress through a gateway. With bpmn.io we decided to conceptually separate features required for modelling from features required for execution. Anything that changes how the model looks should be available to the user from the canvas (usually though a context menu), while anything required for the execution of a model should be left to a properties panel. This might seem obvious enough but most other modelers have blurred this distinction. For instance, they can require that a user search through properties in order to change a “sub-process” to a “call activity”, while bpmn.io does this within a context menu on the canvas.
The advantages of this approach are that an analyst, who is only interested in creating a diagram never needs to see a properties panel designed for developers. It also means that a user who intends to both design a model and make it executable will know whether a desired change requires the properties panel or the context menu.
bpmn.io is still a work in progress, but right now it contains all you’ll need to import, export and create a BPMN 2.0 process model. The properties panel (with which a model can be made executable) is currently in development. It’s likely that the first official release of version 1.0 will come Q1 2016. Until then, you can add your voice to the development discussions on the forum , where the development team is always looking for feedback on new features and design decisions.