cujoJS is an architectural toolkit for building highly modular, maintainable web applications that are easy to test and refactor, with zero framework lock-in.


Remain calm and write the code. cujoJS is the sane architectural toolkit. cujoJS encourages patterns that foster clean, testable code at all levels. From HTTP to HTML and from CORS to CSS, unit test everything and get a good night’s sleep for a change.


Make exactly the app you want. cujoJS embraces standards and integrates with any reasonably open library, component, or widget with zero entanglement with your code. Use as much or as little as you need, and replace third-party or cujoJS libraries easily without rewriting everything.


Stop writing bloated apps. cujoJS apps are tiny and fast. Develop at the speed of innovation. Separation of concerns lets multiple engineering and design teams rapidly design, develop, refactor, and test iteratively and in parallel.

Sample app: Hello

Your app is not a toy. But looking at even a simple toy application reveals some of the powerful aspects of cujoJS: simple, testable modules with framework-free Javascript and HTML, composed together declaratively.

Sample app: Contacts

Start simple and stay simple. Real apps evolve over time, as do the teams that build and maintain them. With cujoJS, your modules stay simple, your Javascript, CSS, and HTML remain editable by mere mortals, and your architecture evolves more easily.

Sample app:

Iterate quickly while sleeping at night, even if you want to do something crazy, like make your homepage an app that embeds two other working apps. cujoJS helps you keep everything nicely separated, testable, refactorable, and extensible. Does your home page have unit tests? Ours does.

Get it


Get cujoJS/seed

Overwhelmed by all the awesomeness? Start here. Have your first “hello world” cujoJS app up and running in under a minute.

  1. git clone myapp
  2. cd myapp
  3. bower install
  4. npm install
  5. npm start

Launch http://localhost:8000/ in your browser. Point your editor at the myapp folder and start coding!

A la carte

Go to downloads

Get exactly the bits of cujoJS you need using your favorite package manager, or by downloading them as zip files.