Dojo Sensei Reader, a Training Application

By on October 14, 2008 12:02 am

When conducting Dojo training courses, we’ve found it to be very valuable to go beyond simple code snippets to demonstrate APIs, patterns, and other key concepts. Snippets and demos are useful, but they often lack a very important quality: context. Nothing beats having a full application in front of you—with code available to read and modify as you learn the ropes—so we built the Dojo Sensei Reader, a rich, powerful RSS reader realized as a single-page web application.

We designed Sensei specifically for training sessions. We wanted something that demonstrates the major areas of functionality Dojo offers, but as a single cohesive application rather than a collection of unrelated demos. We wanted something small enough that training groups could easily grasp the entire codebase, yet large enough to be worth using as a real-world application. We wanted something that shows the development process from start to finish, to demonstrate the level of polish you can achieve in a Dojo-based application. Beautiful as well as functional, it does all of this while providing a great, fast user experience.

One of the beautiful things about Sensei is that it proves that you don’t have to sacrifice maintainability to build a fast application. One key goal in our development process was to create an easy way for training groups to introspect the code, follow the app as it works, and even modify or augment its behavior at run-time by swapping code in and out. To deliver on this, we designed and integrated what we call Blox, a small JavaScript package with the power to make it all possible (it’s Sensei’s flux capacitor; we’ll cover it later). The result is a codebase that is very easy to work with but incurs negligible performance impact for its trouble.

Click below to see a screencast showing Sensei in action.

Or watch the screencast in mp4 format if you don’t have QuickTime.

To get your hands on this great app, contact us about holding a custom Dojo training workshop for you!


  • Pingback: Ajaxian » Sensei: A beautiful Dojo application()

  • Does it looks like a Mac app whichever platform it’s on, or is Sensei theming its widgets and UI across different platforms? The latter is pretty cool. I hope it’s not the former, given how annoyed Mac people are about Windows UI appearing on their desktops :-)

  • @Stuart:

    Since the main idea with Sensei is to use it in training courses to help people see how to build a Dojo app, we haven’t made a point of theming it aside from making it look like what you see in the screencast (it’s mostly the Tundra theme from Dijit with a handful of overridden styles). It was important that it looked good, but we didn’t set out to intentionally make it look all that Mac-ish. I do admit that the pane holding the list of feeds looks a lot like Leopard’s, for example, but our goal isn’t to evangelize any particular look and feel.

    Now that you bring it up, I think it would be an interesting project to attempt a Dijit theme that looks platform-specific automatically. Dojo’s already got the necessary hooks in place; maybe somebody’s already attempting this, and I just haven’t heard of it.

  • This is awesome, seeing what you can do with Dojo is a pleasure!! The app looks great!

  • the video looks so great!
    when can we see a live one?

  • Pingback: - JavaScript addicts » and Webmontag Munich()

  • Rick O’Shay

    Platform specific theme? I doubt anybody is working on that. There are three themes and anything but Tundra breaks when I attempt to switch themes on the Dojo Campus examples. Dojo 1.3 textbox content is not vertically centered, even in Tundra. The core value proposition of tested, platform independent code was never delivered.

    What is one of the first things to pop up in a theme supported products? Custom themes. By now, you would expect a zoo of them, but there are only three. This speaks volumes as to how poorly themes were implemented. They are essentially three custom hacks that don’t even work on all platforms. Aside from the dog ‘n pony stuff, Dojo is a very dissapointing.

  • Hello Guys !

    It would be great to add a link to youtube video, it’s a little simpler for those who don’t use mp4 or have quicktime. The app looks great though ;-)

  • ok, second thought, I’m curious : how do you get the data to be persistent ? Is it dojo work only or do you send the data back at some point to the server in order to get what has been read (and what’s not).

    I’d really like to get a bit of input on the underlying principles of this part.

    Hey, one idea about this reader because I really love usefull applications : why don’t you take the base of the reader and make it a “dojo ressources” base, usable by all dojo programmer. I mean there are so many dojo ressources (dojocampus, the demos, the dojo book etc.), that it would be a real nice thing to have, inside a single page all the ressources categorized + the blogs of course. Now that you consider the possibility to build this project and evaluate the interest of so many dojo programmers for a “one shop” dynamic application for all the dojo ressources, I’m sure you’re already asking yourself : how could we build this ;-)

    Keep on the good things !

  • Don’t see the sample application url’s working any more, can you please publish it again?