Depending on the project, you may find that there are no suitable existing Content Management Systems for your idea. This would be extremely uncommon and would probably only emerge in a very high tech, innovative context. Even then many websites are built using existing software platforms and frameworks to reduce the amount of work needed to type thousands of lines of code that already exist and are available for use. However to build a website from scratch would usually involve a project planning and scoping phase, in this process it would be decided what kind of resources are needed, both software and hardware to run the systems. Then the developers would begin to create some wireframes and some scrappy prototypes to give the idea some form. This stage can also involve testing and getting user feedback. Once a direction is clear and established more resources can be allocated to the project to build a beta version of the website. A key to building any software is testing and ensuring the product being created will solve the users needs in a meaningful way. A website is never really 100% complete. As the product evolves, and the audience evolves innovation will always command development and growth.