flaxforge

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.