First you need to decide what your app is going to do and who is going to use it.
Next you can create use cases to start planning exactly what users will be doing. You can even make fancy little diagrams with stick figures and arrows.
Sequence diagrams and screen mockups will help you plan out how the system will work, and what pages you'll need.
You can also make a UML based class diagram which can really help you plan out what classes you'll need to make, including what methods and variables they'll need, as well as get you on track for designing the database to fit your website.
Doing these things may seem kind of boring or lame compared to jumping right in and writing code, but because it forces you to think ahead of time you can avoid a ton of pitfalls, even if you only do it half-assed.
From there you can actually make a serious TODO list, and order tasks by dependencies and priorities. I use text files. It's not the fanciest solution but it works for me.
Edit:
Expanding on my own process. Note that this is what I do while working by myself on my own projects.
Once I have the above sort of done, the next thing I'll do is actually write out the database tables, something like this:
USERS TABLE
===========
user_id (PK) unsigned int (10)
username varchar(30)
email_address varchar(30)
is_active bool
password varchar(41)
registration_date datatime
registration_ip varchar(20)
last_login_ip varchar(20)
last_login_date datetime
...etc. for all the tables. Then sit back and look at how the tables relate to each other, think of what might be missing, and normalize/denormalize until it makes sense for the app being built and especially the queries that will need to be written. Yes I do this in a text file.
I would strongly recommend, as others have, the MVC design pattern. It might not fit what you want to do, but it usually fits for most web apps and makes them so much easier to implement and maintain. The last thing you want is spaghetti code.
So if you are going to use MVC, it should be pretty clear what models you'll need to write (the most important part), as well as controller and view files.
So this is how I organize what I need to do:
TODO
- create database tables
- user registration
- authentication
...
SECURITY
- sessions in db table
- xss cleaning in form x
...
etc!
Every time I think of anything that I need to do it becomes a point. Obviously these points can easily expand out further. I try to order them by what I feel like working on next (because that's the easiest way to move forward) and by importance, or dependency from other tasks.
This might seem silly to some, but this is how I keep track of things.
Hope it gives you some ideas.