Skip to main content
Kindler | Dev

← Blog

Building Druckkosten — a print-cost calculator for the Mac, in 13 languages

04/17/2026 · Created by Björn Kindler

Druckkosten — calculation in the Mac app
A live calculation inside Druckkosten — paper, ink, finishing, margin, all per job.

A Mac app for print shops, copy shops and design agencies. Local-first, SwiftData, PDF quotes — and yes, it really does ship in 13 languages. Here is what went into v1.

Why the app exists

Print shops still quote jobs in Excel. I sat next to a friend who runs one and watched him estimate a two-thousand-piece flyer order by hand — paper price, toner reach, finishing, margin per run length — for the fifth time that week. The numbers were correct. The repetition was not.

Druckkosten is the answer to that scene. You set up your paper stock, your printers (with cartridge price and ISO toner yield), your finishing steps and your margin tiers once. Every following job is a template calculation: type the run length, see the unit and total price update live, export a print-ready PDF quote. A workflow that used to be ten minutes per quote is now under one.

Why local-first

Print shops handle customer data — names, addresses, file names that hint at what the job actually contains. That kind of data has no business in a cloud sync layer it does not need. So Druckkosten stores everything in a SwiftData database inside the app sandbox on your Mac. No account. No telemetry. Time Machine and iCloud Drive cover the backup story for free.

As a side effect, the app works offline on a poorly connected shop floor and starts instantly. There is no login screen, because there is no login.

Why 13 languages

Selling a niche Mac app in only German is a hard ceiling. Localization in SwiftUI is largely a discipline problem: every string lives in the catalogue, no hard-coded literals, no string concatenation. Apple's tooling handles the rest — but the work happens early or it does not happen.

I shipped the app in German, English, French, Spanish, Italian, Dutch, Portuguese, Polish, Swedish, Danish, Norwegian, Finnish and Czech. Number and currency formatting come from the locale automatically. App Store metadata had to be written and proofed for each. The translation work itself was the smaller half of the effort; the App Store screenshots in every language were the larger half.

Quote layout

The quote PDF is rendered with PDFKit on the Mac. Layout is deliberately sober: monospaced numbers in a single column, a margin row at the bottom, totals in the corner. Nobody on the receiving end ever asked for a flashier quote. They asked for a quote they could compare against three others without squinting.

What did not make v1

Custom branding (logo, brand colours) for the PDF layout. It is the most-requested feature already, and it will land in a point release once the data model is right. I deliberately shipped without it instead of shipping a half-finished version that I would regret.

A second deferred piece is multi-user sync. Print shops with two seats want shared paper stock and printer definitions. Local-first does not preclude this; iCloud-based SwiftData sync is the obvious next step. The first version stayed single-Mac because that is the shape of most of my customers.

Where to look

The product page lives at /apps/druckkosten/. The app is on the Mac App Store for €0.99 — one purchase, all 13 languages unlocked, updates included. No subscription, no in-app purchases. Feedback goes a long way; this is a small one-person project that grows from what print-shop operators actually need.

← Back to the blog