Optimizely Content Management System (CMS) uses the [Dojo Toolkit](🔗) as the JavaScript framework on which client-side development is done.
The Dojo toolkit is a client-side framework for building rich internet applications hosted in a web browser. Dojo is an open-source framework that helps speed up the development of cross-platform rich internet applications by giving you a lot of features. Some key features include:
Rich UI widgets using the Dijit widget system
Asynchronous communication
Class declaration and modular development
Desktop and mobile support
The Dojo Toolkit consists of three main components:
Component | Description |
dojo | The core API of the framework and contains features for DOM manipulation, class declaration, event listening, message publishing and subscription, and asynchronous requests and processing. |
dijit | The user interface system built on top of the Dojo core. Its primary feature is the widget system which is used to manage and manipulate visual elements in a modular manner. |
dojox | A collection of sub-projects built on top of the Dojo core. This can be considered a repository of Dojo plugins or a testing ground for new features that will in future be part of the Dojo or Dijit namespace. |
## Resources
Dojo has a selection of tutorials, blogs and other resources that help new developers come up-to-speed with the framework.
Tutorials – Dojo tutorials are separated into several topics and each tutorial has a clearly labeled difficulty level and the version of Dojo for which it was written.
[Arrays Made Easy](🔗)
[Creating a custom widget](🔗)
[Events with Dojo](🔗)
[Getting Started with Deferreds](🔗)
[Classy JavaScript with dojo.declare](🔗)
[API](🔗) – The Dojo API documentation is generated from the code and lets you navigate the objects within the framework.
[Blog Posts](🔗) – There are many blogs about Dojo features on the internet. Search for a topic that interests you. Sitepen is dedicated to Dojo development and has an excellent series of blog posts for anyone new to Dojo development, called their [quick start guide](🔗).
[Bug Tracking](🔗) – The bug tracking system helps you when you discover some strange behavior because there may already be a patch for the issue.