About
DoneJS' goal is to help the JavaScript community get amazing applications done fast. Amazing applications are fast, sublimely usable, and maintainable.
But times change and new techniques emerge. We strive to adopt these techniques, improve the stack, and provide a simple upgrade path along the way.
We are part of a community that helps developers of all skill levels and backgrounds learn the technology, excel at it, and accomplish their goals.
Learn about the goals, history, roadmap, and team behind DoneJS.
Goals
DoneJS has three primary goals:
Amazing Applications
Building a modern application is increasingly difficult. Your app needs to look good and run fast on every platform and browser. And, you need to get your app done yesterday. Not kinda done. Done done.
Helping you get a high performance, sublimely usable, and maintainable application done fast is DoneJS's primary goal. This is why our logo is a browser that looks like a checkered flag. We're committed to your release.
We aim to help in three main ways:
1. Solving difficult technical problems
DoneJS has good solutions for:
These are just a few examples from our features page. If there's a hard problem that you keep running into, we want to solve it.
2. Providing an integrated solution
Too many choices can make decision making difficult. DoneJS simplifies matters by providing a full stack of frontend tooling tested to work great together. The start of the features page goes into detail with examples of this benefit.
Note: Despite being an integrated solution, you can replace parts of DoneJS with alternatives.
3. Doing the right thing
Writing tests and documentation, setting up continuous integration and deployment isn't fun or easy. DoneJS tries to lower the barrier enough to making doing the right thing simply part of the normal development cycle.
Check out what DoneJS does for:
Evolve
Application development and maintenance often lasts many years. Stability is needed to release complex applications. However, new techniques and best practices are constantly evolving.
DoneJS's goal is to strike a balance between immovable stability and irresistible progress. We do this by evolving frequently, while maintaining backward compatibility between major releases.
It can be a bumpy road, with lots of little changes. But it avoids rewrites, resulting in greater productivity:
DoneJS is the successor to JavaScriptMVC. If your project chose JavaScriptMVC in 2007, you would have made a wise decision, giving your team an upgrade path to a modern application for the past 10 years.
We hope to continue this trend until programs start writing themselves.
Community
Software is better with friends. Our goal is to establish a world-wide community with people of all backgrounds and skill levels dedicated to teaching, exploring, and innovating.
Teaching
Technology is worth nothing if people don't know how to use it. We want to create great learning material, but also create an environment where people feel comfortable getting help.
The core team is always available on Slack (#donejs channel) and provides weekly training. Signup for a meetup and we will come to your city and teach you DoneJS!
Exploring
DoneJS has benefited greatly from other projects ideas and technology. It should continue to enhance other communities.
You can already use many of DoneJS parts with other projects:
We should always seek to cooperate with others.
Attract
If you have the next great JS idea, we want to encourage and help you to build it as part of the DoneJS family. You'll find DoneJS a supportive environment to nurture your ideas. You can even pair with the full-time developers to build out your idea. Reach out to us on Slack (#donejs channel) or create an issue.
History
DoneJS’s history goes back for almost a decade! Learn why JavaScriptMVC was started and how it evolved into DoneJS.
Beginning Steps
We begin our story in 2007 when Justin Meyer, the CEO of Bitovi, was working for Accenture. He had an idea to build something like ZoHo Creator, so you could set up REST services and use an online IDE to write JavaScript apps from those services — you could sell your apps and everything. He called it Scaffold.
He worked with Brian, a friend from college (who’s now the CTO of Bitovi). Brian quit graduate school so they could start working on it together. They worked on it for about a year and managed to sell it to a few places, but it never really took off. They then started building JavaScript tools for Scaffold to help people write their apps.
Their initial work was based off a library called TrimPath. It had templates, an MVC pattern, etc. They worked with Steve Yen for a little bit, but their client-only focus left them to split of trimpath/trimjunction into what they called JSJunction. Eventually, they didn’t like the name JSJunction and changed it to JavaScriptMVC.
In JavaScriptMVC’s first release, it had support for things such as:
Even in JavaScriptMVC’s early days, Justin knew that “developers need a repeatable way of building their applications and separating concerns.” When a dev team can work with a standard set of tools and processes, their productivity can greatly increase.
FuncUnit and StealJS both started in 2010, and in 2012 we started splitting JavaScriptMVC into smaller, focused projects, including CanJS, jQuery++, DocumentJS, and DocumentCSS. Then, in 2015, we rebranded JavaScriptMVC to DoneJS and released it to the public.
Tomorrow's Roadmap
The following are our highest priority, non-bug-fix features:
Team
The DoneJS family of technologies is built by hundreds of contributors just like you! Our contribution guide includes information about reporting bugs, finding ways to contribute, submitting new code, and more!
If you’d like to take your commitment to DoneJS or its sub-projects to the next level, you can join our core team. To become a part of the core team, you simply have to:
Core team
The core team is made up of both part-time and full-time contributors.
Kevin Dillon
Kevin is a senior infrastructure engineer at The MathWorks in the Web and Mobile Tools team. He focuses on the development of FuncUnit and Syn.
GitHubChasen Le Hara
Chasen is a 🍺 🏃 with a passion for building great web apps. He supports the DoneJS community by leading developer advocacy for DoneJS.
@chasenlehara GitHubPrashant Sharma
Prashant is based in Bangalore, India. He likes the understated elegance of CanJS. He also believes DoneJS is a great framework in the making, since it makes technology selection a no-brainer by uniquely offering developers an all-in-one technology stack.
GitHubJulian Kern
A 29 old guy from Germany, Julian started coding at the age of 16. Now he freelances with CanJS. He likes the clean structure of Model, Views, and ViewModels.
@22_SolutionsMohamed Cherif Bouchelaghem
Mohamed Cherif BOUCHELAGHEM from Algiers, Algeria, almost a server side developer in day work, JavaScript developer after work hours especially using DoneJS/CanJS. He likes to help people to learn and find solutions to issues with DoneJS framework and build applications and code samples that help to show the best from DoneJS/Canjs and learn it faster.
@Cherif_b GitHubKevin Phillips
Kevin is based in Chicago (well, close enough). He wants to make it easy for anyone to get started with DoneJS and will work on features that help solve complex problems.
@kdotphil GitHubJustin Meyer
Justin dances and plays basketball in Chicago. He created JavaScriptMVC and manages the DoneJS project, and shouldn't code on it as much as he does.
@justinbmeyer GitHubDavid Luecke
David is a Canadian by way of Germany. His focus is on CanJS and DoneJS's testing stack.
@daffl GitHubMatthew Phillips
Matthew, keeper of beards, is the lead maintainer of StealJS and its related tools.
@matthewcp GitHubSponsors
If you'd like to support the development of DoneJS, please find available options on our Patreon page. If you have other ideas, or would like to customize your support, please email us.
Bitovi, a JavaScript consulting company, is the primary sponsor of DoneJS.