Text Template (Mail Merge)
A lightweight mail-merge: write a template using `{{key}}` placeholders, paste data as CSV (header row defines the keys) or JSON (array of objects), and the tool renders one rendition per row, separated by a customisable divider. Useful for batch emails, certificate generation, personalised messages, or any 'same template, different values' job — without uploading the data anywhere. Missing keys are flagged with a warning chip so you can spot typos before sending.
How to use
- Write your template using `{{placeholder}}` for variables (the tool lists detected placeholders above the textarea).
- Pick CSV (with header row) or JSON (array of objects) and paste your data.
- Read the rendered output (one rendering per row, separated by `---` or your custom separator), then copy or download as a text file.
Frequently asked questions
- What's the placeholder syntax?
- Double curly braces: `{{name}}`, `{{amount}}`, etc. Whitespace inside is allowed (`{{ name }}` works). Keys are case-sensitive, must match the CSV header / JSON key exactly. Unknown keys render as empty and trigger a warning chip listing which ones were missing.
- Does the CSV parser handle quoted fields?
- Yes — basic CSV rules: a field starting with `"` is quoted until the next unescaped `"`, doubled quotes (`""`) inside a quoted field become a single `"`. Commas inside quoted fields are kept literally. No support for multi-line fields (each row is one line).
- Why use this instead of a spreadsheet's mail-merge?
- Three reasons: (1) the data never leaves your browser — useful for sensitive lists; (2) iteration is instant — change template once, all rows re-render; (3) you can paste data in either CSV or JSON without converting.
- Can I use this to draft 100 emails at once?
- Yes — that's the most common use. Output each row separated by your divider, copy the result, paste into your mail client and split by the divider, or use the download as a .txt for later. The tool doesn't send anything itself.
Related tools
Bulk File Renamer Preview
Drop files and preview a batch rename — pattern with {n}, {name}, {ext}, {date}, plus find/replace, case modes, and collision detection.
CSV Splitter (by rows)
Split a large CSV into smaller chunks by row count — repeat the header on each chunk, download all at once.
Lorem Ipsum Generator
Generate placeholder text by paragraphs, sentences, or words.
Find & Replace
Find and replace across a block of text. Optional regex with global, case-insensitive, multiline, and dotAll flags. Live match count.
Caesar / ROT13 / Vigenère / Atbash Cipher
Encrypt or decrypt text with four classic substitution ciphers — Caesar shift, ROT13, Vigenère keyword, Atbash mirror.
Fixed-Width Text Parser to CSV / JSON
Split fixed-width / fixed-column text into fields by column widths and export as CSV or JSON, in your browser.