Skip to content

Plugin development tutorials

This is the hands-on path for building a MINT plugin. Start with a small analysis plugin, add a browser frontend, then build a design plugin with tables and role checks.

For the full Plugin Development chapter map, start at Plugin Development Guide.

Before you start

You'll need:

Python3.12 or newer
uvUsed by generated plugin projects
Bunlatest (for frontend tutorials)
mint CLIInstalled from mint-sdk; see CLI overview
A running platformOptional for the first pass; mint dev --platform can start one for integrated smoke tests

You do not need to read the whole SDK reference first. When a tutorial introduces a concept, it links to the deeper page.

StepTutorialProjectWhat you will have afterward
1First analysis pluginhello-mintBackend-only ANALYSIS plugin with routes, tests, PlatformContext reads, and a .mint bundle
2Adding a frontendhello-mintVue 3 frontend using PluginWorkspaceView, generated typed client, and @morscherlab/mint-sdk
3Design plugin with tablespanel-designerEXPERIMENT_DESIGN plugin with SQLModel tables, CRUD routes, local SQLite, and installed-mode migrations
4Plugin rolespanel-designerPlugin-specific viewer / editor / admin roles enforced by backend routes and reflected in the UI

The first two tutorials build one analysis plugin. The last two build a separate design plugin. That split mirrors real MINT deployments: design plugins usually define experiment structure, while analysis plugins read experiments and attach results.

What to learn before each step

BeforeRead this if the term is new
Tutorial 1Plugin types, PlatformContext
Tutorial 2Frontend overview, Frontend SDK reference
Tutorial 3Data model, Migrations
Tutorial 4Route permissions, Permissions

How tutorials are structured

  • Command blocks are runnable as written. Code blocks are either full replacements or explicitly marked as partial snippets.
  • File paths are absolute relative to the plugin project root unless noted.
  • When directory matters, the surrounding text tells you where to run the command.
  • Output expected from each command is shown with markers.
  • After each section there's a Checkpoint — a one-liner you can run to verify your project is in the expected state before moving on.

After the tutorials

When your plugin works locally:

  • Run Packaging to produce a .mint bundle.
  • Use Publishing when you are ready for PyPI or a marketplace registry.
  • Add CI from CI patterns.
  • Use Recipes for specific tasks such as reading experiments, writing results, route permissions, testing, and R integration.
  • Use API Reference only when you need exact signatures.

MINT is open source. Made by the Morscher Lab.