NoiXdev
← All projects
live

Printy

Watches folders and prints what lands in them — a scan, an export, a label. One printer and one set of settings per folder, configured once. Waits until a file has finished being written, never prints the same thing twice, and treats a printer that is switched off as a pause rather than a failure.

What it is

A scanner drops PDFs into a folder. An ERP export writes delivery notes. A label generator produces one file per parcel. And then somebody opens each file, picks the printer, hits print, and closes it again — all day.

The cost only becomes visible once you add it up: a minute of clicking per document, several times an hour — and it stops entirely the moment that person is in a meeting, on holiday, or simply not at that desk.

Yet the rule behind the clicking is almost always trivial: everything that lands in this folder goes to that printer, two copies, double-sided. Printy is a place to write that rule down once.

Highlights

  • One folder, one rule — printer, copies, duplex, colour, file types, check interval, and what happens to the file afterwards. Each watched folder carries its own settings and does not interfere with the others.
  • Waits until the file is finished — a file still being written is left alone until it stops changing. A half-transferred scan would otherwise come out as half a page.
  • Never prints the same thing twice — Printy recognises a file it has already handled by its content, not merely by its name.
  • A printer that is off is not a failure — the queue holds instead of failing job after job. Nothing is lost, no retry is consumed, and printing resumes on its own once the printer is back. A genuinely broken file gives up after three attempts, on its own, and lets the queue carry on.
  • Nothing is deleted by accident — a printed file moves to a subfolder, stays where it is, or is deleted, as you choose. A file that could not be printed is never deleted — not even in a folder set to delete. That is precisely the file you still need.
  • No surprises when setting up — whatever is already in a folder when you add it counts as done. Only new arrivals are printed, unless you explicitly ask otherwise. Two hundred old scans should not mean two hundred pages.
  • Runs in the background — tray icon, start with the computer, start minimised, one global pause. Notifications for everything, for failures only, or not at all.
  • A history you can act on — every job with its folder, printer, time and outcome, filtered down to failures if you want, and each one reprintable — with the settings it was originally printed with.
  • Your data stays here — no account, no sync, no telemetry. Everything lives in a single file on the machine. File contents are read in order to print them and not stored.

Tech stack

  • Rust with Tauri 2 for the core: folder watching, queue, and the printing path
  • React 19, TypeScript, and a purpose-built interface in German
  • SQLite for folders, settings and history — one file, no server
  • On Windows each page is rasterised and placed by Printy itself; on macOS the system print service does it

Availability

Windows is the target platform; macOS is supported as well. One difference is documented rather than hidden: with fit-to-page turned off, Windows shrinks oversized content while macOS crops it — the print service there has no “shrink but never enlarge” mode.

Install

On Windows, take the installer from the latest release — either the .exe or the .msi. A portable variant is published alongside them for machines where nothing may be installed.

On macOS:

brew tap NoiXdev/tap
brew install --cask printy

macOS builds are signed and notarized.

Status

Printy is LIVE (v1.0.0). Issues and PRs are welcome — github.com/NoiXdev/printy.