ONE CONTRACT, ONE VIEWER, EVERY FRAMEWORK
Laranex.
Schema Viewer UI
The shared ERD viewer and the laranex-schema contract
behind the Laravel, Python and Node.js schema viewers.
npm install laranex-schema-viewer-uiA React component, a standalone static bundle for Laravel and Python hosts, and the contract: types, JSON Schema, validator, graph builder and conformance fixtures.
Copy commandWhy a shared package
The Laranex schema viewers for Laravel, Python and Node.js read schemas in very different ways: Laravel inspects the live database and Eloquent models, Python reads ORM declarations from SQLAlchemy, SQLModel, Django, Tortoise ORM and Peewee, and Node.js reads Prisma, TypeORM, Drizzle, Sequelize and MikroORM. This package gives them one place to meet:
- The contract. Every producer writes a
laranex-schema2.0 document. Framework-specific normalization happens in the producer; the viewer never detects or converts framework formats. - The viewer. One React component and one static bundle render any
laranex-schemadocument, so a feature added here reaches every framework at once.
What you can explore
- Tables across several connections and schemas, with columns, types, defaults, comments and notes.
- Primary, composite and foreign keys with referential actions.
- Indexes as first-class entities: key order, expressions, partial predicates, included columns, methods, collations, operator classes, and whether an index backs the primary key or a unique constraint.
- Unique and check constraints.
- ORM models and relationships, including pivots, polymorphic and through relationships, kept apart from foreign keys.
- Provenance, drift and coverage: what the database says, what the ORM declares, and what could not be read.
- Diagnostics, with confirmed facts kept apart from heuristic advice.
Development only
The viewer shows a database's complete structure, so it is a development tool: never expose it or its snapshots in production, and put authentication in front of it even in local development. See Security, and Embedding in client applications to add it to your application as a protected development page.
What it is not
- It never connects to a database or imports application code; producers do that, at build time.
- It contains no CLI or MCP server; those live in each framework's package.
- It has no adapters for older framework snapshot formats; producers convert their own.