diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt
index 2ad17e9ee..0cfb20ebf 100644
--- a/.github/actions/spelling/expect.txt
+++ b/.github/actions/spelling/expect.txt
@@ -605,7 +605,6 @@ pidof
pids
Piljk
pki
-plantuml
popafter
postconf
postfixadmin
@@ -632,7 +631,6 @@ proctitle
proofpoint
proxymap
pubout
-puml
putscript
pvo
pwcheck
@@ -827,7 +825,6 @@ toolarge
transitioning
Troost
tscript
-tsvg
TTLs
tuxfamily
typedef
@@ -841,7 +838,6 @@ UIDPLUS
uids
uidv
uidvalidity
-UML
unaccessed
unaliased
unauth
diff --git a/assets/plantuml/README.md b/assets/plantuml/README.md
deleted file mode 100644
index de954ee6b..000000000
--- a/assets/plantuml/README.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# PlantUML Data
-
-This directory contains PlantUML files that are used to create diagrams for
-the documentation.
-
-## Docker
-
-[PlantUML](https://plantuml.com/) files are converted to SVG by using a Java
-program.
-
-It is easiest to run the program by using a pre-configured Docker container.
-
-The output command is as follows:
-
-```
-docker run --rm -v /path/to/your/puml/files:/data \
- -v /path/to/your/output/directory:/output plantuml/plantuml \
- -tsvg /data/your_diagram.puml \
- -o /output
-```
-
-For example, if running from this directory to convert foo.puml, and storing
-the SVG file in the "docs/core/images" directory (so it can be referenced via
-Markdown from within VitePress), run:
-
-```
-mkdir -p ../../docs/core/images
-docker run --rm -v ./:/data -v ../../docs/core/images:/output \
- plantuml/plantuml -tsvg /data/foo.puml -o /output
-```
diff --git a/assets/plantuml/submission_flow.puml b/assets/plantuml/submission_flow.puml
deleted file mode 100644
index aef279147..000000000
--- a/assets/plantuml/submission_flow.puml
+++ /dev/null
@@ -1,27 +0,0 @@
-@startuml
-top to bottom direction
-
-actor MUA [
- MUA (Mail Client)
-]
-
-package "DOVECOT" {
- usecase "submission-login\n(Handles TLS & Auth)" as SubLogin
- component "Dovecot Auth" as Auth
- usecase "submission\n(Validates SMTP; proxies mail)" as Submission
- database "Mail Storage" as Storage
-}
-
-node "Backend MTA\n(e.g., Postfix/Exim)" as MTA
-
-cloud "Remote Delivery" as Net
-
-' Define the connections based on the flow
-MUA -down-> SubLogin : " Connect (SMTP: Port 465/587)"
-SubLogin -down-> Auth
-Auth -down-> Submission
-Submission ..> Storage : "(Optional) Handles BURL"
-Submission -down-> MTA : "Relays message (SMTP)"
-MTA -down-> Net
-
-@enduml
diff --git a/docs/core/config/images/submission_flow.svg b/docs/core/config/images/submission_flow.svg
deleted file mode 100644
index 5a5a04fa9..000000000
--- a/docs/core/config/images/submission_flow.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/core/config/include/submission_flow.inc b/docs/core/config/include/submission_flow.inc
new file mode 100644
index 000000000..021fea650
--- /dev/null
+++ b/docs/core/config/include/submission_flow.inc
@@ -0,0 +1,25 @@
+```mermaid
+flowchart LR
+ %% Nodes
+ MUA([MUA
Mail Client])
+
+ %% Grouping (Package)
+ subgraph DOVECOT
+ direction TB
+ SubLogin(submission-login
Handles TLS & Auth)
+ Auth[Dovecot Auth]
+ Submission(submission
Validates SMTP; proxies mail)
+ Storage[(Mail Storage)]
+ end
+
+ MTA[Backend MTA
e.g., Postfix/Exim]
+ Net((Remote Delivery))
+
+ %% Connections
+ MUA -->|Connect SMTP: Port 465/587| SubLogin
+ SubLogin --> Auth
+ Auth --> Submission
+ Submission -.->|Optional Handles BURL| Storage
+ Submission -->|Relays message SMTP| MTA
+ MTA --> Net
+```
diff --git a/docs/core/config/submission.md b/docs/core/config/submission.md
index ec6637016..f8d226557 100644
--- a/docs/core/config/submission.md
+++ b/docs/core/config/submission.md
@@ -84,7 +84,7 @@ service:
## Flow Diagram
-
+
## Configuration