You've heard it before: "Don't reinvent the wheel." "If it ain't broke, don't fix it."
If you're trying to make a product, sure. But as an exercise, reinventing the wheel is a great way to learn, gain experience, and keep the wheels turning.
Take this blog for instance. There are more off-the-shelf blogging solutions than I could shake a stick at. But I wanted a project, and I wanted to be able to publish whenever I push markdown files to GitHub. GitHub pages makes publishing easy, but I would need:
And then a few stretch goals:
Not terribly complex, but something to chew on in my spare time. Reinventing the wheel is a way to reframe something familiar. Reverse engineer a known solution into the problems it solves, and then explore how else you can solve those problems.
EDIT: See my update