SifBatch

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.

SifBatch 0.1.1 review of six fictional coaster orders on desktop
Real SifBatch result using six fictional coaster orders: three valid records create four production rows; three deliberately invalid records are blocked and omitted. A batch ZIP was downloaded. LightBurn import remains unverified.
SifBatch 0.1.1 six-order review on a 390-pixel mobile viewport
The same six fictional coaster records in a 390-pixel browser viewport. The complete desktop and mobile views are actual Chrome captures from the purchased ZIP.

Before you start

Your first result

  1. Buy, download and extract

    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.

  2. Start SifBatch

    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.

  3. Try the synthetic sample first (optional)

    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.

  4. 1 Import

    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 →”.

  5. 2 Map columns

    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 →”.

  6. 3 Review the batch

    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 →”.

  7. 4 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.

  8. Use the CSV in LightBurn

    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.

Six engraved-coaster orders with three deliberate problems

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).

  1. Start SifBatch with node server.mjs and open http://127.0.0.1:8787/ in Chrome.
  2. Under “Generic CSV / TSV”, choose coaster-orders.csv, then click “Continue to mapping →”.
  3. Click “Import mapping…” and choose coaster-mapping.json, then click “Confirm mapping and validate →”.
  4. Review the three BLOCKED rows, then click “Proof & export →”.
  5. Click “LightBurn CSV only” and “Download batch package (.zip)”.

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.

Troubleshooting

Optional columns such as Date block orders with “"Date" is empty.”

On “2 Map columns”, untick Required for that LightBurn column (“Suggest from source names” ticks every column), then confirm the mapping again.

A name is blocked because it “starts with a spreadsheet formula character”.

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).

The page does not open or the terminal shows an error when starting.

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.

Accented or non-Latin names look wrong.

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.

My work is gone after closing the tab.

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.

Compatibility and limits

Guide and examples: 31 October 2026. Examples are fictional or synthetic. Online guide · Support