The Neosync alternative for Postgres test data
Neosync was acquired in September 2025 and its GitHub repository is now archived, with no prominent maintained fork to take its place. feint is a single, actively developed binary for the same core problem: schema-aware synthetic generation and production-derived masking with referential integrity preserved, no platform to operate.
Single binary, no services to run · No Postgres extension · MIT licensed, actively maintained
What actually happened to Neosync
nucleuscloud/neosync's last commit lands August 30, 2025, reaching roughly 4,145 GitHub stars over its life.
Grow Therapy announces its acquisition of Neosync, specifically citing Neosync's anonymization and synthetic-data technology as the reason for the deal.
The repository is now archived on GitHub. No prominent maintained fork has clearly taken over the project.
feint vs. Neosync
| Capability | feint | Neosync |
|---|---|---|
| Schema-aware synthetic generation | Yes | Yes |
| Automatic relational / FK-aware generation | Yes | Yes |
| Production-derived masking | Yes | Yes |
| FK-aware subsetting | Yes (--root) | Yes |
| Deterministic output | Yes | Partial |
| Postgres extension required | No | No |
| Maintenance status | Actively developed | Archived following its September 2025 acquisition; no maintained successor found |
Move to feint in three steps
Export your job
Neosync jobs live in its own database, reached through its UI or API. Export one job with the GetJob API call to get the JSON feint migrate neosync reads.
Convert and review
feint migrate neosync converts each column's transformer into a mask:/generator: entry, flagging any approximate mapping with a note explaining the gap.
Run feint
Use feint clone to copy and mask a real database in one pass, or feint mask to mask a database that already has a full copy, in place.
$ feint migrate neosync ./job-export.json ✓ 14 column mappings converted to mask:/generator: ✓ 6 exact matches (email, hash, ...) ! 3 approximate matches flagged with notes: - public.users.plan_tier (categorical transformer) ✓ Wrote feint.yaml $ feint mask postgres://localhost/app_dev
Neosync migration questions
Is Neosync really gone?+
The repository is archived on GitHub. Neosync was acquired by Grow Therapy, announced September 25, 2025, with Grow specifically citing Neosync's anonymization and synthetic-data technology as the reason. The open source project reached roughly 4,145 GitHub stars before it was archived, and no prominent maintained fork has clearly taken over the project since.
Can feint read my existing Neosync job config?+
feint migrate neosync reads a Neosync Job export — the JSON returned by Neosync's GetJob API — and converts each column mapping with a transformer into a feint.yaml mask: (and, where feint has a matching generator, a generator:) entry.
Do all my Neosync transformers convert cleanly?+
Some map exactly: an email transformer becomes mask: fake with generator: email, a SHA-256 hash transformer becomes mask: hash. Others map approximately — feint uses its closest strategy, but the shape won't match exactly, for example Neosync's categorical transformer picking from a fixed value set. Those are still written to the output, flagged with a note explaining the gap, so nothing is silently dropped.
Does feint replace Neosync's whole feature set?+
feint covers the same core problem — schema-aware synthetic generation and production-derived masking with referential integrity preserved — as a single connection-only binary rather than a platform you operate. It does not attempt to replicate every workflow a hosted platform offered; the migration converter reports anything it can't map so you can review it by hand.
Is feint deterministic the way Neosync was?+
Yes, fully. Every feint run is seeded from your chosen seed, the table, the column, and the row's identity, so the same input always produces the same output — across generate, clone, and mask alike, not only within one mode.
Stop depending on an archived platform
Install feint and convert your Neosync job export in the next five minutes.