Tricky words explained simply, with a small assembly plan where something happens step by step. Under “In more detail” there is more for older kids and adults.
For everyoneGerman and EnglishNew, growing all the time
Web54 terms
Terms around building web pages with HTML and CSS.
Attribute
Extra information inside a tag, for example src on a picture or href on a link.
In more detail
An attribute sits in the opening tag and usually has a name and a value in quotes: alt="George on the sofa". More examples: lang, class, id.
The frame every HTML page needs: declaration, head and body.
DOCTYPE
head: invisible
body: the stage
In more detail
<!DOCTYPE html> says “this is HTML”. <html> wraps everything. The <head> holds invisible things for the browser (title, character set, viewport), the <body> everything you see.
Every element is a box. From inside out: content, padding, border, margin.
Content
Padding
Border
Margin
In more detail
padding is the space between content and border, border the frame, margin the space to the neighbours. With box-sizing: border-box, padding and border count towards the given width, which makes calculations easier.
The screen width at which the layout changes, for example 768 pixels.
In more detail
In CSS 101 they are 768 pixels (roughly tablet) and 1024 pixels (desktop). The numbers are rules of thumb, not laws; what matters is that the content looks good.
A name you give elements so you can style them together with CSS.
In more detail
In HTML class="btn", in CSS .btn { … } with a dot. A class may appear as often as you like, and an element can have several classes. Usually better for styles than an ID.
The language for how a page looks: colours, fonts, spacing, layout.
In more detail
CSS rules consist of a selector (what it hits) and properties (what changes). CSS is best kept in its own file such as style.css that every page links to. In the house comparison, it is paint and furniture.
A named value that you set once and use everywhere, for example a colour.
In more detail
Set it in :root { --primary: #00b4d8; }, use it with color: var(--primary);. Change the value in one place and the colour changes everywhere the variable is used.
A toolbox in the browser. With F12 you can see the code behind any page, errors and the phone view.
Page
F12
code, errors, phone view
In more detail
Changes in the developer tools only apply on your screen until you reload. Important areas: Elements (HTML and CSS), Console (JavaScript messages and errors) and the device view.
A building block of the page: opening tag, content and closing tag together.
In more detail
<p>Hello</p> is a paragraph element. Elements can contain other elements; this creates the structure of the page. JavaScript sees them as branches in the DOM tree.
The letters after the dot in a file name, for example .html. They tell the computer what kind of file it is.
In more detail
Windows often hides extensions. A file can then secretly be called index.html.txt and will not open as a web page. In Explorer, switch on “File name extensions” under View.
A CSS method for arranging elements in a row or column and centring them.
In more detail
With display: flex, the children of an element are placed side by side. justify-content spreads them along the main direction, align-items across it, gap sets the spacing. Good for navbars and rows of buttons.
Fields to fill in, for example a contact form with name, email and message.
Form
Submit
server or service
In more detail
Building blocks: <input> (a field), <textarea> (several lines), <select> (choice), <button type="submit"> (send). A form on its own does not send emails; that needs a server or a service.
linear-gradient(135deg, #00b4d8, #f72585) runs in one direction, radial-gradient(…) from the centre outwards. Gradients are backgrounds; you set them with background.
A CSS method for layouts with columns and rows, for example for cards.
In more detail
With display: grid and grid-template-columns: 1fr 1fr 1fr you get three columns of equal width. Rule of thumb: one direction flexbox, two directions grid.
Titles on the page, from <h1> (largest) to <h6> (smallest).
In more detail
There is only one <h1> per page, the main heading. Below it, <h2>, <h3> and so on structure the page like chapters and sub-chapters. The order also helps screen readers.
Three ways to write colours. The most common is HEX, for example #e03030.
In more detail
HEX: red, green and blue as two characters each. RGB: the same three values from 0 to 255, rgba() with transparency from 0 to 1 as well. HSL: hue, saturation, lightness, handy for varying a colour.
The language you use to write down what is on a web page: headings, text, pictures, links.
You write HTML
index.html
Browser shows the page
In more detail
HTML describes structure, not appearance. It is made of tags such as <h1> or <p>. The browser reads the file and builds the page from it. In the house comparison, it is the walls.
<img> shows a picture. The alt text describes it in words.
In more detail
src says where the picture is, alt what is on it. The alt text appears when the picture is missing and is read out for people who cannot see it. If you see the alt text instead of the picture, the path is usually wrong.
Three ways to bring CSS to a page. The best: a separate .css file for all pages.
style.css
link on every page
all pages styled
In more detail
Inline (style="…" in the tag) only applies to one element, fine for tests. Internal (<style> in the head) applies to one page. External (<link rel="stylesheet" href="css/style.css">) applies to every page that links it, and the browser can cache it.
The steps of a CSS animation: what happens at 0 %, 50 % and 100 %. The browser works out the rest.
@keyframes
browser fills the gaps
animation on the element
In more detail
First define them with @keyframes name { … }, then assign them to an element with animation: name 0.6s ease forwards;. Unlike transitions, keyframes run without a trigger and can repeat (infinite).
<label for="name"> belongs to the field with id="name"; both names must match. Then a click on the caption puts the cursor in the field, and screen readers know what the field is for.
A clickable way to another page or file, built with <a href="…">.
index.html
a href
toys.html
In more detail
href is the target. An internal link points to a file in your own folder, for example toys.html. An external one starts with https://. If the name does not match exactly, you get “file not found”.
An extension for VS Code: the browser reloads the page by itself after every change.
In more detail
Right-click index.html, “Open with Live Server”. Behind it, a small server runs on your own computer. For HTML 101, a double-click on the file is enough too.
A CSS rule that only applies from a certain screen width.
In more detail
Example: @media (min-width: 768px) { … } applies from 768 pixels wide, roughly from tablet size. The width at which the layout changes is called a breakpoint.
Build the phone view first, then extend it for bigger screens.
Phone: basic rules
from 768px
from 1024px
In more detail
The basic rules are for the phone (one column, large, easy to tap). Media queries with min-width add more columns from a certain width. This is the usual approach today.
The bar with links that is the same on every page and connects everything.
In more detail
In HTML it sits in <nav>, usually as a list of links. It has to be on every page, otherwise you cannot get away from there. Later, CSS takes care of how it looks, often with flexbox.
The way to a file, for example images/george.jpg: first the folder, then the file.
index.html
images/
george.jpg
In more detail
A relative path starts from the current file. A slash separates folder and file. Every letter must match: on many servers upper and lower case count too, on Windows they do not. That is why something can work at home but not online.
A state of an element, for example “the mouse is over it”.
In more detail
Pseudo-classes start with a colon: :hover (mouse over it), :focus (selected, also by keyboard). Together with transition they create smooth hover effects.
An invisible extra before or after an element that CSS can style, for example a line.
In more detail
With two colons: ::before and ::after. They need content: '', otherwise they do not appear. In CSS 101 this is how the underline that slides in on hover is made.
A size unit in CSS based on the root font size. 2rem is twice as big.
In more detail
1rem is the font size of the <html> element, usually 16 pixels in the browser. Anyone who chooses a larger font in their settings automatically gets everything bigger with rem, but not with fixed pixels.
A few lines of CSS at the start that even out the browsers' default settings.
In more detail
Typical: * { margin: 0; padding: 0; box-sizing: border-box; }. Every browser has its own spacing; the reset sets it to zero so the page starts the same everywhere.
A page adapts to the screen: phone, tablet and PC each show it in a suitable way.
one page
Phone
Tablet
PC
In more detail
Responsive design needs three things: the viewport line, flexible layouts (flexbox, grid, percentages instead of fixed pixels) and media queries for different widths. Mobile first is recommended: phone first, then extend.
Checking everything once more before calling it done.
In more detail
Same navbar everywhere? All links correct? Any content missing? Does it look good on a phone? In real teams a second person often checks, because it is easy to overlook your own mistakes.
The part of a CSS rule that says which elements are meant.
Selector
hits elements
style is applied
In more detail
p hits all paragraphs, .btn all elements with class="btn", #hero exactly the one element with id="hero". Selectors can be combined, for example .card p for paragraphs inside cards.
The code says what something is, not just how it looks. <nav> means: this is the navigation.
In more detail
Semantic tags such as <nav>, <footer> or <h1> help screen readers, search engines and you yourself understand the page. A <div>, by contrast, says nothing about its content.
When two CSS rules hit the same element, the more specific one wins.
In more detail
Roughly: an ID is more specific than a class, a class more specific than a tag name. With equal specificity, the rule further down wins. That is why it is better to work with classes and use IDs sparingly.
Data in rows and columns, for example a profile or a comparison.
In more detail
<table> is the whole table, <tr> a row, <th> a header cell, <td> a data cell. Tables are for data, not for page layout; that is what flexbox and grid are for.
An instruction in angle brackets, for example <h1>. It tells the browser what a piece of text is.
In more detail
Most tags come in pairs: <p> opens, </p> with a slash closes. Some have no end tag, for example <img> and <br>. Opening tag, content and closing tag together are called an element.
Move, rotate or enlarge an element without the other elements shifting.
In more detail
translate moves, rotate turns, scale enlarges. Order matters. Transform is handled by the graphics card, which is why animations using it run especially smoothly.
A smooth change between two states, for example when the mouse moves over a button.
State A
0.3s ease
State B (:hover)
In more detail
transition: background 0.3s ease; means: property, duration, curve. The trigger is usually another state such as :hover. For sequences with several steps or without a trigger, use keyframes.
The font of a page. The browser downloads a web font in addition so the same font appears everywhere.
In more detail
With font-family you choose the font plus a fallback, for example 'DM Sans', sans-serif. Google Fonts delivers fonts from someone else's server; without internet the fallback is used. For offline-first you put fonts in your own folder.
The visible window of the device. The viewport line tells the phone: use your real width.
In more detail
Without <meta name="viewport" content="width=device-width, initial-scale=1.0"> a phone pretends to be about 980 pixels wide and shrinks everything. With the line, the page adapts to the real width.
Terms from JavaScript: data, decisions, functions, events.
APIApplication Programming Interface
An interface: an agreed way for one program to ask another for something.
In more detail
A web API is usually an address that returns data on request, often as JSON, for example weather data. The browser itself also has APIs, such as localStorage or the DOM. Like a counter at a station: you ask in a fixed form and get an answer in a fixed form.
A list of values in square brackets, for example ["HTML", "CSS", "JS"].
In more detail
Every element has a number, the index. It starts at 0: list[0] is the first element. push adds to the end, length says how many there are. A loop goes through all elements.
A short way of writing functions with an arrow: (x) => x * 2.
In more detail
If only one expression follows the arrow, it is returned automatically. Arrow functions are handy for short tasks, such as in map, filter or event listeners.
This lets JavaScript wait for something that takes time, for example data from the internet, without the page freezing.
In more detail
A function marked async may use await. await only pauses this function until a promise is fulfilled; the rest of the page keeps running. Errors are caught with try { … } catch (error) { … }.
The kind of a value: text, number, true or false, list, object.
In more detail
The main types in JavaScript: string (text in quotes), number, boolean (true or false), array, object, plus null and undefined for “no value”. You check the type with typeof.
An addition when including JavaScript: only run it once all the HTML is there.
In more detail
<script src="script.js" defer> downloads the file straight away but only runs it once the page is fully built. That way the script finds all the elements it needs.
The page as JavaScript sees it: a tree of all elements that you can read and change.
HTML
DOM tree
JavaScript changes it
page shows it at once
In more detail
The browser builds the DOM tree from the HTML. With document.querySelector(".card"), JavaScript finds an element; with textContent or classList it changes it. The page updates immediately without reloading.
Something that happens on the page: a click, an input, a pressed key.
In more detail
Important events: click, input, submit, keydown, DOMContentLoaded. JavaScript reacts with an event listener. The function receives an event object, for example with e.target, the clicked element.
A listener that waits for an event and then starts a function.
Click
listener is waiting
function runs
In more detail
button.addEventListener("click", doSomething) means: when someone clicks the button, doSomething runs. Unlike onclick =, addEventListener does not overwrite other listeners.
The information about an event that a listener function receives, for example what was clicked.
In more detail
It is usually called e: e.target is the element, e.key the pressed key, e.preventDefault() stops the default behaviour, such as reloading when a form is submitted.
The command JavaScript uses to get data from an address on the internet.
Your page: fetch(url)
Internet
API server
answer as JSON
In more detail
const response = await fetch(url); requests the address, await response.json() turns the answer into an object. This needs internet. Without a connection there is an error, which you catch with try/catch.
A named piece of code that you write once and can call as often as you like.
In: parameter
function works
Out: return
In more detail
A function takes values in (parameters), works with them and gives back a result with return. Example: function greet(name) { return "Hello " + name; }. Short form: arrow function (name) => ….
A list in the HTML page that says where a library lives, for example “three”.
In more detail
A <script type="importmap"> states, for example, that three lives in your own vendor/ folder. That way the page loads nothing from other servers, in line with offline-first.
A function that sets everything up once at start-up, for example initDarkmode().
In more detail
Each feature of the page gets its own init function; at the end they are all called one after another. If one cannot find the element it needs, it simply returns, so a missing piece does not disturb the others.
The programming language of the browser. It brings pages to life: clicks, calculations, loading data.
In more detail
JavaScript runs directly in the browser, without installation. It reads the code line by line from top to bottom. It is best included with <script src="script.js" defer></script>. In the house comparison, it is the wiring.
A text format for data. Almost every service on the internet sends and understands it.
Object
JSON text
an object again
In more detail
JSON looks like a JavaScript object but is plain text. JSON.stringify(obj) turns an object into text, JSON.parse(text) turns it back into an object. This is how data travels to servers or into localStorage.
A small store in the browser. What is kept there is still there after closing the tab.
Object
JSON.stringify
localStorage
In more detail
localStorage.setItem("name", "Mikey") stores, getItem reads, removeItem deletes. It only stores text, so convert objects with JSON first. The data stays only in this one browser on this device.
Code that repeats, for example for every element in a list.
List
for each element
your code
In more detail
for (let i = 0; i < 5; i++) { … } counts, list.forEach(x => …) goes through a list, while runs as long as something is true. Beware of endless loops: if the condition never becomes false, the page hangs.
A JavaScript file that shares parts with export, which others fetch with import.
In more detail
Modules keep big projects tidy: every file has one job. They are included with <script type="module">. Modules usually need a server, even a local one; double-clicking the file is then not enough.
A container for related named values, for example a user with name and points.
In more detail
An object sits in curly braces: { name: "Mikey", points: 350 }. The names are called keys or properties. You read them with user.name. Stored or sent as text, an object uses the JSON format.
Every piece of information lives in only one place. Everything else looks it up there.
In more detail
If the same value lives in two places, sooner or later they drift apart. With one source, a single change is enough and all displays are correct again.
Everything a program remembers right now: points, whether dark mode is on, which page is open.
In more detail
Good practice: the state lives in one place (single source of truth) and the display is built from it. If it should survive a restart, you store it, for example in localStorage.
Synchronous: one after another. Asynchronous: something takes time and the rest carries on.
Line 1
task takes time
line 3 already runs
In more detail
With setTimeout or fetch, JavaScript does not wait; it carries on and handles the answer later. That is why a later line can be printed earlier. async/await makes such code readable.
Try something and catch a possible error instead of everything stopping.
try: attempt
Error?
catch: respond kindly
In more detail
The try block holds code that can go wrong, such as fetch without internet. If an error happens, JavaScript jumps to the catch block, where you show a friendly message.
A labelled container for a value, for example points with the value 10.
let points
value: 10
In more detail
let creates a variable that may change, const one that stays the same. Do not use the old var any more. The value always has a data type, for example number or text.
How a page gets onto the internet and which services help.
Account and sign-in
A personal login with email and password so a service knows who you are.
In more detail
When you register, a confirmation email usually arrives. A good service only stores passwords in encrypted form; if you forget one, you reset it via a link by email.
The mail service through which mykeyz.ch sends confirmation emails.
In more detail
Supabase hands the emails to Brevo via SMTP, and Brevo sends them from no-reply@mykeyz.ch. For this to work, there is a DKIM record in the domain's DNS.
The program that reads and displays web pages, for example Edge, Chrome or Firefox.
In more detail
The browser fetches the files of a page, reads HTML, CSS and JavaScript and builds the picture on the screen from them. In the letter comparison, it is the postman who finds the way to the house using the address.
A temporary store: the browser keeps files so it does not have to load them again every time.
In more detail
The browser loads an external CSS file once and then takes it from the cache, which makes pages faster. Sometimes that is why you only see a change after reloading. A service worker has its own cache for offline use.
A kind of seal for emails: it proves that an email really was sent on behalf of the domain.
In more detail
The mail service signs every email digitally. The recipient finds the matching check key via a DNS record of the domain. Without it, emails are more likely to end up in spam.
The address book of the internet: it translates a name like mykeyz.ch into the number of a server.
mykeyz.ch?
DNS: address book
number of the server
In more detail
Computers find each other by numbers (IP addresses), people remember names. At the domain provider you enter DNS records that say where the domain points and which service may send email for it.
The address of a website, for example mykeyz.ch. Like a house address.
In more detail
You rent your own domain from a provider, usually per year. There are also free addresses that belong to the provider, for example yourname.provider.something. For the domain to lead to the right server, DNS is needed.
A free address that belongs to a provider, for example yourname.provider.something.
In more detail
The front part is your name, the back part the provider's domain; this is called a subdomain. It is enough to start with. Your own domain costs something every year.
A free GitHub service that publishes websites from a code folder (repository).
In more detail
You need a GitHub account, and its conditions apply, including on minimum age. The address is a free GitHub address; your own domain can be connected to it.
Your files sit on a server that runs around the clock so others can open the page.
Your folder
Upload
server at a service
everyone with the address
In more detail
A hosting service provides the server. To get started there are free offers such as Netlify or GitHub Pages: upload the folder, done. For mykeyz.ch, Vercel does this.
The encrypted connection to a website. You can see it by the padlock next to the address.
In more detail
With HTTPS nobody on the way can read along or change anything. For this the server needs a certificate (SSL/TLS). Many hosting services such as Netlify set it up automatically. The padlock means “securely connected”, not “locked”.
A huge network of computers that are connected and exchange data.
In more detail
The web with its pages is only one part of it; email, games and video calls also run over the internet. Data travels in small packets from computer to computer until it arrives.
A small program that shows your folder like a website, but only on your device.
In more detail
The address is then, for example, http://localhost:8000. Some things (modules, service workers) only work with it. Live Server in VS Code is such a local server.
A small file with the name, icon and colours of a web app. It makes the app installable.
In more detail
The file is usually called manifest.json and is linked in the head with <link rel="manifest">. It also states whether the app starts with or without the browser bar.
The idea: what you build should, where possible, also work without internet.
Everything in your own folder
service worker keeps it
works without a connection
In more detail
For this, fonts and libraries sit in your own folder instead of on other servers, and games are built as PWAs with a service worker. Advantage: it also works on the train, in the woods and if a service disappears.
A website you can install like an app and that also works without internet.
Website
Manifest
Service worker
app on the phone
In more detail
A PWA needs a manifest (name, icon, how it starts) and a service worker that stores files for offline use. Many games and tools on mykeyz.ch are PWAs, in line with offline-first.
A square pattern that a camera can read as text, for example an address.
In more detail
A QR code holds far more characters than a barcode. It can be used, for example, to exchange connection details between two phones, entirely without internet.
Who may do what: for example read, write or manage other posts.
In more detail
Instead of giving each person permissions one by one, they get a role, such as member, moderator or admin. The database checks with every request whether the role is allowed to do it.
The way programs send emails, for example a confirmation email.
Program
mail service (SMTP)
inbox
In more detail
A mail service accepts the email via SMTP and delivers it. So it does not end up in spam, the domain must confirm that this service may send on its behalf (DKIM, via DNS).
A computer that is always on and delivers files or data to others, for example your website.
Someone opens the address
Internet
server sends the files
browser shows the page
In more detail
When someone opens your address, their browser asks the server for the files and the server sends them. Servers usually sit in data centres at a service. In the house comparison, the server is the plot the house stands on.
A company or program that takes on a job for you, for example hosting or sending emails.
In more detail
Behind every service there are servers. Free plans have limits and conditions (for example a minimum age for an account); read them first, ideally with your parents. Using a service means trusting it with your data.
A small background script that keeps a page's files so it works offline.
In more detail
The service worker sits between the page and the internet. It can answer requests from its cache when there is no connection. Many PWAs use the rule “network first”: load fresh when there is internet, otherwise the stored version.
A service for database and accounts. The community on mykeyz.ch is built on it.
In more detail
Supabase offers a database with rules about who may read and write what, plus sign-in with email and password. The region can be chosen, for example Zurich.
Getting the finished files onto the server so the new version is online.
Files
Deploy
new version online
In more detail
With Netlify you drag the folder into the window. With mykeyz.ch it is automatic: as soon as a change is on GitHub, Vercel rebuilds the site and puts it live.
A browser technology that lets two devices exchange data directly with each other.
Device A
QR code
Device B
In more detail
Normally everything goes through a server. With WebRTC the devices talk to each other directly, for example for games on the same Wi-Fi. First they have to exchange connection details; without internet this can be done via QR code, for example.
Programs and ways of working for building and keeping things tidy.
Branch
A side branch in Git where you try something out without disturbing the main version.
In more detail
The main branch is usually called main. If the experiment works, you merge the branch back. Small projects often write directly to main so changes are visible straight away.
A planning document: an idea is first written down and discussed before anything is built.
In more detail
A CCMS looks like a sheet on a drawing board, with tabs. It records what belongs and what does not, which questions are open and what has been decided. It contains no finished code.
A program you control with typed commands instead of buttons.
You type a command
program works
answer as text
In more detail
The opposite is the GUI, the graphical interface with windows and buttons. CLI programs are fast, easy to automate and also run without a graphical interface. Examples: git, python, npm.
A saved step in Git, with a short description of what changed.
In more detail
Every commit has an ID made of letters and numbers, for example 4f38655. With it you can find exactly this state again. Good commit messages say briefly what and why.
A system or process as a picture, like assembly instructions: numbered steps, drawings, warnings.
In more detail
Pictures stick better than long texts. In the tutorials on mykeyz.ch the variant is called “assembly plan”, in the website's look. The little boxes in this glossary are small assembly plans.
A program that remembers every version of your files. You can always go back.
Change
Commit
push to GitHub
In more detail
Every saved change is called a commit and gets a short description. All commits together form a project's history. Git runs on your computer; GitHub is a service that keeps Git projects on the internet.
An internet service that stores and shares Git projects.
In more detail
On GitHub, repos are public or private. You can view changes in the app or in the browser, and other services such as Vercel can react to them. GitHub Pages can also publish websites.
The rules about what you may do with other people's code, pictures or fonts.
In more detail
If you use someone else's work, you must follow the licence, for example by naming the author or not selling it. For your own work you decide what others may do. The licence usually comes as a LICENSE file.
Three common licences: MIT allows almost everything, GPL requires sharing the code, CC BY-NC forbids selling.
In more detail
MIT: use, change, sell allowed; keep the licence notice. GPL: anyone who passes it on must also release their own code under GPL; tricky for games you sell. CC BY-NC: share and adapt with attribution, but not commercially. Not legal advice.
A free editor for Windows that shows code in colour.
In more detail
It is a good step up from Notepad: light, fast and with syntax highlighting. As with any program, get updates only from the official site; for children, parents decide on them.
A note-taking program for Markdown files. The folder with all notes is called a vault.
In more detail
Notes can be linked with [[Name]]. The files are ordinary Markdown files on your own device, with no cloud required. With Git, the vault can be synced between PC and phone.
The source code is open: everyone may look at it, use it and usually change it too.
In more detail
Exactly what is allowed is in the licence. Many well-known tools are open source, for example Blender, Godot, three.js and Git. This fits scavenger mode: use what exists instead of building anew.
Push sends your commits to GitHub, pull fetches the latest ones from there.
In more detail
When several people or devices work on the same repo, you first pull the latest state and then push your own changes. For mykeyz.ch, a push to GitHub automatically triggers the new version at Vercel.
Long pages are split into tabs, and only one is visible at a time.
In more detail
Many people read on a phone or without a mouse wheel. Tabs make long content manageable, and a link can open a specific tab directly. When printing, they all appear one below the other.
A window where you type commands instead of clicking with the mouse.
In more detail
On Windows it is called, for example, PowerShell or Command Prompt; on Mac and Linux, Terminal. In it you start programs with text, such as a local server or Git. Not to be confused with the console in the browser, where JavaScript runs.
A number for every edition of a file. For example: v0.001, v0.002 and so on.
In more detail
A proven rule: never overwrite, always create a new version. That way you can always go back to the last good edition. For notes Git does this; for pages and code the number is in the file name.
A popular code editor with colours, suggestions and extensions.
In more detail
VS Code is made by Microsoft and is free. VSCodium builds the same open source code without Microsoft's branding and telemetry. Extensions such as Live Server make work more comfortable.
Language models, local AI and how to connect them to programs. A lot changes here, which is why many entries carry a date.
AI language model (LLM)Large Language Model
A computer program that has learned from huge amounts of text to understand language and write text.
Prompt
model computes
answer
In more detail
An LLM predicts piece by piece which text fits best. It can explain, translate and write code, but it can also be wrong. So check results, especially facts and numbers. Examples: Claude, Gemma.
A secret password for programs that lets them use a service.
In more detail
Whoever has the key can act on the owner's behalf and often run up costs. So: never put it in chats, screenshots or public code; keep it only where the service intends. If one is leaked, create a new one immediately.
A set-up connection between an AI and an app, for example to Gmail or GitHub.
In more detail
A connector usually uses MCP. You sign in once and allow access; after that the AI can read or act in this app. What it may do is set when connecting, and you can disconnect at any time.
A program with an interface for downloading and using AI models on your own PC.
In more detail
You choose a model, load it and chat. With “Serve on Local Network”, other devices on the home network can access it too, such as a phone. It is free but not open source; read the provider's terms.
An AI model that runs on your own computer instead of at a service on the internet.
Your PC
model in VRAM
answer without internet
In more detail
Advantages: works offline, the data stays at home. Disadvantages: needs a strong graphics card with enough VRAM, and small models are less capable than large ones in a data centre. Programs for this include LM Studio and Ollama.
A shared language for connecting an AI to programs and data.
AI (Claude)
MCP server
program, e.g. Supabase
In more detail
MCP is an open standard introduced by Anthropic in 2024. An MCP server offers tools, for example “read table” for a database, and the AI calls them. Like an interpreter who understands both sides. This is how an AI such as Claude can reach Supabase or Vercel, for example.
A program that runs AI models locally, mainly from the terminal.
In more detail
A model starts with one command; other programs talk to Ollama through an API. To let other devices on the network access it, set OLLAMA_HOST=0.0.0.0. Ollama is open source.
The clearer the prompt, the better the answer: what should be made, for whom, in what form, with which example. You can follow up and refine, as in a conversation.
A folder of instructions an AI reads for a certain kind of task, for example for a particular document style.
In more detail
A skill contains a SKILL.md file with rules, sometimes also templates or scripts. That way the AI works to the same standards every time without everything having to be explained again.
A basic instruction an AI receives before every conversation, for example its role and rules.
In more detail
The system prompt sets tone, task and limits. It can say, for example, that building only starts after approval. It pays to store system prompts with version numbers.
A private network over the internet: your devices find each other as if they were on the same Wi-Fi at home.
Phone on the go
encrypted tunnel
PC at home
In more detail
A VPN connects devices with encryption. Tailscale sets this up without router settings. That way your phone can reach the AI model on your PC at home while you are out. There is a free plan for individuals.
A small piece of text that a language model works in, often part of a word.
In more detail
Models read and write tokens instead of letters. How much a model can take in at once and what a service costs are often measured in tokens. Not to be confused with an access token, a kind of password.
The memory on the graphics card. Local AI models and 3D programs need a lot of it.
In more detail
A model runs fastest when it fits entirely into VRAM. With 8 GB of VRAM, smaller models run well; large ones only in reduced form or slowly. That is why the choice of model often depends on the graphics card.
The small loop you play again and again in a game: act, see the result, get feedback.
Action
Consequence
Feedback
In more detail
Example platformer: jump, land or fall, coin chimes. If the core loop is fun, it carries the whole game. That is why you test it first with a prototype.
How much skill a game demands. It often depends on just a handful of numbers.
In more detail
Speed, gravity, number of enemies, time limit: these are dials. Small changes have a big effect. That is why you test with real players, not just yourself.
The step in the game loop that paints the picture. It changes nothing in the game state.
In more detail
Separating calculation (update) and drawing (draw) makes mistakes easier to find: if the game state is right but the picture is not, the problem is in drawing.
If you move characters with speed * dt, they run equally fast on fast and slow devices. Without dt, a game would run twice as fast on a 120 Hz screen as on a 60 Hz one.
The feeling that you lost because of your own mistakes and not because of the game.
In more detail
Things that feel unfair include invisible dangers, hitboxes that are too large or randomness that devalues skill. It feels fair when you can see what is coming and have time to react.
How the game shows what the player did: sound, light, number, shake.
In more detail
Good feedback is immediate, clear and matches the importance: a small hit sounds different from a win. Never use colour as the only signal; not everyone sees colours the same way.
The part of the program that does everything in turn about 60 times a second.
Input
Physics
Rules
Draw
In more detail
Each pass: read input, compute physics, check rules, draw the picture. Each pass produces one frame. In code this usually happens with requestAnimationFrame.
An action the game understands and responds to, for example jumping or collecting.
In more detail
Mechanics are a game's verbs. A few good mechanics that work well together are usually better than many half-finished ones. The core loop grows out of them.
The kind of game, for example platformer, puzzle, strategy or role-playing game.
In more detail
The genre is the first decision because it shapes almost everything else: controls, pace, rules. Genres can be mixed; serious topics have a place in games too.
Level design means: introduce new ideas, let players practise, then combine them. Levels are often stored as data (for example JSON), not as code, so they are easy to change.
Several people play together or against each other.
In more detail
On the same device it is easiest. Across several devices they must exchange data, via a server or directly (WebRTC). Offline multiplayer can connect phones via QR code without internet, for example.
Rules for movement such as gravity, jumping and landing. Usually heavily simplified in games.
In more detail
A jump is often just: set an upward speed, subtract a little gravity every frame, stop at the ground. For real bouncing and pushing, you use a physics engine.
Two choices can bring the same on average and still feel completely different: a little for sure, or maybe a lot. Players like both, depending on the situation.
A help that keeps the field together: whoever is behind gets advantages.
In more detail
Known from racing games: those at the back get better power-ups, those in front are slowed down. It keeps games exciting but can feel unfair if it is too strong.
A flat picture in 2D games, for example the player character.
In more detail
For animations, several pictures sit side by side on a sprite sheet (atlas). The game shows them in turn. An atlas saves loading time because the browser fetches only one file.
A game in phases, for example menu, game and end. Exactly one is always active.
Menu
Game
End
In more detail
Each phase has its own rules and transitions: “game” becomes “end” at zero lives, “end” becomes “menu” again with a button. Characters often have states too, such as stand, run, jump.
Telling a story that grips the player and gives them a reason to keep playing.
In more detail
Many games have hardly any story, and that is fine. Where there is one, the surroundings often tell it too: a broken window, a note. A good ending may be short.
For example HTML canvas and JavaScript for small browser games, three.js for 3D in the browser, Godot for bigger games. The choice depends on the target device and on what the team knows.
A bug: a fast object flies through a thin wall because collisions are only checked once per frame.
Frame 1: before the wall
no check in between
Frame 2: already behind
In more detail
In one frame the ball is in front of the wall, in the next already behind it; there never was a touch. Fixes: compute smaller steps, thicker walls or check the path between two frames.
3D graphics, models, images and augmented reality.
3D printing
A printer builds a real object layer by layer out of plastic.
In more detail
For this a 3D model is cut into layers (slicer) and saved as a print job. Unlike in games, the model must be closed and thick enough. This way a drawing can become a printed object, for example.
A WebAR technology that recognises rooms in the browser, without Google services.
In more detail
Niantic's platform was shut down; since 2026 the framework has been open source (MIT). Room recognition is only available as an unmodifiable binary file with its own licence: do not modify, credit Niantic Spatial, no competing product, revocable. Not legal advice.
Movements of a 3D character, for example walk, jump, wave.
In more detail
You set key poses on a timeline and the program fills in between, much like CSS keyframes. In Blender, saved movements are called actions; in the GLB they travel into the game.
Augmented reality: 3D things appear in the camera picture as if they were really in the room.
Camera
SLAM finds the table
3D object in the room
In more detail
For this the phone must understand where floor and table are and how it is moving (SLAM). In the browser this works with WebXR or libraries such as 8th Wall. An AR murder mystery can, for example, turn your own table into a crime scene.
Google's AR technology for Android (“Google Play Services for AR”).
In more detail
ARCore detects surfaces and motion very well but requires Google services on the phone. Unity AR Foundation, Godot AR and WebXR on Android build on it.
A free program for modelling, painting, animating and rendering in 3D.
In more detail
Blender is open source (GPL). What you create with it belongs to you. For web games you often export GLB files from it; add-ons such as Rigify help with the skeleton.
Freeing memory again when a 3D object is no longer needed.
In more detail
Geometries, materials and textures take up memory on the graphics card. Removing them from the scene leaves them there. dispose() cleans up; otherwise the game gets slower over time.
A free image editing program, similar to Photoshop.
In more detail
GIMP is open source (GPL). You use it to edit photos, paint textures or build interfaces for games. A tutorial can be an asset pack too, for example for game interfaces with GIMP.
A file format for 3D models that browsers and game engines understand well.
Blender
figur.glb
three.js or Godot
In more detail
glTF is an open standard. GLB is the same thing in a single file, with shapes, materials, textures and animations. Blender exports it; three.js and Godot load it.
Godot is open source under MIT, with no licence fees. It is usually programmed in GDScript, a Python-like language. Games can be exported for PC, phone and web.
The orientation sensor in the phone. It notices how you turn it.
In more detail
3DoF means three degrees of freedom: only rotating, not moving. A 3D scene can turn along with the phone, but things do not stay fixed on the table. A simple fallback when SLAM does not work.
AI tools that turn a picture into a rough 3D model.
In more detail
TripoSG is an open model for this (code and weights under MIT), Modly an interface for using such models on your own PC. The result usually needs touching up in Blender. Expect to need about 8 GB of VRAM. Check the licence of each tool.
When the camera recognises the marker, it knows exactly where and how big the 3D object should appear. It is simple and works almost everywhere but needs the printout. Libraries: MindAR, AR.js.
A library that calculates gravity, pushing and bouncing realistically.
In more detail
Instead of programming every movement yourself, you give bodies mass and shape, and the engine does the maths. In the toolkit concept this is cannon-es. More bodies means more computing time.
A single picture dot. A screen consists of millions of them.
In more detail
In CSS a pixel is a unit of measurement, not a real light-emitting dot: phones with many real dots combine several into one CSS pixel. Pixel art uses visible, large pixels as a style.
Two image formats: PNG stores pixels, SVG stores shapes as text.
In more detail
PNG suits photos with transparency and pixel graphics; enlarged, it becomes blurry. SVG describes lines and areas and stays sharp at any size, ideal for icons such as the pictograms here. JPG is for photos without transparency.
Throwing a picture onto a 3D model like a projector and keeping it as a texture.
In more detail
That way a model quickly gets a paint job matching the original picture. Tools for this are Blender itself or add-ons such as StableProjectorz. Hidden areas need further views or manual work.
How many pixels wide and high a picture is, for example 1920 × 1080.
In more detail
Higher resolution shows more detail but needs more memory and loading time. For the web it pays to save pictures no larger than necessary. An itch cover is 630 × 500 pixels.
The skeleton (rig) consists of bones, and every part of the mesh is attached to certain bones. Rigify is a Blender add-on that generates a finished human skeleton from a template.
A small program the graphics card runs for colours and effects.
In more detail
Shaders run for every point or pixel at the same time and are therefore very fast. They create water, glow or a comic look. They are written in their own language (GLSL).
From the camera picture, the phone works out the room and its own position in it at the same time.
In more detail
SLAM tracks distinctive points from frame to frame and builds a map from them. It is computationally heavy and jerky on older phones. Without ARCore, SLAM in the browser is available, for example, from 8th Wall or AlvaAR.
A picture stuck onto a 3D shape, for example wood grain.
In more detail
How the picture fits onto the shape is set by the UV unwrap, like a flattened cardboard box. Large textures cost memory, so often 1024 or 2048 pixels rather than more.
A JavaScript library for 3D graphics in the browser.
Scene
Camera
renderer draws
picture in the browser
In more detail
three.js takes a lot of work off your hands: scene, camera, light, loading models. It is open source under MIT. Kept in its own folder, for example vendor/, games run offline too.
WebXR uses whatever the device provides. On Android it needs ARCore, meaning Google services. On iPhones support is limited. That is why it is worth looking at ways without ARCore.
Microcontrollers, firmware and radio without internet.
Arduino
Hobby boards and a program for programming microcontrollers easily.
In more detail
With the Arduino environment you write programs (sketches) in C++ and upload them to the board via USB. Many other boards, including the ESP32, can be programmed this way.
How fast data flows over a cable connection, in symbols per second.
In more detail
Both sides must use the same baud rate, otherwise you get gibberish. Higher is faster, but not every cable manages every rate. Common values are 115200 or higher for flashing.
A short-range radio connection, for example between a phone and a device.
In more detail
With the Mesh Kit, the Meshtastic app connects to the node via Bluetooth; the first time, you enter a PIN shown on the screen. The range is a few metres.
A special start-up state in which a device accepts new firmware.
In more detail
On the ESP32 you usually hold a button (G0 or BOOT) while plugging in the cable. For the Mesh Kit, the guide says: cap off, switch off, hold G0, plug in USB.
A group in the radio network. Only those who know the channel can read the messages in it.
In more detail
In Meshtastic every channel has a name and a key. The default channel is public; for private conversations you create your own and share the key only with the right people, never publicly.
The program that runs permanently on a device, for example on a microcontroller.
In more detail
Firmware is not installed like an app but written onto the chip (flashed). New firmware replaces the old one completely. So know beforehand how to get back to the old one.
Writing firmware onto a device, usually via USB cable.
PC with flashing tool
USB, boot mode
new firmware
In more detail
Often the device has to be in a boot mode for this; on the Cardputer, hold the G0 key while plugging in. Tools: M5Burner, Arduino, PlatformIO or a project's web flasher. Do not pull the cable while flashing.
The range of radio waves a device may transmit in. In Europe and Switzerland, around 868 MHz for LoRa.
In more detail
In Meshtastic the region is called EU_868; the device sets the frequency itself (869.4 to 869.65 MHz). The region must be right, otherwise you transmit on a frequency that is not allowed.
A two-wire connection a microcontroller uses to talk to sensors.
In more detail
Several devices hang on the same two lines, each with its own address. Slower than SPI but economical with pins. Typical for temperature or orientation sensors.
A radio technology that sends small messages very far, using little power.
In more detail
LoRa is slow, but depending on the terrain a signal can reach kilometres. Just right for text messages without a mobile network. In Europe it transmits in the band around 868 MHz.
An M5Stack program for flashing ready-made firmware onto their devices in a few clicks.
In more detail
Choose the firmware, select device and port, set the baud rate, “Burn”. For the Mesh Kit, 1500000 is given as the baud rate. It needs an internet connection to download firmware.
A small pocket computer the size of a card, with keyboard, screen and ESP32-S3.
In more detail
The Cardputer runs custom firmware projects, for example loading animations. With a LoRa module it can become a Meshtastic device. M5Stack is the company that makes such modules.
A free project that lets LoRa devices form their own messaging network, entirely without internet.
Phone (Bluetooth)
Node A
node B relays
Recipient
In more detail
Each device (node) passes messages on until they arrive. It is controlled with an app via Bluetooth or directly on the device. Messages are short, about 200 bytes.
A tiny computer on a chip that controls one job, for example lights, sensors or a small screen.
In more detail
A microcontroller has no big operating system. It runs exactly one program, the firmware, and starts in an instant. It needs little power and runs well on a battery. Examples: ESP32, Arduino boards.
A small, full computer on a board, usually running Linux.
In more detail
Unlike a microcontroller it has an operating system and can run many programs at once, such as a server. In return it needs more power and takes longer to start.
In the 869.4 to 869.65 MHz sub-band up to 27 dBm is allowed, which is half a watt. Meshtastic's default setting fits; do not raise it by hand. More range often comes from a better location or a better antenna.
A collection of matching assets to download, often for sale.
Assets
ZIP and licence
itch.io
In more detail
A pack typically contains: a ZIP with the files, a cover, a description and a licence file. Examples from the LolZ brand: Halloween props, Escape Lab props, game UIs, the effect pack “Magic and Sparks”.
The pictures a product uses to catch attention in a shop.
In more detail
On itch.io the cover is the small preview image (630 × 500 pixels), the hero image the large picture at the top of the page (1920 × 1080). Both should show at a glance what is inside.
Visible effects such as sparks, glitter, explosions or spells.
In more detail
VFX stands for visual effects. They usually consist of particles or sprite animations. The pack “Magic and Sparks”, for example, contains 10 child-friendly effects.
A small symbol, for example for battery, radio or menu. A set is many in the same style.
In more detail
Good icons are still clearly recognisable when small. As SVG they stay sharp; for small screens like the Cardputer they are often converted to pixel graphics.
An online marketplace for independent games and assets.
In more detail
There you can offer games and packs for free, at a fixed price or as “pay what you want”. The packs on mykeyz.ch appear under the LolZ brand. itch.io's terms apply to sales.
A text file in the package that says what buyers may do with the files.
In more detail
It is usually called LICENSE.txt or LIZENZ.txt and belongs in every pack. If the package contains third-party parts, their licences are added, for example in a folder of third-party licences.
Two versions of the same asset: low for weak devices, HD for nice close-ups.
In more detail
Low has fewer polygons and smaller textures and runs smoothly on phones. HD looks finer but needs more power. Both together are often cheaper as a bundle.
The person or company that owns a work and decides how it may be used.
In more detail
Whoever creates something is usually the rights holder. That is why licence files and code carry a copyright notice with name and year. Not legal advice.
Short sounds give instant feedback. You can record them, edit them with programs such as Audacity or generate them in code. Do not forget volume and a mute switch.
A trademark is a protected name or sign. Before using a new name, you check whether it already exists.
In more detail
A first check is a web search; more thorough are the trademark registers (swissreg in Switzerland, EUIPO in the EU, WIPO worldwide). If unsure, ask an expert. Not legal advice.
A ready-made template for user interfaces: buttons, windows, displays.
In more detail
UI stands for user interface, the surface people operate. With a template you do not start from scratch. Templates exist, for example, for the Cardputer and for games (GIMP).
A packed file that contains many files and folders and is smaller.
In more detail
ZIP files can be opened on any computer without extra software. Ideal for downloads: one file instead of a hundred. The folder structure inside is preserved.