18 May, 2026
This release improves the Flows signature UI element with a new toPngDataURL() method and makes the new keel run engine the default for local development.
Signature PNG Export
The signature Flow UI element now returns a Signature object with an async toPngDataURL() method. This makes it easy to convert a captured signature into a PNG image, for example to store it as a file.
const page = await ctx.ui.page("sign", {
title: "Please sign",
content: [
ctx.ui.inputs.signature("signature", { label: "Your signature" }),
],
});
// Convert the signature SVG to a PNG data URL
const pngDataUrl = await page.signature.toPngDataURL();
// The signature object also exposes the raw SVG and timestamp
console.log(page.signature.svg); // SVG string
console.log(page.signature.signedAt); // ISO timestampThe ipAddress field has also been removed from the signature element's data — only svg and signedAt are now captured.
Improved keel run Engine
The new local development engine is now the default when running keel run. Key improvements include:
- Clickable file paths — Schema and migration errors now show absolute file paths that are clickable in your terminal
- "Did you mean..." suggestions — Typos in your schema now surface helpful hints
- Better migration errors — Database migration failures now include the underlying error context (table, column, and SQL state)
- TypeScript errors on boot — Type errors in your functions are now caught on the initial build, not only after a file save
The previous --experimental flag has been removed. If you need the old TUI, you can use --legacy to opt back in.
Fixes and Improvements
For a full list of fixes and improvements, check out our GitHub releases page (opens in a new tab).
For any issues or feedback, please contact us at help@keel.so.
Thank you for using Keel!