Open Source Philosophy

GitHubAt Montage Studio, open source software is at the heart of everything that we build. We created the MontageJS HTML5 framework to change the way developers and designers build software together. To help that vision reach its full potential, we extend that spirit of cooperation to the framework itself.

MontageJS is open source software, distributed under the permissive BSD license. We develop in the open, in a public repository on GitHub. Great frameworks are enriched by the breadth of their ecosystems and the scale of the innovation that they foster. We hope that you will join the MontageJS project and help us shape the future of the Web.

MontageJS on GitHub

Why MontageJS?

MontageJS logo MontageJS is a modern frontend HTML5 framework that supports creating single-page applications—fast. MontageJS uses time-tested design patterns and software principles, allowing you to easily create a modular architecture for your projects and deliver a high-quality user experience. This allows designers and developers to work collaboratively and quickly. MontageJS is easy to learn because it is closely aligned with the underlying design of the Web, complementing existing standards.

Reusable Components

Components MontageJS simplifies rich-client development by offering a modular approach to organizing code and components. Small teams can build applications faster through maximum reusability and larger teams can be more efficient by breaking complex problems into smaller units without stepping on each other during the development process.

Component Oriented Templates

Templates MontageJS templates are HTML5 documents. These HTML templates encapsulate a component's JavaScript code, as well as resources like CSS files and images, in a folder with the "reel" file extension. Developers can instantiate a component without having to worry about what JavaScript dependencies the component has, or what CSS content and other files it may rely upon. This leads to dramatic improvements in reliability and ease of use.

High Performance

Performance MontageJS supports implicit event delegation and a managed draw cycle. This minimizes expensive layout reflows to provide a better user experience, particularly on hardware-limited mobile devices.

Functional Reactive Bindings (FRB)

FRB MontageJS supports simple and two-way data binding between components, objects, and collections, allowing you to coordinate the state between views and models, among other entangled objects. FRB go farther and can gracefully bind long property paths and the contents of collections, as well as incrementally update the results of chains of queries including maps, flattened arrays, sums, and averages. FRB makes it easy to ensure consistent state without having to write a lot of "glue" code.

Visual Authoring for MontageJS

MontageJS is the only open source HTML5 framework with a dedicated, cloud-based, visual authoring environment that is free to use for creating open source content. With Montage Studio, you will be able to login with your GitHub account and discover an easier, faster way to develop single page applications that exceed user expectations. Montage Studio is a great way to learn and explore the powerful capabilities of MontageJS.

If you prefer to write code by hand in your favorite text editor, you can use MontageJS on your local system. The MontageJS framework is available from npm, the node.js package manager. Read our Quick Start guide to learn how to install our helpful set of MontageJS command line tools.

If you need help, visit our Community page to discover all the ways you can learn more about MontageJS. You can also take a look at some of our sample applications and demos to see MontageJS in action.

Join our BETA

Our Open Source Projects

We develop several open source software projects in collaboration with the community. The following list includes useful libraries and frameworks we have built that are mature and ready for adoption. To see the complete list, visit the a MontageJS organization on GitHub.

  • MontageJS —A modern HTML5 framework for building single-page applications
  • Collections —JavaScript implementations of common data structures with idiomatic interfaces
  • FRB —A powerful data binding system that supports creating two-way bindings against native JavaScript objects
  • Mr —A CommonJS module loader system for frontend Web development using npm-style packages
  • Mop —A tool for optimizing projects that use Mr. It bundles packages and minifies code in order to reduce the overhead of module loading in production
  • Mousse —an extensible serialization library for graphs of JavaScript objects, including reference cycles, integrated with a CommonJS module system