Build UI components in a solid, flexible way.

Performance First

Built from the ground up with performance in mind, we constantly run tests against the most popular libraries.

Learn More

Versatile Build

Focus on what is important. We provide tools to build your code as global objects, AMD or jQuery Plugins.

Learn More

Future Ready

By using ES6 we benefit from the best of JavaScript, while maintaining easy-to-read and clean code.

Learn More

Our Architecture


Metal.js' main classes are State and Component. Component actually extends from State, thus containing all its features. The main difference between the two is that Component's extra features are related to rendering. So you could just use State directly if your module doesn't do any rendering. But if your module does need rendering logic, then Component will work better for you.

Many people have their own favorite way of dealing with rendering logic. Some prefer to use template languages that completely separate it from the business logic, while others like to keep both close together in the same file. Metal.js doesn't force developers to go with only one of those. By default it offers integration points with both closure templates from Google and JSX from Facebook, and it's possible to add more options, since the rendering layer is customizable.