Hello everyone,
I’d like to share a tool I’ve built for the MongoDB community —
Mongo Diagram, a visual schema design and data modeling tool for MongoDB.
Live: https://mongodbschema.com/
The idea behind it
In MongoDB, the data model has a direct impact on performance and scalability —
how documents are structured, when to embed versus reference, and how
relationships are expressed all matter. Despite this, schema design is often
done informally, without a shared, living artifact for the team to reason about.
Mongo Diagram provides a single visual canvas to design collections, fields, and
relationships, and to export that model as production-ready Mongoose code. The
aim is to make schema design clear, documented, and collaborative.
What it does
- Visual modeling — design collections on an interactive canvas with
drag-and-drop, instead of hand-writing schema definitions. - Complete BSON type coverage — String, Number, Boolean, Date, ObjectId,
Array, Object, Decimal128, Mixed, Buffer, UUID, Map, Timestamp and more,
including nested documents. - Relationship modeling — express one-to-one, one-to-many, and many-to-many
relationships with ObjectId references, drawn clearly between collections. - Code & artifact export — generate Mongoose model code, JSON Schema, and
PNG/SVG diagrams for documentation and design reviews. - Versioned drafts — keep multiple iterations of a model per project, so
schema changes are intentional and easy to track. - Sharing & collaboration — publish a model via a shareable link for team
review and editing.
Architecture
- Backend: Node.js + NestJS, MongoDB via the Mongoose ODM.
- Frontend: React + Vite, using React Flow for the node-based editor.
- Infrastructure: Containerized with Docker, deployed on AWS (ECR + EC2)
behind Nginx.
The platform runs on MongoDB end to end — users, projects, and draft versions
are stored as documents, with the complete schema model persisted in a flexible
document structure and indexed share tokens powering public sharing.
Feedback welcome
I’d really value input from this community. What would make a modeling tool
genuinely useful in your workflow — schema validation rule generation, index
modeling, aggregation pipeline hints, or versioned diffs between drafts?
I’m actively working on this and happy to discuss any of the design decisions
behind it.
Thank you for taking a look.