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.
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.
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
.
When installation is complete, launch the web server with npm start
.
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...
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.
Awesome.You described it in great detail and made it short.
https://www.gamecentar.rs/racunari-i-komponente/monitori.html
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/
Each thing explain in detail. Thanks for sharing
https://www.gamecentar.rs/pc-gaming/tastature.html