---
title: Introducing DoneJS 1.0—Get Your App Done 🏁
description: Introducing DoneJS 1.0, the easiest way to build maintainable high-performance and real-time web, mobile, and desktop apps!
image: http://www.bitovi.com/hubfs/donejs-banner.jpg
---

- ![AI implementation](https://www.bitovi.com/hubfs/AIConsultingIcon.svg)
  
  [AI implementation](https://www.bitovi.com/services/ai-consulting)
- ![Systems engineering](https://www.bitovi.com/hubfs/icon%20-%20backend.svg)
  
  [Systems engineering](https://www.bitovi.com/services/systems-engineering-consulting)
- ![Project Management](https://www.bitovi.com/hubfs/icon%20-%20PM.svg)
  
  [Project Management](https://www.bitovi.com/services/agile-project-management-consulting)
- ![Product Design](https://www.bitovi.com/hubfs/icon%20-%20design.svg)
  
  [Product Design](https://www.bitovi.com/services/product-design-consulting)
- ![Frontend development](https://www.bitovi.com/hubfs/icon%20-%20frontend.svg)
  
  [Frontend development](https://www.bitovi.com/services/frontend-development-consulting)
- [View more
  
  →
  
  ](https://www.bitovi.com/digital-consulting-services)

We're Experts in...

- [JavaScript](https://www.bitovi.com/services/frontend/javascript-consulting)
- [AI training](https://www.bitovi.com/ai-training-for-software-engineers)
- [Angular](https://www.bitovi.com/services/frontend/angular-consulting)
- [Design systems](https://www.bitovi.com/services/axure-figma-migration)
- [React](https://www.bitovi.com/services/frontend/react-consulting)
- [Temporal](https://www.bitovi.com/services/backend/temporal-consulting)
- [React Native](https://www.bitovi.com/services/frontend/react-consulting/react-native)
- [Node.js](https://www.bitovi.com/services/backend/nodejs-consulting)

Showcase

![Yum! Brands](https://www.bitovi.com/hubfs/yum-showcase-link-1.png)

[View case study](https://www.bitovi.com/en/bitovi-yum-case-study)

More Projects

- [![Levi's](https://www.bitovi.com/hubfs/levis.svg)](https://www.bitovi.com/web-application-consulting-work/levis-ecommerce-responsive-redesign)
- [![Christie's International Real Estate](https://www.bitovi.com/hubfs/christies.svg)](https://design.bitovi.com/christies)
- [![BAFS](https://www.bitovi.com/hubfs/bafs.svg)](https://www.bitovi.com/ux-design-consulting/ux-case-studies/bafs-ppp)
- [View more
  
  →
  
  ](https://www.bitovi.com/our-software-consulting-work)

Open Source Tools

We build powerful tools and open source them to support the community.

[See what we've built →](https://www.bitovi.com/open-source)

- [![Blog](https://www.bitovi.com/hubfs/icon%20-%20blog.svg)
  
  BlogWe post about delivering products and solving problems.
  
  ](https://www.bitovi.com/blog)
- [![Partnerships](https://www.bitovi.com/hubfs/Handshake-1.svg)
  
  PartnershipsLearn about Bitovi's technology partners
  
  ](https://www.bitovi.com/partnerships)
- [![Academy](https://www.bitovi.com/hubfs/icon%20-%20academy%20(4).svg)
  
  AcademyFree courses to build delivery skills
  
  ](https://www.bitovi.com/academy)
- [![Open source tools](https://www.bitovi.com/hubfs/icon%20-%20open%20source.svg)
  
  Open source toolsUse or contribute to our community
  
  ](https://www.bitovi.com/open-source)

Let's Connect

- [![Discord](https://www.bitovi.com/hubfs/DiscordLogo.svg)
  
  Discord
  
  ](https://discord.gg/J7ejFsZnJ4)
- [![LinkedIn](https://www.bitovi.com/hubfs/LinkedinLogo.svg)
  
  LinkedIn
  
  ](https://www.linkedin.com/company/bitovi/)
- [![GitHub](https://www.bitovi.com/hubfs/GithubLogo.svg)
  
  GitHub
  
  ](https://github.com/bitovi/)

![Eggbot](https://www.bitovi.com/hubfs/build_assets/bitovi-limbo-cms-react/338/js_client_assets/assets/eggbot-LTGhdSGL.png)

Name *

Work Email *

Phone

What's your project?

Send

### Contact Us

(312) 620-0386contact@bitovi.com

 April 27, 2017

# Introducing DoneJS 1.0—Get Your App Done 🏁

 Introducing DoneJS 1.0, the easiest way to build maintainable high-performance and real-time web, mobile, and desktop apps!

![Chasen Le Hara](https://app.hubspot.com/settings/avatar/47447d7b410651534d079d84497c1a5c)

 Chasen Le Hara

Share:

[![Twitter](https://www.bitovi.com/hubfs/limbo-generated/_astro/twitter-white.os3xLc3C_Z2nW4or.svg) ](https://twitter.com/intent/tweet?text=) [![Reddit](https://www.bitovi.com/hubfs/limbo-generated/imgs/icons/reddit.png) ](http://reddit.com/submit?url=)

Today we’re super excited to announce [DoneJS](https://donejs.com/) 1.0, the complete and integrated solution to building high-performance, real-time web, mobile, and desktop applications. DoneJS covers every [client-side feature](https://donejs.com/Features.html) you need to get a production-worthy application off the ground, whether you’re building a web application, a mobile app with Cordova, or a desktop app with Electron or NW.js.

At Bitovi, we’ve used DoneJS on projects for companies like [HaulHound](https://www.bitovi.com/haulhound), Levi’s, Lowe’s, and [more](https://www.bitovi.com/portfolio)! [Companies outside of Bitovi](https://canjs.com/doc/guides/who-uses-canjs.html) have used the DoneJS libraries to ship apps used by millions of people. Originally called JavaScriptMVC, DoneJS has a [decade-long history](https://donejs.com/About.html#history) of helping developers like you build maintainable high-performance, real-time web, mobile, and desktop applications.

DoneJS 1 includes [CanJS](https://canjs.com/) 3, a collection of front-end libraries that make building innovative yet maintainable web apps simple. It also includes [StealJS](https://stealjs.com/) 1, a module loader and bundler that makes developing modular code a breeze.

Read more below on the new changes we’ve introduced in CanJS 3 and StealJS 1, as well as some other exciting new changes we’ve shipped since DoneJS 0.9 last year.

## New in CanJS 3

When we [announced CanJS 3 in December](https://www.bitovi.com/blog/canjs-3-0-release), we talked about our new focus on making future upgrades easier, improving the longevity of your code, and embracing experimentation and outside tools.

We also highlighted a few new awesome features:

- [Real-time](https://canjs.com/doc/can-connect/real-time/real-time.html) support in [can-connect](https://canjs.com/doc/can-connect.html), our data model layer
- [Observables](https://canjs.com/doc/can-define.html) that are faster, use regular [dot notation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors#Dot_notation) instead of `.attr()`, throw errors if you set an undefined property, and make using event streams possible
- [Converters](https://canjs.com/doc/can-stache-converters.html) that make [two-way bindings](https://canjs.com/doc/can-stache-bindings.twoWay.html) easier in templates

Since December, we’ve been executing on our mission to embrace experimentation by publishing five new minor versions of CanJS 3, which have included:

- [can-connect-feathers](https://canjs.com/doc/can-connect-feathers.html), the best front-end integration for any [FeathersJS](https://feathersjs.com/) backend
- [can-connect-signalr](https://canjs.com/doc/can-connect-signalr.html), an easy way to [add real-time data to your .NET application](https://www.bitovi.com/blog/how-to-add-real-time-data-to-your-.net-application)
- [New](https://canjs.com/doc/can-validate.html) [validation](https://canjs.com/doc/can-define-validate-validatejs.html) [libraries](https://canjs.com/doc/can-validate-validatejs.html), which make it straightforward to validate data and process validation errors

In addition to all the great features listed above, CanJS 3 embraces [independent repositories](https://canjs.com/doc/guides/technical.html#IndependentRepositoriesandPackages) to make upgrading apps even easier in the future and encourage innovation within the ecosystem.

## New in StealJS 1

[StealJS](https://stealjs.com/) is the module loader and bundler that makes it cheap and [easy](https://www.youtube.com/watch?v=VKydmxRm6w8&feature=youtu.be) to do the right thing. Doing the right thing, when building for the web, includes things such as writing tests and breaking your applications into smaller mini-applications ([modlets](https://www.bitovi.com/blog/modlet-workflows)) that can be composed together.

The [introduction of StealJS 1.0](https://www.bitovi.com/blog/stealjs-1.0-release) brought a few changes:

- The [steal-conditional](https://stealjs.com/docs/steal-conditional.html) package for [conditionally loading modules](https://www.bitovi.com/blog/how-to-conditionally-load-modules-with-stealjs), which is useful for polyfills, internationalization, and loading fixtures only in dev mode
- A new [“plugins” configuration](https://stealjs.com/docs/StealJS.topics.migrating-one.html#plugins-configuration) for more modular and faster loading
- The use of [npm 3+ by default](https://stealjs.com/docs/StealJS.topics.migrating-one.html#npm-3)

Since StealJS 1.0, we’ve improved StealJS in a bunch of other ways:

- Support for [using any built-in Babel plugins and presets](https://github.com/stealjs/steal/releases/tag/v1.4.0)
- Support for [creating bundles of your dependencies](https://stealjs.com/docs/StealJS.guides.development_bundles.html) to speed up development load times
- Built-in cache busting for specifying a [cache version](https://stealjs.com/docs/config.cacheVersion.html) of your application to be used as a query parameter

Upgrading from StealJS 0.16 to StealJS 1.x is so easy that I wrote a blog post that covered [how to upgrade any Angular, CanJS, jQuery, React, or Vue app to StealJS 1](https://www.bitovi.com/blog/how-to-upgrade-to-stealjs-1).

## New in DoneJS 1

The biggest changes to DoneJS 1 are related to using CanJS 3 and StealJS 1, but a few other improvements have been made to the packages that glue the DoneJS libraries together.

First, we’ve added [Electron](https://electron.atom.io/) support! Both the [Quick Start Guide](https://donejs.com/Guide.html#electron) and the [In-Depth Guide](https://donejs.com/place-my-order.html#building-to-electron) cover how to add Electron to a DoneJS app and build for it, which is as simple as:

```
donejs add electron
donejs build electron
```

**Note:** DoneJS 1.0 still supports [NW.js](https://nwjs.io/); Electron is just a new option!

Second, we’ve made a [huge speed improvement to done-ssr](https://github.com/donejs/done-ssr/releases/tag/v1.0.1), which results in 2.5x more requests being served per second compare to previous versions, especially when used in conjunction with `.component` files.

Third, we’ve fixed the plugin generator to [include the `dist` folder](https://github.com/donejs/generator-donejs/pull/212) when a plugin is published to npm. We’ve also added `CONTRIBUTING.md` files to the generator and plugin generators, which include all of the instructions for you or new contributors to develop the project locally. Last but not least, plugins are now generated with an `index.html` page with some useful information:

![Screenshot of a generated plugin’s index page](https://www.bitovi.com/hs-fs/hubfs/DoneJS%201%20generated%20plugin.png?width=480&name=DoneJS%201%20generated%20plugin.png "Screenshot of a generated plugin’s index page")

## Get started today

If you already have a DoneJS 0.9 app, the [migration guide](https://donejs.com/migrate-1.html) will walk you through the process of upgrading your app to CanJS 3.x, StealJS 1.x, and the latest versions of the DoneJS packages.

If you’re new to DoneJS, check out the [Quick Start Guide](https://donejs.com/Guide.html) to learn how to build a real-time chat application with DoneJS. In the guide, you’ll also learn how easy it is to use Firebase as a CDN for your app and make native desktop and mobile apps with Cordova and Electron.

We’ve successfully used DoneJS 1 on our projects and we’re excited for you to do the same. The core team wants to help you whether you’re new to DoneJS or you’re upgrading an existing app. If you have any questions or need any help, please reach out to us on [Gitter chat](https://gitter.im/donejs/donejs) or our [forums](http://forums.donejs.com/c/donejs)!

[![Tag for open source](https://www.bitovi.com/hubfs/limbo/icons/tag.svg) open source ](https://www.bitovi.com/blog/topic/open-source)[![Tag for development](https://www.bitovi.com/hubfs/limbo/icons/tag.svg) development ](https://www.bitovi.com/blog/topic/development)

 Previous Post

![dot-net.jpg](https://www.bitovi.com/hs-fs/hubfs/Banner_Images/dot-net.jpg?height=117&name=dot-net.jpg) [ How to add Real-time Data to your .NET Application ](https://www.bitovi.com/blog/how-to-add-real-time-data-to-your-.net-application)

  

 Next Post

![](https://www.bitovi.com/hs-fs/hubfs/ux-background.jpg?height=117&name=ux-background.jpg) [ What is UX Design? ](https://www.bitovi.com/blog/what-is-ux-design)

```json
{
  "@context" : "http://schema.org",
  "@type" : "Organization",
  "address" : {
    "@type" : "PostalAddress",
    "addressCountry" : "United States",
    "addressLocality" : "Libertyville",
    "addressRegion" : "IL",
    "postalCode" : "60048",
    "streetAddress" : "1134 Pine Tree Lane "
  },
  "alternateName" : "Bitovi",
  "areaServed" : {
    "@type" : "GeoCircle",
    "geoMidpoint" : {
      "@type" : "GeoCoordinates",
      "latitude" : "41.8781",
      "longitude" : "87.6298"
    },
    "geoRadius" : "5000 km"
  },
  "description" : "Bitovi is a UX, UI design and front-end JavaScript development consulting company",
  "email" : "contact@bitovi.com",
  "image" : "https://www.bitovi.com/hubfs/bitovi-logo-x2.png",
  "logo" : "https://www.bitovi.com/hubfs/bitovi-logo-23-1.svg",
  "mainEntityOfPage" : {
    "@id" : "https://www.bitovi.com/blog/introducing-donejs-1.0-the-high-performance-real-time-web-app-framework",
    "@type" : "WebPage",
    "description" : "Introducing DoneJS 1.0, the easiest way to build maintainable high-performance and real-time web, mobile, and desktop apps!"
  },
  "naics" : "541511",
  "name" : "Bitovi Web App Consulting",
  "sameAs" : [ "https://www.facebook.com/BitoviLLC/", "https://twitter.com/bitovi", "https://www.linkedin.com/company/bitovi" ],
  "telephone" : "312-620-0386",
  "url" : "http://bitovi.com"
}
```

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Chasen Le Hara"
  },
  "dateModified" : "April 27, 2017, 3:14:16 PM",
  "datePublished" : "2017-04-27 14:30:26",
  "description" : "Introducing DoneJS 1.0, the easiest way to build maintainable high-performance and real-time web, mobile, and desktop apps!",
  "headline" : "Introducing DoneJS 1.0—Get Your App Done 🏁",
  "image" : {
    "@type" : "ImageObject",
    "url" : "http://www.bitovi.com/hubfs/donejs-banner.jpg"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://www.bitovi.com/hubfs/bitovi-logo-23-1.svg"
    },
    "name" : "Bitovi"
  }
}
```