Seedfast, a Syntho alternative for filling a Postgres schema from scratch

Mikhail ShytskoBy Mikhail Shytsko, Founder at Seedfast ·

Share
Open in ChatGPT

Syntho is a self-hosted synthetic data platform. You deploy it on your own infrastructure with Docker Compose or Kubernetes, point a workspace at a source database, then choose a generator for each column in its web interface. Anyone shopping for a Syntho alternative is usually after something narrower than the whole platform, which is a PostgreSQL schema full of coherent rows, produced by a command that also fits inside CI.

Our take, September 2026. Syntho suits an enterprise that has to keep every byte inside its own network and works across Oracle, DB2, Sybase and Databricks as well as Postgres. It is sold by quote, so budget conversations start with sales. If the job in front of you is a Postgres database that has to be populated before this afternoon's demo, Seedfast is the smaller purchase, being one CLI command against a connection string plus a scope written in plain language, on a free plan that asks for no card.

What is Syntho, and what is it built for?

Syntho's documentation is organised around one object, the workspace. A workspace holds a connection to a source database and, separately, to a destination database, and the generation job is configured table by table and column by column inside it. Their connector list is broad, covering Databricks, DB2 for LUW, Hive, Microsoft SQL Server, MySQL and MariaDB, Oracle, PostgreSQL and SAP Sybase, along with Azure Data Lake Storage, Amazon S3 and the local filesystem (docs.syntho.ai, index fetched 2026-09-10). Deployment is your own problem in the good sense, with Docker Compose and Kubernetes (Helm) guides published in full.

The generator catalogue covers AI synthesize, Mock, Mask, Duplicate, free-text PII obfuscation, Exclude, calculated columns, key generators, JSON de-identification and consistent mapping. Two of those matter for anyone who wants to fill an empty database rather than de-identify a full one. Their FAQ says outright that "if you do not have any data yet, you can generate data from scratch to fill an empty database" (their FAQ, fetched 2026-09-10). Their key generators page adds that the Generate method "can also be used when creating data from scratch," while Duplicate and Hash both assume real keys already exist to copy or obscure.

So the two tools do overlap, though less than a shared category label suggests. The practical split is where a run's specification comes from. Syntho has a person supply it by working through the column settings of every table in the workspace, a design that earns its keep when each column needs its own treatment for privacy reasons and starts to weigh once the schema is wide. Seedfast reads the schema and takes one sentence.

Where a run is specified in each tool, the practical difference behind any Syntho alternative for Postgres: per-column generator, range and key settings inside a Syntho workspace, against one Seedfast scope naming row counts, status shares and locale

Syntho vs Seedfast: the capability matrix

Every Syntho cell below links to the page it came from, and each was re-read on 10 September 2026. We have marked the rows where Syntho is the better answer. Seedfast prices come from seedfa.st/pricing.

What you are doingSynthoSeedfast
Where a run is specifiedWeb UI. Open the workspace, select a column, then Column parameters > Generator (AI synthesize)One CLI command carrying a scope in plain language
Written instruction describing what the data should meanNo prompt surface in the public docsYes, and the scope may be written in any human language (localized test data)
Runs as a CI stepNot documented; the docs index lists no CLI page (docs.syntho.ai/llms.txt, 2026-09-10)Yes, one step after migrations (CI/CD seeding)
Driven by an AI coding agentNo MCP server in the public docsYes, native MCP for Claude Code, Cursor and other MCP clients (setup)
Database engines (Syntho covers more)Postgres, MySQL/MariaDB, MSSQL, Oracle, DB2, Hive, Databricks, SAP Sybase, S3, ADLS, filesPostgres today; other engines in development
Runs entirely inside your network (Syntho covers this)Yes, self-hosted via Docker Compose or HelmCLI runs on your machine against your database; planning is a hosted service
Multi-table generation from one instructionAI synthesize is single-table; its docs list "multi-table logic, joins, or cross-table consistency" under When not to use. Multi-table work goes through per-column Mock, Mask and key generatorsOne scope covers every table it touches, and each reference lands on a row that exists, circular references included
Numeric shape in generated (non-learned) valuesUniform (min inclusive, max exclusive), numeric series (start, step), custom integer pattern (numeric integer)Named in the scope, including status shares such as 60% paid, 25% overdue, 15% disputed (exact row counts)
Exact row count per tableSubsetting is documented as approximate: "Although the user can select 5% of the target table, that does not mean the final database will contain 5% of all data" (subsetting)Write the number per table into the scope; a published run planned 4,703 records across 8 tables and finished 8/8 in 79.59s
Language of generated values80+ language and region rows, set as the workspace's configured language, falling back to English (United States) (supported languages)Named per table or per column inside the same sentence that asks for the rows
Time to the first rowDeploy the platform, create a workspace, configure the columnsnpm i -g seedfast, log in, run one command
PriceNo public list price. Basic, Standard and Ultimate all show Get a quote (syntho.ai/pricing, 2026-09-10)Free $0 with $5 of credits monthly, Basic $16 with $32, Premium $69 with $180

Two of those rows go to Syntho outright, and they are not small ones. A bank that cannot let a schema leave its perimeter has a genuine reason to run a platform it hosts itself, and so does a team whose tables sit in DB2 and Sybase rather than Postgres.

Where the two tools actually diverge

The configuration surface

Syntho's configuration lives in dropdowns. Their AI synthesize page walks through it in numbered steps, opening a workspace, selecting a column, then setting the generator under Column parameters, and every other generator page follows the same shape. Nothing in the public documentation accepts a written description of the data you want, and their pattern feature uses a small placeholder syntax rather than prose, so ?????-######## is how you ask for a product number.

That difference compounds with schema width. Forty tables at eight columns each is 320 decisions in a UI, and a migration next sprint reopens some of them. Seedfast takes one sentence instead, and reads the schema fresh on every run so the sentence keeps working after the migration lands:

seedfast seed --scope "Seed the crm and billing schemas: 200 customers, 600 contacts, 400 addresses, 3 plans, 300 subscriptions, 1,200 invoices with 60% paid, 25% overdue and 15% disputed, 400 support tickets and 1,600 ticket messages."

Syntho documents this boundary honestly, which is worth saying plainly rather than turning into a jab. Their AI generator page carries a When not to use list, and the first item on it is "You need multi-table logic, joins, or cross-table consistency." The same page adds that AI synthesize "does not guarantee full relational logic, exact edge cases, or new signal that is absent from the source," and their FAQ puts it in one line: "AI synthesis only works well on single tables." Relationships in Syntho are handled by a separate layer, the key generators, configured per key column and chosen from Duplicate, Generate or Hash.

Because Seedfast treats the whole scope as one job, asking for customers, contacts, subscriptions and invoices together gives you invoices that each point at a subscription that exists, with no per-key setting anywhere. Circular references work the same way, including a cycle that is NOT NULL at both ends with no deferral, so a table that loops into another table needs no separate key generator to come out valid.

How Syntho and Seedfast handle related tables in a Postgres schema: Syntho's AI synthesize step works one table at a time, so relationships go through separate Duplicate, Generate or Hash key generators chosen per key column, while a single Seedfast scope covers every table and each reference resolves against a row that already exists

Counts, shares and locale

Their subsetting page carries the most candid sentence on either vendor's site, and it deserves quoting rather than paraphrase. "Although the user can select 5% of the target table, that does not mean the final database will contain 5% of all data." The reason they give is referential integrity, since keeping linked rows valid drags more data along than the percentage implies. That page also notes subsetting "is not parallelizable by nature," so a large database can take "hours, or even a full day."

On the Seedfast side a count is part of the sentence you already wrote. The exact row counts guide publishes three runs of the scope above against a fresh schema, each verified with SQL afterwards, and the tables that carried a number came out carrying that number. Locale behaves the same way, as a clause rather than a setting. Where Syntho sets language once per workspace and falls back to English (United States) if a mock generator lacks it, which is a sensible design for a platform that de-identifies one database at a time, a single Seedfast run can put Arabic names in one table and German addresses in another. The localized test data guide shows both, along with six runs where the instruction itself was written in Slovak.

What a quote hides

Syntho's pricing page describes the model as "feature-based pricing, no consumption-based charges," which reads well, and then every package button says Get a quote. Implementation is packaged separately as Small, Medium or Large, also by quote. None of that is unusual for a self-hosted enterprise platform, and it does mean you cannot compare the two tools on price without a sales call on one side of the table.

Nothing is hidden on our side of that table. The free plan costs nothing, refills $5 of credits every month and asks for no card, with $10 instead of $5 on a work-email signup, while Basic is $16 a month for $32 of credits and Premium is $69 for $180. Credits are spent by how much data a run generates rather than by row or by token, and a full session on a 30-table schema comes to roughly $0.60, which is where the eight, fifty and three hundred runs a month on the pricing page come from.

Which Syntho alternative fits your job?

Syntho is the better answer whenever the binding constraint is where the software runs. If the data cannot leave your network, or the tables you care about live in Oracle, DB2 or Sybase, or the real task turns out to be de-identifying a production copy rather than replacing it, then a platform you host yourself settles a compliance question that no CLI ever will, and the quote is what that costs.

The other case, and the one we built for, is a PostgreSQL database that has to hold coherent data by this afternoon. One command reads the live schema, the sentence you wrote says what the data should represent, and the rows land satisfying the keys and constraints already defined there. Check that against your own schema on the free plan, or read how a first seed goes before installing anything.

Cross-shopping wider is worth the half hour. Tonic.ai alternatives splits that vendor's three jobs into three shortlists, SDV is the Python route for teams that already hold real data to learn from, and Mockaroo reaches a flat CSV fastest when relationships are not the problem. The test data tools comparison hub lines all of them up in one matrix.

Frequently asked questions

How much does Syntho cost?

Syntho does not publish a price. Its pricing page lists three packages, Basic, Standard and Ultimate, and each carries a Get a quote button rather than a figure, with implementation deployment packages sold separately as Small, Medium or Large. The page describes the model as "feature-based pricing, no consumption-based charges" (verified 10 September 2026 at syntho.ai/pricing; check it before budgeting, since vendor pages move). Seedfast publishes its ladder instead, $0 a month with $5 of credits, $16 with $32 and $69 with $180.

Does Syntho need existing data to generate?

It does not need one for every generator. Syntho's FAQ says directly that "if you do not have any data yet, you can generate data from scratch to fill an empty database," and their key generators page notes that the Generate method also works when creating data from scratch. AI synthesize is the part that learns from a source table, and it is documented as single-table only. Seedfast never needs a source dataset, because the schema is the input.

Can Syntho run in a CI pipeline?

Nothing in Syntho's public documentation describes a command-line interface or an MCP server, and their published docs index carried no such page when we read it on 10 September 2026. Jobs are configured and started inside the workspace UI. Seedfast was built the other way round, as a CLI that takes a connection string, which is what makes it a single step after migrations in CI/CD database seeding and a tool an AI agent can call over MCP.

Is Syntho or Seedfast better for a PostgreSQL database?

Both connect to PostgreSQL, so the answer turns on what else is true. Syntho earns its place when the environment is regulated enough that the platform must run inside your own network, or when Postgres is one engine among several you have to cover. We think Seedfast fits better once Postgres is the whole story, the run has to happen from a terminal or a pipeline rather than a browser tab, and writing one sentence appeals more than configuring several hundred columns.

Does Syntho keep foreign keys valid?

Yes, and its documentation explains how the choice is exposed. Referential integrity in Syntho is handled by three key generators, Duplicate (copy the original key values), Generate (create new keys, preserving references but not correlations) and Hash (obscure the values while keeping both). Each is selected per key column. Seedfast keeps references valid without that per-column step, and handles circular references as well, including cycles that are NOT NULL on both sides.

What can Syntho do that Seedfast cannot?

Syntho connects to database engines Seedfast does not support yet, Oracle, DB2, SAP Sybase, Hive and Databricks among them, and the whole platform deploys inside your own infrastructure through Docker Compose or Kubernetes, so a schema never crosses the perimeter. It also de-identifies existing production data using a PII scanner, masking generators and a privacy audit report. That last one is a job Seedfast does not do at all, by design, since we generate rows rather than transform real ones.

Sources

Every Syntho claim on this page was read on the vendor's own pages on 10 September 2026:

  • docs.syntho.ai and docs.syntho.ai/llms.txt for the documentation index, connector list and deployment sections
  • AI synthesize for the UI configuration steps and the When not to use list
  • Frequently asked questions for generating into an empty database, single-table AI synthesis and calculated columns
  • Numeric integer mock generators for the uniform, series and custom-integer options
  • Supported languages for language coverage, the workspace-level setting and the English (US) fallback
  • Referential integrity and foreign keys for the Duplicate, Generate and Hash key generators
  • What is subsetting for the 5% caveat and the runtime note
  • syntho.ai/pricing for the three quote-based packages

Seedfast figures come from our own pricing page and from two published guides, exact row counts and localized test data, each of which prints the CLI transcript and the verification SQL for the runs it describes.

Verified: September 2026. Syntho's documentation is actively maintained and its page paths have moved before, so treat every quote here as a snapshot of that date and check the vendor's own page if a detail is load-bearing for you.

Seed the schema you already have

Most teams will decide this on one thing, how much has to be standing up before the first row exists. Seedfast needs a connection string and a sentence. Rows arrive satisfying the keys and constraints your schema already defines, so nothing is orphaned and there is nothing to reconcile once the run finishes. Finding that out costs about two minutes on your first seed, because the free plan refills $5 of credits every month and never asks for a card. What one command does takes less time still.

Related guides:

Seedfast is not affiliated with, endorsed by, or sponsored by the products compared here. All product names, logos, and brands are the property of their respective owners and are used for identification purposes only. Comparisons reflect publicly available information as of the date shown.

Syntho, Tonic Fabricate, Mockaroo, SDV are trademarks of their respective owners.