mews.page/site/content/pages/index.md
randogoth 060d4e00fd refactor: split the repo into self-contained validator, directory, quickstart, spec and site folders
validator/ holds mewslint (lint, css, fetch, DTD/CSS data); directory/ holds
the mews.page service (app, db, check, pages, cli) and depends on validator/;
quickstart/ holds mews-quickstart and md2mews.py for third parties who want
to create Mews content without cloning the repo; spec/ consolidates doc/ and
dtd/ with the canonical mews-0.1.css; site/ becomes a Pelican project with
the forward-facing pages as Markdown, the check form kept as a raw HTML
snippet. Root pyproject.toml is now a virtual uv workspace over validator,
directory and quickstart, with cross-cutting tests that span more than one
of them staying at the repo root. Makefile and flake.nix updated to match.
2026-10-13 12:29:23 +03:00

3 KiB

Title: the mews Slug: index Description: A quiet corner of the web, built on a standard that was already cut back: XHTML Mobile Profile 1.2.

the mews

Directory  ·  Specification

The web is a loud place now. Pages track you, shout at you, and weigh magnitudes more than the words they carry.

A mews is the lane round the back where the stables were: narrow, quiet, not on the way to anywhere. The web needs more mews: small sites, plain words, nothing watching.

The IndieWeb, small web, and alternative protocols like Gemini and Spartan already point the way. But a quieter, more private web doesn't need a new protocol. We already had one: XHTML Mobile Profile 1.2 (WAP 2.0), built for phones too limited for a complex web. Also strip away scripts and styling, and an old constraint becomes the point: quiet.

Get listed

The mews is this idea turned into a specification and also a directory of sites that opted in. Anyone can submit an address. The page is fetched, put through both of the spec's checks, and listed at once if it passes. Nobody reviews it.

To get listed, publish a site that conforms to the doctype, avoids script tags, nested tables, divs, and other unsupported elements and only embeds the mews-0.1.css stylesheet. Validate and submit it here. Done.

Get started

Check this sample page with one of every element a mews page can hold and the validator that tells you for any address exactly what it breaks and why.

For a simple way to create compatible content there's a Python script that converts from a Markdown file. If you want a real blog engine, here's a uvx powered quickstart script that writes a project folder, installs the Pelican static site generator together with our pelican-mews plugin, and leaves you a first post to edit:

uvx --from git+https://code.randogoth.com/randogoth/mews.page.git#subdirectory=quickstart \
    mews-quickstart mysite
cd mysite
uv run pelican content

The pages land in output/ as plain HTML that any web server will serve as valid mews pages.

Get in touch

Bug reports, arguments about the spec, and sites that ought to be listed and aren't, mail me or even better, send me a smolmail:

smol://randogoth@smol.place/olrtb3y4xr73w3gxgslejz4c6klgiawdu63ms2vm3nxekonqxk3a

So: write something. Link to a neighbour. Leave the light on.

Repository