As a software developer, finding the balance between creativity vs best practices is quite challenging. Definitely, it is something that we should practice writing every line of code without regarding the size or level of a project's complexity.
In my opinion, the complexity lies in our mind and the more creative you are, the more complicated your code become if you do not follow best practices. Being open-minded, practicing instant refactoring, as well as being creative, certainly will help you to find that balance and, furthermore, to increase a project's maintainability. Making it more efficient, cheaper and faster to add new features in the future.
Creativity is a great virtue and projects built following a non-standardized approach will challenge you to be twice more creative to maintain them. Creativity has no limits! I love that idea, however, maintainable projects require using a large number of rules and patterns. That is the point! Be hundred percent sure that you are writing a code implementing, at least, the SOLID design principles and, at the same time, being creative. SOLID principles are a collection of best practices to make software designs more understandable, flexible and maintainable. This topic is not part of the central idea of this article, there is a good reference on this article from Uncle Bob The Principles of OOD.
I have been reading an excellent book which has a sort of code examples in C# for managing complex software construction. I really recommend you to read this book:
Patterns, Principles and Practices of Domain-Driven Design
I hope this post has been a helpful discussion of what you could consider for the next code you will start writing.