Modelizer is a lightweight database modeling tool for teaching and discussing the database modeling process, originally developed for courses in Luxembourg.
Use Modelizer online · Download for Windows · Docker image
| View | Purpose |
|---|---|
| Conceptual | Describe the domain with classes, attributes, associations, roles, and multiplicities. |
| Logical | Define tables and relationships between attributes, using logical names where needed. |
| Physical | Specify column types, nullability, uniqueness, auto-increment, and default values. |
Conceptual models support parallel, reflexive, and associative associations, as well as composite aggregation. Enable Preferences → Enable composite aggregation to create and display composite aggregations.
Modelizer leaves modeling decisions to the learner. It does not validate modeling correctness or automatically generate relationships from associations.
- Open Modelizer and choose File → New.
- In conceptual view, add classes and attributes from the Classes panel.
- Connect class handles to create associations, then edit their names, roles, and multiplicities in Relations.
- Switch to logical or physical view to define relationships between attributes or columns and add implementation details.
- Save an editable
.mdlzfile. Export a PNG when you need an image to share.
Open Help in the application for task-based instructions, troubleshooting, and keyboard shortcuts. The same guide is available in this repository.
Save and reopen models. Use File → Save or Save As to keep a .mdlz file containing the model, layouts, notes, areas, and annotations. Reopen it with File → Open or by dropping one file onto the application. Depending on browser support and file permissions, Save writes back to the chosen file, prompts for a location, or downloads a copy.
Models are stored in local files, with no server-side model storage. The * beside the model name indicates unsaved changes. Editor preferences are remembered separately in the browser. Current saves use file format version 2; version 1 files still open, but older Modelizer versions cannot open version 2 files.
Import existing designs. Import Java Modelizer (.mod) or MySQL (.sql) files through File → Import. Review the result: unsupported types are reported and mapped to Undefined, unsupported Java Modelizer links may be skipped, and composite MySQL foreign keys are ignored.
Export an image. Export PNG previews the full current view and lets you choose whether to include notes, areas, annotations, and accent colors. Choose standard or high resolution, a white or transparent background, margins, and a filename. Export settings do not change the model. Keep a .mdlz file as your editable copy; PNG is for sharing and presentation.
Use View → Notes for explanations and View → Areas to group related elements. Enable View → Annotations to draw with a pen or marker, add text and shapes, or point things out with a temporary laser. Annotations are saved separately for each modeling view; laser effects are never saved or exported.
Use View to adjust diagram content, notation, the background grid, accent colors, and fullscreen display. Preferences controls editor behavior and dark mode. PNG exports use light styling while preserving user-selected class, area, and annotation colors.
- Download the release ZIP from GitHub Releases.
- Unzip it anywhere on your computer.
- Double-click
modelizer.batto start the local server and open your browser. - If the browser does not open automatically, visit localhost:8080.
The release includes a small local webserver based on miniserve. Close the server window when you are finished.
Run the latest published Docker image:
docker run --rm -p 8080:80 haanlaurent/modelizer:latestOpen localhost:8080. To use a specific release, replace latest with its published version tag.
To build and run the image from this repository:
docker build -t modelizer:local .
docker run --rm -p 8080:80 modelizer:localUse Node.js 26.10.0 or a later 26.x release and npm. The repository pins its development version in .nvmrc.
From the repository root, install dependencies and start the development server:
npm ci
npm run devOpen the local URL printed by Vite.
Run lint and unit tests:
npm testBuild and preview the production app:
npm run build:ci
npm run previewbuild:ci writes the web app to dist/. Use npm run build when you also want to refresh bundle/app/dist/ for the Windows release bundle.
The examples folder contains five conceptual smoke-test models of increasing complexity. Follow the smoke-test guide for manual checks; the largest model is an intentional readability stress test, not a claim that every layout already renders perfectly.
- Java Modelizer by Bob Fisch — Modelizer’s predecessor.
- ChartDB — interface design inspiration.
- miniserve — the local webserver used in the Windows release bundle.