Static files, no server
Data & API
Three files on this site are meant to be read by a machine as well as a person. There is no API server behind them - they are flat files the web server hands over unchanged, the same ones the pages here read with a plain fetch. Point a script at them, cache them, diff them between visits.
/api/weaves.json
The whole weave library as one object: a count, a fields map that names every column, and a weaves array. Each weave carries its threading, tieup (the shafts each treadle raises, rising shed) and treadling as integer arrays, the unit as [ends, picks], the computed float_warp and float_weft, a suggested sett, and an href to its page. The catalogue is this file drawn as a table; the generator loads from it.
{
"id": "twill-2-2",
"name": "Twill, 2/2",
"family": "Twills",
"shafts": 4,
"treadles": 4,
"threading": [
1,
2,
3,
4
],
"tieup": [
[
1,
2
],
[
2,
3
],
[
3,
4
],
[
1,
4
]
],
"treadling": [
1,
2,
3,
4
],
"unit": [
4,
4
],
"float_warp": 2,
"float_weft": 2,
"sett": 100,
"colour_effect": false,
"href": "/weave-twill-2-2.html"
}/api/releases.json
The version history the changelog is built from: a releases array of version, date, kind (major, feature or patch) and a one-line summary, newest first. The release policy is stated in the policy field.
{
"product": "Flaxforge Draft",
"current": "3.4.2",
"releases": [
{
"version": "3.4.2",
"date": "2026-09-24",
"kind": "patch",
"summary": "…"
}
]
}/feed.xml
The same releases as an Atom feed, one <entry> per version with a stable tag: id and a UTC <updated>. Point a feed reader at https://flaxforge.app/feed.xml to hear about a release without opening the program.
The .flxd draft file
Each library entry is also a plain-text draft in the native format, documented fully on the formats page. This is the one behind 2/2 twill:
flxd/3
name Twill, 2/2
author Flaxforge library
shafts 4
treadles 4
unit mm
threading 1 2 3 4
tieup 1:1,2 2:2,3 3:3,4 4:1,4
treadling 1 2 3 4
repeat ends 4 picks 4
warp #2c4461 x4
weft #d9c8a4 x4
sett warp 100/10cm
UTF-8, one key per line, keys in any order. The tieup field matches the tieup array in weaves.json written out as treadle:shafts.