I always start out with free scripts that I heavily modify in order to get the functionalities that I want.
Starting from scratch is a waste of time if you ask me.
I usually add new feature to free sites and make new scripts. Sometimes I love to create my own script and use small modules available at free scripts site.