Gallery

Nine works, rendered from a database table. The page below is a loop; the content is rows.

Every title, caption, medium, year and running order on this page comes from the gallery table, read at render time. Nothing below is written into the page.

To change a title, edit a row. To reorder the works, change their position. To withdraw one, set its status. No file is edited, nothing is republished, and there is no build step - the next request renders whatever the table says.

Horizontal bands of pale light across deep blue, like water seen level with the eye.
Tide lineOil on linen, 2026
A red glow opening out of a dark ground.
Ember fieldOil on board, 2025
Cool greys and blues in horizontal layers, still water under a low sky.
Quiet harbourAcrylic on canvas, 2026
A soft grid of green and stone squares, light through panes.
North windowAcrylic on board, 2024
Pale bands over olive green, flat land under a wide sky.
Salt marshOil on linen, 2025
A warm yellow centre held inside deep violet.
LanternOil on canvas, 2026
Dusty pink squares scattered across a slate ground.
Slate and roseMixed media, 2024
A pale sun low in an orange field.
Low sunOil on board, 2026
Muted greens in an irregular grid, bare growth against cold light.
Winter hedgeAcrylic on canvas, 2025

The works and the images are synthetic, generated for this demonstration. The mechanism is the point: a table, nine rows, and a page that is a FOREACH over db:gallery.