# 2015 September 18
# https://github.com/bevry/base

# Temp Files
**/.docpad.db
**/out.*
**/*.log
**/*.cpuprofile
**/*.heapsnapshot

# Build Files
build/
components/
bower_components/
node_modules/

# Private Files
.env

# Development Files
.editorconfig
.eslintrc
.jshintrc
.jscrc
coffeelint.json
.travis*
nakefile.js
Cakefile
Makefile
BACKERS.md
CONTRIBUTING.md
HISTORY.md
**/src/
**/test/

# Other Package Definitions
template.js
component.json
bower.json

# =====================================
# CUSTOM MODIFICATIONS

# None
