Bootstrap a new Brunch app in less than a minute.
Check out the live demo and its source code!
Start building your modern single page app with the fastest build tool around. No assumptions: just the essential boilerplate with an instant-feedback development cycle and deployment pipeline.
- Develop and build with Brunch: the ultra-fast HTML5 build tool.
- Core HTML5 layout based on HTML5 Boilerplate.
- Modular static templating with html-brunch-static Handlebars, and Yaml Front Matter.
- Extensive intelligent meta tag support.
- Write modern JavaScript with Babel and the ES2015 preset.
- Write styles with PostCSS, postcss-import, and PostCSS-cssnext.
- Production assets optimized with UglifyJS and clean-css.
- Frontend and development dependency management with npm.
- Automatic browser reloading with auto-reload-brunch.
- Linting with the JavaScript Standard Style, stylelint, and HTMLHint.
- Automatically lint on changes with gulp.
- Standardized element styles with sanitize.css.
- Favicons with Favic-o-matic.
- The internet is for humans with humans.txt.
- Travis CI and wercker ready.
- Deploy to GitHub pages locally or from [wrecker] (or add Travis CI deployment).
- Optimized and tested deployment build with gulp-rev-all, HTMLMinifier and imagemin.
- Keep a CHANGELOG.
- Consistent coding with EditorConfig.
- Badges from Shields.io.
-
Clone the master branch of this repository with
$ git clone --single-branch https://github.com/makenew/tasty-brunch.git new-tasty-brunch $ cd new-tasty-brunch
Optionally, reset to the latest release with
$ git reset --hard tasty-brunch-v3.3.2
-
Run
$ ./makenew.sh
and follow the prompts. This will replace the boilerplate, delete itself, and stage changes for commit. This script assumes the project repository will be hosted on GitHub. For an alternative location, you must update the URLs manually.
-
Fill in the README Description section.
-
If choosing a license other than the one provided: update
LICENSE.txt
, the README License section, andpackage.json
with your chosen license. -
Add your own favicons from Favic-o-matic to
app/assets/favicon
and overwriteapp/assets/favicon.ico
. You can make a quick Font Awesome favicon at FA2PNG. -
Further customize the meta data in
app/index.static.hbs
and replaceapp/assets/image.png
with a custom image. -
Lock your dependencies with
npm-shrinkwrap.json
. Optionally, lock the Node.js version with.nvmrc
engines
inpackage.json
, and inwercker.yml
. -
Configure deployment to GitHub pages from wercker and update the wercker badge.
-
If hosting this as part of a larger website, the following boilerplate files can be removed:
404.static.hbs
,crossdomain.xml
, androbots.txt
.
If you want to pull in future updates from this skeleton, you can fetch and merge in changes from this repository.
If this repository is already set as origin
,
rename it to upstream
with
$ git remote rename origin upstream
and then configure your origin
branch as normal.
Otherwise, add this as a new remote with
$ git remote add upstream https://github.com/makenew/tasty-brunch.git
You can then fetch and merge changes with
$ git fetch --no-tags upstream
$ git merge upstream/master
Note that CHANGELOG.md
is just a template for this skeleton.
The actual changes for this project are documented in the commit history
and summarized under Releases.
$ git clone https://github.com/makenew/tasty-brunch.git
$ cd tasty-brunch
$ npm install
$ npm start
The makenew-tasty-brunch source is hosted on GitHub. Clone the project with
$ git clone https://github.com/makenew/tasty-brunch.git
You will need Node.js with npm.
Install the development dependencies with
$ npm install
Requirements are version-locked to ensure consistent deploys. See the npm-shrinkwrap documentation for dependency management.
Primary development tasks are defined under scripts
in package.json
and available via npm run-script
.
View them with
$ npm run
Lint, test, generate, and optimize the production build to public
with
$ npm run dist
Build and deploy to GitHub Pages with
$ npm run deploy
The following environment variables can be set to customize the deploy:
DEPLOY_REPO
, DEPLOY_BRANCH
, DEPLOY_NAME
, and DEPLOY_EMAIL
.
Create a new wercker SSH key with the name DEPLOY
,
add it to a new wercker deploy step,
and add it to the GitHub repository as a deploy key with write access.
Brunch is responsible for the development cycle and the production build.
Start a local Brunch development server with
$ npm start
If installed globally, brunch
may be invoked directly.
View available commands with
$ brunch
Linting, deployment, and optimization is handled by gulp.
In a separate window, use gulp to watch for changes and lint HTML, JavaScript, and CSS files with
$ npm run watch
If installed globally, gulp
may be invoked directly.
View available commands with
$ gulp --tasks
Meta data is defined in app/index.static.hbs
.
- Nil values are indicated by a
~
. Nil fields never generate a meta tag. Fields which are Nil by default are generally optional. - The
image
,audio
, andvideo
fields must result in a fully qualified url. This is handled for local files automatically, but you must also include the file in the arraydontRev
ingulpfile.js
. For externally hosted files, you must modifyapp/static/partials/meta.static.hbs
- Instead of the
video
field, you may specify ayoutube
video id. - The
twitter
fields are used for Twitter Cards, but you must enable them for your domain with Twitter first.
Please submit and comment on bug reports and feature requests.
To submit a patch:
- Fork it (https://github.com/makenew/tasty-brunch/fork).
- Create your feature branch (
git checkout -b my-new-feature
). - Make changes.
- Commit your changes (
git commit -am 'Add some feature'
). - Push to the branch (
git push origin my-new-feature
). - Create a new Pull Request.
This software can be used freely, see The Unlicense. The copyright text appearing below and elsewhere in this repository is for demonstration purposes only and does not apply to this software.
This app is licensed under the MIT license.
This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.