Spike
A modern static build tool, powered by webpack
Note: This project is currently unmaintained. If you are interested in taking over maintenance, please reach out!
What is Spike?
If you're building a website or client-side app – then 🌵 spike is probably for you. Spike aims to be simple, efficient, and a pleasure to use.
Spike certainly is not the only static site generator out there, but in our opinion, it's the most powerful and easiest to use.
Spike's default stack is built on plugin-based architecture which defaults to syntax based on official specs for the future of html, css, and javascript. Out of the box, Spike is based on:
- reshape for markup
- babel for JS and JS transforms
- postcss for CSS transforms
- webpack as the core compiler
It is also able to integrate any webpack loader and plugin, making it possible to use any other language and configuration you want.
Features
- Easy configuration via the
app.js
file - Integration with Webpack's massive plugin/loader ecosystem
- Support for ES6 in your site's JS via Babel
- Semantic transformations your html and css with postcss and reshape
- Breezy local development powered by Browsersync
- Selective compile in
watch
mode ⚡ - Support for multiple environments
- Interactive Project Starters via sprout
- Spike Plugins for common integrations
Installation
npm install spike -g
spike new <projectname>
NOTE: You must be using >= node v6.0.0 in order for Spike to work!
Usage
Spike can operate through either a javascript API or a CLI interface. This project is just the command line interface, for more information on the js api, check out spike-core.
To read all about how spike works, check out our documentation
For information on how to use the command line interface, check the CLI section
Analytics
In order to continue improving Spike, we collect anonymous usage data from anyone using the command line tool. This data is important to us because it helps us to know which features are important to users. It also helps us to convince our sponsors about how great this project is and how many people are relying on it, so that its development can continue to be funded. Here's a breakdown of the data we collect:
- A randomly generated unique id for each spike install
- Any time a spike command is run, the contents of that command (for example
spike watch -e production
would record "watch -e production") - Any time a spike site is compiled, only the fact that a compile has run
We use this data specifically to keep tabs on how frequently spike's various features are being used so that we can better prioritize issues and upgrades, and to show our "total compiles" number, which is typically a large and impressive number, to our sponsors, and they can then be wowed by how awesome and popular this project is. That's it!
We want to make it clear that no private information is being collected at all here, and that all information collected is 100% anonymous, and tagged only to an entirely randomly generated id. However, if you would like to opt-out and ensure that analytics are not sent, you can run spike analytics disable
, and no further information will be collected.