Skip to content

Latest commit

 

History

History
87 lines (74 loc) · 4.38 KB

File metadata and controls

87 lines (74 loc) · 4.38 KB
layout home
hero
name text tagline actions
simple_module_python
A modular monolith for Python
FastAPI + SQLModel + Inertia.js + React. Plugin modules that compose at boot. No microservice tax, no API-client glue.
theme text link
brand
Get started
/guide/quickstart
theme text link
alt
Why a modular monolith?
/guide/introduction
theme text link
alt
View on GitHub
features
title details link linkText
Build with it
Five-minute quickstart, then scaffold your first module. You'll learn the loop — add a model, generate a migration, write a service, mount a page.
/guide/quickstart
Quickstart
title details link linkText
Author a module
Read the framework conventions, then walk through a real module end-to-end. Models, contracts, service, endpoints, pages, tests, locales.
/guide/first-module
Build a module
title details link linkText
Use a bundled module
Twelve first-party modules ship with the framework — auth, users, keycloak, permissions, settings, file_storage, branding, background_tasks, feature_flags, audit_log, dashboard, site_lock.
/modules/
Browse modules
title details link linkText
Operate it in production
Deployment, environment variables, diagnostics, release pipeline, performance + load testing.
/reference/deployment
Deploy

How the docs are organised

<style> .sm-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; margin: 1rem 0 2rem; } .sm-grid a.sm-card { display: block; padding: 1rem 1.25rem; border: 1px solid var(--vp-c-divider); border-radius: 12px; background: var(--vp-c-bg-soft); text-decoration: none !important; } .sm-grid a.sm-card:hover { border-color: var(--vp-c-brand-1); } .sm-grid a.sm-card h3 { margin: 0 0 .25rem; font-size: 1rem; color: var(--vp-c-brand-1); } .sm-grid a.sm-card p { margin: 0; color: var(--vp-c-text-2); font-size: .9rem; line-height: 1.4; } @media (prefers-reduced-motion: no-preference) { .sm-grid a.sm-card { transition: border-color .15s ease, transform .15s ease; } .sm-grid a.sm-card:hover { transform: translateY(-1px); } } </style>

Install, bootstrap, and build your first module.

Discovery, lifecycle hooks, middleware, permissions, events, i18n.

SQLModel conventions, per-module Base, mixins, sessions, Alembic.

Inertia page keys, shared props, page discovery, React layout.

The simple_module_test plugin fixtures, unit tests, end-to-end tests.

Reference for each bundled module: routes, contracts, settings.

CLI commands, env vars, diagnostic codes, deployment.

Try it in 60 seconds

uv tool install simple_module_cli
smpy new myapp --yes
cd myapp
make dev          # API on :8000, Vite on :5050

Then in another terminal, inside myapp:

smpy create-module orders --dest modules/orders
uv add ./modules/orders

That generates modules/orders/ with a ModuleMeta, a SQLModel table, contracts, a service, REST + Inertia endpoints, three React pages, locales, and a smoke test — all wired in once the dev server reloads. The full walkthrough is in Your first module.

Where to start

When conventions are ambiguous, the authoritative single-page docs (Framework conventions, Module authoring, E2E testing, Release playbook) are the source of truth.