Mimosa

A modern browser development toolkit. JavaScript, CSS, and template compilers, linting, optimization, serving, RequireJS support, and Live Reload built right in. Pluggable for authoring your own functionality.

Mimosa on GitHub

Features

Coding in Seconds

Use Mimosa's command line to build out a skeleton app that is ready to go with your desired meta-languages, a bit of sample code, and an server too! No additional installs or plugins needed to get started.

Watch And Serve Assets

Mimosa will keep track of your assets and when you save something, kick off all sorts of awesome. Mimosa will also optionally serve assets for you, or invoke a node server so that you only need a single process running to watch and serve.

Convention + Configuration

Mimosa's configuration starts empty. Sane defaults keep you coding instead of figuring out config. If you stick close to Mimosa's conventions you may never look at or update the configuration, but Mimosa is heavily configurable if you find yourself needing to vary away from its convention.

Optimize + minify

Have the best of both worlds. Develop with unminified, uncompressed, individual assets. Flip a switch and develop with minified and compressed assets that have been merged with RequireJS.

Immediate Feedback

Code doesn't compile? You'll find out right away. When code breaks Mimosa will write big angry messages to the console and use Growl if you've got it installed.

Live Reload

Both the server built into Mimosa and the one it provides you on project creation come with Live Reload ready to go. When a web asset is compiled or a server template is changed, your browser updates immediately.

Lint it, Hint it

All of your compiled JS and CSS will be run through JSHint and CSSLint which will encourage you to keep your code as idiomatic as possible.

Compilers, Mimosa has them

JavaScript

Mimosa will compile your CoffeeScript (w/ source maps!), Iced CoffeeScript, LiveScript and TypeScript. We'll make more, just ask.

CSS

Stylus w/nib. SASS w/Compass. LESS. Mimosa won't bother compiling your partials individually, but when your partials change it'll compile whichever files at the root of your CSS tree need compiling.

Micro-Templates

Dust. Handlebars. Emblem.Hogan. Underscore. LoDash. Jade. Just HTML. Mimosa will pre-compile all of your templates. Not using one of these? Request your favorite be added.

Meta-Languages? Pfft.

Plain JS, Plain CSS, no templates? You're a classic and Mimosa's cool with that. Files that don't need compiling will just be copied, but they'll still get the royal treatment, including linting and RequireJS verification.

AMD? RequireJS? CommonJS?

Dependency Checking

Mimosa will keep track of your dependency graph and alert you right away if you've mis-typed a path, referred to something that doesn't exist, or have a circular dependency. It will also keep tabs on your shims, maps and plugin paths.

Optimization

If you use RequireJS, you probably know about the optimizer. With the tick of a flag Mimosa will run the optimizer on every successful JavaScript compile or copy. And you won't need to configure a thing.

Also with CommonJS!

Using an external Mimosa module, you can code using the CommonJS format and still utilize the offerings of RequireJS, like path aliasing and mapping, and Mimosa's AMD/RequireJS support.

Bend Mimosa to Your Will

Pluggable

Mimosa is modular which makes it easy to plug in external modules to application and asset workflows. Mimosa also allows for entirely new commands to be added using modules.

Discover Modules

Mimosa doesn't do what you need? Maybe someone else built a module to do it. Use Mimosa's module commands to discover plugins in NPM, install ones you want, remove the ones you do not, and list the ones you have.

Jumpstart Module Development

Interested in writing your own module? Mimosa will get you started with some heavily commented module skeleton code. Wrap your head around Mimosa's workflow concepts, and then just fill in the blanks.

Intrigued? Well, try it out!