<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Stel Clementine</title><description>Coding! Tutorials! Random thoughts! A handcrafted blog by a silly hacker girl.</description><link>https://stelclementine.com</link><item><title>The Basics of Web Development</title><link>https://stelclementine.com/posts/basics-of-webdev</link><guid isPermaLink="true">https://stelclementine.com/posts/basics-of-webdev</guid><description>So you want to make a website? A cute little website? What year do you think this is, 1999?</description><pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import FileTree from &apos;~/components/FileTree.astro&apos;;
import Image from &apos;~/components/ImageProse.astro&apos;&lt;/p&gt;
&lt;p&gt;So you want to make a website? A cute little website? What year do you think this is, 1999?&lt;/p&gt;
&lt;p&gt;Well, it may not be 1999 anymore (unfortunately...) but it&apos;s a damn good time to start building that &lt;strong&gt;website of your dreams&lt;/strong&gt;. Many people find the idea of &lt;em&gt;coding&lt;/em&gt; very intimidating, but I&apos;m here to tell you that it&apos;s actually never been easier to get started.&lt;/p&gt;
&lt;p&gt;Believe it or not, technology has advanced a lot since 1999. But basically all of the core ideas behind the World Wide Web remain the same. Let&apos;s dive into the first principles of web development to start your coding journey on great footing and armed with the power of love.&lt;/p&gt;
&lt;p&gt;:::neko_gun{align=right}
Get in, loser! We&apos;re gonna make your digital dreams come true!
:::&lt;/p&gt;
&lt;h2&gt;What is a Website?&lt;/h2&gt;
&lt;p&gt;Now you may find yourself full of exuberance and fear, hands frozen and dangling over your keyboard with a single bead of sweat forming atop your brow. You&apos;re ready to start coding your Deathnote fan site when a terrible realization enters your mind:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;What... what actually &lt;em&gt;is&lt;/em&gt; a website??? ;-;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;According to me making up random facts, 97% of internet users have wondered this exact same thing at some point in their life. You are not alone! What is it?? What am I looking at?? How do all of these words and colors and images show up on my screen??&lt;/p&gt;
&lt;p&gt;:::neko_shrug
I&apos;m just really, kinda mysterious, you know?
:::&lt;/p&gt;
&lt;h3&gt;We Have Websites at Home!&lt;/h3&gt;
&lt;p&gt;If you&apos;re a normal person (or really good at pretending to be), you&apos;re probably only familiar with typing in a URL (like &lt;code&gt;tumblr.com&lt;/code&gt;) and getting a website magically shipped to your browser from the bowels of the internet. We&apos;ll get into how that works later.&lt;/p&gt;
&lt;p&gt;For now just know that you can have websites that live on your own hard drive and open up in your browser like any other website would. You can develop websites locally (aka on your own computer) with just a browser and a text editor. So let&apos;s do that!&lt;/p&gt;
&lt;p&gt;:::note
It&apos;s &lt;em&gt;much&lt;/em&gt; easier to develop websites on non-mobile devices. If you only have a phone or a tablet, consider signing up for &lt;a href=&quot;https://nekoweb.org&quot;&gt;Nekoweb&lt;/a&gt; and using their browser-based editor.
:::&lt;/p&gt;
&lt;h3&gt;Your First HTML File&lt;/h3&gt;
&lt;p&gt;The simplest form of a website is just &lt;em&gt;a folder with one or more HTML files&lt;/em&gt;. Another word for folder is a &lt;em&gt;directory&lt;/em&gt;, and that&apos;s the term I&apos;ll be using from now on. To begin, let&apos;s create a directory called &lt;code&gt;my-website&lt;/code&gt; and then create a file called &lt;code&gt;index.html&lt;/code&gt; inside of it:&lt;/p&gt;
&lt;p&gt;&amp;lt;FileTree nodes={[
{ name: &apos;my-website&apos;, nodes: [
{ name: &apos;index.html&apos; },
]}
]}/&amp;gt;&lt;/p&gt;
&lt;p&gt;Inside of &lt;code&gt;index.html&lt;/code&gt;, paste the following code:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;!doctype html&amp;gt;
&amp;lt;html lang=&quot;en-US&quot;&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;meta charset=&quot;utf-8&quot; /&amp;gt;
    &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot; /&amp;gt;
    &amp;lt;title&amp;gt;My Website&amp;lt;/title&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;My Homepage&amp;lt;/h1&amp;gt;
    &amp;lt;p&amp;gt;Hi! Welcome to my homepage!&amp;lt;/p&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now go to your browser and click &lt;code&gt;File -&amp;gt; Open File&lt;/code&gt; and select your &lt;code&gt;index.html&lt;/code&gt; file. You should see the text from the file in the browser pane. You can change the text in &lt;code&gt;index.html&lt;/code&gt;, save the file, and then refresh the browser page to see your updates.&lt;/p&gt;
&lt;p&gt;import homepage from &apos;./homepage.png&apos;;&lt;/p&gt;
&lt;p&gt;&amp;lt;Image src={homepage} alt=&quot;Simple webpage with default browser styling that says &apos;My Homepage&apos; on top&quot; title=&quot;Started from the bottom now we&apos;re still here&quot; /&amp;gt;&lt;/p&gt;
&lt;h3&gt;What is HTML?&lt;/h3&gt;
&lt;p&gt;HTML stands for &lt;a href=&quot;https://en.wikipedia.org/wiki/HTML&quot;&gt;HyperText Markup Language&lt;/a&gt;. They keyword here is actually &lt;em&gt;Markup&lt;/em&gt;. In this case, the word markup means:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;The collection of detailed stylistic instructions written on a manuscript that is to be typeset.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Wait, manuscript and typeset? Are we in 1999 or 1799?&lt;/p&gt;
&lt;p&gt;import printingPress from &apos;./printing-press.jpg&apos;&lt;/p&gt;
&lt;p&gt;&amp;lt;Image src={printingPress} alt=&quot;18th Century Printing Press Demonstration - Park Ranger demonstrating adding ink to the typesetting&quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;Turns out... a little bit of both! The idea behind HTML comes straight from traditional publishing methods which literally involved &quot;marking up&quot; paper manuscripts with a pen to describe how they should be printed. People have been making shorthand notations about how pages should be laid out and printed for &lt;a href=&quot;https://printinghistory.org/timeline/&quot;&gt;hundreds of years&lt;/a&gt;. Digital documents are &quot;printed out&quot; by your browser every time you load a webpage. &lt;strong&gt;The pixels on your computer screen are the paper and ink.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;:::neko_happycry
I wish my apartment was big enough for a Gutenberg printing press...
:::&lt;/p&gt;
&lt;p&gt;So let&apos;s go over some core principles of HTML:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;HTML is made of &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Guides/Cheatsheet&quot;&gt;elements&lt;/a&gt; that have silly little names like &lt;code&gt;head&lt;/code&gt;, &lt;code&gt;body&lt;/code&gt;, &lt;code&gt;h1&lt;/code&gt;, and &lt;code&gt;p&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Most elements have an opening and closing tag to accomodate nested content (A paragraph: &lt;code&gt;&amp;lt;p&amp;gt;hii&amp;lt;/p&amp;gt;&lt;/code&gt;), but some elements cannot have nested content so they only need a single tag (A horizontal line: &lt;code&gt;&amp;lt;hr&amp;gt;&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Every element has a &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements&quot;&gt;distinct use case&lt;/a&gt; that signals to the browser the type of content it contains. For example, the main heading of the webpage should be inside of an &lt;code&gt;h1&lt;/code&gt; element: &lt;code&gt;&amp;lt;h1&amp;gt;How to Bake a Cake&amp;lt;/h1&amp;gt;&lt;/code&gt;. We call this an element&apos;s &lt;em&gt;semantic&lt;/em&gt; meaning. Using the right tags will increase accessibility by making it easy to use assistive technologies like screen readers for the visually impaired.&lt;/li&gt;
&lt;li&gt;Most elements are for visual purposes, but some elements are just for keeping things organized (&lt;code&gt;html&lt;/code&gt;, &lt;code&gt;head&lt;/code&gt;, &lt;code&gt;body&lt;/code&gt;), storing important metadata about the webpage (&lt;code&gt;meta&lt;/code&gt;, &lt;code&gt;title&lt;/code&gt;), or linking CSS and Javascript (&lt;code&gt;link&lt;/code&gt;, &lt;code&gt;script&lt;/code&gt;).&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Tools of the Trade&lt;/h2&gt;
&lt;p&gt;Now that we have a basic webpage set up, let&apos;s talk about the most important tools for web development.&lt;/p&gt;
&lt;h3&gt;The Text Editor&lt;/h3&gt;
&lt;p&gt;Text? In my editor? It&apos;s more likely than you think.&lt;/p&gt;
&lt;p&gt;import notepad from &apos;./notepad.jpg&apos;&lt;/p&gt;
&lt;p&gt;&amp;lt;Image src={notepad} alt=&quot;A screenshot of the Notepad app on Windows 11.&quot; title=&quot;You deserve so much better&quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;Let&apos;s get something out of the way: HTML files (and all coding files for that matter) are just &lt;em&gt;plain text&lt;/em&gt;. This means we can&apos;t edit them in Microsoft Word or Google Docs. We need an editor that is... kind of &lt;em&gt;dumb&lt;/em&gt;. No fancy formatting involved. Just plain letters and numbers written straight to your hard drive.&lt;/p&gt;
&lt;p&gt;Now you could use something like Notepad on Windows or TextEdit on MacOS. Don&apos;t do that. It&apos;s 2026 and we have an amazing selection of plain text editors that are specifically designed to help you write &lt;em&gt;code&lt;/em&gt;. The most popular (by far) is a free, cross-platform app called &lt;a href=&quot;https://code.visualstudio.com/download&quot;&gt;Visual Studio Code&lt;/a&gt; (VSCode for short) by Microsoft.&lt;/p&gt;
&lt;p&gt;import vscode from &apos;./vscode.png&apos;&lt;/p&gt;
&lt;p&gt;&amp;lt;Image src={vscode} alt=&quot;A screenshot of VSCode editing an HTML file.&quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;:::note
VSCode is free but not fully &lt;a href=&quot;https://en.wikipedia.org/wiki/Open_source&quot;&gt;open-source&lt;/a&gt;. If that&apos;s important to you, check out &lt;a href=&quot;https://vscodium.com&quot;&gt;VSCodium&lt;/a&gt;. It&apos;s a fully open-source version that works well but has significant limitations around using extensions.
:::&lt;/p&gt;
&lt;h4&gt;VSCode Tips&lt;/h4&gt;
&lt;p&gt;Here are some tips I recommend to almost everyone:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enable automatic file saving: &lt;code&gt;Settings -&amp;gt; Files: Auto Save -&amp;gt; afterDelay&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Install the &lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&quot;&gt;Live Server&lt;/a&gt; extension to quickly see your changes in the browser without having to manually refresh the page.&lt;/li&gt;
&lt;li&gt;Check out the interactive theme chooser and pick a color theme that you like: &lt;code&gt;View -&amp;gt; Command Palette -&amp;gt; Browse Color Themes in Marketplace -&amp;gt; (use arrow keys to preview theme and hit enter to install it)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;The Browser&lt;/h3&gt;
&lt;p&gt;The other crucial tool of web development is of course... the browser! It&apos;s the gateway to the World Wide Web, and we&apos;ll obviously be using it all the time while coding.&lt;/p&gt;
&lt;h4&gt;One Browser to Rule Them All&lt;/h4&gt;
&lt;p&gt;As web standards became more and more complex throughout the 21st century, the cost required to actually build and maintain a browser increased astronomically. At this point, only a few organizations in the world can actually keep up. For better or for worse, Google Chrome has become the obvious winner of the &lt;a href=&quot;https://en.wikipedia.org/wiki/Browser_wars&quot;&gt;browser wars&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;import browserMarketshare from &apos;./browser-marketshare.png&apos;&lt;/p&gt;
&lt;p&gt;&amp;lt;Image src={browserMarketshare} alt=&quot;A graph of browser marketshare showing how Google Chrome has become the most popular browser as of 2026.&quot; title=&quot;I&apos;m starting to think Google has some ulterior motives for pushing new web standards...&quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;When doing web development, you can use any major browser you like, but you should at least periodically check that your site &lt;em&gt;works well&lt;/em&gt; on Chrome because that&apos;s what most of your visitors will be using.&lt;/p&gt;
&lt;p&gt;:::tip
Chrome is not open-source, but it has an open-source core (much like VSCode) called &lt;a href=&quot;https://www.chromium.org/getting-involved/download-chromium/&quot;&gt;Chromium&lt;/a&gt; which is great for web development purposes. There&apos;s also &lt;a href=&quot;https://github.com/ungoogled-software/ungoogled-chromium&quot;&gt;ungoogled-chromium&lt;/a&gt;, a project which attempts to strip out all google-related code from Chromium for even more privacy at the cost of features like &lt;a href=&quot;https://support.google.com/chrome/answer/9890866&quot;&gt;&quot;Safe Browsing&quot;&lt;/a&gt;, DRM, and extensions.
:::&lt;/p&gt;
&lt;h4&gt;Browser DevTools&lt;/h4&gt;
&lt;p&gt;What if I told you that browsers have a secret panel that only hackers know about?&lt;/p&gt;
&lt;p&gt;import hacker from &apos;./hacker.gif&apos;&lt;/p&gt;
&lt;p&gt;&amp;lt;Image src={hacker} quality={60} alt=&quot;An animimated image of an anime character with piercings holding pizza in one hand and coding with the other.&quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;Shhh. Don&apos;t tell anyone. I&apos;m only telling you because you&apos;re cool af. Go to &lt;code&gt;View -&amp;gt; Developer -&amp;gt; Developer Tools&lt;/code&gt; (or follow &lt;a href=&quot;https://www.computerhope.com/issues/ch002153.htm&quot;&gt;this guide&lt;/a&gt;) and BOOM. You have hacked into the mainframe of your browser.&lt;/p&gt;
&lt;p&gt;import devtools from &apos;./devtools.png&apos;&lt;/p&gt;
&lt;p&gt;&amp;lt;Image src={devtools} alt=&quot;A screenshot of Chromium with the Wikipedia homepage open and the Devtools panel to the right displaying HTML and CSS from the webpage.&quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;Whoa! That&apos;s a lot of intimidating looking... stuff. But you&apos;re a hacker now, and it&apos;s much too late to turn back. We&apos;ll talk more about DevTools later, but just know that it&apos;s an &lt;em&gt;extremely&lt;/em&gt; important tool for understanding what&apos;s actually going on inside of your browser.&lt;/p&gt;
&lt;p&gt;Just for funsies, click the icon at the top left corner of DevTools (the one with an arrow in it). Now hover over the webpage. Your mouse is now an interactive HTML inspector! Clicking an element will bring up the actual HTML the it comes from. This is only a sliver of DevTools&apos; power. It&apos;s truly over 9000. Don&apos;t be afraid to mess with it!&lt;/p&gt;
&lt;p&gt;:::neko_smug
They don&apos;t know that I know that they know that I don&apos;t know how to use DevTools
:::&lt;/p&gt;
&lt;h2&gt;Adding Some Style&lt;/h2&gt;
&lt;p&gt;Ok, let&apos;s make our little webpage a little cuter. I mean, what&apos;s the point of making a website if it&apos;s not cute??&lt;/p&gt;
&lt;p&gt;The way you give your HTML custom colors, sizes, fonts, and layouts is through &lt;strong&gt;CSS&lt;/strong&gt; which stands for &lt;em&gt;Cascading Style Sheets&lt;/em&gt;. There&apos;s a few ways to sprinkle CSS onto HTML, but I recommend adding a new CSS file to your website folder right off the bat. Let&apos;s create a CSS file called &lt;code&gt;main.css&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;&amp;lt;FileTree nodes={[
{ name: &apos;my-website&apos;, nodes: [
{ name: &apos;index.html&apos; },
{ name: &apos;main.css&apos; },
]}
]}/&amp;gt;&lt;/p&gt;
&lt;p&gt;The browser isn&apos;t going to know about &lt;code&gt;main.css&lt;/code&gt; unless we add a &lt;strong&gt;link element&lt;/strong&gt; inside of our &lt;code&gt;index.html&lt;/code&gt; file:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;!doctype html&amp;gt;
&amp;lt;html lang=&quot;en-US&quot;&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;meta charset=&quot;utf-8&quot; /&amp;gt;
    &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot; /&amp;gt;
    &amp;lt;title&amp;gt;My Website&amp;lt;/title&amp;gt;
    &amp;lt;link href=&quot;./main.css&quot; rel=&quot;stylesheet&quot; /&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;My Homepage&amp;lt;/h1&amp;gt;
    &amp;lt;p&amp;gt;Hi! Welcome to my homepage!&amp;lt;/p&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And now inside of our &lt;code&gt;main.css&lt;/code&gt; file:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;* {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 12px;
  background-color: rgb(195, 213, 213);
  font-family: Arial, Helvetica, sans-serif;
  color: rgb(24, 28, 27);
}

h1 {
  font-family: Cambria, Cochin, Georgia, Times, &apos;Times New Roman&apos;, serif;
  font-size: 3rem;
  text-align: center;
  margin: 48px 0;
}

p {
  padding: 0 24px;
  margin: 12px auto;
  max-width: 800px;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now start the Live Server extension in VSCode (or just open/refresh your &lt;code&gt;index.html&lt;/code&gt; file in your browser) and you should see a webpage like this:&lt;/p&gt;
&lt;p&gt;import homepageStyled from &apos;./homepage-styled.png&apos;&lt;/p&gt;
&lt;p&gt;&amp;lt;Image src={homepageStyled} alt=&quot;A simple webpage with a light green background and a decorative font for the heading&quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;That&apos;s significantly cuter! We won&apos;t dive into the specifics of CSS yet, but you should mess around with it! Playing (aka throwing shit at the wall) is one of the best ways to learn!&lt;/p&gt;
&lt;h2&gt;My Favorite Learning Resources&lt;/h2&gt;
&lt;p&gt;The one constant similarity between all web devlopers in the world is that we &lt;em&gt;all&lt;/em&gt; rely on online resources to learn and improve our skillz. I highly encourage checking these out.&lt;/p&gt;
&lt;p&gt;Interactive Tutorials:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.freecodecamp.org/learn/responsive-web-design-v9/&quot;&gt;FreeCodeCamp Web Development Course&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;:::note
There is literally nothing better for beginners than &lt;a href=&quot;https://www.freecodecamp.org&quot;&gt;FreeCodeCamp&lt;/a&gt;. All of their courses are highly interactive, brilliant, and FREE! If you click on any of these links, click on this one!!!
:::&lt;/p&gt;
&lt;p&gt;HTML:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3schools.com/html/default.asp&quot;&gt;W3Schools HTML Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements&quot;&gt;Mozilla HTML Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Guides/Cheatsheet&quot;&gt;Mozilla HTML Cheatsheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://htmlreference.io&quot;&gt;htmlrefernce.io&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CSS:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3schools.com/css/default.asp&quot;&gt;W3Schools CSS Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/Reference&quot;&gt;Mozilla CSS Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://cssreference.io&quot;&gt;cssreference.io&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Next Up: Making a Shrine&lt;/h2&gt;
&lt;p&gt;Next time, we&apos;ll keep working on our website and turn it into a simple &lt;a href=&quot;https://www.owlhari.com/shrines/guide/&quot;&gt;shrine webpage&lt;/a&gt; dedicated to our favorite bird species:&lt;/p&gt;
&lt;p&gt;import shrinePreview from &apos;./shrine-preview.png&apos;&lt;/p&gt;
&lt;p&gt;&amp;lt;Image src={shrinePreview} alt=&quot;A simple webpage titled Bella&apos;s Bird Shrine with an image of a bird in the center.&quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;In particular, we&apos;ll focus on the basics of CSS and how to get your site onto the internet for everyone to see. Until then, good luck and happy coding!&lt;/p&gt;
</content:encoded><author>Stel Clementine</author></item></channel></rss>