Skip to content

From our projects

Blog

Release notes and engineering write-ups published across the Tradik projects. Every headline opens the original article on the site that wrote it.

Subscribe to everything Tradik posts only

Latest posts

Sources: Tradik · MDDB · SSG · XSLT · Shipyard · TradeWeather

  • The API Reference Belongs Next to the Guides

    1.8.69 reads JavaScript, TypeScript declarations, Go, PHP, Python and OpenAPI files into pages of the same site as your guides, with examples that run in the browser and a Try it console for every endpoint.

  • Install Shipyard on a Raspberry Pi

    Shipyard is one static binary and one SQLite file. A Raspberry Pi 4 or 5 runs it comfortably.

  • Migrating from native XSLT: how-to

    On 17 November 2026, Chrome 158 stops running XSLT (the dates and the reasons). Two kinds of pages break: pages whose JavaScript calls new XSLTProcessor(), and XML documents the browser rendered through <?xml-stylesheet type="text/xsl"?>. This is the hands-on part: how to find both i

  • 1.3.0: XSLT 3.0 in JavaScript, one option away

    Two releases today. @tradik/xslt3 1.0.0 is a new package: XSLT 3.0 and XPath 3.1 in JavaScript, which also runs XSLT 2.0 stylesheets. And @tradik/xslt-processor 1.3.0, the browser XSLTProcessor replacement, can now hand a 2.0 or 3.0 stylesheet to it when you ask. Nothing changes for anyone who doesn

  • The problems Shipyard solves

    One person can write software for fifty repositories. Keeping fifty repositories maintained, released and explained is a different job. These are the problems…

  • XSLT 2.0 and 3.0 in JavaScript: why @tradik/xslt3 is a separate package

    Every browser that ever ran XSLT ran version 1.0, the 1999 recommendation. Chrome and Safari used libxslt, Firefox its own TransforMiiX. XSLT 2.0 arrived in 2007 and 3.0 in 2017, with grouping, regular expressions, real functions, maps, JSON and a much stronger XPath, and the browsers never followed

  • Two Ways to Read an Article Aloud

    1.8.65 adds a Listen button that uses the reader's own voice engine, and build-time MP3 from a TTS API you choose, with a podcast feed and a plan for when the API is down.

  • Three bugs in FreeBSD's ig4 driver, one dead touchpad

    A touchpad that died on every resume turned out not to be a suspend bug at all. FreeBSD never started the I2C controller the touchpad is wired to, for three separate reasons.

  • When will the washing actually dry

    Drying washing on a line is a weather-sensitive job with no product datasheet. Rain, relative humidity, wind and temperature decide it, which makes it a clean test case for the generic template engine. The laundry profile has no hard limits from a manufacturer, so it never produces STOP on its own.

  • What to record when weather stops work

    Standing down a gang because the weather turned is a normal part of the job. Whether it becomes an entitlement or a cost lands almost entirely on what got written down that morning, and by whom. The asymmetry If the main contractor's programme slips and you have nothing in writing, the default assum

  • Why one forecast is never enough

    A monocouche render needs the wall to stay above 5 °C and dry for the cure period the manufacturer specifies. On an exposed coastal site, one provider showed a dry Tuesday and the other showed 2 mm of drizzle from 14:00. Both were "right" within their own error bars. TradeWeather stores bo

Everything published here

Posts written on tradik.com, and the archive of the blog that ran on pushpanel.io between 2018 and 2020 — infrastructure notes from the work of the time, kept because the problems did not expire with the domain.

Want this kind of engineering on your systems?

The tools we write about are the same ones we bring to client work. Tell us what you are building.