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.
For any issues or feedback, please contact us at help@keel.so.
Thank you for using Keel!