smolweb.orgSmolweb news2026-04-12T12:03:44+00:00https://smolweb.org/AdΓ«lehttps://smolweb.org/Adding noscript elementhttps://smolweb.org/posts/2026-03-10-adding-noscript-element.html2026-03-10T00:00:00+00:002026-03-10T16:12:19+00:00
<h1>Adding noscript element</h1>
<p><em>2026-03-10</em></p>
<p>The <a href="/specs/element-noscript.html"><code><noscript></code></a> element has been added to the <a href="/specs/">smolweb HTML subset</a>.</p>
<p>Since smolweb guidelines already require that sites <strong>must be readable without JavaScript</strong>, the <code><noscript></code> element is a logical addition. It allows authors to provide fallback content for users with JavaScript disabled or unavailable.</p>
<p>If you use <code><script></code> tags, it is now recommended to use <code><noscript></code> to inform users or provide alternative content.</p>
AdΓ«lehttps://smolweb.org/Adding semantic table elementshttps://smolweb.org/posts/2025-11-06-adding-semantic-table-elements.html2025-11-06T00:00:00+00:002025-11-06T20:45:14+00:00
<h1>Adding semantic table elements</h1>
<p><em>2025-11-06</em></p>
<p>After discussions with smolweb fans, it appears to be a good idea to add <a href="/specs/element-thead.html"><code><thead></code></a>, <a href="/specs/element-tbody.html"><code><tbody></code></a> and <a href="/specs/element-tfoot.html"><code><tfoot></code></a> to the <a href="/specs/">smolweb HTML subset</a>.</p>
<p>Their semantic roles add more accessibility to the table structure.</p>
AdΓ«lehttps://smolweb.org/Smolweb-validatorhttps://smolweb.org/posts/2025-08-17-smolweb-validator.html2025-08-17T00:00:00+00:002025-08-17T15:39:35+00:00
<h1>Smolweb-validator</h1>
<p><em>2025-08-17</em></p>
<p><a href="https://codeberg.org/smolweb/smolweb-validator">smolweb-validator</a> is a CLI tool to check if a web page respects <a href="https://smolweb.org/specs/index.html">smolweb HTML subset</a>.</p>
<p>This tool uses <a href="https://jsoup.org/">jsoup</a> HTML5 parser, a java library distributed under <a href="https://jsoup.org/license">MIT License</a>.</p>
<p>You need a Java Runtime Environment to execute it, and/or a Java Development Kit if you want to build it.</p>
<h2>Usage</h2>
<pre><code>./smolweb-validate <URL> [--verbose]
java -cp "jsoup-1.21.1.jar:." SmolwebValidator <URL> [--verbose]
jre -cp "jsoup-1.21.1.jar:." SmolwebValidator <URL> [--verbose]
</code></pre>
<p>Examples:</p>
<pre><code>./smolweb-validate https://example.com
./smolweb-validate https://example.com --verbose
java -cp "jsoup-1.21.1.jar:." SmolwebValidator https://example.com
java -cp "jsoup-1.21.1.jar:." SmolwebValidator https://example.com --verbose
jre -cp "jsoup-1.21.1.jar:." SmolwebValidator https://example.com
jre -cp "jsoup-1.21.1.jar:." SmolwebValidator https://example.com --verbose
</code></pre>
<p>Options:</p>
<pre><code>--verbose Show all errors and detailed statistics
</code></pre>
<p>Script: smolweb-validate is a useful script detecting java or jre</p>
<hr />
<p><pre><code>$ ./smolweb-validate https://smolweb.org/
π Validating: https://smolweb.org/
ββββββββββββββββββββββββββββββββββββββββ
π VALIDATION SUMMARY
ββββββββββββββββββββββββββββββββββββββββ
β VALID: This page conforms to the smolweb HTML subset!
π Statistics:
Total elements: 48
Valid elements: 48
Invalid elements: 0
ββββββββββββββββββββββββββββββββββββββββ
Validation complete.
</code></pre>
</p>
AdΓ«lehttps://smolweb.org/New smolweb symbol could be a lowercase w between angle brackets in monospaced fonthttps://smolweb.org/posts/2025-04-20-smolweb-symbol.html2025-04-20T00:00:00+00:002025-06-02T04:05:12+00:00
<h1>New smolweb symbol could be a lowercase w between angle brackets in monospaced font</h1>
<p><em>2025-04-20</em></p>
<p><pre><code> <w>
</code></pre>
The angle brackets < and > recall HTML tags, giving a nod to the DIY, hand-coded nature of many smolweb sites. It signals that the web can be understandable and writeable by humans, not just something consumed through complex platforms. It carries the scent of rawness and control, not abstraction and obfuscation.</p>
<p>A single, lowercase w stands in for “web” in a modest, almost shy way. Itβs not the grand “www” of the mainstream web, but a small w, lowercase and self-aware. It hints at an alternative web, not the bloated, surveillance-driven one, but a quieter, slower, more intimate one.</p>
<p><code><w></code> is compact, echoing the idea that less is more. That brevity is not a compromise but a strength. It suggests that meaning and value can come in small, lightweight package, just like a well-crafted static HTML page.</p>
<p>The whole symbol feels like something you might type into a terminal or a text editor. It invites tinkering. It feels like the smolweb: accessible, understandable, and remixable.</p>
<p><code><w></code> quietly says a lot: itβs webby, small, and stripped-down, no frills, all signal. Perfect shorthand for the smolweb !</p>
AdΓ«lehttps://smolweb.org/`w.` is the preferred subdomain for smolweb siteshttps://smolweb.org/posts/2025-04-20-preferred-subdomain.html2025-04-20T00:00:00+00:002025-04-20T03:08:47+00:00
<h1><code>w.</code> is the preferred subdomain for smolweb sites</h1>
<p><em>2025-04-20</em></p>
<p>A simple way for a website to indicate that it adheres to the smolweb guidelines is to use the subdomain w instead of www.
This short subdomain is very much in the spirit of smolweb.</p>
<p>This is not a requirement, just a suggestion.</p>
<p><code>w.example.org</code> is visually different from <code>www.example.org</code> or <code>example.org</code>.</p>
<p><em>this standard has been proposed by <a href="https://masto.lema.org/@santiago/114363901296027179">Santiago on the Fediverse</a></em></p>
AdΓ«lehttps://smolweb.org/Simple.css: a minimalist css frameworkhttps://smolweb.org/posts/2024-07-22-simple-css.html2024-07-22T00:00:00+00:002024-07-22T18:41:15+00:00
<h1>Simple.css: a minimalist css framework</h1>
<p><em>2024-07-22</em></p>
<p>If building a stylesheet in css from scratch seems too complicated for you, <a href="https://simplecss.org/">Simple.css</a> is a solution. This lightweight framework stands on HTML elements (and their semantic specs) and not on specific classes. So, your pages can fully follow the <a href="/guidelines.html">smolweb guidelines</a> and get a responsive design that respect the choices of the user such as font sizes and light/dark preference.</p>
AdΓ«lehttps://smolweb.org/Allowing JavaScript in smolwebhttps://smolweb.org/posts/2024-06-15-allowing-javascript-in-smolweb.html2024-06-15T00:00:00+00:002024-06-15T05:35:22+00:00
<h1>Allowing JavaScript in smolweb</h1>
<p><em>2024-06-15</em></p>
<p>Following <a href="https://phpc.social/@adele/112584960486034900">the poll on the Fediverse</a> and the discussion under it, JavaScript could be allowed on smolweb sites under some conditions :</p>
<ul>
<li>The site must remain usable without JavaScript, if the browser has no JavaScript engine or if the user disable it ;</li>
<li>All scripts must be embedded directly in the pages of the smolweb site or in external .js files coming from the <code>same host</code>.</li>
</ul>
AdΓ«lehttps://smolweb.org/Adding figure and figcaption tagshttps://smolweb.org/posts/2023-12-23-adding-figure-tags.html2023-12-23T00:00:00+00:002024-04-02T18:12:49+00:00
<h1>Adding figure and figcaption tags</h1>
<p><em>2023-12-23</em></p>
<p>As suggested by <a href="https://mastodon.social/@reiver/111613323404260453">@reiver on the Fediverse</a>, the semantic tags <code><figure></code> and <code><figcaption></code> have been added to the smolweb subset.</p>
AdΓ«lehttps://smolweb.org/Wiby, a search engine for the smolwebhttps://smolweb.org/posts/2023-10-16-wiby-a-search-engine-for-the-smolweb.html2023-10-16T00:00:00+00:002024-04-02T18:12:49+00:00
<h1>Wiby, a search engine for the smolweb</h1>
<p>While looking for smolweb resources, I met <a href="https://wiby.me">Wiby</a>! This search engine indexes websites compatible with old browsers. You will find simple HTML and non-commercial sites, and, if you have a smolwebsite, you can <a href="https://wiby.me/submit/">submit it to their database</a>.</p>
<p>It also works with <a href="http://wiby.me/">http protocol</a>.</p>
<p>A very good resource for smolweb surfers!</p>
AdΓ«lehttps://smolweb.org/A smolweb bash generatorhttps://smolweb.org/posts/2023-10-11-smolweb-bash-generator.html2023-10-11T00:00:00+00:002024-04-02T18:12:49+00:00
<h1>A smolweb bash generator</h1>
<p>I publish this ugly code just to show that it is very easy to build and regenerate a smolwebsite with a few lines of bash script.</p>
<p>It uses <a href="https://www.pell.portland.or.us/~orc/Code/discount/">discount markdown converter</a> to generate html code from .md files.</p>
<h2>All files</h2>
<p>The source directory contains the converter, favicons, a page template and markdown content of each page. Two folder would be used to store image (/img) and documents (/doc).</p>
<p><pre><code>.
βββ convert.sh
βββ doc
βΒ Β βββ index.html
βββ favicon-32x32.png
βββ favicon-64x64.png
βββ favicon.ico
βββ guidelines.md
βββ img
βΒ Β βββ index.html
βββ index.md
βββ news.md
βββ page.tpl
βββ posts
βΒ Β βββ 2023-10-09-1st-post.md
βΒ Β βββ 2023-10-09-an-other-smallweb-definition.md
βΒ Β βββ 2023-10-11-smolweb-bash-generator.md
βββ style.css
βββ subset.md
</code></pre>
</p>
<h2>The bash script</h2>
<p>This script (called convert.sh) uses files put in the same directory to generate the content of smolweb.org</p>
<p><pre><code>#!/bin/bash
cd "$(dirname "$0")"
export docroot="../smolweb.org"
export urlroot="https://smolweb.org"
cp -vu *.{ico,png,css} $docroot
cp -vu img/* $docroot/img/
cp -vu doc/* $docroot/doc/
echo "# News" > news.md
echo '<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"
xmlns:thr="http://purl.org/syndication/thread/1.0"
xml:lang="en">
<title type="text">smolweb.org</title>
<subtitle type="text">Smolweb news</subtitle>
<updated>'"$(date -u -Isecond)"'</updated>
<link rel="alternate" type="text/html" href="'"$urlroot"'/" />
<id>'"$urlroot"'/</id>
<link rel="self" type="application/atom+xml" href="'"$urlroot"'/atom.xml" />' > $docroot/atom.xml
# posts
for f in `ls -1r posts/*.md`;
do
head -n 3 "$f" | grep "^# " | sed -e "s/^# //" > /tmp/title.tmp
cat "$f" | markdown -f fencedcode > /tmp/content.tmp
cat "$f" | markdown -f fencedcode -f cdata > /tmp/cdata.tmp
cat page.tpl | sed -e "/PAGE_TITLE/r /tmp/title.tmp" -e '//d' -e "/PAGE_CONTENT/r /tmp/content.tmp" -e '//d' > $docroot/${f%.*}.html
echo "* $(echo $f | grep -oP "[0-9]{4}-[0-9]{2}-[0-9]{2}") [$(cat /tmp/title.tmp)](${f%.*}.html)" >> news.md
echo ' <entry xml:lang="en">
<author><name>AdΓ«le</name><uri>'"$urlroot"'/</uri></author>
<title type="html">'"$(cat /tmp/title.tmp)"'</title>
<link rel="alternate" type="text/html" href="'"$urlroot"'/'"${f%.*}.html"'" />
<id>'"$urlroot"'/'"${f%.*}.html"'</id>
<published>'"$(echo $f | grep -oP "[0-9]{4}-[0-9]{2}-[0-9]{2}")"'T00:00:00+00:00</published>
<updated>'"$(date -u -Isecond --date=$(stat -c '@%Y' $f))"'</updated>
<content type="html">' >> $docroot/atom.xml
cat /tmp/cdata.tmp >> $docroot/atom.xml
echo ' </content>
</entry>'>> $docroot/atom.xml
done
echo '</feed>' >> $docroot/atom.xml
# pages
for f in *.md
do
head -n 3 "$f" | grep "^# " | sed -e "s/^# //" > /tmp/title.tmp
cat "$f" | markdown -f fencedcode > /tmp/content.tmp
cat page.tpl | sed -e "/PAGE_TITLE/r /tmp/title.tmp" -e '//d' -e "/PAGE_CONTENT/r /tmp/content.tmp" -e '//d' > $docroot/${f%.*}.html
done
</code></pre>
</p>
<h2>The markdown files</h2>
<p>The files with .md extension contain text in markdown format. The first line begining with with a # and a space is the H1 and the title of the page.</p>
<p>Example index.md:</p>
<p><pre><code># About smolweb
_Promoting a simple unbloated web!_
Nowadays, hardware resources of our personal devices are essentially
oversized to manage bloated websites. If we incite web designers to
return to a lighter web, small devices such as old PC, old smartphones,
retro-machines and small boards could be usable.
...
</code></pre>
</p>
<h2>The site template</h2>
<p>The file page.tpl contains the template of a page for the site. the line PAGE_TITLE and PAGE_CONTENT are replaced dynamically to generate each page of the site.</p>
<p><pre><code><!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
<meta name="viewport" content="width=device-width, initial-scale=1.0" >
<meta name="description" content="smolweb.org promotes simple unbloated web. It provides resources to actors who want to participate." >
<link href="/style.css" rel="stylesheet" type="text/css" >
<link href="/atom.xml" rel="alternate" type="application/atom+xml" title="Smolweb news" >
<link rel="icon" href="/favicon.ico" type="image/x-icon" >
<link rel="icon" href="/favicon-64x64.png" type="image/png" >
<title>
PAGE_TITLE
</title>
</head>
<body>
<header>
<p>
<small><code>(w)</code></small> smolweb
</p>
<nav><ul>
<li><a href="/index.html">Home</a></li>
<li><a href="/guidelines.html">Guidelines</a></li>
<li><a href="/subset.html">HTML subset</a></li>
<li><a href="/news.html">News</a></li>
<li><a href="/atom.xml">RSS feed</a></li>
</ul></nav>
</header>
<main>
<article>
PAGE_CONTENT
</article>
</main>
<footer>
<p><a property="dct:title" rel="cc:attributionURL" href="https://smolweb.org/">Smolweb</a> by <a rel="cc:attributionURL dct:creator" property="cc:attributionName" href="https://mastodon.tetaneutral.net/@adele">AdΓ«le</a> is licensed under <a href="http://creativecommons.org/licenses/by-sa/4.0/" target="_blank" rel="license noopener noreferrer">CC BY-SA 4.0</a></p>
</footer>
</body>
</html>
</code></pre>
</p>
<h2>The stylesheet</h2>
<p>The file style.css is the stylesheet for the whole site.</p>
<p><pre><code>body {
margin: 0 auto;
padding: 0;
max-width: 1024px;
font-family: Verdana, Sans-Serif;
}
main {
margin: 0 1em;
}
header {
color: #a0a;
background-color: #ddf;
padding: 0.2em;
border-bottom: 1px solid black;
}
header p {
line-height: 2em;
font-size: 2em;
margin: 0;
padding-left: 1em;
font-weight: bold;
}
header p small {
font-size: 0.5em;
}
nav ul {
list-style-type: none;
border-left: 1px solid black;
margin: 0;
padding: 0;
}
nav ul li {
display: inline-block;
border-right: 1px solid black;
padding: 2px 10px;
margin: 0;
}
nav ul li a.active {
font-weight: bold;
}
img#logo {
vertical-align: middle;
max-width: 80px;
max-height: 80px;
}
pre, code {
font-family: Monaco, Courier, monospace;
tab-size: 1em;
}
pre {
padding: 1em;
margin: 1em 0;
overflow-x: auto;
background-color: #111;
color: #6f6;
border-radius: 0.5em;
}
li {
margin-left: 1em;
}
p {
margin: 1em 0;
line-height: 1.5em;
}
a {
color: #009;
text-decoration: none;
}
blockquote {
background: #eee;
padding: 0.5em 1em;
margin: 0 0 0 0.5em;
border-radius: 0.5em;
}
div.inline-img img {
max-width: 100%;
}
footer {
margin-top: 20px;
border-top: 1px solid black;
}
footer img {
height:22px!important;
margin-left:3px;
vertical-align:text-bottom;
}
@media (prefers-color-scheme: dark) {
body {
color: #eee;
background: #444;
}
a {
color: #99f;
}
blockquote {
color: #fff;
background: #333;
}
}
</code></pre>
</p>
AdΓ«lehttps://smolweb.org/An other Small Web definitionhttps://smolweb.org/posts/2023-10-09-an-other-smallweb-definition.html2023-10-09T00:00:00+00:002024-04-02T18:12:49+00:00
<h1>An other Small Web definition</h1>
<p><em>2023-10-09</em></p>
<p>As mentioned on the <a href="https://smolweb.org/index.html">homepage of smolweb.org</a>, this site gives one definition and some guidelines to build a better and unbloated web.</p>
<p>But there are many solutions to reach this goal. Aral Balkan give a different <a href="https://ar.al/2020/08/07/what-is-the-small-web/">definition of the Small Web</a>, and it is interesting have a look.</p>
<p>In addition, he proposes several tools, such as <a href="https://codeberg.org/kitten/app">Kitten</a> to build this new web.</p>
<p>You can follow him on <a href="https://mastodon.ar.al/@aral">Mastodon</a>.</p>
AdΓ«lehttps://smolweb.org/First posthttps://smolweb.org/posts/2023-10-09-1st-post.html2023-10-09T00:00:00+00:002024-04-02T18:12:49+00:00
<h1>First post</h1>
<p><em>2023-10-09</em></p>
<p>I will try to publish information about smolweb here. I’m not sure to be very productive, I have no goal, I just need an area available for posting some news.</p>
<p>If you see some resources about this subject, share it with me on <a href="https://mastodon.tetaneutral.net/@adele">mastodon</a>.</p>