Planning something is sometimes much harder than doing it. I'm currently testing a local web application, and I have to say that I'm doing this work without a proper planning. I mean, the application is still growing under my eyes but I didn't plan how to make it work. I didn't plan how to manage users, I didn't plan how to manage contents, so that my PHP classes are huge and full of redundant methods. The application, however, works well but it's clunky. This is not the way it was supposed to be.
So, planning. It's everything. Without planning, you may probably end up with thousand lines of code that basically do two or three tasks. Too bad. So you have to plan everything. First, is your application content-centric or user-centric (or a mix of the two)? Second, what can users do (registered or unregistered)? Third, how to manage contents? Should you use SEO-friendly URLs or not? What's the goal of your application? What does your client want? And your users?
To accomplish this task, you don't have to write code. Either you choose UML or a notebook or whatever you want, be aware of the fact that every detail defined here means some hundreds lines of code spared later. Believe me, I've been there. Just remember to take your time. No need to hurry in this phase of the development. Check everything and never forget to get a clear idea of the finished work.
And remember: take your time.