The best thing to create is User Stories regarding the functionality that you would like and use an Agile Development process to prioritize and refine things as you build it.
That will act as your todo list for functionality.
I would also highly recommend wireframing all the major parts of your site using something like www.balsamiq.com so you ensure it works the way you expect.
It's hard to use words to describe a painting, same thing applies to software development.