I let you in on one of my secrets — I found it supremely helpful to treat everything I do as a distinct product. Whenever I work on a project I treat the parts of each project as a product.
By doing so you force yourself into thinking about repeatability, scalability and robustness of your processes. In programming parlor you effectively encapsulate all your modules and build APIs for them to communicate with each other.
This creates a bit more overhead (as you won’t just duct tape stuff together) but pays of hugely as you develop your own library of modules and best practices which you can use over and over again. It further allows you to see often completely new opportunities — similar to how Amazon started selling AWS as a product (something they developed internally as they needed it; but made sure from the get-go to treat it as a product).
Why don’t you treat the parts of your next project as a product?