Quote Studio — Form-to-PDF Micro Tool (Container Edition)

Productivity

Unzip it and `docker compose up -d` starts two containers: open the form page in a browser, fill in line items, quantities and unit prices, subtotals and the total are worked out for you, and on submit the layout engine inside the container returns a quotation PDF to download. The engine is a frozen snapshot of an MIT-licensed open-source project, and the compose file pins both the engine and the nginx image by digest; the engine's other conversion endpoints are reachable through the same-origin /pdf/ proxy as well. A quick-start guide in Traditional Chinese is included.

SubscriptionUS$49 per month
Last run2026-11-02
In practice
Readiness5 / 5
What you need
Few changes needed5 / 5

Who it is for

Small studios, freelancers and people building internal tools who want to fill in a form and get a laid-out quotation PDF: it saves the groundwork of picking a conversion engine, checking its licence and writing the container configuration. The engine's other conversion endpoints are reachable through the same-origin proxy, so it can be extended.

How to start

$ docker compose up -d

Browse the files

Files in the product repository at the pinned commit. A few house files are left out of the zip.

File overview402 paths
▸build57
Dockerfile
capture-version.sh
chromium-hyphen-data/
fonts.conf
▸cmd4
gotenberg-chromium/
gotenberg-libreoffice/
gotenberg.go
gotenberg/
▸pkg156
gotenberg/
modules/
standard/
▸quickstart-ui2
index.html
nginx.conf
▸test109
integration/
▫AGENTS.md
▫ATTRIBUTION.md
▫CLAUDE.md
▫CONTRIBUTING.md
▫GEMINI.md
▫LICENSE
▫LICENSE-99LL.md
▫Makefile
▫PRODUCT.md
▫QUICKSTART.md
▫README.md
▫SECURITY.md
▫SECURITY.upstream.md
▫compose.upstream-dev.yaml
▫compose.yaml
▫delivery-manifest.txt
▫go.mod
▫go.sum
▫otel-collector-config.yaml
▫package-lock.json
▫package.json
▫Config and hidden files 53

Latest passing run

Clone → Checkout → Toolchain → Container up

Pre-purchase Disclosure

What you are buying

A containerised form-to-PDF quotation tool: docker compose up -d starts two containers, you open the form page in a browser and fill in line items, quantities and unit prices, subtotals and the total are worked out for you, and on submit the layout engine inside the container returns the quotation PDF.

A derivative build on top of an MIT-licensed open-source document-to-PDF engine: the form page, the same-origin proxy configuration, the digest-pinned compose file and the Traditional Chinese quick-start guide are ours.

Delivery is a frozen snapshot: one zip file, taken from the product repository at revision a3d01c3.

Known limitations

  • The form page listens on port 8080 over plain HTTP; the delivered configuration contains no TLS or certificate setup
  • Neither the form page nor the /pdf/ proxy has a login or any credentials, so anyone who can reach that port can call the conversion endpoint
  • The delivered configuration has no database and compose declares no named volume; the form page cannot save or load a quotation
  • The first start pulls the two digest-pinned images for the engine and nginx, which needs a network connection
  • Pinned to the delivered snapshot; it does not follow upstream.

The liability cap, the scope of what is promised and the statutory floor are governed by the Terms of Service.

Vetting record

Everything below was checked against the pinned commit c0f487e. Every verdict carries its full reasoning, an evidence link and the checker; failures are published, not hidden — do not take our word for it, verify it yourself.

5 PASS0 WARN0 FAIL

Source ReviewPASS

The two files we wrote, quickstart-ui/index.html and quickstart-ui/nginx.conf, were read line by line: pattern matching for eval and new Function found nothing; the page has no script, link, img or @import pointing at an external host, and its styles and JavaScript are inlined in the same file; only one outbound network call was found, and it goes to the same-origin /pdf/ proxy. nginx.conf only serves static files plus one reverse-proxy block, and proxy_pass points at the service name pdf-engine inside compose. What runs on the buyer's machine is the official image published upstream rather than a build from this snapshot, and the upstream Go source was not read file by file; in compose the engine exposes no port to the host and is reached only through the ui proxy.

Evidence ↗Checked in 2026Checked by claude-code build-product session
Script SafetyPASS

Bringing it up on the buyer's side runs no build: both services in compose.yaml carry only an image field and no build field, and both images are pinned by digest. The Makefile at the repository root is for upstream's own development and testing (its targets are docker build / test and the like), and package.json has only devDependencies and no scripts section, so the start-up path never calls them.

Evidence ↗Checked in 2026Checked by claude-code build-product session
RecencyPASS

Upstream is pinned at c0f487e3 (see the evidence link); this product is a frozen snapshot and does not follow upstream.

Evidence ↗Checked in 2026Checked by claude-code build-product session
LicensePASS

SPDX:LicenseRef-99LL-Product

Upstream's LICENSE was read word for word (the evidence URL points at the file itself at the pinned commit): the standard MIT text, Copyright (c) Julien Neuhart — commercial use, modification, derivative works, redistribution and sale are permitted, and the obligation is to keep the copyright notice and the full licence text (LICENSE and ATTRIBUTION.md are delivered in the zip). This is not determined from GitHub's licence field. For the product as a whole, the 99LL product licence template is attached: upstream's LICENSE is kept verbatim, and LICENSE-99LL.md is added as the sale and liability terms for the part we built; spdx is recorded as LicenseRef-99LL-Product.

Evidence ↗Checked in 2026Checked by claude-code build-product session
Dependency LicensesPASS

The delivered snapshot has no vendor/ directory: upstream declares its Go dependencies in go.mod / go.sum, and no third-party source is shipped in the zip; our form page is a single HTML file with its styles and JavaScript inlined, pulling in no external packages.

Evidence ↗Checked in 2026Checked by claude-code build-product session
HEALTH VERIFIED

Last verified passing: 2026-11-02

Subscribe for everything
US$49/ monthwas US$99

A subscription unlocks the whole catalogue; you do not buy this one separately.See what is included

Sign in with Google first; if you are signed out you will be sent to the sign-in page. Your subscription is billed to that same email address.

Already subscribed? This downloads straight away. Otherwise you are sent to the pricing page, or to sign in first.