if you have a desire to make your hobby window manager project into a more serious project at some point, you should consider writing to the ICCCM and NET_WM specs. A link to the ICCCM specs were provided in an above link. The NET_WM specs can be found here:
http://freedesktop.org/Standards/wm-...-spec-1.3.html
Most new window managers implement the extensions in NET_WM (Sawfish, Openbox, etc.) Writing to this spec should give you some direction and all in all there's not alot to it, so it's not that much of a pain. It will give you a base of support applications (such as panels, etc) that will automatically interoperate with your WM.
For an example of how to implement a window manager that conforms to these specs, look at the Openbox source. I've studied it while writing a ICCCM/NET_WM conformant panel program ... its clean and fairly easy to follow.
The roughest part will probably be the rendering engine, provided you decide to implement your project strictly with Xlib. If you use GTK or Qt, you'll have alot less work to do.