This product was not featured by Product Hunt yet. It will not be visible on their landing page and won't be ranked (cannot win product of the day regardless of upvotes).
Seam
One schema file. Python, Node and the browser agree.
Every language has a good validator. The bugs are not inside a language, they are at the seam between two, where each disagrees about what the data means. JavaScript loses integers past 2^53. Python cannot tell absent from null. Seam makes the contract a file. Python, Node and the browser validate against the same compiled Rust engine, not the same spec written three times. 95 conformance cases run from all four in CI, so agreement is tested. pip install seam-schema npm install seam-schema
I lost an afternoon to an order ID that was correct in the database, correct in
the Python logs, and wrong by 83 by the time it reached the Node consumer.
Nothing threw. JSON.parse cannot hold an integer past 2^53, and no validator
running afterwards brings the bits back.
That is not a bug in either service. It is the seam between them, and every
language has its own version of it: Python cannot tell a missing key from a
null one, JavaScript has three kinds of empty, and none of the three agree on
what a date without a timezone means.
So I stopped trying to keep three validators in sync and made the contract a
file. One .seam, one compiled Rust engine, loaded into Python, Node and the
browser.
The part I am proudest of is not the validation. It is the conformance suite:
95 plain text cases that run identically from all four runtimes in CI. If Rust
and the browser ever disagree, the build fails. That is what turns "no drift"
into something that can break rather than something I claim.
What changed most while building it was how much I had to decline. Custom
validators and regex patterns both need an expression language, and a schema
that cannot execute anything turned out to be worth more than either.
It is 0.1.3, so the contract can still move. I would rather hear where it is
wrong than where it is nice.
It is on PyPI, npm and crates.io right now, not a waitlist:
pip install seam-schema Python 3.9+
npm install seam-schema Node 20+
npm install seam-schema-wasm browsers
cargo add seam-core the engine
A demo you can clone and run in a minute, with the ID arriving wrong and then
right: github.com/angeldevmobile/seam-demo
No comment highlights available yet. Please check back later!
About Seam on Product Hunt
“One schema file. Python, Node and the browser agree.”
Seam was submitted on Product Hunt and earned 2 upvotes and 1 comments, placing #146 on the daily leaderboard. Every language has a good validator. The bugs are not inside a language, they are at the seam between two, where each disagrees about what the data means. JavaScript loses integers past 2^53. Python cannot tell absent from null. Seam makes the contract a file. Python, Node and the browser validate against the same compiled Rust engine, not the same spec written three times. 95 conformance cases run from all four in CI, so agreement is tested. pip install seam-schema npm install seam-schema
Seam was featured in Productivity (660k followers), Open Source (68.8k followers), GitHub (41.4k followers) and Development Language (1.8k followers) on Product Hunt. Together, these topics include over 202.3k products, making this a competitive space to launch in.
Who hunted Seam?
Seam was hunted by Gabriel Zapata. A “hunter” on Product Hunt is the community member who submits a product to the platform — uploading the images, the link, and tagging the makers behind it. Hunters typically write the first comment explaining why a product is worth attention, and their followers are notified the moment they post. Around 79% of featured launches on Product Hunt are self-hunted by their makers, but a well-known hunter still acts as a signal of quality to the rest of the community. See the full all-time top hunters leaderboard to discover who is shaping the Product Hunt ecosystem.
Want to see how Seam stacked up against nearby launches in real time? Check out the live launch dashboard for upvote speed charts, proximity comparisons, and more analytics.