Codementor Events

Minimalist Web Development Tutorial – Part 1: HTML over HTTP

Published Nov 02, 2023Last updated Jan 12, 2024
Minimalist Web Development Tutorial – Part 1: HTML over HTTP

Imagine you're in the kitchen, about to whip up a meal. You could take the easy way out: grab something frozen, pop it in the microwave, and call it a day. But is that something to write home about? Is that a meal you can genuinely call your own? No, my friends. That's equivalent to using a web framework – a shortcut that leaves you with something bland and forgettable, sitting heavy on your stomach.

Now, consider the alternative. Picture yourself in that same kitchen, but this time, you're starting from scratch. You've got fresh ingredients, and you're crafting a dish that's uniquely yours. It takes time, it takes effort, but at the end of the day, it's something you can take pride in. The glory of the finished dish is yours alone. That's the beauty of minimalist web development – it's the difference between a microwave dinner and a gourmet meal.

moss-resume.png

In this tutorial, we will construct a minimalist website: a résumé suitable for customizing and printing. For example:

We are highly referencing and deep-linking the MDN Web Docs, the best documentation for web standards.


Repo

First thing we're going to do is to initialize a GitHub repo for our project: https://github.com/adamrmoss/min-web-dev.

You should create your own GitHub repo as you follow along to create your own résumé website.

create-repo.png
clone-repo.png


HTML Skeleton

Every website begins life as an HTML page. This is the template I use whenever I'm spinning up any new web project:

index.html

<!doctype html>
<html lang="en">

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <meta name="description" content="DESCRIPTION" />
    <title>TITLE</title>
    <link href="STYLESHEET.css" rel="stylesheet">
    <link rel="icon" href="ICON.png" />
    <script defer="defer" src="SCRIPT.js"></script>
</head>

<body>
    <main>
    </main>
</body>

</html>

Note that we are linking the stylesheet and script files in the <head> element. We use <script defer="defer" > so that the remaining HTML elements continue to load while the browser fetches the script file.


HTML Content for Résumé

Our ficticious persona for the example résumé is Amir Lewis, a software developer from Atlanta. Here is the markup for his résumé; as you follow along, please update the content to reflect your own education, expertise, and work history:

index.html

<!doctype html>
<html lang="en">

<head>
    <meta charset="utf-8" />
    <link rel="icon" href="./resume-icon.png" />
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <meta name="description" content="Amir Lewis Resume" />
    <title>Amir Lewis</title>
</head>

<body>
    <header>
        <h1>Amir Lewis</h1>
        <i>
            Enthusiastic <b>Full-Stack Web Developer</b> with a passion
            for crafting elegant and efficient web solutions.
        </i>
    </header>
    <main>
        <section>
            <h2>Education</h2>
            <div>
                <table>
                    <tbody>
                        <tr>
                            <td>2020</td>
                            <td>B.S. Computer Science</td>
                            <td>Howard University</td>
                        </tr>
                        <tr>
                            <td>2016</td>
                            <td>High School Diploma</td>
                            <td>North Atlanta High School</td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </section>
        <section>
            <h2>Technical Experience</h2>
            <div>
                <table>
                    <tbody>
                        <tr>
                            <td>C++</td>
                            <td>4 years</td>
                        </tr>
                        <tr>
                            <td>.NET</td>
                            <td>2 years</td>
                        </tr>
                        <tr>
                            <td>SQL Server</td>
                            <td>2 years</td>
                        </tr>
                        <tr>
                            <td>Javascript</td>
                            <td>2 years</td>
                        </tr>
                        <tr>
                            <td>HTML</td>
                            <td>2 years</td>
                        </tr>
                        <tr>
                            <td>React</td>
                            <td>1 year</td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </section>
        <section>
            <h2>Work History</h2>
            <div>
                <article>
                    <header>
                        <div>January 2021 - Present</div>
                        <div>Full-Stack Web Developer</div>
                        <div>Tech Solutioneering, Inc.</div>
                    </header>
                    <div>
                        <ul>
                            <li>
                                Worked directly with clients to provide custom
                                solution development
                            </li>
                            <li>
                                Developed and maintained scalable web
                                applications, using React on the front-end and
                                ASP.NET MVC on the back-end
                            </li>
                            <li>
                                Managed SQL Server databases and employed
                                Sequelize for efficient data handling
                            </li>
                            <li>
                                Collaborated with cross-functional teams and
                                participated in Agile development methodologies
                                using Jira
                            </li>
                        </ul>
                    </div>
                </article>
                <article>
                    <header>
                        <div>June 2020 - December 2020</div>
                        <div>Junior Developer</div>
                        <div>WebDev Co.</div>
                    </header>
                    <div>
                        <ul>
                            <li>
                                Assisted in front-end and back-end development
                                using React, Node.js, and MongoDB
                            </li>
                            <li>
                                Engaged in Git-based version control,
                                participated in code reviews, and used Jira for
                                project management
                            </li>
                            <li>
                                Contributed to the design and development of
                                web applications, working closely with
                                experienced developers
                            </li>
                        </ul>
                    </div>
                </article>
                <article>
                    <header>
                        <div>January 2020 - May 2020</div>
                        <div>Electrical Engineer Intern</div>
                        <div>Atlanta PowerTech</div>
                    </header>
                    <div>
                        <ul>
                            <li>
                                Assisted senior engineers in electrical design
                                and testing of power distribution systems
                            </li>
                            <li>
                                Conducted research on energy efficiency and
                                contributed to the development of sustainable
                                energy solutions
                            </li>
                            <li>
                                Gained hands-on experience in electrical
                                engineering practices and safety standards
                            </li>
                        </ul>
                    </div>
                </article>
                <article>
                    <header>
                        <div>September 2017 - December 2019</div>
                        <div>Electrical Engineering Lab Assistant</div>
                        <div>Howard University</div>
                    </header>
                    <div>
                        <ul>
                            <li>
                                Assisted students in the electrical engineering
                                lab, providing guidance on experiments and
                                equipment usage
                            </li>
                            <li>
                                Helped maintain lab equipment and ensured a
                                safe and organized environment for students
                            </li>
                        </ul>
                    </div>
                </article>
                <article>
                    <header>
                        <div>May 2014 - August 2017</div>
                        <div>Ride Operator</div>
                        <div>Six Flags</div>
                    </header>
                    <div>
                        <ul>
                            <li>
                                Operated amusement park rides, ensuring visito
                                safety and enjoyment
                            </li>
                            <li>
                                Developed strong communication and teamwork
                                skills during high-demand periods
                            </li>
                        </ul>
                    </div>
                </article>
            </div>
        </section>
    </main>
</body>

</html>

A minimalist website uses semantic elements such as <main>, <article>, <section>, and <header>. This practice makes the HTML more readable and aids with accessibility.

Note also that we use <ol>, <ul>, and <table> only for data that is truly list- or table-structured.

Beginners may

We will be formatting the webpage using CSS in a later segment of this tutorial. For now, we will be looking at the page with the browser's default formatting.


Serving the page over HTTP

To actually view the website in a browser, it needs to be served over HTTP. We will be using Node.js to give us some command-line tools for developing our webapp. Customize the following package.json to suit your own résumé and repo:

package.json

{
    "name": "min-web-dev",
    "author": {
        "name": "Adam R Moss",
        "email": "adamrmoss@gmail.com"
    },
    "description": "An example résumé developed as a minimalist website",
    "version": "0.0.1",
    "homepage": "https://github.com/adamrmoss/min-web-dev",
    "repository": {
        "type": "git",
        "url": "https://github.com/adamrmoss/min-web-dev.git"
    },
    "license": "MIT",
    "devDependencies": {
        "serve": "14.x"
    },
    "scripts": {
        "start": "npx serve public"
    }
}

Notice the entry we created in devDependencies for serve. This npm package is a simple web server for hosting our static website. Now that the package.json is in place, run npm install from the command-line. All the dependencies will be installed to node_modules.

install-dependencies.png

When installation is complete, launch the web server with npm start.

serve.png

You'll see that the website is now hosted at http://localhost:3000, which is the loopback IP address 127.0.0.1 on port 3000. HTTP is normally hosted over port 80 but our development server is hosting on 3000 in order to avoid conflict.


Up Next...

unstyled-resume.png

With just our HTML markup in place, our résumé is recognizable but lacking style. In Part 2, we will build a stylesheet from scratch.

Discover and read more posts from Adam R Moss
get started
post commentsBe the first to share your opinion
Nikola Sormaz
10 days ago

Awesome.You described it in great detail and made it short.
https://www.gamecentar.rs/racunari-i-komponente/monitori.html

James Mary
5 months ago

The specialists of this service are knowledgeable about many topics, so it will be easy for them to write any essay.
https://apkvogue.com/dead-trigger-2-mod-apk/

IslaLucy
5 months ago

Each thing explain in detail. Thanks for sharing
https://www.gamecentar.rs/pc-gaming/tastature.html

Show more replies