Skip to content

Freshcoat v0.5.0 — print tools, richer PDFs, and safer rendering

Latest

Choose a tag to compare

@nedpals nedpals released this 22 Oct 10:56
439ada0

Freshcoat v0.5.0

Freshcoat 0.5.0 adds tools for print and cut work, more faithful vector PDFs, grain and halftone effects, and styled QR codes. It also improves autosave recovery and makes rendering untrusted templates and importing spreadsheets safer. This release includes changes since v0.4.0.

Highlights

  • Pieces and cut files: mark regions of a design as slices, export them as separate pieces with bleed, and generate SVG or DXF cut files. PDF cut lines use named spot colours such as CutContour, with names you can change for your printer or cutter. Shapes can also carry spot inks for white, foil, or varnish, with optional overprint. (#218, #233, #285)
  • Sheet printing: repeat a design a set number of times or fill the sheet, align duplex backs with an offset, and allow blank backs. Add registration marks, a colour bar, and a slug alongside crop marks. A5 and A6 paper and more print document presets are included. (#222–#224, #232, #240)
  • Better PDF and colour output: more gradients, strokes, curved text, and variable fonts stay as vectors. WOFF and WOFF2 fonts can be read, text can be converted to outlines, and font embedding permissions are respected. PDFs declare sRGB as their default output intent or accept your ICC profile; JPEG ICC profiles are preserved and PNG output is tagged as sRGB. (#207, #210, #211, #215, #231, #254)
  • Print checks: catch images below a minimum effective DPI, small text, hairline strokes, rich-black text, and artwork short of the bleed. Export reports identify rasterized layers and warn when a spot ink loses its separation. Print targets and profiles can be fitted from printed charts, with warnings for mismatched targets. (#214, #216, #226, #227, #241, #244)
  • Drawing and QR styling: add grain and halftone, manage shadows and blurs in one effects list, use different stroke widths on each side of a rectangle or frame, and smooth corners with different radii. Text strokes and an option to preserve PNG transparency are included. QR codes gain module and finder styles, gradients, quiet zones, and a centre logo, with readability checks. (#205, #206, #219, #220, #225, #229, #234, #235)

Studio, datasets, and CLI

  • Studio gains a Print tab, display units in px/mm/in/pt, clearer Data and Export panels, and an Activity indicator. Bleed is visible on the canvas and sheet preview. (#208, #217, #228, #236)
  • Dataset bindings can filter records and join columns from another dataset. Saved views work with both Studio exports and the CLI. (#209)
  • Autosave failures stay visible with a Retry action. Unreadable or newer autosaves are preserved, and discarding a failed autosave keeps readable work saved by another tab. (#253, #272, #281, #287)
  • The CLI adds sheet orientation, photo-sized output, copies, printer's marks, outlined PDF text, output intents, and print-target options. It reads template ZIPs and reports warning codes. Cancelling an export preserves an existing output file, and large data or PDF jobs give warnings before continuing. (#232, #243–#245, #256, #271, #277, #282)
  • Figma conversion preserves per-side strokes, effects, styled QR codes, and layers revealed by a variant. Monotone noise maps to grain, and dropped duplicate blurs are reported. (#221, #225, #229, #235, #237, #248)

Upgrading from 0.4

This minor release includes breaking API and behaviour changes. Read the 0.5 migration guide before upgrading.

  • Coatfile throws a typed CoatError; match its code instead of parsing messages. saveTemplate() is now async for JSON as well as .coat output.
  • Engine and coatfile exports are narrower. Import engine APIs from @freshcoat-js/engine, and replace removed coatfile subpaths with imports from its root. The migration guide lists moved and removed symbols.
  • Default SDK loaders restrict URL schemes and redirects. Font fallback is configurable: replace guessGoogle: false with fallback: null. See safer defaults when rendering untrusted input.
  • Images, compressed fonts, and spreadsheet imports have new size limits. Unsafe field patterns are rejected, field lookups use own properties only, and format versions must be MAJOR or MAJOR.MINOR.
  • CSV/TSV export escapes formula-triggering text and image cells, and import reverses that escaping. PDF metadata, output intents, and font handling change generated bytes; update byte-based snapshots where needed.

The packages support Node 22 or later and Bun 1.3.13 or later. The coatfile format advances to 1.7, independently of the package version. Existing templates remain readable; older applications can drop new fields when re-saving newer files.

Packages and downloads

The engine, for-print, coatfile, workspace, CLI, and Figma plugin share version 0.5.0.

npm install -g @freshcoat-js/cli@0.5.0

For SDK usage, install the packages your application needs at 0.5.0. Downloads include five npm package tarballs and freshcoat-figma-plugin-0.5.0.zip. To install the Figma development bundle, extract the ZIP and import its manifest.json in Figma desktop.

Full changelog: v0.4.0...v0.5.0