About this free pack: This ZIP contains the illustrated guide and fictional practice inputs. It does not contain SifBatch or server.mjs. Before buying, inspect examples/sif-batch/coaster-orders.csv in a plain text editor, compare the six orders with coaster-mapping.json in the same folder, and read the expected result below.
To run the application steps: Purchase SifBatch separately and extract the purchased product ZIP. Run the commands below from that purchased folder using Node.js 20.12 or newer and desktop Chrome. This free pack cannot generate a batch export by itself. Current online guide.
Turn a generic CSV or TSV of personalized orders into a checked production batch. Map columns, review blocking and warning checks, and export a LightBurn-style Merge/CSV file, printable proof sheet, and batch ZIP.
You make personalized items (for example engraved boards, tags or coasters) and want to catch empty, too-long or unsafe personalization text before it reaches LightBurn's variable text.


Buy from /store/sif-batch/ and download sif-batch-0.1.1-20261031.zip from the checkout page. Extract it; you get a folder named sif-batch with server.mjs, the app, synthetic samples and README.txt.
Open a terminal in the sif-batch folder and run: node server.mjs. It prints “SifBatch is running at http://127.0.0.1:8787/ (loopback only; press Ctrl+C to stop)”. Open that address in Chrome. Keep the terminal open while you work; press Ctrl+C there when you are done. If port 8787 is busy, start it with node server.mjs --port 8790 and open that port instead.
On the Import step, click “Generic CSV sample”. It loads invented orders together with a saved mapping so you can walk through all four steps safely.
Keep “Generic CSV / TSV” selected. Click the “Drop a .csv / .tsv / .txt file or click to choose” area and pick your order file. Encoding and Delimiter can stay on automatic. Add buyer images under “Buyer images” only if your orders reference image files. Click “Continue to mapping →”.
Under “Record identity” choose the Order ID column (required) and, if you have them, the order line, quantity and image file name columns. Under “LightBurn columns” each row becomes %0, %1, … in LightBurn: pick its Source column, tick Required only for values that must never be empty, and set “Max chars” to what fits your item. “Suggest from source names” fills this in quickly but marks every suggested column Required, so review it. “Import mapping…” loads a saved mapping file and “Export mapping” saves the current one for next time. Click “Confirm mapping and validate →”.
Review every record before export. The list shows 100 matching records per page; use Previous and Next to reach later pages, including record 501 on page 6. Filter to Needs review, All, Blocked, Warnings, Ready or Excluded. READY records are included by default; use “Include in CSV” to exclude an individual record. Blocked records stay out of the CSV. Warnings remain included unless you exclude them, so read each warning. Fix source values and import again, or adjust mapping rules. The proof, CSV and ZIP all use the current inclusion choices. Click “Proof & export →”.
Check the proof sheet preview and the “LightBurn setup” box (mode Variable Text → Merge/CSV, the Start/End rows, header row, UTF-8 encoding). Set a “Batch name”, then click “Download batch package (.zip)”, “LightBurn CSV only”, “Validation report (CSV)” or “Print proof sheet”. Files go to Chrome's downloads folder.
In LightBurn, use Variable Text in Merge/CSV mode with the downloaded merge CSV and the Start/End rows shown on the export step. Check LightBurn's preview for every row before production.
Input: examples/sif-batch/coaster-orders.csv (6 fictional orders: one with quantity 2, one name longer than 20 characters, one that starts like a spreadsheet formula, one with an empty name) and examples/sif-batch/coaster-mapping.json (Name required, max 20 characters; Date optional; Font required; Copy number).
Expected: Review shows 6 records: 3 ready, 0 with warnings, 3 blocked, 4 LightBurn rows. Blocked reasons: “"Name" has 35 characters; the limit is 20.”, the formula rule for =1+1 (“"Name" starts with a spreadsheet formula character …”), and “"Name" is empty.” The CSV (SifBatch_Production-batch_lightburn-merge.csv) has 4 lines, the two-coaster order expanded to copies 1/2 and 2/2: “Hanna & Theo,21.06.2026,Great Vibes,1/2”. The batch ZIP contains lightburn/merge.csv, lightburn/COLUMNS.txt, proof/proof-sheet.html, reports/validation-report.csv and .json, mapping/sifbatch-mapping.json, originals/coaster-orders.csv, README.txt and manifest.json.
On “2 Map columns”, untick Required for that LightBurn column (“Suggest from source names” ticks every column), then confirm the mapping again.
Values starting with = + - or @ are blocked by default to protect spreadsheet users. Fix the source text, or on the Map step choose “Prefix with an apostrophe” (the apostrophe will be engraved) or “Export exactly as typed” (only if you never open the CSV in a spreadsheet app).
Check node --version shows 20.12 or newer and that you ran the command inside the sif-batch folder. If the port is in use, add --port with another number.
On the Import step set Encoding to the one your spreadsheet used (for example Windows-1252 for Excel “CSV” on Western Windows) instead of automatic.
SifBatch does not store orders between sessions. Use “Export mapping” (or keep the mapping inside the batch ZIP) and re-import the order file next time.
Guide and examples: 31 October 2026. Examples are fictional or synthetic. Online guide · Support