Video
Front pages
The front pages of `classes`, `contrib`, `retrograde` and `architect`, rebuilt out of dummy content. Every other example here is one piece of markup; a front page is a stack of layout builder sections, so what there is to get right is the composition -- how much room a section takes, what the grid on its region does at each width, and whether two blocks of different kinds sit properly next to each other. The layouts, block plugin ids and views are the real ones the sites saved, so the theme picks the same templates. Nothing is saved and the content is made up.
Classes
Three sections, and the only one of the four pages built to sell something. The first holds a call to action -- a content block placed by reference rather than written into the page, and laid out with two sections of its own so the heading spans the full width and the text and the image share a `grid-2-1-1` under it. The card grid follows it in the same region, which is the pairing worth checking: a block whose height is set by its text, above a block whose height is set by an aspect ratio. The last section is four short blocks in a `grid-2-2-1`, where the interesting width is the middle one, when four across becomes two by two and the blocks stop being a row and start being a block themselves.
Learn the thing you have been putting off
A term of evening classes for people who maintain a site rather than build one. Small rooms, real sites, and nothing that only works in the slides.
Content modelling
Media and files
Views, end to end
Menus and navigation
Users and permissions
Configuration management
Layout builder
Search
Multilingual
Performance
Backups and updates
Going live
Who it is for
Anyone who has been handed a site to look after and would rather understand it than guess at it. No prior Drupal is assumed and none is wasted.
How it runs
Eight evenings, two hours each, in a room with a projector and enough sockets. Everything is done on a copy of a real site rather than on an empty one.
What you leave with
The site you built during the course, the notes as a printed handbook, and a year of access to the recordings.
Getting a place
Places are held for a week once you ask for one. Payment is due on the first evening and can be split across the term.
Contrib
One section, and the shape a page takes when nobody has designed it: prose, then a listing, then the foot of the page. It is here as the baseline the other three are departures from, and because its listing is the one row style a front page uses that an administrative page never does -- fields rendered inline and separated with a pipe, so a row reads as one line rather than as a stack of labelled values. The heading above the rows is a header area of the view rather than the label of the block, which is why it carries margin classes of its own. The webform the site puts at the foot of this page is not here: the module is not installed on the site the library is served from.
What this is
A record of what has been worked on, what is waiting, and what turned out to be somebody else's problem. It is kept as content rather than in an issue tracker so that the notes and the work sit in the same place.
Everything below is listed newest first. A row is one thing done to one project, on one day.
Recent content
Retrograde
The busiest of the four, and the only one that uses more than one kind of layout. The body opens in two columns -- not a layout, but a `md-columns-2` an author put in the body itself, which is worth knowing because it is the one multi-column thing on the page the site owner can change without touching a section. Under it a card grid, then a section split fifty-fifty between two listings of different lengths, which is where a two-column section usually shows its seam: the columns have nothing to align to and the shorter one decides how much space is left over. The last section is a container layout at its content width rather than a column layout, so the band under the columns is narrower than everything above it.
Welcome to retrograde, a celebration of cycling's past, present, and future!
The parts database holds what a part is, what it fits, and what it was worth when anybody last looked.
Anyone can add to it. A part with one line about it is more use than a part nobody wrote down.
Bookmarks point at the pages worth reading rather than repeating them here.
Add listings for what you are selling, and keep track of what is still in the bin.
Ask questions and somebody who has had the same bracket seized will answer.
Get in touch if you would like to help run it.
Bikes
Kona Explosif, 1994
Hardtail | 320
Peugeot PX-10, 1976
Road | 540
Raleigh Twenty, 1971
Folder | 180
Updated parts
Tue, 08/12/2025 - 09:14
Mon, 08/11/2025 - 17:02
Sun, 08/10/2025 - 11:47
Fri, 08/08/2025 - 20:31
Thu, 08/07/2025 - 08:05
Help Wanted
Two things would make this site better and neither of them is code. Somebody to check the compatibility notes against a real bike, and somebody who enjoys writing captions.
Architect
The index shape: a search box in a section of its own, and then the same listing five times under it. Two things are worth looking at. The first is the exposed form standing alone -- it is a views exposed filter block, which is the exposed form of a view whose results are on another page entirely, so it has to look like a search box rather than like the top of a listing. The second is the repetition: five blocks with the same markup, one after another, where the only thing separating them is the space the theme puts between two blocks and the heading each one carries. That is the hardest spacing on any of these pages to get right, and the easiest to check.
Articles
Drupal has several ways to handle images and media, and the one to reach for depends on whether the thing is reused.
A component is a twig template plus the CSS and JavaScript that belong to it, loaded together and only where it is used.
A request header tells Drupal to answer with a fragment rather than a page, and the rest of it is markup.
Modules
A layout per node is a promise to maintain a layout per node. Sometimes that is the right promise to make.
The database backend is enough for a site whose content fits in its head, and it is one less thing to run.
Resources
The parts of the standard that a reviewer will actually stop on, in the order they tend to come up.
Everything that has ever been forgotten on a launch day, written down so that it is only forgotten once.
Projects
A parts database for old bicycles, kept as content so that the notes and the parts sit in the same place.
A term of evening classes, with the timetable, the handbook and the recordings all in one place.
Issues
The grid is declared with a fixed column count rather than a minimum cell width, so it never uses a fourth.
Three widths are wanted and two are available, so the third is being done with a class on the section.