🟫 ClodHost beta
Sign In
🎉 All services free during beta! 🎉 All services free during beta!

Building Your First Website

Create a complete multi-page website with navigation, styling, and responsive design - all by describing what you want.

Reading time: 15 min Difficulty: Beginner
View examples as:
Ask Claude Manual Code

Table of Contents

Planning Your Website

Before you start building, think about what pages you need and how they connect. A typical website includes:

Pro Tip

Start simple. You can always add more pages later. It's better to launch with 3 great pages than 10 mediocre ones.

Creating the Structure

Let's start by creating the basic structure for your website. Claude will set up the folder structure, HTML files, and basic styling.

Initial Website Setup

Example prompt:

"Create a modern website for a freelance photographer named Sarah Chen. I need a home page with a hero section, an about page, a portfolio gallery page, and a contact page. Use a dark theme with accent colors. Make it look professional and elegant."
<!-- Basic HTML structure -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Sarah Chen Photography</title>
    <link rel="stylesheet" href="css/style.css">
</head>
<body>
    <header>
        <!-- Navigation goes here -->
    </header>
    <main>
        <!-- Page content goes here -->
    </main>
    <footer>
        <!-- Footer goes here -->
    </footer>
</body>
</html>

A good navigation menu helps visitors find their way around your site. Let's create a navigation bar that appears on every page.

Navigation Setup

Example prompt:

"Add a sticky navigation bar to my website. It should have my logo on the left and navigation links (Home, About, Portfolio, Contact) on the right. On mobile, it should become a hamburger menu. Make sure the current page is highlighted in the nav."
<nav class="navbar">
    <a href="/" class="logo">Sarah Chen</a>

    <button class="mobile-menu-btn" aria-label="Menu">
        <span></span>
        <span></span>
        <span></span>
    </button>

    <ul class="nav-links">
        <li><a href="/" class="active">Home</a></li>
        <li><a href="/about">About</a></li>
        <li><a href="/portfolio">Portfolio</a></li>
        <li><a href="/contact">Contact</a></li>
    </ul>
</nav>

Styling with CSS

CSS brings your website to life. Let's add colors, fonts, and visual effects.

Custom Styling

Example prompt:

"Update the styling of my website. I want a dark background (#0a0a0a), clean white text, and gold accent color (#d4af37) for buttons and links. Use a modern sans-serif font. Add subtle hover effects to buttons and links."
/* Base styles */
:root {
    --bg-dark: #0a0a0a;
    --text-light: #ffffff;
    --accent: #d4af37;
}

body {
    background: var(--bg-dark);
    color: var(--text-light);
    font-family: 'Inter', sans-serif;
}

a {
    color: var(--accent);
    transition: opacity 0.2s;
}

a:hover {
    opacity: 0.8;
}

.button {
    background: var(--accent);
    color: var(--bg-dark);
    padding: 12px 24px;
    border-radius: 6px;
    transition: transform 0.2s;
}

.button:hover {
    transform: translateY(-2px);
}

Making It Responsive

Your website needs to look great on phones, tablets, and desktops. Responsive design adjusts the layout based on screen size.

Responsive Breakpoints

Example prompt:

"Make my website fully responsive. On mobile, stack everything vertically. On tablets, use a 2-column layout for the portfolio. On desktop, use 3 columns. The navigation should become a hamburger menu on screens smaller than 768px."
/* Mobile first approach */
.portfolio-grid {
    display: grid;
    gap: 20px;
    grid-template-columns: 1fr;
}

/* Tablet */
@media (min-width: 768px) {
    .portfolio-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .mobile-menu-btn {
        display: none;
    }
}

/* Desktop */
@media (min-width: 1024px) {
    .portfolio-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

Adding Content Pages

Now let's add meaningful content to each page.

About Page

Example prompt:

"Create an about page for Sarah Chen. She's been a photographer for 10 years, specializing in portrait and wedding photography. Include a professional headshot placeholder, her story, and a list of awards she's won. Add a call-to-action button to book a session."
<section class="about-hero">
    <div class="about-content">
        <img src="/images/headshot.jpg" alt="Sarah Chen">
        <div>
            <h1>About Sarah</h1>
            <p>With over a decade behind the lens...</p>
        </div>
    </div>
</section>

<section class="awards">
    <h2>Awards & Recognition</h2>
    <ul>
        <li>Best Portrait Photographer 2024</li>
        <li>Wedding Photography Excellence Award</li>
    </ul>
</section>

Portfolio Gallery

Example prompt:

"Create a portfolio page with a filterable image gallery. Categories: All, Portraits, Weddings, Events. When I click an image, it should open in a lightbox modal. Use placeholder images for now (I'll replace them later)."
<div class="portfolio-filters">
    <button class="filter-btn active" data-filter="all">All</button>
    <button class="filter-btn" data-filter="portraits">Portraits</button>
    <button class="filter-btn" data-filter="weddings">Weddings</button>
</div>

<div class="portfolio-grid">
    <div class="portfolio-item" data-category="portraits">
        <img src="/images/portrait-1.jpg" alt="Portrait">
    </div>
    <!-- More items... -->
</div>

Contact Forms

Let visitors get in touch with you through a contact form.

Contact Form Setup

Example prompt:

"Create a contact page with a form that collects name, email, phone (optional), event type (dropdown: Portrait, Wedding, Corporate, Other), preferred date (date picker), and message. When submitted, send me an email at [email protected]. Show a success message after submission."
<form class="contact-form" action="/api/contact" method="POST">
    <div class="form-group">
        <label for="name">Name *</label>
        <input type="text" id="name" name="name" required>
    </div>

    <div class="form-group">
        <label for="email">Email *</label>
        <input type="email" id="email" name="email" required>
    </div>

    <div class="form-group">
        <label for="event">Event Type *</label>
        <select id="event" name="event" required>
            <option value="">Select...</option>
            <option value="portrait">Portrait</option>
            <option value="wedding">Wedding</option>
        </select>
    </div>

    <button type="submit">Send Message</button>
</form>
Email Setup

Check out our Sending Emails & SMS tutorial for detailed instructions on setting up email delivery for your contact form.

Going Live

Your website is built on ClodHost, so it's already live! Here's how to customize it further:

Custom Domain Setup

Example prompt:

"I want to use my custom domain sarahchenphotography.com for this website. What DNS settings do I need to configure? Also set up SSL so it's secure."
# DNS Records to Add

Type: A
Host: @
Value: [Your ClodHost server IP]

Type: CNAME
Host: www
Value: yoursubdomain.clodhost.com

# SSL is automatically configured
# once DNS propagates (usually 1-24 hours)
DNS Propagation

After changing DNS settings, it can take anywhere from a few minutes to 48 hours for the changes to propagate worldwide. Be patient!

What's Next?

Now that you have a website, consider: