Fabrica Dev Kit is a toolkit for WordPress development. You...
- Clone a GitHub Repo
- Configure your WordPress project (settings, plugins, etc) through a `.yml` file
- Run a Ruby setup script which
- Downloads dev dependencies (like Gulp) through npm or yarn
- Builds a Docker container and volumes to run everything inside of
- Everything, including the big WordPress dependencies like PHP and MySQL, and running inside Docker. The web server is Nginx and PHP-FPM
It goes a step further and sets up some WordPress theme development dev dependencies like:
- Twig templating
- Specifically Timber, which brings Twig to a WordPress context and allows for MVC like structuring of your theme
- Advanced Custom Fields and a customization of that to allow version controlling of that setup
It goes another step in sets up build processes for theme development, like:
- Preprocessing of HTML through PostHTML, so you can use a special BEM syntax
- PostCSS with add-ons like LostGrid
- Image optimization
- Linting, minifying, and source mapping assets
- Incorporates BrowserSync for helping make testing in browsers faster and easer
It assumes some other theme dependencies like:
- If you need more front end dependencies, you can use npm and Webpack to include them
- If you need more back end dependencies, you can use Composer for those
And then for moving from development to production, you've got:
High five to Andrew, Thomas and João who build and released this and emailed me about it. It's an ambitious project and it's cool that it's free and open source.
There are some mixed emotions here though. Gosh that is a THICK STACK of tooling in use there. It making assumptions across the entire stack of how you work. I'm feel like an old man yelling at a cloud here, but I'm going to suggest you work with these tools individually first before going all-in on a stack like this. This is a lot of abstraction to swallow in one pill.
This particular take at entire-stack-abstraction hits all the right notes for me. I've worked with almost all those tools and have a decent understanding of what they do and why they are useful, so combining them all into an easy-to-setup thing is appealing, but I could just as easily see being turned off by something like this that assumed some depenedencies that I didn't like or didn't have a taste for.