# Label Maker Turn images into a print-ready PDF for a sheet of sticky labels. Pick the label sheet you own — from a catalogue of a few thousand brand templates, or define your own — drop in some images, and download a PDF whose labels line up with the die-cuts on the page. - Images are **fit to cover**: they fill each label completely and crop, rather than letterboxing into a white border. - Per image you can set how many copies to print and rotate it in 90° steps. - Add **bleed** so a slightly misaligned printer shows more image instead of a white sliver. - **Skip** the labels you have already peeled off a part-used sheet. - More images than fit on one sheet just produce more pages. Everything runs in the browser. There is no backend, and the images you choose never leave your machine. ## Running it ```sh npm install npm run dev ``` | Task | Command | | ---------------- | --------------- | | Dev server | `npm run dev` | | Unit tests | `npm test` | | Typecheck | `npm run check` | | Production build | `npm run build` | `npm run build` emits a static site to `build/` — it can be hosted anywhere that serves files. ## Label sheet catalogue `static/sheets.json` is generated from data scraped from [hlabels.com](https://hlabels.com/print), not hand-maintained. To rebuild it from the checked-in scrape: ```sh node scripts/build-catalogue.mjs ``` See [CLAUDE.md](CLAUDE.md) for how the geometry is derived and what conventions the code follows.