Ever since I’ve started fiddling with WordPress, which escalated pretty quickly to developing themes, plugins & API implementations, I’ve struggled with choosing the correct or more precise, best starter stack. I’m not going to list popular solutions simply because you can find them easily online just by googling few keywords. Rather, I’m going to share with what I’ve found to work best for me.
Truthfully, this has been a pain in my behind for quiet some time. Should I use Vagrant, Digital ocean or some nth possible virtualization solution? God forbid that you try to use Amazon Web Services as a mere mortal.
Nowdays I just XAMP stack on Windows machine which proved to be most optimal solution. Personally, no matter how advanced, modern, cool and ‘workflow-enhancing’ a solution, if it takes me ages to setup and changes with every other update, it’s not worth it. If you’re not confident about setting up XAMP or any other similar environment you can just use Bitnami for XAMP which will install and setup WordPress for you.
Theme starter pack
There are a lot of starter packs/themes out there and probably most popular one is Roots framework, which you can use as a bundle or just part of it, namely Sage, a largely popular starter theme. For some users it can be quiet overwhelming at first and they opt-out of using it. That was the case with me as well.
I’ve fiddled around with a lot of starter themes but ultimately decided on using Underscores (_s). For a beginner it’s lightweight, maintained and has a well commented code which really helps a lot when starting out. Couple years passed since I’ve fist used it and it’s probably not going anywhere any time soon. I just like the way everything is nicely generated for me, including textdomain and some theme defaults. Yeah, it has some overhead with unnecessary comments or extra code but I either delete it or leave it there for the next developer, so they can better understand the code.
Next step is developing your own starter theme but for now _s still serves my purposes.
Plugin starter pack
No question here, just use WordPress Plugin Boilerplate Generator. It will generate everything for you, with well commented code that adheres to WordPress Coding Standards. It’s also an excellent opportunity to learn the inner workings of WordPress
Depending on project requirements I might use some plugins that emulate specific behavior or functionality I need at the moment but if I have the time I rather just write the code myself. That being said, If I need to include some plugins in my WordPress project I use TGM Plugin Activation. As plugin authors say, it really is the best way to require and recommend plugins for WordPress themes (and other plugins).
Other than that I only use CFS (Custom Fields Suite) for creating custom fields and meta boxes as creating them manually is just too much time consuming work. And why should you do it when you can have a lightweight version of wildly popular Advanced Custom Fields plugin do it for you?
Not much to say here, I use BitBucket for private projects and outsources and GitHub to showcase my open-source projects and keep track of my code. Nowdays it’s easy to integrate versioning systems with every major IDE or code editor. Which brings me to my next point.
I’ve tried a lot of stuff. Dreamweaver never sat right with me, too much panels and options and it doesn’t even auto-close tags. Visual Studio and Visual Studio Code are Microsoft’s latest attempt at trying that open-source thing but it just doesn’t feel right. Then Atom tries being all hipster and cool. Not my thing.
When choosing the right tools always make sure that the tool you choose is the one you need – if the tool offers some cool and nifty extra features but you really don’t need them then it probably isn’t the right tool for you. On the other hand, I strongly suggest that you take the time and learn how to properly use tool of your choosing as it will probably speed up your development process.
Looking at my development setup one would probably say that using XAMP stack with Underscores starter theme is not the proper way to go about things. They would complain that it involves too much repetitive work for every new project. I’m game for trying new tools and speeding up my development process but most of the cutting edge tools are unreliable or just takes too much time to configure them (and it will probably stop working with the next update) and sometimes it’s just not worth it. If you feel confident with your current development tools you probably don’t need to change them. It’s all about the quality of your code. As it should be.