Website Development with AI
Senior 6 · ICT
Website Development with AI
Lesson 1 of 5
25 min
A coffee cooperative on the shores of Lake Kivu wants a website: who its farmers are, how its coffee is washed and dried, the prices of its packaged coffee, and news from each harvest. The cooperative's manager will update it every week, but she does not write HTML. A hand-coded site would need a programmer for every new photo. What she needs is a content management system: software that stores the words and pictures in a database and builds the web pages from them automatically, while she edits through forms and buttons in a browser.
The most widely used CMS is WordPress. In October 2026 the survey company W3Techs reported that WordPress ran about 40% of all websites and about 59% of the websites whose CMS it could identify.
Definition
Content management system (CMS): software for creating, editing, organising and publishing website content without writing code for every page. It keeps the content separate from its design. Examples: WordPress, Joomla, Drupal.
Front end: the public site that visitors see. Back end (in WordPress, the dashboard or admin area, at /wp-admin): the private area where editors manage the site.
Static site: a site made of fixed HTML files, each edited by hand. Dynamic site: a site whose pages are built by a program, usually from a database, each time they are requested.
When a visitor opens a WordPress page, no finished HTML file is waiting on the server. The page is assembled on demand.
/news/harvest-begins/.Because the content and the design are stored separately, the manager can change a price without touching the design, and a designer can change the whole look without retyping any content.
| Hand-coded static site | CMS such as WordPress | AI site generator (lesson 4) | |
|---|---|---|---|
| Who can update it | Someone who writes HTML | Anyone trained on the dashboard | Someone who can write prompts and check code |
| Needs a database | No | Yes | Usually no: it produces static files |
| Speed and security | Very fast; little to attack | Slower; core, themes and plugins must be kept updated | Fast, but the code must be reviewed |
| Best for | Small sites that rarely change | Sites with regular news, many pages or several editors | A quick first version or prototype |
The two names cause confusion. WordPress.org is the home of the free, open-source WordPress software, released under the GNU General Public License. You download it and run it on any web host you choose. WordPress.com is a commercial hosting service, run by the company Automattic, that runs WordPress for you. Its free plan is limited; installing your own plugins and themes needs a paid plan.
| WordPress.org (self-hosted) | WordPress.com (hosted service) | |
|---|---|---|
| Software cost | Free | Free plan, paid plans for more features |
| Hosting and domain | You buy them from a host | Included; a custom domain costs extra |
| Plugins and themes | Any | Limited on lower plans |
| Updates, backups, security | Your responsibility | Done by the service |
You can learn WordPress without buying hosting by running it locally. Two common tools are Local (free, from WP Engine) and XAMPP (free, from Apache Friends), which installs a web server, PHP and a MariaDB database together.
With Local
admin), a strong password and an email address.With XAMPP (the manual installation)
http://localhost/phpmyadmin and create an empty database called kivuhills.wordpress.org/download, unzip it into XAMPP's htdocs folder and rename the folder kivuhills.http://localhost/kivuhills. The installer asks for the database details and writes them into wp-config.php:<?php
// wp-config.php (the part you fill in during installation)
define( 'DB_NAME', 'kivuhills' ); // the database you created
define( 'DB_USER', 'kivuhills_user' ); // a database user, not "root"
define( 'DB_PASSWORD', 'use-a-long-random-password' );
define( 'DB_HOST', 'localhost' ); // the database runs on the same server
$table_prefix = 'kh_'; // tables become kh_posts, kh_users ...Warning
Never call the administrator "admin". Automated attacks try the username admin with thousands of common passwords. Choose another username and a long, unique password, and on a live site add two-factor login. Also keep wp-config.php private: it holds the database password.
After logging in you see the dashboard. Its left-hand menu holds everything an editor manages: Posts, Media, Pages, Comments, Appearance (themes and design), Plugins, Users, Tools and Settings. The two kinds of content are easy to confuse:
| Post | Page | |
|---|---|---|
| Used for | News, updates, articles that come in time order | Lasting content: About us, Contact, Prices |
| Shown | In a list, newest first, and in feeds | On its own, usually linked from the menu |
| Organised by | Categories and tags | Parent and child pages |
| Example | "Harvest begins in Nyamasheke" | "About the cooperative" |
A site with several editors gives each person a role, which decides what they may do. Give each person the lowest role that lets them do their job: this is the principle of least privilege.
| Role | Can do |
|---|---|
| Administrator | Everything: install plugins and themes, manage users, change settings |
| Editor | Publish and edit any post or page, including other people's |
| Author | Write, publish and edit their own posts, and upload files |
| Contributor | Write their own posts, but not publish them; an editor must approve |
| Subscriber | Log in and manage their own profile only |
freeCodeCamp.org: How to Create a Website – WordPress Tutorial for Beginners 2025. A long course: watch the opening sections on installing WordPress, the dashboard, and posts versus pages, then come back to the hands-on task.
Worked example 1: assign the roles
The cooperative has four people who will use the site: the manager, who decides what is published; a field officer who writes harvest news that the manager checks; an intern who sometimes types up farmer stories; and an ICT volunteer who maintains the site. Assign roles.
If the intern's password is stolen, the attacker can only write drafts that nobody publishes, which is the point of least privilege.
Worked example 2: self-hosted or hosted?
The cooperative wants an online shop plugin, its own domain kivuhills.rw, and has no technical staff after the volunteer leaves in six months. Which option suits it?
Tip
Post or page? Ask: "Will this be out of date next month?" If yes, it is a post. If it should stay the same until someone deliberately changes it, it is a page.
/harvest-begins/ rather than /?p=123.Check: the front end shows your posts newest first, both pages open from their addresses, and the contributor cannot publish.
Practice
wp-config.php not be the all-powerful root account?Sources and credits
This lesson adapts CC BY-SA material and is shared under CC BY-SA 4.0.