Synthetic data
Synthetic mode keeps documents usable by replacing real private values with fake values that keep the same structure. Redaction removes context and replacement tokens look artificial; synthetic output reads like a real document that happens to describe different people.
How it works
Section titled “How it works”The local model identifies entities and returns a plan: entity type, locale, generator, the original text parts, and any transforms. Piixie runs that plan through a bundled @faker-js/faker runtime hosted inside a pure-Go JavaScript VM.
All fake values are produced on your machine. No cloud data-generation API is involved.
Generator families
Section titled “Generator families”People and organizations. Names, first names, last names, titles, possessive forms, company names, and email-friendly name parts.
Contact and location data. Street addresses, cities, states, countries, postal codes, phone numbers, URLs, IP addresses, and email addresses.
Identifiers and finance. Account numbers, IBANs, card numbers, UUIDs, alphanumeric IDs, and birthdates.
Consistency rules
Section titled “Consistency rules”Every logical entity gets a cached Faker profile. If a person’s full name appears in one paragraph and their last name appears three pages later, both map to the same fake identity.
- Multi-line addresses are generated from one address profile
- Emails reuse the synthetic person’s name parts
- Company domains use company-shaped names
- Locale hints are normalized. English, Spanish (incl. Mexico), Portuguese (Portugal and Brazil), French, Italian, and German use their native
@faker-js/fakerdata. Català, Euskera (Basque), and Galego have no faker locale, so they draw person names from a bundled regional name pack on top of the Spanish structural base (phones, IDs, and addresses keep Spanish formats).
Shape preservation
Section titled “Shape preservation”Some values are useful because their shape carries meaning, so Piixie preserves separators, casing, digit counts, and format patterns while replacing the value itself. A birthdate written as 14/03/1982 stays in day/month/year style. An ID mixing letters and digits keeps the same rough pattern. A work email keeps its style without the real name.
Reproducibility
Section titled “Reproducibility”In a profile, synthetic mode takes a random seed and a locale. The same seed over the same document produces the same fake values, which matters for test fixtures that shouldn’t churn on every run.
When to use it
Section titled “When to use it”- LLM prompts: safe examples without leaking production PII
- Demos that need to look real without production data
- Test fixtures built from real document shapes
- Support cases where redaction would strip too much context
Review the generated replacements in the history table before publishing synthetic documents as examples. Fake values are plausible by design, which also means a careless read can miss a real value the model failed to map.