---
title: Dojo JavaScript framework
slug: cms-13/docs/dojo-javascript-framework
docTags: 
createdAt: 2026-07-30T20:22:07.530Z
---

Optimizely Content Management System (CMS) uses the [Dojo Toolkit](https://dojotoolkit.org/documentation/) as the JavaScript framework for client-side development. Use Dojo to build cross-platform, interactive UI components in the CMS editing interface.

Dojo is an open-source, client-side framework with the following features:

- UI widgets through the Dijit widget system
- Asynchronous communication
- Class declaration and modular development
- Desktop and mobile support

## Components

The Dojo Toolkit consists of three components:

- `dojo` – The core API. Provides DOM manipulation, class declaration, event listening, message publishing and subscription, and asynchronous requests.
- `dijit` – The UI system built on the Dojo core. Manages and manipulates visual elements through its widget system.
- `dojox` – A collection of sub-projects built on the Dojo core. Acts as a repository of Dojo plugins and a testing ground for features intended for the Dojo or Dijit namespace.

## Resources

The following resources help developers learn the Dojo framework:

- [Tutorials](http://dojotoolkit.org/documentation/) – Topics organized by difficulty level and Dojo version.
  - [Arrays made easy](https://dojotoolkit.org/documentation/tutorials/1.6/arrays/)
  - [Create a custom widget](http://dojotoolkit.org/documentation/tutorials/1.6/recipes/custom_widget/)
  - [Classy JavaScript with dojo.declare](http://dojotoolkit.org/documentation/tutorials/1.6/declare/)
- [API](http://dojotoolkit.org/api/) – Code-generated API documentation for navigating framework objects.
