The development-first ORM that gets out of your way. Prototype with a JSON file, ship with any SQL database. Same code, zero rewrites.
1import { SeedORM, FieldType } from "seedorm";23const db = new SeedORM();4await db.connect();56const User = db.model({7 name: "User",8 collection: "users",9 schema: {10 name: { type: FieldType.String, required: true },11 email: { type: FieldType.String, unique: true },12 role: { type: FieldType.String, enum: ["admin", "user"] },13 },14});15await User.init();1617const alice = await User.create({18 name: "Alice",19 email: "alice@company.com",20 role: "admin",21});2223const admins = await User.find({24 filter: { role: { $eq: "admin" } },25 sort: { name: 1 },26});A complete data layer that scales to production without you having to rewrite anything. We did the hard part so you don't have to.
Run one command and start building. No database setup, no Docker, no 45-minute environment setup. Your data lives in a JSON file you can actually open and read like a normal person.
Schema validation, unique constraints, indexed fields, compound queries with $eq, $gt, $in, $like and more. It starts with JSON but it's not messing around.
When your side project accidentally gets users, change one config line and you're on PostgreSQL. MySQL and SQLite are coming soon. Your code doesn't change. Not one line.
REST API server with one command. Visual Studio UI to browse and edit your data. CLI for migrations, exports, and project management. Batteries included, assembly not required.
Written in TypeScript with full type definitions. Dual CJS/ESM output. Works with Node.js 18+ and every major framework. Your IDE will actually be helpful for once.
Only 3 runtime dependencies. In-memory operations with atomic disk writes. No background processes, no daemon, no cloud subscription. Your node_modules will barely notice.
Your seedorm.config.json is the only thing that changes between development and production. Switch from JSON to any SQL database by changing the adapter field. Your models, queries, and application logic remain identical.
// Development: JSON file{ "adapter": { "adapter": "json", "path": "./data" }}// Production: swap to any supported database{ "adapter": { "adapter": "postgres", "url": "postgres://..." }}// Your code stays exactly the same.No database to install. No Docker. No config files to copy-paste from Stack Overflow. Just npm install and start writing code.