So, I have now built a few projects with Sage and I feel like it’s time to get deeper to eventually contribute to its growth or building a “custom version”.
What do you think would be the best way to understand the inner workings of Sage?
What concept/technologies is it made of? (e.g. Webpack for assets management and bundling, Composer for module autoloading, …)
the book is definitely the best place to start. Once you’ve read that, this community is a great place for some of the more specific questions about implementation and such.
Also, if you want to do a deep dive, straight up reading the source code is a good thing.
There are a few major things to understand with Sage:
How Sage is working with WordPress (PHP, Composer).
Where to start:
How Sage is compiling its assets (Webpack)
package.json — where the NPM scripts are defined.
config.json — where the user defines project configuration.
config.js — prepares config.json (and config-local.json) for use in Webpack.
webpack.config.js — Base Webpack configuration. Super daunting at first, but if you dive into Webpack as well, you’ll find this a valuable resource to see how a real project is doing things.
@MWDelaney isn’t the book about the actual theme development? I am pretty confident about Sage’s usage, it’s the codebase I’m not sure about
@knowler I’ll definitely do that. What about Laravel’s role? How deep should I dig in that direction?
Understanding how to use Sage — especially by the book — will give you a greater understanding of how Sage works. I’ve learned so much from the book + learning how to plug new things into Sage so I can use them. Further, having an understanding of what Sage is trying to accomplish is vital if you want “to eventually contribute to its growth.” And on that note, if you want to go deeper to understand how Sage is used, then helping out here on Roots Discourse is a fantastic way of learning as you will encounter how other people are using or trying to use Sage. Unless you know the greater need — not just your own — you will not know what to contribute.
As you dig into
functions.php and in turn
sage-lib, you’ll see the Laravel stuff. You can go as far as you want with that stuff, but I would recommend digging deep enough to understand the current capabilities of Sage’s use of Laravel (not as a prerequisite to Sage though).
All right, I’m sold. I’ll see you on the other side.
Thanks again guys!
Bought, almost finished It is excellent