Skip to content
MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers
JavaScript CoffeeScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Derby is a realtime web application framework for Node.js. It leverages Racer to automatically sync model data among clients and servers, and it automatically updates the view when the model changes and vice versa.

Derby not only makes creating interactive realtime applications easier, it also makes them load as fast as a static web page. Most traditional web frameworks like Rails and Django render pages on the server, which makes pages load fast but complicates adding interactivity in the browser. Often, code written with these frameworks eventually turns into a mess of complex, interdependent server code that renders an initial state and jQuery, Prototype, etc. code that then manipulates that state in the browser.

To avoid this problem, most dynamic web application frameworks, such as YUI, Dojo, Google Closure, GWT, Cappuccino, etc., structure applications to run entirely in the browser, while the server mostly sends data back and forth. This makes writing complex apps a lot easier, but it also means that as a code base becomes more complex, page loads get slower and slower.

Racer and Derby are both designed to run the same code equally well on the server and client from the get-go. This means that applications are rendered into HTML on the server and also include the code to update the page as things change in realtime. Thus, pages load quickly, provide immediate interaction, and continue to work offline.


Neither Derby nor Racer are ready for use, so please do not report bugs or contribute pull requests yet. Lots of the code is being actively rewritten, and the API is likely to change substantially.

If you have feedback, ideas, or suggestions, feel free to leave them on the wiki. If you are interested in contributing, please reach out to Brian and Nate first.



A very simple chat demo. Note that as you edit your name, it updates in realtime. Check out the source in the examples directory to see how these bindings are created automatically.


Like, Racer, Derby is not fully baked yet. It only has the basic structure and enough specifics to handle the chat demo. More will come soon!

Something went wrong with that request. Please try again.