Take the 2-minute tour ×
Webmasters Stack Exchange is a question and answer site for pro webmasters. It's 100% free, no registration required.

I am relatively new to HTML and CSS programming, but in the future I'm Hoping to create websites for clients.

How does the customer (who I suspect has no knowledge of HTML or CSS) edit there own website once I have created it for them? Will they have to rely on me to constantly update there website for them? or is there a program which the HTML and CSS code can be entered into which makes future editing possible without having to manually alter the code?

share|improve this question
1  
jannis's answer is good, but when I asked the very question back when I was starting out, someone also advised me to learn a programming language so that I could write my own CMS. Look at cakephp, django or rails which are programming frameworks that let you build the kind of site you are talking about - you're talking about building a webapp as opposed to what is commonly considered a website –  marflar Jan 19 '11 at 11:07
    
Its starting to make a bit more sense now, I think for the customer base Il be aiming at, the site will need to be easily updated and changed , for example if the customer wants to add new products or blogs ect. will the programmes you hav mentioned be suitable for that? –  user4716 Jan 19 '11 at 11:15
    
@stephenmurdoch: What is commonly considered a website does require a content management system. And 99% of the websites you come across on the web will be using a CMS of some sort. You don't need to learn server-side programming, but you should at least be setting clients up with a free CMS like Wordpress or Drupal. It's ridiculous to have a client rely on you to make simple updates to their site. –  Lèse majesté Jan 19 '11 at 12:09

3 Answers 3

Like Jannis said, you need to use a CMS, which will solve this problem.

But to give you more background info, here's a breakdown of the main areas of web development:

Static vs. Dynamic Sites

Static Sites

A static website is what you described in your question initially—where every page is hard-coded HTML and written by the designer. These sites were quite common in the 90s, and web developers/webmasters were hired to both write and maintain them. Back then, just having some rudimentary HTML knowledge qualified you to be a web developer, and most websites were coded this way as simply a collection of simple static webpages.

During this time, WYSIWYG (What You See Is What You Get) editors also came around. This allowed people who didn't know HTML to create webpages. Some editors like Dreamweaver also provided ways for web designers to specify an area of the page as editable, and clients could use their own copy of Dreamweaver to update the content on their site.

Dynamic Sites

However, even fairly early on there were dynamic websites. These sites were more like applications, and their pages were dynamically generated when they were requested by a visitor. This meant that webpages could respond to the interaction of users, and content could also be personalized for each user. A search results page or a user dashboard are examples of dynamic webpages.

Server-side vs. Client-side Programming

Client-side Code

Client-side code is code that is received by the web browser and processed on the user's computer. This includes the HTML and CSS to render the page, as well as the JavaScript that is used to implement certain UI behaviors. All of this relates to the front-end of the website.

On a static site, there is only client-side code, and the content is embedded in the HTML of each page. The pages can only be changed by manually changing the HTML.

Server-side Code

Server-side programming is what makes dynamic webpages possible. This is code that is processed by the webserver instead of being sent to the browser. The server-side script run by the webserver would generate dynamic webpages that are then sent to the browser. This was first commonly implemented via CGI with server-side languages like Perl or C. But today other server-side languages like PHP, Ruby, ASP.NET, JSP, Python, etc. are also available.

Server-side languages allow you to write web applications instead of just static pages. The most common type of web application is a Content Management System that allows users to update their website without knowing HTML or editing files directly. This is the preferred way to manage a website today.

Dynamic websites require both server-side programming as well as client-side programming. Additionally, unlike static sites the data/content is usually separated from the HTML files and stored in a database, such as MySQL, PostgreSQL, SQL Server, etc. This has many advantages, including the ability to search, organize/index, and manipulate/edit the data more easily. This is usually done through a database language called SQL.

The HTML is usually stored as templates, reducing the amount of duplicate code/data, and making it easier to change the design of a website by making changes in a single place rather than in hundreds of different individual webpages.


Today, most sites, even personal blogs and websites of small mom & pop stores are dynamic sites with a CMS. This not only gives the user more control over their site instead of being reliant on a web developer, but it also makes it easier to maintain the site from a technical standpoint. The way static sites are created makes it very difficult and inefficient to maintain sites with more than a dozen pages. It also makes it more costly to make changes to the site's overall design.

So if you're a freelance web developer, you need to know a server-side language. Otherwise, you'll have to focus on front-end development and work for a web studio or partner up with a back-end developer. A freelance web developer who supplies static sites to their clients just won't cut it these days. It's unprofessional and actually hurts the client in the long run—especially as there are so many free and open source CMSes out there that most high school students could install and get up and running in just a few minutes.

If you're a web designer, then you could just install an open source CMS like Wordpress, Drupal, etc. for your client and design a custom template for them. That is probably the best deal for most business clients.

share|improve this answer
    
Brilliant answer thanks so much, I guess i will have to learn how to use cms too then as that sounds the most appropriate option for what i am looking for, here's hoping its not too complicated to learn fingers crossed. thanks everyone for your quick replys, could not of asked for more. many thanks. Ryan –  user4716 Jan 19 '11 at 12:11
1  
@ryan: NP. And I'm sure you'll be fine. Just pick a popular open source CMS and start playing around with it. Install it for your own personal site and start customizing it and familiarizing yourself with its features. If you master a CMS like Wordpress/Drupal, it'll allow you to deploy client websites much faster than writing a CMS from scratch. And these widely used open source CMSes are much more stable and robust/user-friendly than something a single developer can write. So it's definitely the way to go. –  Lèse majesté Jan 19 '11 at 14:00
2  
+1 for the detailed answer. @ryan how complicated it is to learn depends on to what extent you want to customize. Most have out of the box functionality that you can just add content to and modify the CSS and you're good to go. If you want more than what's already built in, many have a wide variety of plugins available that you can just install and use. Finally if you want to write your own plugin then you'll need to be familiar with whatever server-side programming language it uses. –  Davy8 Jan 19 '11 at 14:02

You should use a CMS (Content Management System) such as Joomla or Wordpress. After you have set up the CMS, the user can easily add content to the web page by his own.

share|improve this answer
    
Ah i see, so does that take the html and css code directly, that i have created using another programme? or do i have to build the code straight into that programme from the beginning? –  user4716 Jan 19 '11 at 11:07
    
@ryan: Most CMSes take templates of a certain format. You could however take an HTML mockup and convert it into a template for a CMS. I would suggest picking a CMS that fits your needs and reading the documentation for it. If you already know HTML/CSS, it should be fairly easy for you to create templates for a CMS. You could start by customizing the stock templates and seeing how your changes are reflected on the site. –  Lèse majesté Jan 19 '11 at 12:04

All these answers are right on. There is also another option. CMS Made Simple. It allows you to add CMS to your hand made pages. If you are going to develop websites for clients, you should at the very least have a good knowledge of HTML and CSS.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.