Documents and knowledge · Edition No. 11 · 5 Sep 2026

Stirling-Tools/Stirling-PDF

About fifty PDF operations in one self-hosted container — nothing leaves the machine.

← Documents and knowledgeRead the whole edition →

91.5k stars · MIT at the root, with app/proprietary/, app/saas/, engine/ and several frontend directories carved out under separate licences · v2.14.3 (2026-08-06)

About fifty PDF operations in one self-hosted container — nothing leaves the machine.

Repo detailsthe review · specs · pros & cons · install

What it is

A self-hosted web application offering around fifty PDF operations — split, merge, compress, convert, OCR, redact, sign, fill forms, rotate — through a browser interface, running entirely on your own hardware. One Docker container, no upload to anybody else.

Why it matters

Two threads in this ledger end in PDFs. Typst (Ed. 8 #7) produces the bilingual lead magnet you will trade for an email address, and it will want compressing before it goes on the site. And Grasppy's whole document-ingest question — Docling (Ed. 3 #9) against Marker (Ed. 9 #9), which Edition 9 asked you to settle on ten real PDFs — needs a corpus of genuinely messy multi-page files, which means splitting, rotating and OCR-ing documents you already have. Doing either on a free upload-your-file website means posting unreleased marketing material and other people's documents to a company you know nothing about. This is the wildcard for a reason: it earns nothing this month, and then one afternoon it saves you.

Stars91.5k
LicenceMIT at the root, with app/proprietary/, app/saas/, engine/ and several frontend directories carved out under separate licences
Latestv2.14.3 (2026-08-06)checked 7 Sep 2026
Written inJava
NeedsDocker
RunsSelf-hosted on your own server
Setup effort
2 / 5
Payoff
2 / 5
Good
  • Around fifty operations in one container, entirely offline — nothing leaves the machine.
  • Very actively released; v2.12.0 in June brought large memory improvements to merging.
  • Useful across both products and the video workflow, not just one corner of one of them.
Watch for
  • The licence is no longer simply MIT — see the note above. The root is MIT; app/proprietary/, app/saas/ and engine/ are not.
  • A JVM application that wants real memory headroom. Read Beszel (Ed. 5 #8) before adding it to the Hetzner box.
  • Never expose it to the internet unauthenticated. It will happily process whatever anyone uploads, at your expense.
Install
# 1 — PostHog. Nothing to install at all.
#     Create a free project at https://posthog.com, copy the snippet it
#     shows you, and load it from CookieConsent's analytics callback
#     rather than pasting it directly into the page head.
# 2 — Polar. Also nothing to install.
#     Create an account at https://polar.sh, add a product and a price,
#     copy the checkout link onto the pricing page, then add one webhook
#     route in FastAPI to hear about payments. SDK docs: https://docs.polar.sh
# 3 — CookieConsent, in the same sitting as PostHog.
npm install vanilla-cookieconsent
#     No build step? Use the CDN module documented at
#     https://cookieconsent.orestbida.com
Screenshots
Stirling-Tools/Stirling-PDF: GitHub preview cardStirling-Tools/Stirling-PDF: Screenshot 1

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.