welcome to

Website-Bastelstunde I

with nyakob (they/them/jakob) :3

historical WWW logo (Robert Cailliau, 1990)

08 Jun '26, maschinenraum

(pls click somewhere on the slide, then you can scroll through them with the mouse wheel or the arrow keys)

<slide page="1/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Post-Workshop Update: More links

thanks for showing up at my workshop <3


if u need anything hmu on fediverse, via email (BUW, jakob dot bela dot ruckel) or at maschinenraum open space (every wednesday 17:00–19:00)

<slide page="2/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Why Have A Website In --current-year?

<slide page="3/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Why Have A Website In --current-year?

  • Expression, put yourself out there!
    • No one tells you what shape your website has to be, so it’s kinda a sandbox where you can do whatever
  • not (really) subject to algorithms and social media shenanigans
    • posting on social media: “oh no what will people think of this?”
      • and the metrics
    • website: “i guess if anyone sees this it’s their fault”
      • i have no idea if anyone even does that*
    • this gives me peace of mind :)
  • It’s fun!
  • Art
<slide page="4/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

webdev

<slide page="5/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

What?

<slide page="6/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

How did we get here?

image source: https://redd.it/1fpgddo

<slide page="7/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

How did we get here?

image source: https://redd.it/1fpgddo

<slide page="8/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

How did we get here?

image source: https://redd.it/1fpgddo


<slide page="9/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

How did we get here?

<slide page="10/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Internet (old, as in pre-WWW)

  • IRC (Discord)
  • Usenet (Reddit)
  • E-Mail (E-Mail)
<slide page="11/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

CERN, late 80s

“what if we, like, organized our science information, but better?”
  – Tim Berners-Lee (1989) (paraphrased)

Photograph by Mike Peel (www.mikepeel.net), CC-BY-SA-4.0

<slide page="12/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Traditions

first ever web server (CERN, 1990)        second vr lab domain controller (BUW, 2025)

Photograph by Mike Peel (www.mikepeel.net), CC-BY-SA-4.0

<slide page="13/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Technology

HTML
http://
<slide page="14/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Hypertext

  • text that links to other text
  • if it’s not just text it’s called hypermedia
  • foreshadowed in 1941 in a short story by an Argentine writer named Borges
  • invented in 1965 by a man named Ted Nelson who stuck his hand in water on a boat and realized that it’d be cool if media was interconnected and not sequential (paraphrased)
<slide page="15/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Hypertext (cont’d)

  • three clicks from my home page (~96k other sites)
<slide page="16/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

The World Wide Web


The Web is a global, interconnected information system, consisting of many, many hypertext documents.


  • invented in 1989
  • became public domain in 1993
    • (yay for open source!!)
  • predated (slightly) by Gopher
    • they co-existed for a bit, but the Web proved (a bit) more successful
    • 2019 revival: Gemini (unfortunate naming what with the google slop engine)
<slide page="17/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Le Web

source: Internet et le World Wide Web, c'est simple
<slide page="18/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Technology (cont’d)


CSS


  • This tells the browser what the document should look like
  • Can even be used for print documents
  • “Cascading” = more specific declarations have priority
  • CSS is a programming language (demonstrated by rebane et al.)
<slide page="19/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />













</infodump>
<slide page="20/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Dev Setup

you’ll need:

  1. a text editor (Vim, VS code, Notepad, Butterflies, …)
  2. a web browser
  3. optional but nice to have: automatic reloading
    • via some server, e.g., live-server:
      • install: npm i -g live-server, run: live-server
    • vs code has an extension for that:
<slide page="21/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Let’s do something

  1. create a directory somewhere (on ur computer)
  2. create and open a file called index.html in there
  3. write something (i.e., anything) in there
  4. open in your browser (or in your text editor, or via live-server, …)

<slide page="22/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Hello, Web!

<!DOCTYPE html>
<html>
    <head>
        <title>My site</title>
    </head>
    <body>
        <h1>Hello!</h1>
        <p>this is so cool!</p>
        <img src="https://http.cat/200"/>
    </body>
</html>

Hello!

this is so cool!

<slide page="23/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

<h1>HTML Things</h1>

<h2>Heading 2</h2>

<h3>Heading 3</h3>

<p> Paragraph with <b>bold</b>, <i>italic</i>, and <u>underlined</u> text </p>

<ul>

  • <li>list item</li>
  • <li>list item</li>

</ul>

<slide page="24/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

More HTML Things

  • Links: <a href="https://example.com">Link</a>
  • Images: <img src="https://http.cat/200"/>
  • Line break: <br/>
  • A span of text: <span>hello!</span>
  • a horizontal line: <hr>
  • <code>code</code>
  • The best HTML element: <marquee>The best HTML element</marquee>
    • big browser is deprecating this, so have fun with it while it lasts
  • comments: <!-- i am a comment -->
  • and many more
<slide page="25/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

I can hardly contain myself!

<div style="padding: 0.5em; background-color: lightblue">
    <div style="padding: 0.5em; background-color: pink">
        <div style="padding: 0.25em; background-color: white">
            <marquee>hello!</marquee>
        </div>
    </div>
</div>

hello!
<slide page="26/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Style 😎

  • this is css:
p { background-color: red; }
  • p is the selector, selecting all <p> elements, and
  • background-color is a property…
  • …which is set to the value red
<slide page="27/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Where does Style go?

  1. Online Inline Style:
    <img style="width: 20%;" src="https://http.cat/404"/>
    

    specific to the element → high priority

  2. within your HTML: <style> * { font-family: "Comic Sans MS"; } </style>

  3. in a separate stylesheet (e.g. foo.css) next to your html. include like this:
<head>
    <link rel="stylesheet" href="foo.css"/>
</head>
<slide page="28/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Selectors

<p class="my-cool-class">hi</p>
<p id="my-cool-id">hi</p>
  • in CSS, we select things like this:
p { background-color: red; }
.my-cool-class { background-color: green; }
#my-cool-id { background-color: blue; }
<slide page="29/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

More Selector Stuff

  1. combinators
    • span.rainbow selects <span> with the rainbow class
    • p img selects all <img> that are (somewhere) inside a <p>
      • p > img only selects ones that are direct children
  2. pseudo-classes
    • a:hover selects all #foo that the user is hovering over
      • #link-pseudo-classes:hover {background-color: black; color: white}
  3. pseudo-elements
    • #bar:hover::before { content: "i am a link to " }
  4. attribute selectors

this is some crazy stuff, all w/o javascript!

<slide page="30/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

!!!! Important !!!!

If you really need to override something you can mark it as !important.

<style>
.x3 { font-size: 2em; }
.x3:hover { background: pink; }
.rawr a:hover { background: orange; }
</style>
<div class="rawr">
    <a class="x3" href="#">hewwo :3</a>
</div>

<slide page="31/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

!!!! Important !!!!

If you really need to override something you can mark it as !important.

<style>
.xD { font-size: 2em; }
.xD:hover { background: pink !important; }
.rawr a:hover { background: orange; }
</style>
<div class="rawr">
    <a class="xD" href="#">hewwo :3</a>
</div>

(might be considered sinful, but might also come in handy)

<slide page="32/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Liberté, Égalité, Unité

  • You can set font-size, width, height, padding, margin, …
    • common units:
      • 1 em = size of the font (relative to parent)
      • 1 rem = size of the font
      • 1 px = 1 pixel
      • 1 vh (1 vw) = height (width) of the viewport
      • 0 (nothing)
      • % (relative to parent)
<slide page="33/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Resources

this concludes the overview!

for more HTML/CSS stuff:

<slide page="34/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Hosting

Legal disclaimer for when u put a website on the internet:

  • technically there is Impressumspflicht
    • (unless your website is only for u & ur friends? it’s complicated)
    • the same criteria also apply for things like youtube channels

Options (a very much non-exhaustive list):

<slide page="35/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Uni Hosting

  • uni username: abcd1234
  • note: this is ancient stuff, btw!
    • unix, 70s: ~ became synonymous with home
    • ~abcd1234/ = /home/abcd1234/
    • people had home directories on the webserver
    • stuff goes in ~abcd1234/public_html/

Apache 1.3 Documentation, 2001

<slide page="36/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Uni Hosting (how 2)

  1. grab some ftp client, e.g. FileZilla
  2. connect to uni vpn
  3. connect the ftp client:
    • host: webuser.uni-weimar.de
    • username: abcd1234
    • password: *******
  4. upload your html!

there’s also some more detailed documentation from SCC

<slide page="37/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Neocities

  • neocities.org
  • goes back to GeoCities (‘94 – ‘09)
  • kinda community focused, webrings and stuff
  • also cool to just browse
  • <your-name-here>.neocities.org
<slide page="38/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

GitHub Pages

  • documentation
  • <your-name-here>.github.io
  • GitHub is owned by microsoftslop
    • then again, if it enshittifies too much, just take ur website somewhere else *shrug*
<slide page="39/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

enough of that.

<slide page="40/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />

Happy webseiten-basteln!!

slides online at: http://jakob.ruckel.de/slides/www-i/

<slide page="41/41" what="website-bastelstunde i" who="nyakob" when="08 jun '26" where="maschinenraum" />