I work on a lot of different projects, and each one is unique in its own way. I often find myself installing packages manually and then configuring them. It seems like I repeat myself quite a bit, but the requirements of each project vary ever so slightly. In an attempt to prevent myself from repeating the same tasks over and over, I’ve started working on a skeleton repo that contains nearly everything I would need.
What I was doing
- composer init
- composer require silex\silex illuminate\database
- npm init
- yarn add webpack babel-core … and many more
Then I would have to do the following:
- Configure my composer.json to use PSR-4 autoload for my namespace
- Create my folder structure
- Create some interfaces, classes, and models
- Configure webpack to use my folder structure
- Import my SCSS
Doing all of this over and over is a waste of time.
Creating a skeleton repo
My decision to create a light skeleton repo has saved me time. Since it is light, it is very easy to scale it back to what I need. However, if I need to add more, I can do so easily. It turns out that I’m quite good at creating a skeleton repo since I’ve done it so many times. By carefully planning and using the steps above, I had one created in about a day. I’ve continued to refine it and add more features.
I’m sure there are some very elegant solutions on there that do what I need, but I enjoy creating these solutions for myself. Perhaps I’ll end up using something someone else created, but I hope that I’ll have a greater understanding of what they’ve done.