Code the basics. Build with WordPress. Get paid.
Learn how websites work with HTML, CSS and JavaScript, then master WordPress. You'll cover installing, themes, the block editor, Elementor, plugins, WooCommerce, customization, speed, security, launching and maintenance. Finish with live projects and a plan to land web clients.
/* style.css — child theme */
/*
Theme Name: Bakehouse Child
Template: astra
*/
// functions.php — load parent + child styles
add_action( 'wp_enqueue_scripts', function () {
wp_enqueue_style( 'parent', get_template_directory_uri() . '/style.css' );
} );
From HTML basics to customizing WordPress safely. The skills clients pay for most.
Your 7-day journey
Days 1–3 build your coding foundation. Days 4–7 go deep on WordPress, from first install to client handover.
Everything a WordPress web freelancer needs
The course
7 days of lessons with code, WordPress walkthroughs and hands-on builds.
ToolCode playground
Test HTML and CSS instantly. It's handy for WordPress Custom CSS too.
90 templatesTemplates & snippets
Proposals, quotes, WordPress checklists, child theme and functions.php snippets, and client emails.
StrategyLand web clients
WordPress services to sell, the makeover pitch, pricing, care plans and scope control.
Q&A bankInterview prep
28 web dev and WordPress questions with sample answers.
ChecklistTasks & 30-day plan
12 build assignments and a 30-day challenge you can tick off.
The combination clients actually hire for
WordPress runs a large share of all websites, and small businesses love it because they can edit their own content. But the WordPress developers who earn more understand HTML, CSS and a little JavaScript and PHP. They can fix layouts, customize themes and solve problems a page builder can't.
Business sites, blogs, landing pages, online stores
Custom CSS, child themes, small functions
Speed, security, backups, updates
Monthly care plans = recurring income
WordPress is easy to start and easy to break
Anyone can install a theme. Professionals plan the site, choose reliable plugins, test on staging, keep backups, and hand over a site the client can't accidentally ruin. That care is what clients pay for.
Pro habits
- Back up before every change
- Few, well-maintained plugins
- Staging site for big updates
- Client owns domain and hosting
Never
- Use nulled (pirated) themes or plugins
- Edit the parent theme's files
- Update everything on a live site blindly
- Leave "admin" / weak passwords
"Learn the code underneath, and WordPress stops being a mystery and becomes your toolbox."
18 modules over 7 days
Open a lesson to read it. Code along in VS Code on Days 1–3, then build in a local WordPress site (LocalWP, free) on Days 4–7.
How the Web Works & HTML
Understand what happens when someone opens a website, set up your tools, and write your first pages in HTML.
1.1How the web works
| Term | Meaning |
|---|---|
| Domain | The website's address (mindorobakehouse.ph), rented yearly from a registrar |
| Hosting | The server computer that stores and serves the site's files |
| DNS | The internet's "phone book" connecting domains to servers |
| HTTPS / SSL | Encryption that shows the padlock in the browser; now expected on every site |
| Front end | What visitors see and click: HTML, CSS, JavaScript |
| Back end | Server, database and logic (PHP, Node.js, Python); WordPress handles much of this for you |
| CMS | Content Management System (WordPress, Shopify) that lets owners edit without code |
1.2The three languages of the front end
Structure
The content and its meaning: headings, paragraphs, images, links, forms.
Style
How it looks: colors, fonts, spacing, layout, responsiveness.
Behavior
What it does: menus that open, form checks, sliders, dynamic content.
Think of a house: HTML is the walls and rooms, CSS is the paint and furniture, JavaScript is the electricity and plumbing.
1.3Setting up your tools
- Code editor: Visual Studio Code (free). Useful extensions: Live Server, Prettier, and a spell checker.
- Browser: Chrome or Firefox with DevTools (right-click → Inspect) to see and test the code of any page
- Project folder:
index.html, acss/folder withstyle.css, ajs/folder, animages/folder - Version control: a free GitHub account (you'll use it on Day 4)
Open Inspect on any website, click an element, and change its CSS live. It's the fastest way to learn how others build layouts, and to debug your own.
2.1HTML page structure
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Mindoro Bakehouse | Custom Cakes in Calapan</title> <meta name="description" content="Custom birthday and wedding cakes in Calapan City."> <link rel="stylesheet" href="css/style.css"> </head> <body> <header>…</header> <main>…</main> <footer>…</footer> </body> </html>
The <head> holds information about the page (title, description, CSS links). The <body> holds what visitors see. The viewport meta tag is required for mobile-friendly pages.
2.2Essential HTML elements
| Element | Use |
|---|---|
<h1>–<h6> | Headings; one h1 per page, then h2, h3 in order |
<p> | Paragraph |
<a href=""> | Link |
<img src="" alt=""> | Image; alt describes it for screen readers and SEO |
<ul> / <ol> / <li> | Bulleted and numbered lists |
<button> | Clickable action |
<form>, <label>, <input>, <textarea> | Contact and order forms |
<header> <nav> <main> <section> <footer> | Semantic layout: tells browsers and search engines what each part is |
Indent nested elements. Always close tags. Use semantic elements instead of div everywhere. Give every image an alt and every input a label. Validate your HTML with the W3C validator.
Day 1 hands-on tasks
Set up
30 min- Install VS Code and Live Server
- Create a GitHub account
- Make a project folder with the standard structure
Inspect 3 websites
30 min- Open DevTools on 3 local business sites
- Find their
h1,navand images'alttext - Change a color live and screenshot it
HTML-only business page
90 min- Pick a practice business (bakery, clinic, resort)
- Write a semantic page: header, nav, hero, services, about, contact form, footer
- Validate it with the W3C validator
This becomes Project #1 on Day 2.
CSS & Responsive Design
Style pages, build layouts with Flexbox and Grid, and make everything work on phones.
3.1CSS basics
/* selector { property: value; } */
body { font-family: system-ui, sans-serif; color: #222; line-height: 1.6; }
h1 { font-size: 2.5rem; }
.btn { background: #6b3fd4; color: #fff; padding: 12px 20px; border-radius: 8px; }
#order { scroll-margin-top: 80px; }
- Selectors: element (
h1), class (.btn, reusable), id (#order, unique) - Units:
pxfor fixed sizes,remfor text,%andvwfor widths - Colors: hex (
#6b3fd4),rgb(),hsl() - The cascade: later rules and more specific selectors win. Keep specificity low by using classes.
3.2The box model & spacing
Every element is a box: content → padding (inside space) → border → margin (outside space).
*, *::before, *::after { box-sizing: border-box; } /* widths include padding + border */
.card { padding: 24px; border: 1px solid #ddd; margin-bottom: 16px; }
Use a spacing scale (4, 8, 16, 24, 32, 48, 64 px) so the design feels consistent.
3.3Layout with Flexbox & Grid
Flexbox: one direction
.nav {
display: flex;
justify-content: space-between;
align-items: center;
gap: 16px;
}Great for navbars, button rows, centering.
Grid: rows and columns
.cards {
display: grid;
grid-template-columns:
repeat(auto-fit, minmax(240px, 1fr));
gap: 24px;
}Great for card grids, galleries, page layouts.
Practice with the free games Flexbox Froggy and Grid Garden.
4.1Responsive, mobile-first design
Most visitors to local business sites use phones. Design for small screens first, then add styles for bigger screens.
.cards { display: grid; gap: 16px; } /* phone: 1 column */
@media (min-width: 700px) {
.cards { grid-template-columns: 1fr 1fr; } /* tablet: 2 columns */
}
@media (min-width: 1024px) {
.cards { grid-template-columns: repeat(3, 1fr); } /* desktop: 3 */
}
img { max-width: 100%; height: auto; }
- Test with DevTools' device toolbar (Ctrl+Shift+M) at 360, 768 and 1280 px
- Tap targets at least 44 px tall; text at least 16 px
- No sideways scrolling on phones
4.2Design basics for developers
Visual rules
- 2 fonts max: one for headings, one for body (Google Fonts)
- 1 main color, 1 accent, plus neutrals
- Strong contrast for readability
- Generous white space
- Consistent buttons and spacing
A business homepage that converts
- Hero: what you do, where, and one clear button
- Services or products
- Proof: reviews, photos, numbers
- About / why choose us
- Call to action + contact info and map
Plan first: sketch a wireframe on paper or in Figma (free), then code.
Day 2 hands-on tasks
Style your business page
120 min- Add a CSS file to your Day 1 page
- Build the nav with Flexbox and services with Grid
- Make it mobile-first with 2 breakpoints
- Test at 360, 768 and 1280 px
Project #1: responsive landing page.
Clone a section
45 min- Pick a hero or pricing section from a site you like
- Rebuild it from scratch using your own text and colors
- Compare side by side in DevTools
JavaScript Basics & Interactivity
Add behavior: mobile menus, form checks, simple dynamic content. Use AI as a helper, not a crutch.
5.1JavaScript fundamentals
const shopName = "Mindoro Bakehouse"; // text (string)
let cakesSold = 12; // number (let can change)
const flavors = ["ube", "mango", "choco"]; // array (list)
function greet(name) { // function
return "Hi " + name + "!";
}
if (cakesSold > 10) { // condition
console.log("Busy day!");
}
for (const f of flavors) { // loop
console.log(f);
}
Open DevTools → Console to run and test JavaScript. Use const by default and let when the value changes.
5.2The DOM: changing the page
const btn = document.querySelector(".menu-btn");
const menu = document.querySelector(".menu");
btn.addEventListener("click", () => {
menu.classList.toggle("open"); // show/hide the menu
const open = menu.classList.contains("open");
btn.setAttribute("aria-expanded", open);
});
Select an element → listen for an event (click, submit, input) → change something (class, text, style). This pattern covers most small-business interactivity.
6.1Common interactive features
Mobile menu
A hamburger button that toggles the nav
Form validation
Check required fields and email format before submitting
FAQ accordion
Use <details> (no JS needed) or toggle classes
Tabs & filters
Show or hide product categories
Dynamic content
Render a list of products from an array
Fetch data
fetch() from an API or JSON file
Contact forms need somewhere to send data. For static sites use a form service (Formspree, Netlify Forms, Web3Forms); WordPress uses form plugins. Snippets are on the Templates page.
6.2Debugging & using AI responsibly
- Read the error in the Console. It usually names the file and line.
- Use
console.log()to check values step by step - Check for typos, missing brackets, and wrong class names in selectors
- Search the exact error message; MDN Web Docs is the best reference
AI can explain code, suggest fixes and generate snippets. You must understand, test and be responsible for every line you deliver. Never paste client passwords, API keys or private data into AI tools. If you can't explain it, don't ship it.
After this course, the next step is learning a framework (React, Vue or Astro), Git workflows, and a bit of back end.
Day 3 hands-on tasks
Mobile menu
45 minAdd a working, accessible hamburger menu to Project #1.
Validated contact form
60 min- Build a form with name, email, message
- Show friendly errors with JavaScript
- Connect it to a free form service and test
Menu / product list from data
60 minStore 6 products in an array and render them as cards with JavaScript. Add a category filter.
Project #2: interactive mini site.
WordPress Foundations
What WordPress is, how to install it, and how to find your way around the dashboard, content, themes and users.
7.1What is a CMS? WordPress.org vs WordPress.com
A CMS (Content Management System) lets people create and edit website content without writing code. WordPress is the most popular CMS. It's built with PHP and stores content in a MySQL/MariaDB database.
| WordPress.org (self-hosted) | WordPress.com (hosted service) | |
|---|---|---|
| What it is | Free software you install on your own hosting | A company that hosts WordPress sites for you |
| Control | Full: any theme, any plugin, custom code | Depends on the plan; lower plans are limited |
| Costs | Hosting + domain (+ premium plugins if needed) | Monthly/yearly plan |
| Freelance work | Most client projects | Some simple sites |
In this course, "WordPress" means self-hosted WordPress.org.
7.2Installing WordPress
Practice: LocalWP (free)
- Download LocalWP and install it
- Click "Create a new site" and name it
- Choose "Preferred" environment
- Set an admin username (not "admin"), a strong password and an email
- Click "WP Admin" to open the dashboard
Live: hosting one-click install
- Buy hosting and point the domain to it
- Use the host's WordPress installer (cPanel Softaculous or a custom panel)
- Turn on free SSL (HTTPS)
- Log in at
yourdomain.com/wp-admin
wp-admin/ and wp-includes/ hold the core (never edit them). wp-content/ holds themes, plugins and uploads. wp-config.php holds database settings and keys. Keep it private.
7.3Dashboard tour & first settings
| Menu | What it's for |
|---|---|
| Posts | Blog articles (dated, with categories and tags) |
| Media | Images, PDFs and videos you upload |
| Pages | Timeless pages: Home, About, Services, Contact |
| Appearance | Themes, Site Editor or Customizer, menus, widgets |
| Plugins | Add features (forms, SEO, security…) |
| Users | Accounts and roles |
| Settings | Site title, time zone, reading, permalinks |
Set these on every new site
- General: site title, tagline, time zone (e.g., Manila), date format
- Permalinks: "Post name" for clean URLs like
/about/ - Reading: set a static homepage and a Posts page; keep "Discourage search engines" off for live sites
- Discussion: turn off comments if the client doesn't need them
- Delete the sample post, sample page and unused themes and plugins
8.1Content: posts, pages, categories, media
Posts vs pages
- Posts: news, blog, updates; organized by categories and tags; appear in feeds
- Pages: static content; can have parent and child pages (Services → Aircon Cleaning)
Media library habits
- Resize and compress before uploading (e.g., max 1920 px wide, WebP)
- Descriptive file names and alt text
- Don't upload huge PDFs or videos. Embed videos from YouTube or Vimeo.
8.2The block editor (Gutenberg)
WordPress's built-in editor builds pages from blocks: paragraph, heading, image, buttons, columns, group, cover, and more.
- Press
/to quickly add a block (e.g.,/heading) - Group, Columns, Row and Stack blocks create layouts
- Patterns: ready-made sections (hero, pricing, testimonials). Insert, then edit.
- Synced patterns: edit once, update everywhere (e.g., a call-to-action banner)
- Use the List View to see and select nested blocks
- Check responsive previews (desktop/tablet/mobile) before publishing
9.1Themes: block themes vs classic themes
| Block theme | Classic theme | |
|---|---|---|
| Examples | Twenty Twenty-Four/Five, Ollie, Kadence Blocks-based | Astra, GeneratePress, Kadence, OceanWP |
| Design editing | Site Editor: templates, header, footer, styles all with blocks | Customizer + widgets + page builder |
| Global styles | theme.json and the Styles panel | Theme options panel |
Pick a lightweight, well-reviewed, regularly updated theme with good support. Check the demo on mobile and in PageSpeed Insights. Avoid themes that bundle dozens of plugins or require a specific builder you don't want.
9.2Users & roles
| Role | Can do | Give it to |
|---|---|---|
| Administrator | Everything, including plugins, themes and users | Owner + lead developer only |
| Editor | Manage all posts and pages | Client staff who update content |
| Author | Publish their own posts | Regular writers |
| Contributor | Write drafts, can't publish | Guest writers |
| Subscriber | Manage their profile | Members, customers |
Principle of least privilege: give each person the lowest role they need.
Day 4 hands-on tasks
Install & configure
45 min- Install LocalWP and create a site
- Apply the first-settings checklist
- Create an Editor user for a "client"
Block editor practice
75 min- Build a Home page with patterns: hero, services, testimonials, call to action
- Create one synced pattern and reuse it
- Check tablet and mobile previews
Theme test
40 minInstall one block theme and one classic theme. Edit the header and footer in each. Write 3 pros and cons.
Building Sites in WordPress
Plan and build a full business site with a page builder, essential plugins, forms and menus, plus an online store with WooCommerce.
10.1Planning a WordPress build
- Set global colors and fonts first so every page stays consistent
- Build the header, footer and reusable sections before individual pages
- Collect all content (text, photos, logo) before designing
10.2Page builders: Elementor vs the block editor
Elementor (free + Pro)
- Visual drag-and-drop with containers (Flexbox/Grid) and widgets
- Site settings: global colors, fonts, buttons
- Pro: Theme Builder (headers, footers, templates), forms, popups
- Responsive controls per device
- Popular with clients and agencies
Block editor / Site Editor
- Built into WordPress; no extra plugin
- Usually lighter and faster
- Block themes let you edit the whole site
- Block plugins (Kadence Blocks, Spectra, GenerateBlocks) add advanced layouts
Use containers, not nested sections. Keep padding consistent with global spacing. Save sections as templates. Don't stack multiple builders on one site. Check every page in tablet and mobile view, since builders often need responsive tweaks.
11.1Essential plugins (and plugin rules)
| Need | Common choices |
|---|---|
| Forms | WPForms Lite, Fluent Forms, Contact Form 7 |
| SEO | Rank Math or Yoast SEO (choose one) |
| Security | Wordfence, Solid Security |
| Backups | UpdraftPlus, or host backups |
| Caching / speed | Host cache, LiteSpeed Cache (LiteSpeed servers), WP Rocket (paid) |
| Anti-spam | Antispam Bee, Akismet, form CAPTCHA/Turnstile |
| Email delivery | WP Mail SMTP (so form emails don't land in spam) |
| Images | An image optimization plugin, or optimize before upload |
Install only what you need. Check active installs, rating, last update and WordPress version compatibility. Never use nulled plugins. Delete (not just deactivate) plugins you don't use.
11.2Menus, headers, footers & forms
- Menus: Appearance → Menus (classic) or the Navigation block (block themes); keep the main menu to 5–7 items
- Header: logo, menu, one call-to-action button (Call / Book)
- Footer: contact info, hours, map link, social links, legal pages
- Forms: name, email/phone, message; send to the client's email and a backup; add anti-spam; test delivery with WP Mail SMTP
- Legal pages: Privacy Policy (WordPress has a starter), Terms if selling
12.1WooCommerce: online stores
- Install WooCommerce and run the setup wizard (store address, currency, industry)
- Products: simple and variable (sizes/colors), prices, SKUs, stock, images, categories
- Payments: set up the gateways the client uses (e.g., PayPal, Stripe, local gateways that support PH wallets and cards)
- Shipping zones and rates; taxes if needed
- Pages: Shop, Cart, Checkout, My Account (created automatically)
- Emails: customize order notification emails
- Test a full order in test or sandbox mode, then refund it
Stores need extra care: SSL, backups, regular updates, and faster hosting.
12.2Other common site features
Bookings
Appointment plugins, or embed Calendly
Multilingual
Polylang, WPML, TranslatePress
Galleries & sliders
Built-in Gallery block; keep sliders light or skip them
Memberships / courses
LMS and membership plugins (bigger projects)
Events
Event calendar plugins
Popups & lead magnets
Elementor Pro popups or lightweight popup plugins
Day 5 hands-on tasks
Business site in WordPress
180 min- Choose a practice client (clinic, resort, restaurant)
- Set global styles; build header and footer
- Build Home, About, Services and Contact with Elementor or blocks
- Add a working form and menus
Project #3: WordPress business site.
Plugin stack
30 minInstall and configure forms, SEO, security, backups and anti-spam. Document each plugin and why in a "site stack" sheet.
WooCommerce mini store
90 min- Add 6 products (at least 1 variable)
- Set up shipping zones and a test payment method
- Place and refund a test order
Project #4: WooCommerce store.
Customize, Speed Up & Secure WordPress
Customize safely with CSS, child themes and a little PHP. Then make sites fast, findable, secure and easy to move.
13.1Custom CSS in WordPress
- Where to add it: Customizer → Additional CSS (classic), Styles → Additional CSS (block themes), Elementor custom CSS (Pro), or a child theme's
style.css - Use DevTools to find the right selector, test the change live, then paste it
- Add your own CSS class to a block or widget (Advanced → CSS class) to target it safely
/* Make the header button stand out */
.site-header .cta-btn { background:#1f6fb8; color:#fff; border-radius:999px; }
/* Hide an element on mobile only */
@media (max-width: 767px) { .hide-mobile { display:none; } }
13.2Child themes, functions.php & hooks
A child theme inherits everything from a parent theme but keeps your customizations safe when the parent theme updates. Never edit the parent theme's files.
/* wp-content/themes/astra-child/style.css */
/*
Theme Name: Astra Child
Template: astra
*/
<?php
// wp-content/themes/astra-child/functions.php
add_action( 'wp_enqueue_scripts', function () {
wp_enqueue_style( 'child-style', get_stylesheet_uri() );
} );
- Hooks let you add or change behavior without editing core files: actions run code at a moment (
wp_footer), filters change a value (excerpt_length) - For small snippets, a code-snippets plugin is safer than editing functions.php directly
- A PHP error can take the site down. Test on LocalWP or staging, and keep FTP/file-manager access ready.
13.3Custom post types & custom fields (intro)
When a site has structured content like properties, rooms, team members, menus or events, use a custom post type with custom fields (price, bedrooms, location) instead of typing it into a page by hand.
- Tools: ACF (Advanced Custom Fields), Pods, Meta Box, or register in code
- Display with the theme's templates, a Query Loop block, or builder dynamic tags
- Clients get a simple form to fill in, and the design stays consistent
14.1Speed optimization
Biggest wins
- Good hosting (fast server, recent PHP version, server caching)
- A lightweight theme; fewer plugins
- Compressed, correctly sized images (WebP), lazy loading
- Page caching plus a CDN
- Limit fonts, sliders, popups and third-party scripts
Measure
- PageSpeed Insights: test mobile, aim to pass Core Web Vitals
- Test key pages: home, a service page, a product page
- Record before/after scores for your portfolio
- Retest after adding plugins
14.2SEO setup in WordPress
- Permalinks set to "Post name"; search engine visibility ON
- SEO plugin: set titles and meta descriptions, the sitemap, and the social share image
- One H1 per page; logical headings; alt text on images
- Local businesses: LocalBusiness schema; NAP in footer; embedded map
- Connect Google Search Console and submit the sitemap; add Analytics
- When redesigning, keep URLs or add 301 redirects (the Redirection plugin)
15.1Security hardening
Must-do
- Keep core, themes and plugins updated (after backups)
- Strong unique passwords; no "admin" username
- Two-factor authentication for admins
- Limit login attempts; security plugin or host firewall
- HTTPS everywhere
- Remove unused themes, plugins and users
Also good
- Correct user roles (least privilege)
- Disable file editing in the dashboard (
DISALLOW_FILE_EDIT) - Off-site backups (not only on the same server)
- Uptime monitoring
- Never install nulled or pirated software
15.2Backups, staging, migration & hosting
- Backups = database + files. Schedule daily or weekly depending on the site; store copies off-site; test a restore at least once.
- Staging: a copy of the live site for testing updates and redesigns (many hosts offer one-click staging)
- Migration: move sites between hosts or from LocalWP to live using a migration plugin (e.g., Duplicator, All-in-One WP Migration, WPvivid) or the host's migration tool. Then update URLs, clear caches and test.
- Domains & DNS: point the domain's A record to the new host; register domains in the client's name
- Hosting choice: managed WordPress or quality shared hosting with SSL, backups, staging, a recent PHP version and good support
Day 6 hands-on tasks
Child theme + custom CSS
60 min- Create a child theme for your classic theme
- Add 3 CSS customizations
- Add one small snippet (e.g., change the excerpt length) with a snippets plugin
Speed + SEO pass
60 min- Run PageSpeed on 3 pages of Project #3
- Optimize images, caching and plugins
- Configure the SEO plugin and sitemap
- Record before/after scores
Backup, restore, migrate
60 min- Back up your site with UpdraftPlus
- Break something on purpose, then restore
- Migrate a LocalWP site to a free or practice host (or export a migration package)
Launch, Maintain & Get Clients
Launch sites professionally, hand them over, troubleshoot and maintain them, and turn your skills into paying projects and care plans.
16.1Launch checklist
- Content proofread; placeholders removed; favicon and logo set
- Forms tested with real messages (and received)
- Mobile, tablet, desktop; Chrome, Safari, Firefox
- Search engine visibility ON; sitemap submitted; Analytics connected
- HTTPS works; www/non-www redirect; no mixed-content warnings
- Speed checked; caching on
- Security plugin, backups scheduled, admin 2FA
- Legal pages present; cookie notice if needed
16.2Handover & client training
- Give the client an Editor account (Administrator only if they insist, and explain the risks)
- Record short Loom videos: editing a page, adding a post, changing images, updating prices
- Handover document: logins, where things are, renewal dates, who to call
- Lock the design: use templates, global styles, and limit what editors can change
17.1Troubleshooting common WordPress problems
| Problem | First steps |
|---|---|
| White screen / "critical error" | Check the admin email for WordPress's recovery link; enable WP_DEBUG_LOG; rename the last updated plugin's folder via FTP/file manager |
| Layout broke after an update | Clear all caches; check for plugin conflicts (deactivate one by one on staging); roll back if needed |
| Forms not sending | Install WP Mail SMTP; check spam folders; test with a different email |
| Changes not showing | Clear plugin, host, CDN and browser caches |
| Hacked site / spam links | Restore a clean backup, update everything, change all passwords, scan with a security plugin, ask the host for help |
| Slow admin | Heavy plugins, low PHP memory, outdated PHP version; check with the host |
17.2Maintenance care plans
Basic
Monthly updates with backups, uptime and security monitoring, monthly report
Standard
Weekly updates, off-site backups, speed checks, 30–60 min of edits
Premium
Priority support, staging tests, more edit time, WooCommerce monitoring
Care plans turn one-time projects into monthly income, and clients love not worrying about their site.
17.3Running client projects
- Written scope, deposit before starting, content deadlines, and change requests for extras
- Weekly updates with a staging link
- Final files and admin access handed over after final payment
18.1Portfolio & packages
- Project #1: responsive landing page (HTML/CSS), live
- Project #2: interactive mini site (JavaScript)
- Project #3: WordPress business site
- Project #4: WooCommerce mini store
- Before/after speed scores and a short case study for each
- Your own portfolio site, built in WordPress or hand-coded
Starter site
1–3 pages, contact form, mobile-friendly, basic SEO
Business site
5–8 pages, blog, SEO setup, speed optimization, training video
Store
WooCommerce with products, payments, shipping, training
Day 7 hands-on tasks
Launch simulation
45 minRun the full launch checklist on Project #3 and fix every issue.
Handover package
45 min- Write a handover guide
- Record 2 short tutorial videos (editing a page, adding a post)
Portfolio site
90 minBuild or finish your portfolio with 4 projects, packages and a contact form, and put it live.
Capstone: makeover pitch
45 minPick a local business with an outdated WordPress site or no site. Present 3 problems, a homepage mockup, a package and a care plan in 5 minutes.
Code, WordPress snippets, documents & messages
Copy-paste code snippets, project documents and client messages. In documents and messages, replace every [bracket]. Names and numbers in samples are fictional.
HTML & CSS playground
Edit the code on the left and see the result on the right. JavaScript doesn't run here. It's perfect for testing CSS before pasting it into WordPress Additional CSS. Your code is saved in this browser.
How to land your first web development client
Websites are easy to sell when people can see them. Build real-looking projects, show a business what its site could be, and run every project with a clear scope.
Live projects + Clear packages + Reliable delivery = Web clients
Owners buy outcomes: more inquiries, bookings, sales and credibility. The website is the tool.
Tech talk
"I'll build you a responsive site with HTML5, CSS Grid and WordPress."
Business talk
"Customers will find your menu and book a table from their phone in 2 taps, and you can update prices yourself."
Web services beginners can sell
| Service | Who buys it | Deliverable | Starter difficulty |
|---|---|---|---|
| One-page landing page | Coaches, events, products, local shops | Responsive page with form and call to action | Easy |
| Small business website (4–6 pages) | Clinics, restaurants, resorts, services | WordPress or static site, contact form, SEO basics | Medium |
| Website maintenance / care plan | Anyone with a WordPress site | Updates, backups, security checks, small edits | Easy |
| Website fixes & edits | Owners with broken or outdated sites | Bug fixes, content updates, speed fixes | Easy–Medium |
| Convert a design to code | Designers and agencies | Figma → HTML/CSS or WordPress | Medium |
| Website redesign | Businesses with outdated sites | Modern, mobile-friendly rebuild with redirects | Medium |
| Shopify / WooCommerce setup | New online sellers | Store with products, payments, pages | Medium |
Landing pages and WordPress maintenance and edits. They're quick to deliver, easy for owners to understand, and maintenance becomes recurring monthly income. Agencies also hire junior WordPress developers and "web VAs" for edits and updates.
Your first-client game plan
Pick a lane
WordPress sites, hand-coded landing pages, or maintenance. Optionally pick a niche: restaurants, resorts, clinics, coaches.
Build 3 live projects
Landing page, interactive mini site, WordPress site, all online with real-looking content.
Your own site
A fast, clean portfolio site is your best sales page. Include packages and a contact form.
Profiles
Upwork, OnlineJobs.ph, LinkedIn, Fiverr with live links, not just screenshots.
Makeover pitches
Find businesses with outdated or no websites. Send 5 pitches a day with a quick mockup.
Warm network
Tell friends and family you build websites. Your first client is often someone you know.
Scope clearly
Written scope, timeline, 2 revision rounds, and a deposit before you start.
Offer a care plan
After launch, offer monthly maintenance. Recurring income plus referrals.
The "website makeover" method
Show a business owner a better version of their own website's first screen. It's hard to ignore.
What to check (on a phone)
- Does it load in under ~3 seconds?
- Is text readable without zooming?
- Is there a clear call-to-action button (call, book, order)?
- Is information outdated (prices, hours, 2019 promos)?
- Broken links, forms, or "Not secure" in the address bar?
- Do they have no website at all, only Facebook?
Good targets
- Restaurants, cafés and resorts with only a Facebook page
- Clinics, dentists, salons, gyms, tutorial centers
- Contractors and home services
- Local schools and churches, events
- Businesses with great reviews but a weak site
- Agencies needing overflow help
Pitch rules
- Compliment the business first
- Keep it to 3 problems, in business terms
- Attach one mockup image (a hero section in Figma/Canva/HTML)
- Never criticize their current developer
- Give a clear starting package and price range
- One follow-up, then move on; track everything
Get the website makeover pitch and other outreach templates.
Where web work is posted
Upwork
- Search: WordPress, landing page, Elementor, website fix, HTML/CSS, Shopify
- Start with small fixes and edits to earn reviews
- Include a live link to a similar project in every proposal
- Ask one smart question about their site
OnlineJobs.ph & LinkedIn
- Roles: WordPress developer, web VA, junior front-end developer
- Show your GitHub and portfolio site
- Agencies value reliability and communication as much as code
Fiverr & direct
- Narrow gigs: "I will build a responsive landing page", "I will fix WordPress errors"
- Clear packages by pages and features
- Local businesses via makeover pitches and referrals
How to price web projects
Fixed project price
Best for sites: clients like knowing the total. Price by pages and features.
Packages
Starter (1 page) · Business (5 pages) · Store. Easy to compare and choose.
Hourly
Fixes, edits, agency work and unclear scopes.
Monthly care plan
Updates, backups, security, small edits. Your recurring income.
Prices vary widely by country, client and complexity. Research current posts for similar projects. Always list what's included (pages, revisions, content, hosting, training) and what's extra, and don't forget recurring costs the client pays: domain, hosting, premium plugins.
Avoid scope creep
| Situation | What to do |
|---|---|
| "Can you just add a booking system?" | "Happy to! That's outside our current scope. I'll send a quick quote for it." |
| Client is late with content | Agree on content deadlines in the contract; the timeline moves with late content |
| Endless revisions | Include 2 rounds; additional rounds are billed hourly |
| Client disappears before final payment | Deposit upfront; launch or hand over files after final payment |
| "Make it pop" feedback | Ask for examples of sites they like and what exactly they like about them |
- "Build a full Amazon clone for $100"
- Huge unpaid test ("build our homepage first")
- Asks you to copy another company's site exactly
- Won't sign a scope or pay a deposit
- Asks you to use pirated themes or plugins
- Wants the domain registered under your name "for now"
- Asks you to pay for tools or hosting yourself
- Portfolio with screenshots only, no live links
- Starting without a written scope or deposit
- Promising custom features they can't build
- Editing live sites without a backup or staging
- Too many plugins; no update plan
- Forgetting mobile testing
- Disappearing after launch
25 tips to get hired for web projects
- Live links beat screenshots. Every portfolio item should be clickable.
- Make your own site excellent. Fast, mobile-perfect, clear packages.
- Mock up their hero section in your pitch. Visuals sell websites.
- Record a Loom walking through a redesign idea for their site.
- Pick a niche (resorts, clinics, restaurants) and build a demo site for it.
- Offer packages with clear page counts and features.
- Always take a deposit before starting.
- Use a staging site for changes. Never experiment on live sites.
- Back up before every update. It will save you one day.
- Test on real phones, not just DevTools.
- Hand over with a video tutorial so clients can edit their site.
- Register domains in the client's name. It builds trust.
- Answer the post's question in the first line of your proposal.
- Start with small fixes on Upwork to earn quick reviews.
- Keep a GitHub with clean commits and READMEs.
- Learn one page builder deeply (Elementor or the block editor).
- Offer maintenance to every client after launch.
- Check PageSpeed and accessibility before you deliver, and show the scores.
- Partner with designers, SEO and VA freelancers. They get website requests.
- Post build progress on LinkedIn or Facebook (before/after, tips).
- Write a clear timeline with dates for content, draft, revisions and launch.
- Under-promise features; over-deliver polish.
- Ask for a testimonial and a Google review at launch.
- Keep learning: after this course, add a framework (React or Astro) and more JavaScript.
- Ship something every week. Momentum builds skill and portfolio.
Web development & WordPress interviews
Beginner web interviews check fundamentals, your projects, and how you work with clients. Expect a small take-home or live task.
- Review their website and a few client sites
- Prepare to walk through 2 projects: what, why, how, challenges
- Refresh basics: semantic HTML, box model, Flexbox/Grid, media queries, DOM events
- Have your GitHub and live links ready
- Test screen sharing, mic and internet
- Think out loud on technical questions
- Say "I'm not sure, but here's how I'd find out" when needed
- Mention testing, backups and accessibility
- Ask about their stack, workflow and code review
- Build a responsive section from a screenshot or Figma
- Fix a broken layout or JavaScript bug
- Build a page in WordPress/Elementor
- Make a form with validation
- Improve a page's PageSpeed score
A 1–3 hour test is normal. Building their whole site for free is not.
28 web dev & WordPress questions with sample answers
Smart questions for the interviewer
- What platforms and tools does the team use (WordPress, Elementor, Git, frameworks)?
- How are projects scoped and handed to developers?
- Is there a staging environment and code review?
- What does a typical week look like?
- What would success look like in my first 30 days?
Sample
"Hi, I'm Nico, a beginner web developer focused on responsive landing pages and WordPress sites for small businesses. I've built three live projects: a hand-coded bakery landing page, an interactive menu site with JavaScript filters, and a WordPress site for a practice clinic. All of them are mobile-first and score well on PageSpeed. I communicate clearly, back up before changes, and I'm keen to learn your team's workflow."
Build your web + WordPress portfolio
Each assignment moves you toward 4 live projects and a portfolio site. Tick items off as you go. Progress is saved in this browser only.
The 12 tasks
Tools setup
VS Code with Live Server, GitHub, and LocalWP installed. Submit screenshots.
Semantic HTML page
A practice business page that passes the W3C validator.
Responsive landing page (Project #1)
Mobile-first with Flexbox and Grid; live on Netlify or GitHub Pages.
Interactive mini site (Project #2)
Mobile menu, validated form, and products rendered from JavaScript data.
WordPress install & settings
A LocalWP site with the first-settings checklist done and an Editor user created.
Block editor homepage
A homepage built with blocks and patterns, including one synced pattern.
WordPress business site (Project #3)
4+ pages with global styles, header and footer, a working form and menus.
WooCommerce store (Project #4)
6 products (1 variable), shipping, a test payment, and a test order placed and refunded.
Child theme & customization
A child theme with 3 CSS customizations and one PHP snippet.
Speed, SEO & security pass
Before/after PageSpeed scores, SEO plugin configured, security checklist done.
Backup, restore & migrate
Proof of a backup, a successful restore, and a migration (or migration package).
Portfolio + pitches
A live portfolio with 4 projects and packages, and 5 makeover pitches sent (or simulated).
Your 30-day action plan
Finish all 4 projects. Put your portfolio live with case studies and speed scores.
Profiles on 2–3 platforms. Packages, a care plan and a quote template ready.
Daily applications plus 5 makeover pitches a day. Offer WordPress fixes for quick wins.
Review results. Build one niche demo site. Keep learning PHP and JavaScript.
30-day challenge
Weekly tracker
| Week | Applications | Makeover pitches | Follow-ups | Replies | Calls | Clients |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 | ||||||
| 4 |
Every care plan client is recurring income. Build well, back up always, and look after your clients' sites like they're your own.
Learning, tools & platforms for web developers
Links open in a new tab. Free tiers and plans change, so check current terms.