BASALT · JOURNAL
Long document jobs need progress and a cancel button
Some document operations are genuinely slow and cannot be made fast. Redacting a thousand scanned pages involves decoding and re-encoding a thousand images, and that work has to happen.
What can be fixed is the experience of waiting, and this matters more than shaving seconds off the operation.
The three things a long job owes you
Progress that reflects real work. A bar that moves smoothly regardless of what is happening is worse than no bar, because it removes the ability to tell a slow job from a stuck one. Progress by page, showing which page is being processed, is honest and useful.
A cancel that works. Long jobs get started by mistake, on the wrong file, with the wrong settings. A cancel that leaves no partial output is the difference between an inconvenience and a mess.
An outcome per item. On a batch, a single completion message hides failures. What happened to each file is the information that matters, especially when one of them failed and would otherwise be produced unredacted.
Why partial output is dangerous
A cancelled or crashed redaction that leaves a half written file on disk creates a document that looks like output and is not. Named like the finished article, sitting next to it, and containing whatever had been processed before the interruption.
The safe behaviour is to write to a temporary location and move the file into place only on success, so an interrupted job leaves nothing behind rather than something misleading.
Estimates
An estimate is worth giving even when approximate, because the decision it informs is whether to wait or to go and do something else. Sixteen minutes and ninety seconds are different plans.
Cost per page is stable enough to estimate from: marked pages multiplied by roughly a second for scans.
Running unattended
Long jobs should survive the screen locking and should not require the window to stay in front. If a sixteen minute run is interrupted by the machine sleeping, it will be run twice, and the second run will be started by someone already irritated.
The honest version
None of this makes the work faster. It makes a slow operation predictable, which is what actually matters when the alternative is watching a spinner and wondering whether to kill it.
Frequently asked questions
What should a long PDF operation show while it runs?
Progress that reflects real work, ideally by page, so a slow job can be distinguished from a stuck one. It should also offer a cancel that leaves no partial output, and on batches it should report an outcome per file rather than a single completion message.
Why is partial output from a cancelled job dangerous?
Because it produces a file that looks finished and is not, sitting next to the real outputs with a similar name. Writing to a temporary location and moving the file into place only on success means an interrupted job leaves nothing behind.
Can a long redaction job be cancelled safely?
It should be. A cancel should stop the work and remove any partial file, so the result is no output rather than an incomplete document that might later be mistaken for the finished one.
How do I estimate how long a redaction will take?
Count marked pages and allow roughly a second each for scanned pages and a tenth of that for text pages. Unmarked pages cost almost nothing, so total document length is a poor predictor.
Doing it in Basalt
Basalt is a native macOS PDF toolkit with eighteen tools in one window. It opens large documents without loading them into memory, renders pages on demand, and copies files into its engine in fixed-size chunks, so peak memory follows the chunk size rather than the file size. Redaction destroys content rather than covering it, and an independent verifier re-opens every written file to prove the material is gone before the file is saved. A one time $29 licence covers up to three Macs, it is free for the first 24 hours, and the engine holds no network entitlement at all, which macOS enforces at the code-signature level. Download it at basaltformac.com.
Redaction that proves itself
Basalt destroys the content you mark, then re-opens the file it wrote and proves the content is gone before it saves anything. Your documents never leave your Mac.