Shamanize your next static website with the most powerful React-based technologies.
Windfury is a full-featured and opinionated tooling library. It's mainly focused on improving developer experience (DX) on React-based technologies. No more JavaScript fatigue. Just focus to build your website, don't worry about your tooling stack!
- Single-dependency: [...]
- Opinionated: [...]
- Deployment pipeline support: [...]
- React stack based: [...]
- Live-reload and hot reloading: [...]
- CSS modules: [...]
- Deployment: [...]
Let's start by create a new Node.js project. Windfury works great with the following boilerplate: mapleinside/website-boilerplate.
However, if you want to start from scratch, Windfury is opinionated by nature, so you should follow Maple Inside's architecture conventions in order to use it. When you're ready to go, install Windfury as local dependency:
npm i windfury --save-dev
Write the configuration's file windfury.yml (see Customization for more information). And finally, start the development server:
windfury start
./src
is the main source directory. Start write code here!
For best use, commands should be defined into the package.json as NPM scripts.
windfury start
: spin up a development server with live-reload and HMR;windfury build
: build a production-ready version of the website;windfury deploy
: deploy your website sources to the specified AWS S3 bucket.
-e
or--env-file
: use another .env file instead of ./env/dev.env. Useful to build a production-ready version of the app for the staging or production environment (e.q.--env-file=./env/staging.env
).
[...]
Windfury uses a YAML file named windfury.yml as configuration. You can easily custom many options here. Below these are the mandatory options:
aws:
region: us-west-2
s3:
bucket: mywindfurywebsite.com
env:
secret:
- NPM_TOKEN
Here the full customizable options for Windfury:
aws:
region: us-west-2
s3:
bucket: mywindfurywebsite.com
env:
secret:
- NPM_TOKEN
Windfury is MIT licensed.
Windfury documentation is Creative Commons licensed.
Examples provided in this repository and in the documentation are separately licensed.