/buckets

Manage content better.

Primary LanguageCoffeeScriptGNU Affero General Public License v3.0AGPL-3.0

A fast, simple way to build dynamic websites with Node.js. More about our vision.

Build Status Dependencies License NPM

Getting Started

Buckets requires Node.js and MongoDB. Once you have those, the easiest way to use Buckets is to install it as an NPM module:

npm install buckets

You can also run the above command with --save to add Buckets to your app’s package.json (recommended). From here, you can run Buckets in a script like this:

buckets = require('buckets');
buckets({
  buildsPath: __dirname + "/builds/",
  // Add your Gmail to use features that send email (Mandrill and others also supported)
  smtp:
  // Additional configuration…
});

There is a skeleton project available which uses the above configuration as a sample. If you plan on deploying to Heroku, you can also optionally use the button below to get started—which will deploy the skeleton project to Heroku, automatically adding free plans for any necessary services.

Deploy

Installing from this repo

If you plan on contributing to Buckets' development, you can install and deploy Buckets directly from this repo. You will need to install a few extra dependencies for building the frontend files.

npm install -g grunt-cli
npm install

This will install Grunt globally and Buckets' dependencies (including devDependencies). Grunt can then be used for most tasks, as shown below.

Building

You can compile the Buckets client-side assets by running grunt. This will build all of the JavaScript/CSS unminified, and with source maps. If you'd like to see what the final (compressed) output will be, run grunt prepublish instead.

Running

Once the client-side assets has been compiled, you can run npm start to start the Buckets server and your site should be accessible at the default address: http://localhost:3000/.

Alternatively, you can run grunt start—this also starts a server at the default address, but will additionally watch all files for changes. Any changes to server CoffeeScript will restart the web server and then reload the browser. Any changes to client-side CoffeeScript, Stylus, or Handlebars will re-compile the appropriate files, then reload the browser.

There are a few other Grunt tasks available for building and running tests.

Deploying

If you're deploying directly from this repo, you'll need to make one change to your local environment, which is to remove the /public from your .gitignore file. This is because we don't install Grunt or its dependencies in production environments to make everything faster/easier for people who install Buckets as an NPM module.

Documentation

Developer Documentation

User Documentation

Community

Follow along with Buckets’ progress and keep in touch with other Buckets users.

Contributing

This is a product being built by the Assembly community. You can help push this idea forward by visiting https://assemblymade.com/buckets. We welcome any contributions to product design/direction or code.

Assembly products are made with contributions from the community. Assembly handles the boring stuff like hosting, support, financing, legal, etc. Once the product launches we collect the revenue and split the profits amongst the contributors.