Kiln Public Preview

In a recent Tessera update, I mentioned I was working on another project. That project is Kiln, and today I am sharing a downloadable public preview.



Concept

A kiln is a thermally insulated chamber, a type of oven, that produces temperatures sufficient to complete some process, such as hardening, drying, or chemical changes. Kilns have been used for millennia to turn objects made from clay into pottery, tiles and bricks.

The bit of that I like best is what I’ve bold-faced, “… to complete some process.”

You use Lightroom or Capture One or whatever to work on your images – to mold your clay, so to speak – then export them into Kiln towards the end of your workflow, to complete some process.

Future Kiln

I have a big ambitions and many ideas for what I want Kiln to become. But these are very early days for Kiln!

I am still exploring the possibility space for what Kiln can be; there’s no roadmap yet.

Kiln is an Electron app for desktop.

I intend Kiln to be optional within the Backlight ecosystem of products, complimentary to Backlight.

I intend Kiln to be useful in various ways, with or without Backlight.

I intend Kiln to be a paid app, exiting beta status when it offers value enough to ask money for.

There may or may not be more public builds after this one, but … probably?

I have no real timeline for this project.

Present Kiln

Kiln itself is clay, meant to be molded by each user.

On the lefthand side is the rail, where you will find the default workspace. You may add and customize your own workspaces.

Each workspace has a left panel, a right panel, and a center stage.

Functionality is packaged into modular widgets.

The left and right panels draw the from the same pool of widgets, while the stage draws from a separate pool.

Add widgets to the left or right panels. Drag widgets to reorder them within a panel, or drag them from left to right, or from right to left to arrange your workspace.

At present, the stage has only one widget: the grid-and-loupe for viewing a collection of images.

The Panel Widgets

  • Folder - used to open a folder of images on your local drive.
  • Activity - displays jobs in progress, such as exports.
  • Animated Export - combine selected images into an animated GIF or WebP file.
  • Icon Export - select an image with a square aspect-ratio to export as app icon, favicon, PWA icons, etc.
  • Image Export - define multiple export renditions, then generate those exports all in one go.
  • … various development and debug widgets I’m using while developing the app.

These are just the beginning, of course …

Supported file types

Kiln ingests jpg, jpeg, png, webp, avif, gif, tiff, tif, heic, heif.

Navigating Kiln

Of course, you can click on things with the mouse.

However, Kiln is also very keyboard-friendly. Press K to open a chord, then follow on-screen cues to focus widgets.

For example, pressing K then F then . opens the Folder widget menu.

There’s also a quick menu, Cmd+K, that allows you access most things in the app via search. Try using it to switch the “theme”.

If you have an open folder, regardless where you’re currently focused, press Cmd and an arrow key to navigate the grid.

Check the widget menus or the Cmd+K palette for more keyboard commands.

Download

For now, I’m just going to serve these files from my Google Drive. The builds are set to expire 60 days from date of publish, so mid-August sometime. At which point there might be a newer build, or I can extend things if I want to. Assuming this all works the way it’s supposed to; this is my first time releasing software with an in-built expiration, so … ¯\_(ツ)_/¯

Download macOS or Windows builds (expired; see below).




Overtime …

You may be wondering why I’m building this.

It’s fun. That’s the most important reason. But also the most dangerous reason, because what will I do if it stops being fun …?

I’ve always found it annoying that if I want an image in multiple sizes from Lightroom or Capture One, then I had to create the images as separate export jobs. So I thought it would be cool to have an export module that would allow me to generate all the sizes I want in a single task, much like we do for Backlight.

I found it really annoying creating app icons for Tessera, so I made a widget to make it easy to create icons! Then I used it to create Kiln’s own icon.

Tessera 1.3.0 creates GIF files, but combining those into animated GIFs in external software is also annoying. Once again, I wanted it to be easy. Trivial, even. And now in Kiln, it is.

animation

There’s a lot of stuff I want Kiln to do as it continues to take shape. So far, it’s been about creating an extensible platform where I can build fun tools to make light work of things that I find irritating in other pieces of software.

So, that’s Kiln. I hope you enjoy it, and together we can see it evolve into something more.

Let me know what you think.

2 Likes

New builds available. The Windows build will hopefully work this time.

Kiln 0.1.0-beta.3

  • Added the new Remote Folder widget with saved SFTP connections and remote folder browsing.
  • Added remote drag and drop for uploads plus move/copy within the same remote connection.
  • Improved local Folder drag and drop with copy support and better folder count updates.
  • Improved restoration of selected local and remote folders by reopening the right folder branches.
  • Added new Settings Data actions for backup, snapshot export, restore, and import.
  • Improved backup/restore validation and upgrade handling during the SQLite transition.
  • Fixed Windows build packaging for Sharp.

Download.

Massive update, architectural overhaul. The changelog on my side is about a mile long, but here are summary points folks will likely care about.

Download (expired; see below).

Kiln 0.1.0-beta.4

Workspaces

  • Library is now a real, customizable workspace — add, remove, and rearrange panels and widgets; reset it to defaults from Settings if needed
  • Custom workspaces can now include Grid and Loupe as stage views
  • Jump to any workspace with a chord: press K then its rail number (K 1, K 2, …)

Grid & Filmstrip

  • New filmstrip below the folder tree — toggle it from the status footer or with Toggle Filmstrip; it’s a full grid surface with its own thumbnail controls and lightbox
  • Sort images by name, date modified, or size directly from the grid or filmstrip header; sort order persists per workspace
  • =/+ and - keyboard shortcuts to resize thumbnails

Navigation

  • View shortcuts: E = Loupe, G = Grid, Shift+G = Split View
  • Split View is now sticky — the grid stays docked when you switch to Loupe instead of collapsing
  • Cmd+Arrow and loupe arrow keys navigate across whichever grid surface is visible

Persistence

  • Grid/loupe split size persists per workspace
  • Active image and multi-selection restore after refresh or restart
  • Panel visibility and widget collapsed state persist per workspace

New format

  • TIFF added to Image Export (high-quality, lossless, and custom compression)

Other

  • Info button in the title bar: app version, icon attribution, and third-party notices
  • Improved dark-theme text contrast
  • Accessibility setting to disable the chord timeout

Fixes

  • Export task status now survives an app restart
  • K G no longer opens a disambiguation chooser in Split View
  • Split View Remove now correctly removes the grid, leaving Loupe in place
  • Loupe no longer briefly appears left-aligned when switching views

Kiln 0.1.0-beta.5

New: Catalog

A persistent, database-backed library.

  • Import dialog: select folders, preview files before import (already-imported files are unchecked automatically), choose Copy (into Kiln’s managed library) or Reference (in place).
  • Browse via All Images or Folders (mirrors your import folders).
  • Drag to move cataloged images between folders — moves the file, updates the catalog.
  • Delete cataloged images; missing files show a clear indicator.
  • Every import logs to Activity with one-click Undo.
  • Multiple catalogs supported, mountable independently as separate widgets.

Remote (SFTP) uploads

  • Upload collisions now prompt Replace, Keep Both, or Cancel instead of overwriting silently.
  • More reliable under concurrent activity; clearer recovery from connection errors.

Drag and drop

  • Cancelling a drag now responds immediately (was up to ~1s lag on macOS).
  • Multi-image drag now accurately highlights which images will move or copy.

Image quality

  • ICC color profiles now preserved when stripping other metadata.
  • Fixed portrait images processing sideways in the standalone Process pipeline.

Folder browsing

  • Local and remote folder trees unified, with keyboard search (/ to search by name).

Reliability

  • Hardened crash recovery, job history, and export progress tracking.
  • Window size, position, and maximized state now persist between launches.

Accessibility

  • Improved screen reader support across all dialogs (Settings, Confirmation, Info, Connections).

Fixes

  • Widget collapse/expand icon no longer activates the wrong panel.
  • Widget header labels no longer truncate when space is available.
  • Dropping images onto their current folder no longer registers as a move.
  • Various drag-and-drop history and workspace-layout-save fixes.
  • Many improvements and fixes not worth mentioning …

Download

The beta.5 release remains valid through 2026.

Download for MacOS and Windows (replaced; see new beta release, below).

I don’t have a machine to test the Windows build on, so I would love to hear confirmation from Windows users that the build actually works. Thanks!

Commentary

I was hoping to ship Catalogs and Collections together, one being dependent on the other, but this has taken longer than I had originally expected, so I’ve punted Collections to a future release. In the meantime, the Catalog is an important, load bearing pillar. Please try it out, and let me know any bugs, issues, or unintuitive experiences.

One word of warning. Please test the Catalog, but do not over-invest in it. It’s early days yet, and I cannot guarantee that existing catalogs won’t get nuked in a future release.

All other feedback also welcome.

1 Like

Kiln 0.1.0-beta.6

This release is mainly Windows fixes, responding to feedback reported on beta.5.

Windows

  • Image previews should now load for all image types.
  • File and folder names display as names, not full paths. This also fixes file lists that ran wider than the window.
  • The Folder widget’s tree now expands and highlights a nested selected folder, including after a restart.
  • Dropping a folder together with a file from inside it opens one widget, not two.
  • Import: turning off “include subfolders” no longer hides every file.
  • Keyboard shortcuts use Ctrl instead of Cmd: Ctrl+K opens the command palette, Ctrl+Arrow navigates the grid. Hints show Ctrl+....

Folder dialogs

  • Choosing a folder now opens the dialog at the last folder you chose. Source folders and export folders are remembered separately, and kept across restarts.

Exports

  • Exported file names are made valid for Windows on every platform. Characters Windows rejects (: ? * " < > |) become -, trailing dots and spaces are dropped, and reserved names such as con and nul get an underscore. Shot 10:30.jpg exports as Shot 10-30.webp.
  • Icon export: the file name prefix can no longer write files outside the folder you chose.
  • A /, \, or .. typed into an export suffix or folder name no longer creates extra folders.

Security

  • Export destinations and catalog folders are now checked correctly on Windows. A path on another drive or network share was wrongly treated as inside the chosen folder.
  • Windows paths are compared case-insensitively, and drive roots, network shares, 8.3 short names and junctions are handled. Device paths (\\?\, \\.\) and NTFS alternate data streams are refused.

Startup

  • Only one Kiln runs at a time. Launching it again brings the existing window forward. Two copies sharing one profile could overwrite each other’s settings.

macOS

  • The Applications shortcut in the installer window now shows its icon. On macOS 26 it appeared as an empty dashed square.

Packages

  • Packages are smaller: about 18 MB on macOS and about 32 MB on Windows. Each one now contains only the image-processing and database libraries for its own platform.

Known limitations

  • Windows builds are unsigned, so SmartScreen will warn.
  • Paths longer than 260 characters are not handled specially.
  • Renaming or moving a file may fail on Windows if another program has it open.
  • Importing the same folder under different capitalization on Windows may create duplicates.

Download

The beta.6 release remains valid through 2026.

Download for MacOS and Windows (replaced; see new beta release, below).

Commentary

I don’t have a Windows machine to do manual testing and verification. Fix assertions are based on outcomes from an automated test suite that verifies against stated expectations. The file-system and preview-loading checks also run automatically on a Windows machine hosted by GitHub; the app itself is not launched there.

Windows users, please let me know how things go, if you have any issues, etc.

Please test

If you can try any of these and tell me how it goes, that helps most. Report problems in the Kiln beta category.

On Windows:

  1. Open a folder of images, using Open folder or by dragging one in. Thumbnails and the large preview should show for JPEG, PNG, WebP, AVIF and TIFF files.
  2. File names should show as names, not full paths, and file lists should fit the window. If something still runs off the edge, tell me which window, and send a screenshot if you can.
  3. In the Folder panel, open a folder with subfolders and select one several levels down. Restart Kiln. The tree should reopen expanded to that folder.
  4. Choose an output folder when exporting, then open the Choose dialog again. It should start in the folder you chose. Restart Kiln and check that it still does.
  5. Ctrl+K should open the command palette, and Ctrl plus the arrow keys should move around the grid.
  6. Export an image named con.jpg. It should succeed and be saved as con_.webp (or whichever format you chose). If you have a file with a : or ? in its name, try that too.
  7. Start Kiln while it is already running. The existing window should come to the front instead of a second one opening.
  8. If you import from more than one drive at once, try it with “include subfolders” on and off. Files should appear and end up under the right folder.

On macOS:

  1. Open the .dmg. The Applications shortcut should show the folder icon. Drag Kiln onto it and launch. You should see only the usual first-open prompt.

Kiln 0.1.0-beta.7

Beta.7 brings quite a bit of polish. Kiln is beginning to feel like a real app, not just a work in progress.

This release adds collections, a catalog for organizing images apart from their folders, previews of icon and animated exports, moving and deleting folders and files, and a redesigned import dialog. Several features move or delete files on disk, so please read “Please test” below before pointing them at photos you can’t replace.

I don’t have a Windows machine, so Windows behavior is checked by automated tests only. If you use Windows, let me know how things go.

Download

The beta.7 release remains valid through 2026.

Download for MacOS and Windows.

Catalog

A catalog is Kiln’s library of images you have imported, either as copies Kiln stores or as references to the original files. This release adds groups for organizing folders, a redesigned import dialog and better tracking of files that go missing.

  • Catalog groups: make groups, nested if you like, in the Folders tree to organize folder roots. Drag a folder onto a group or use Move to Group…. Groups only change where a folder is listed; nothing moves on disk. Selecting a group shows the images in every folder beneath it.
  • Folder rows show whether a folder is copied (plain folder) or referenced (folder with a warning mark).
  • Rows have a context menu: Import, Sync, Purge Missing, Reveal and Remove. Files deleted outside Kiln are detected and counted as missing, and missing tiles show their file name.
  • An Options dialog replaces the header dropdown for choosing, creating, renaming and deleting catalogs.
  • Import dialog redesigned: a sidebar (catalog, source, storage, destination) beside the thumbnail grid, with the file count and Select all / Select none above it. It remembers the catalog and Copy or Reference choice from your last import.
  • Import Folder to Catalog… in the Folder widget’s menu opens the dialog on the folder you are viewing.
  • Importing several folders as copies no longer writes into an existing folder of the same name that holds images from a different source. The new subfolder is named Shoot-2.
  • The Catalog’s Folders tree keeps your open folders when the catalog reloads (after an import, a move or a drop into a folder).

Collections

Collections let you group cataloged images in ways that don’t depend on where the files are. An image can belong to any number of collections, and putting one in a collection never moves or copies the file. Only images in a catalog can be added to a collection, not images shown in a Folder or Remote Folder widget.

  • A new Collections widget groups cataloged images independently of folders. An image can be in many collections.
  • Structure: a Project at the top, Sets inside it (they nest without limit), and Collections, which hold the images. Each widget shows one Project, so several widgets can show separate groupings.
  • Select a Collection to show its images in the grid. Select a Set to show nothing, or, with “Show Images of Sets” on, each image from the Collections beneath it once.
  • Move Sets and Collections by dragging them or with Move…. Deleting a Project or Set deletes what is inside it, never the images or files.
  • Add images by dragging them from a catalog grid onto a Collection, or with Add Selected to Collection… in the stage’s Image menu.
  • Smart Collections: in the Catalog widget, select a folder and choose New Smart Collection from Folder…. It holds every cataloged image in that folder and its subfolders and stays in sync as images are imported, removed or moved. Images can’t be added to or removed from one by hand.
  • Quick Collection: press B on the selection in the grid, filmstrip or loupe to add it to a quick collection, or remove it when all of it is already there. Each catalog and each project has one, shown as a row in the Catalog and Collections widgets. Each row has a count and a menu: Add to Collection…, Save as Collection… and Clear.
  • Target Collection: right-click a collection and choose Set as Target. B then files into that collection instead. Shift+B still uses the Quick Collection.
  • All in Project: a row above the Collections tree shows every image in the project.
  • Names of collections, sets, projects and catalogs now sort the way folders do: Set 2 before Set 10, ignoring case and accents.

Export previews

Icon Export and Animated Export can now show their results before you export. A preview opens as a tab on the stage, so you can check the output and adjust settings without writing files to your export folder.

  • Icon Export: Preview on Stage, from a button in the widget header or the widget menu. A tab on the stage shows every image file the export would write for the active image and crop, with dimensions and file size. A Theme, White, Black or custom backdrop lets you judge icons against different grounds; it does not affect the export.
  • Animated Export: Preview on Stage shows the enabled frames encoded as the export would encode them, with dimensions, format, file size and frame count.
  • Both follow your selection and settings, and keep the last result on screen, dimmed, while the next one renders. Previews are written to a scratch folder in the system temp folder, never to your export folder, and are deleted when the tab closes.
  • The stage gets a tab strip while a preview is open, with the Library first. The Library stays loaded behind the preview, so returning to it keeps your scroll position and selection.
  • Icon Export now accepts images of any shape. Drag the image under a square frame, zoom with a slider, rotate freely or in 90° turns, and Reset to return to the largest centered square. “Circle preview” shows the round mask. Corners left uncovered by a rotation are transparent (black in JPEG).
  • A single image now exports as a still in Animated Export, so it no longer needs two frames.

Moving, copying and deleting

Folders and files can now be moved, copied and deleted from within Kiln, and Kiln keeps the catalog in step with what it does on disk. Moves and copies run as jobs in Activity. Deletes go to the Trash.

  • Folders can be moved and copied across the Folder, Catalog, Remote Folder and Collections widgets. A taken name offers Keep Both or Cancel, never Replace or merge. Progress, Cancel and Undo are in Activity. Cataloged images follow a moved folder.
  • Locate Folder…: for a folder you moved outside Kiln. Pick its new location and Kiln relinks the images it finds (“42 of 42 found”).
  • A Folder widget whose folder is gone now says which folder is missing, instead of showing an empty grid.
  • Delete files and folders to the Trash (Recycle Bin on Windows): Delete… in the grid menu or Cmd+Backspace (Ctrl+Backspace on Windows) for images, and Delete… on a Folder row. The dialog counts what’s inside a folder and warns about files Kiln doesn’t show. There is no Undo, since Kiln can’t restore from the Trash.
  • Remove from Catalog can also send files to the Trash, with a checkbox for each kind in the selection: copies Kiln made, and the original files of referenced images. Both are off by default.
  • “Delete Selected Images…” on the stage is now “Remove Selected Images…”, since it takes images out of the catalog. “Delete” now always means deleting files.
  • Dropping images onto a folder that already has files with the same names asks first: Keep Both, Replace (the old files go to the Trash) or Cancel.
  • Remote folders: folder rows can be dragged onto another folder on the same connection, copied to a local Folder, and have a context menu (New Folder, Rename, Delete, Set as Scoped Folder and more). Uploads, downloads and moves run as Activity jobs with progress and Cancel, and failures appear there. Downloads and moves have Undo. Remote Folder no longer reconnects on launch; it waits for Connect.

Image grid

Changes to the grid of thumbnails on the stage: a context menu, clearer loading, and better behavior when you remove or drag images.

  • Right-click a tile, or press the Menu key (Shift+F10 on Windows and Linux, Ctrl+Return on macOS), for a context menu: Open in Lightbox, Reveal, Copy Path, and per-source actions such as Import to Catalog…, Add to Collection…, Download… and Move to Folder….
  • Tiles show a faint background until their thumbnail loads, and the selection ring waits for it.
  • Removing the selected image from the grid now moves the selection to the next image, and the arrow keys keep working.
  • Dragging images now shows what a drop will do in the status bar (“Drop to move · hold ⌥ to copy”, “Can’t drop here”).

Widgets and layout

Smaller changes to widgets, the command palette, settings and performance.

  • Activity is now a button in the footer, with the job list in a popover. It is no longer a widget.
  • Widget headers show the instance name on a second line beneath the type name.
  • Widgets can be moved up and down from the widget menu and the command palette, and workspaces from commands.
  • Command palette searches match the words of an action’s label. Each panel’s “add widget” action names its panel.
  • Export widgets: press Enter in a text or number field to start the export. Output Folder, Export Targets and Presets are now fields like the others, and required fields are marked with an asterisk.
  • Settings is wider and divided into sections. Header highlighting is off by default. A new Library workspace starts with Catalog and Collections above Folder.
  • Large catalogs are faster. In a development build at 50,000 images, selecting a collection paints in about 0.8 s (was 1.9 s) and changing the sort takes about 1.2 s (was 4.4 to 7 s). Production builds are faster still. Dragging images over folders with thousands of subfolders no longer stalls.

Fixes

  • Fixed the grid’s selection surviving a change of folder and holding ids of images that were gone.
  • Fixed a slow folder load replacing a folder you opened afterwards, in the Folder and Remote Folder widgets.
  • Fixed a cross-device folder move that failed while removing the source deleting the complete copy.
  • Fixed importing a large folder (thousands of images) failing with too many SQL variables.
  • Fixed deleting images or a catalog leaving their collection memberships behind.
  • Fixed reordering widgets clearing the stage.
  • Fixed menu checkmarks not updating while the menu was open.

Windows

  • The grid’s “Missing” badge now clears when a thumbnail loads, and shows a code and reason when one doesn’t (hover the tile). This is to find out why some Windows tiles showed “Missing” with nothing missing.
  • Recently viewed images stay open in Kiln’s image library, which could make editing, replacing or moving them fail on Windows. That no longer happens.
  • Paths over 260 characters: Kiln now opens and writes images at such paths (thumbnails, import, and Image, Icon and Animated Export). Reveal and Open show the nearest folder Windows can open, and Move to Trash explains a refusal. Reading and writing images at such paths passed an automated test on Windows; Reveal, Open and Move to Trash have not been tried there.

Please test

Report problems in the Kiln beta category.

Please try these on a copy of a folder first. They move or delete files.

  1. Move a folder in the Folder widget by dragging it to a new parent, then use Undo in Activity. Try one that contains cataloged images.
  2. Delete an image and a folder from the Folder widget. They should go to the Trash.
  3. Remove an image from a catalog with the delete options ticked. The files should go to the Trash.
  4. Move a folder outside Kiln (in Finder or Explorer), then use Locate Folder….
  5. Move a folder to another drive, if you have one.

Everything else:

  1. Make a Project with a Set and a Collection, and drag images into the Collection. Press B on a selection, then set a Target Collection and press B again.
  2. Make a Smart Collection from a catalog folder, then import more images into that folder.
  3. Open Preview on Stage in Icon Export and in Animated Export. Change settings and the crop, and check that the preview follows. Close the tab and check that the Library kept your place.
  4. Import a folder with the redesigned dialog, as a copy and as a reference.
  5. Right-click grid tiles in the Folder, Catalog and Collections widgets.
  6. Watch for the Folder widget’s list disappearing. It happens now and then and I don’t yet know why. If it does, note what you had just done and send it along.

On Windows:

  1. Look for a “Missing” badge on tiles that show a thumbnail. If one appears, hover it and send me the text, or a screenshot. Say whether the folder is in OneDrive or a similar synced folder.
  2. Export into a folder nested deep enough that the full path passes 260 characters, import a folder that deep, then Reveal and Delete a file in it. Send me any error, with the path length if you know it.

Known limitations

  • Windows builds are unsigned, so SmartScreen will warn. Windows changes in this release have not been tried on a real Windows machine.
  • Deleting files has no Undo.
  • Windows paths over 260 characters: Reveal and Open show the nearest folder above that Windows can open, and Move to Trash reports a clear error if Windows refuses. Explorer and other programs may still reject such paths unless long-path support is on.

Kiln 0.1.0-beta.8

Still waiting for baby things to happen, so I’ve been working on Kiln in the meantime. Here’s another update.

The new Overlays widget is the star here. It allows you to overlay text, images, lines, and QR codes on your images. You can save your configuration either as a Preset or a Watermark.

Presets and Watermarks are basically identical. The only difference is that saved watermarks will become available in the Image Export widget, where they can be applied to individual export renditions.

The QR codes are generated by Kiln, not image files you need to provide.

Use Overlays to create layouts, memes, blog heroes, postcards, or whatever.

This release also adds support for HEIC and HEIF images.

Windows changes are checked by automated tests only; I don’t have a Windows machine. If you use Windows, let me know how things go.

Download

The beta.8 release remains valid through 2026.

Download for MacOS and Windows.

Images

Here’s some of the UI:

Here’s a meme:

Here are images in three different shapes, with the same overlay applied:

Overlays

A new widget in the Export group. It draws layers over the selected image and saves the result as a new file. It is not offered for remote folders. Preview on Stage shows the layers on the image as you edit.

  • Layers: Add Text, Add Line, Add Image and Add QR Code, from the menu on the Layers heading. Each row has a menu: Move Forward, Backward, to Front or to Back, Duplicate Layer and Delete.
  • Text: several lines, a font from the ones installed, size in px or %, Bold, Italic, Uppercase, fill, stroke, letter spacing, alignment, and Shrink to fit the box. Fit Box to Text sizes the box to the letters.
  • Line: a start and end point, each with its own origin and offset, a width and a color. Drag either end or the midpoint on the stage.
  • Image: PNG, JPEG, WebP, AVIF, GIF or SVG, copied into Kiln’s storage so the layer keeps working if the original moves. An animated GIF draws its first frame. An SVG that points at other files or holds scripts is refused. HEIC is not accepted. Deleting a layer leaves its image in storage; Delete Unused… in Settings > Storage > Overlay images removes the images nothing uses (see Smaller changes).
  • QR Code: drawn as sharp shapes at any size, with an error correction level, a margin and two colors. A hint appears when the margin is under 4 modules or the background is not solid, since the code may not scan.
  • Colors take an opacity, from the system color picker or as eight-digit hex (#rrggbbaa).
  • Box: a fill color, padding, and a corner radius up to a pill.
  • Position and Size: pick one of nine origins, then an offset and size for each axis in px or %. 24px stays 24px on every image; 50% scales. Layers can be rotated.
  • Stage: drag a box, resize it from eight handles and nudge it with the arrow keys. Boxes snap to the picture’s edges, margins and middle, and to the other layers. Shift keeps a corner’s shape, Opt/Alt resizes about the middle, Ctrl turns snapping off, and Shift while rotating snaps to 15°. A box can be moved partly off the picture.
  • Crop Image: a frame on the stage with aspect ratios and X, Y, width and height in pixels. Each image keeps its own crop while the app is open.
  • Presets: Classic meme is built in. Save your own with Create, Update and Delete.
  • Watermarks: Create Watermark in the Presets menu saves the layers for the whole app. Choosing one replaces the layers so you can edit it.
  • Reset, in the widget menu, returns the widget to its defaults after asking. It clears the layers, saved presets, crops and export settings.

Export As:

  • Single file: PNG, JPEG or WEBP, with a quality for the last two, at the image’s full resolution. The file is named <name>-overlay, then -overlay-2 and so on, and never overwrites. With several images selected, all are written with the same layers, each with its own crop, as one Activity row that can be cancelled. One image failing does not stop the rest.
  • A preset saved in Image Export writes its renditions (sizes, formats, names, folders) with the layers drawn on each image first. The Activity row reads Image Export · 2 × 3 · with overlays.

Image Export

  • Each rendition has a Watermark choice, None by default, listing the watermarks saved in Overlays. The watermark is drawn after the rendition is resized and placed against that rendition’s own size. The choice is saved with presets. The job keeps a copy of the watermark as it was when the export started. If a watermark is deleted, the rendition shows “Missing watermark” and exports without it.
  • Presets are shared by the app, so other widgets can offer them. Presets saved in the widget move across the first time it opens, and are no longer lost when the widget is removed.
  • Deleting a preset asks first.

HEIC and HEIF

  • HEIC and HEIF images now show in the grid and open in previews. They also work in Icon Export, Animated Export, Image Export and processing, which failed on them with “Decoder plugin generated an error”.
  • Kiln converts them to JPEG first: with the system converter on macOS, and a built-in decoder elsewhere, which is slower on large files. Originals are never modified.
  • A HEIC cannot be written back as itself, so an export in the “Original” format writes a JPEG named .jpg.

Smaller changes

  • Settings > Storage has an Overlay images row that counts the stored images no layer, preset, watermark or export job uses, with Delete Unused… to remove them after asking. The files you imported them from are not touched.
  • Sliders reset to their default when double-clicked. The thumbnail-size sliders reset to their default column count.
  • Number fields accept a negative number typed from zero. A lone minus sign was dropped as it was typed.

Fixes

  • Fixed Image Export presets and watermarks that could not be read at startup being replaced by the next save. They are now read again before a save.
  • Fixed an Image Export rendition in the original format, run after Overlays, writing a PNG under a .gif, .bmp or .jp2 name and recompressing a .tif as JPEG.
  • Fixed a widget’s state starting from another scope’s values when its scope changed.

Please test

Report problems in the Kiln beta category.

  1. Add text, a line, an image and a QR code in Overlays. Move, resize and rotate them, and check the snapping.
  2. Export one image, then several selected images, from Overlays. Check the files and the Activity row.
  3. Crop an image in Overlays and export it.
  4. Save a watermark, choose it on a rendition in Image Export, and export. Delete the watermark and check the rendition says “Missing watermark”.
  5. In Overlays, set Export As to an Image Export preset and export.
  6. Open HEIC or HEIF images in the grid and a preview, then export them from Image Export.
  7. Add an image layer, delete the layer, then use Delete Unused… in Settings. Images used by a saved preset or watermark should not be counted. (Images stored in the last hour are kept, so the new one will not appear yet.)
  8. Check that presets you saved in Image Export before this release are still there.
  9. Watch for the Folder widget’s list disappearing. It happens now and then and I don’t yet know why. If it does, note what you had just done and send it along.

Known limitations

  • Overlays is not offered for remote folders.
  • HEIC is not accepted as an Overlays image layer.
  • Images are removed from Kiln’s storage only by Delete Unused… in Settings, not when a layer is deleted. Images stored in the last hour are kept.
  • Large HEIC files are slower to open on Windows and Linux.
  • Windows builds are unsigned, so SmartScreen will warn.