Dojo
Web Development

In 2007, the Dojo Toolkit revolutionized the world of enterprise web application development. Now, Dojo is doing it again.

High-Performance Dojo Development

Almost any search for cutting-edge web development frameworks will return two major players - Angular and React. While these tools have earned their place as the leading technologies today, there is a significant gap between these two offerings. Dojo is designed to fill that gap.

Angular is a large, powerful framework designed to guide the development of extensive enterprise applications. Angular scales well to provide solutions of incredible complexity with consistent design patterns and robust APIs. However, this power comes at the cost of development complexity. The Angular framework is one of the most challenging platforms for building web applications today. Mastering this complexity requires a level of training and commitment that is often justified only by the largest applications.

React takes a radically different approach. Rather than providing a complex, rich, and powerful framework, React focuses on addressing one of the most challenging aspects of web application development - synchronizing application state to the user interface. React does this exceptionally well but leaves many unanswered questions regarding how the business logic and application state should be managed. This situation improves when combined with state management solutions, such as Redux, but these solutions don't often scale well as the application's scope grows. This makes React an ideal candidate for small- to medium-sized enterprise applications.

Dojo fills the gap between the largest applications that Angular is ideal for and the smaller applications that work well with React. Dojo is built around reactive components, called widgets, that are similar to React components. It then layers on a declarative state management system that allows business rules and state tracking to be implemented predictably. The Dojo framework also contains several additional modules that enable internationalization, in-page routing, and testing without reaching for a third-party library. This scalable, batteries included architecture makes Dojo the ideal solution for many enterprise applications.

Why Develop with SitePen

SitePen created Dojo as the result of almost two decades of experience building enterprise-grade web applications. SitePen was founded on the idea that web applications were going to be the future of enterprise applications. To realize this vision in the face of the fractured web browser landscape, SitePen led the development of a collection of open-source libraries that eventually became known as the Dojo Toolkit. This, at the time, cutting-edge project enabled development teams to focus on the creation of business applications that worked seamlessly across multiple browsers and platforms. It also contained a rich library of pre-built user-interface components that made the creation of powerful user interfaces intuitive and easy.

Today, the web faces a different set of challenges. Web browsers are now reasonably consistent, but the complexity of web applications is orders of magnitude higher than they used to be. To meet this new challenge, SitePen has developed a completely new Dojo framework that is optimized to manage the massive amounts of data that today's web applications work with. It also contains a full-featured UI component development system and infrastructure tools, such as support for in-page routing and internationalization. All of the knowledge that SitePen has gained over the last twenty years has been distilled and condensed into this framework, making it the ideal choice for many enterprise applications.

Benefits of Dojo Development

As the primary contributor to the Dojo project, SitePen is positioned to deliver applications with exceptional performance and stability.

Rich User Experiences

Dojo is designed to allow engineers to create cutting-edge user experiences with minimal development effort. It comes bundled with first-class support for advanced features such as web animations, intersection observers, and resize observers allowing applications to easily integrate these technologies to create highly dynamic user interfaces that perform exceptionally well.

Dojo also includes advanced in-page routing and history management systems that simplify the creation of single-page applications (SPA). The in-page routing system leverages design patterns commonly used throughout Dojo to easily describe routes and navigate between them. Dojo also comes bundled with multiple history managers that work together with the routing system to allow users to return the web application to previous states.

Dojo Software Development

Dojo's greatest strength may lie in its comprehensive and consistent feature set. All Dojo applications are based on a widget. Widgets can represent a visual component, a piece of middleware, a state-management store, or the router in a single-page application. This high-level abstraction is used to define a standard pattern for how everything in Dojo works. This makes it very easy to learn Dojo since a relatively small number of patterns must be understood to get a general understanding of how all widgets work. When a new type of widget is needed, a reasonably small set of details are all that is required to understand how best to use the widget to provide the desired functionality.

Dojo Development Tools

Dojo includes a variety of development tools that allow it to deliver optimized experiences for different use cases. These tools include the Dojo command-line interface (CLI), build-time rendering support (BTR), and support for creating mobile-friendly progressive web applications (PWA).

The Dojo CLI is the primary tool for creating and managing Dojo applications. The CLI is a flexible tool that automatically discovers individual commands that can be added to a project to expand the CLI's capabilities. For example, when creating a new project, the CLI uses the dojo/cli-create-app command to generate the application's basic structure. This design allows Dojo to provide an ever-expanding set of tools to simplify feature creation while also allowing custom commands to be added by development teams.

Dojo also supports a technique called build-time rendering (BTR). This feature allows Dojo to pre-render many pages before the application is deployed to decrease page load times and simplify search-engine optimization initiatives. By enabling BTR on specific routes, Dojo's build system will create the HTML for the target page. In many instances, this pre-rendering allows the system to remove some, if not all, of the JavaScript from those pages as well. In these situations, this will enable developers to create an application using Dojo that is ultimately delivered to the user via lightweight HTML and CSS resources.

Progressive Web Applications are a popular way to allow a web application to function as a native application on a mobile device. The Dojo framework uses a configuration-based approach to allow applications to tap into this advanced technology in a straightforward, declarative manner. Taking these simple steps allows a web application to be "installed" on a mobile device and often can give the user a more streamlined experience than what is provided by the device's web browser.

Technologies We Use

Dojo aims to provide a seamless developer experience, so it is the primary tool that we use. However, it is built on some influential open-source projects that we leverage to get the most out of it.

  • Dojo
  • Webpack
  • Web Components
  • Intern
  • CSS Modules
  • Globalize.js

Enterprise Industry Expertise

Among SitePen's greatest strengths is its wide-ranging experience across multiple industries. We have worked with some of the largest names in multiple markets with each engagement serving to refine our ability to address each enterprise's individual needs.

Choosing the Right Web Development Team

The right web development team for your project should augment your existing organization to yield a better result than what you have the capacity for on your own. As with many things, a "better" result can be hard to quantify, but generally, results can be measured in terms of cost, performance, and timing.

On the surface, reaching out to an external team for development can seem like an expensive option. However, the right development team will enhance your organization's productivity while freeing up your specialists to focus on other business-critical tasks. When the relationship between your organization and your partner works well, externalizing development can yield savings compared to the costs involved with growing the internal team to provide the same value.

The right web development team will produce results that match or exceed what your team can on its own. By selecting a partner that focuses on web development, you can tap into engineering and project management resources with extensive and highly specialized expertise. The engineers on these teams will bring knowledge of the latest technologies and how to best apply them to your project. The resulting project will be faster, more stable, better organized, and ready for future enhancements.

The final metric for project quality is timing. By partnering with a team of web development experts, you free your organization from the ramp-up time that today's web development projects require. By partnering with a team with established processes and best practices in place, you can multiply your efforts by delegating mundane tasks to them while still maintaining a clear understanding of the project's status.

Benefits of Developing with Dojo

In the world of enterprise web application development, Dojo strikes a critical balance between flexibility and structure. For the vast majority of web applications, some structure is vital to guide the development team into building a consistent and well-organized application. However, too much structure can weigh the project down with boilerplate code and an excessively high learning curve. Dojo uses the widget as its fundamental architectural element, and a comprehensive set of modules for data management, styling, testing, internationalization, and more provide a strong foundation for building complex web applications without forcing them to be used. This allows development teams to select the level of support that they need to optimize their productivity.

We'd love to hear from you!

Whether you need help with a current or upcoming project, initial advice and consultation, or just want to introduce yourself.

Let's connect

Dojo FAQs

What Is Dojo Used For?

Dojo is ideally suited for small to large enterprise web applications. It has clean APIs to allow large amounts of data to be managed efficiently and enough structure to guide larger development teams to create a consistent, well-organized codebase.

Why Should My Business Use Dojo?

Dojo is an excellent choice for many companies that need a suite of applications with a range of complexity. Its ability to scale well from small to large applications allows an experienced team to support all of the organization's needs with a single framework.

What Are Some Features of Dojo?

Dojo has a batteries-included philosophy that allows development teams to opt-in to many advanced web development features. It is based on reactive widgets with unidirectional dataflows; this is widely regarded as the best technique for managing web applications today. Dojo also comes with solid support for application theming and internationalization. These technologies are vital for many enterprises to align with corporate branding standards and to support diverse users. Finally, Dojo simplifies the adoption of advanced web technologies such as web components, progressive web applications, and build-time rendering. Dojo applications are often more performant and flexible than applications built with other frameworks due to the support for these advanced technologies.

We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.Privacy Policy