Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
tree: 86835926d9
Fetching contributors…

Cannot retrieve contributors at this time

214 lines (166 sloc) 10.723 kB
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<title>Brunch</title>
<link rel="stylesheet" href="stylesheets/styles.css">
<link rel="stylesheet" href="stylesheets/pygment_trac.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="javascripts/main.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
</head>
<body>
<header>
<h1>Brunch</h1>
<p>A lightweight approach to building HTML5 applications with emphasis on elegance and simplicity</p>
</header>
<div id="banner">
<span id="logo"></span>
<a href="https://github.com/brunch/brunch" class="button fork"><strong>Follow On GitHub</strong></a>
</div><!-- end banner -->
<div class="wrapper">
<nav>
<ul></ul>
</nav>
<section>
<h1>Application assembler</h1>
<p>Brunch is an assembler for HTML5 applications. It's agnostic to frameworks, libraries, programming, stylesheet &amp; templating languages and backend technology.</p>
<p>To simplify app development, brunch watches your files for changes and automatically wraps your scripts and templates in require.js modules. All build errors are printed to console. If you have growl / libnotify, brunch will use them too.</p>
<p>Brunch uses node.js plugins to speak with compilers. There are a bunch of plugins already:</p>
<ul>
<li>Programming languages: JavaScript, <a href="http://coffeescript.org/">CoffeeScript</a>, <a href="http://maxtaco.github.com/coffee-script/">IcedCoffeeScript</a>, <a href="http://roy.brianmckenna.org/">Roy</a>
</li>
<li>Pre-compiled templates: <a href="http://handlebarsjs.com/">Handlebars.js</a>, <a href="http://visionmedia.github.com/jade/">Jade</a>, <a href="http://twitter.github.com/hogan.js/">Mustache</a>, <a href="https://github.com/sstephenson/eco">Eco</a>
</li>
<li>Styles: CSS, <a href="http://learnboost.github.com/stylus/">Stylus</a>, <a href="http://lesscss.org/">LESS</a>, <a href="http://sass-lang.com/">Sass</a>
</li>
<li>Minifiers: <a href="https://github.com/mishoo/UglifyJS">uglify.js</a>, <a href="https://github.com/GoalSmashers/clean-css">clean-css</a>
</li>
</ul><p>In case your favorite language / tool is not supported yet, you can write brunch plugin for it, it's <a href="http://brunch.readthedocs.org/en/latest/plugins.html">very simple</a>. Feel free to edit <a href="https://github.com/brunch/brunch/wiki/Plugins">the wiki page</a> and add new plugins there.</p>
<p>Brunch doesn't encourage you to use any particular technology, but application skeletons can do it. Some interesting skeletons:</p>
<ul>
<li>
<a href="https://github.com/brunch/simple-coffee-skeleton">Simple coffee (comes with brunch)</a>: very simple, HTML5 Boilerplate with Backbone.js. Main languages are CoffeeScript, Stylus and Handlebars. If you don't like coffeescript, there's a very same project that uses js as main scripting language: <a href="https://github.com/brunch/simple-js-skeleton">simple js</a>.</li>
<li>
<a href="https://github.com/paulmillr/brunch-with-chaplin">Brunch with Chaplin</a>: Bootstrap, HTML5 Boilerplate, Chaplin classes over Backbone.js. Main languages are CoffeeScript, Stylus and Handlebars.</li>
<li>
<a href="https://github.com/jokull/brunch-template">@jokull's skeleton</a>: Backbone.js, Zepto.js, forms, Stylus adjustable responsive grid, modernizr, Facebook login, slideshow.</li>
</ul><p>Of course, you can throw skeleton technologies away and build your own structure.</p>
<h2>Getting started</h2>
<p>You'll need node.js 0.6.10+. Execute:</p>
<pre><code>npm install -g brunch
</code></pre>
<p>You're done!</p>
<p>To create a new project, execute <code>brunch new &lt;project name&gt;</code>.</p>
<p>Now you can edit the code. <code>app/</code> directory has files of your project and <code>vendor/</code> has libraries etc. that would not be wrapped in common.js modules.</p>
<p>To build it, execute <code>brunch build</code> in project directory.</p>
<p>To continuously rebuild the project on every change, run <code>brunch watch</code>.</p>
<p>To run a simple http server, execute <code>brunch watch --server</code>.</p>
<p>To install / uninstall a plugin, add it to <code>package.json</code> and execute <code>npm install</code>.</p>
<h2>Documentation</h2>
<p>More detailed documentation located at <a href="http://brunch.readthedocs.org/">brunch.readthedocs.org</a>. If you're upgrading from earlier version, you might be interested in <a href="http://brunch.readthedocs.org/en/latest/upgrading.html">upgrading guide</a> and <a href="https://github.com/brunch/brunch/blob/master/CHANGELOG.md">changelog</a>.</p>
<h1>Examples</h1>
<p>We know of a few folks who are using brunch already. Ranging from internal tooling to high traffic facebook apps. Know someone else who is enjoying brunch already? Feel free to edit <a href="https://github.com/brunch/brunch/wiki/Projects-and-companies-using-Brunch">the wiki page</a>!</p>
<p class="users">
<img src="images/users/jimbeam.png" alt="Jim Beam">
<img src="images/users/redbull.png" alt="Red Bull">
<img src="images/users/uber.png" alt="Uber">
<img src="images/users/ykky.png" alt="YKKY">
</p>
<h2>Todos</h2>
<p><a href="todos/public/">Todos</a> is a port of the famous backbone todos example app (<a href="https://github.com/brunch/todos">code</a>). Uses localStorage to persist data.</p>
<p>Sébastien Béal also made <a href="https://github.com/sebastibe/brunch-django-examples">an alternative</a> which uses Django + Django Rest Framework to persist data.</p>
<h2>Twitter</h2>
<p><a href="twitter/public/">Tweet your brunch</a> is a simple twitter client (<a href="https://github.com/brunch/twitter">code</a>). Uses <a href="https://github.com/paulmillr/brunch-with-chaplin">Chaplin</a> as app skeleton.</p>
<p>
<a href="twitter/public/">
<img src="images/screenshots/twitter.png" alt="">
</a>
</p>
<h2>blossom</h2>
<p><a href="https://www.blossom.io">Blossom</a> is a lightweight project management tool for lean teams. Backbone.js is heavily used in combination with CoffeeScript to provide a smooth interaction experience. The RESTful backend is built with Flask on Google App Engine.</p>
<p>
<a href="https://www.blossom.io/">
<img src="images/screenshots/blossom.png" alt="Blossom" />
</a>
</p>
<h2>ChainCal</h2>
<p><a href="http://chaincalapp.com">ChainCal</a> is an iPhone app that helps you to track your daily goals in a minimalist, visual way. The app is written almost entirely in CoffeeScript, Backbone handles the models, collections and views, and persistence is done with a Backbone.sync localStorage adapter. Templates are written in Eco and the app is packaged with Brunch and deployed with Phonegap.</p>
<p>
<a href="http://chaincalapp.com">
<img src="images/screenshots/chaincal.png" alt="Chaincal" />
</a>
</p>
<h2>Salon.io</h2>
<p><a href="http://salon.io">Salon.io</a> provides a space where photographers, artists and designers freely arrange their visual art on virtual walls. Salon.io runs on Rails, but does not use much of the traditional stack, as the entire frontend is designed as a single page web app, using Backbone.js and CoffeeScript.</p>
<p>
<a href="http://salon.io">
<img src="images/screenshots/salon.png" alt="Salon" />
</a>
</p>
<h2>Snip.it</h2>
<p>
<a href="http://snip.it">Snip.it</a> help you collect your thoughts and your opinions about your favorite topics, and discover others who care about the things you care about.
</p>
<p>
<a href="http://snip.it">
<img src="images/screenshots/snipit.png" alt="Snip.it" />
</a>
</p>
<h2>Uber</h2>
<p>
<a href="http://uber.com">Uber</a> is everyone's private driver. Their <a href="http://clients.uber.com/">clients app</a> is made with brunch.
</p>
<h1>Community</h1>
<p>Follow <a href="http://twitter.com/brunch">@brunch</a> on twitter to get latest updates &amp; news.</p>
<h2>Contributing to Brunch</h2>
<ul>
<li>Fork the <a href="https://github.com/brunch/brunch">official repository</a>.</li>
<li>Clone your fork: <code>git clone git@github.com:&lt;your-username&gt;/brunch.git</code></li>
<li>Make sure tests are passing for you: <code>npm install &amp;&amp; npm test</code></li>
<li>Create a topic branch: <code>git checkout -b features/new-feature-name</code></li>
<li>Add tests and code for your changes.</li>
<li>Once you're done, make sure all tests still pass: <code>npm install &amp;&amp; npm test</code></li>
<li>Make sure your code conforms <a href="https://github.com/paulmillr/code-style-guides#coffeescript">coffee style guide</a></li>
<li>Commit and push to your fork.</li>
<li>Create an pull request from your branch.</li>
<li>Sit back and enjoy.</li>
</ul>
<h2>Brought to you by</h2>
<p class="builders">
<a href="http://paulmillr.com/"><img src="http://api.twitter.com/1/users/profile_image/paulmillr?size=normal" alt="Paul Miller">
<span class="name">Paul</span> Miller</a>
<a href="http://nikgraf.com/"><img src="http://api.twitter.com/1/users/profile_image/nikgraf?size=normal" alt="Nik Graf">
<span class="name">Nik</span> Graf</a>
<a href="http://tosh.at/"><img src="http://api.twitter.com/1/users/profile_image/__tosh?size=normal" alt="Thomas Schranz">
<span class="name">Thomas</span> Schranz</a>
<a href="https://github.com/MSNexploder"><img src="http://api.twitter.com/1/users/profile_image/MSNExploder?size=normal" alt="Stefan Huber">
<span class="name">Stefan</span> Huber</a>
<a href="https://github.com/janmonschke"><img src="http://api.twitter.com/1/users/profile_image/thedeftone?size=normal" alt="Jan Monschke">
<span class="name">Jan</span> Monschke</a>
</p>
</section>
<footer>
<p><small>Hosted on GitHub Pages &mdash; Theme by <a href="https://twitter.com/#!/michigangraham">mattgraham</a></small></p>
</footer>
</div>
<!--[if !IE]><script>fixScale(document);</script><!--<![endif]-->
<script type="text/javascript">
var _gauges = _gauges || [];
(function() {
var t = document.createElement('script');
t.type = 'text/javascript';
t.async = true;
t.id = 'gauges-tracker';
t.setAttribute('data-site-id', '4f1631bbcb25bc723b000007');
t.src = '//secure.gaug.es/track.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(t, s);
})();
</script>
</body>
</html>
Jump to Line
Something went wrong with that request. Please try again.