diff --git a/.project-dictionary.txt b/.project-dictionary.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9eda8aae1095d16c5e9c176a4b48d70efe6f6770
--- /dev/null
+++ b/.project-dictionary.txt
@@ -0,0 +1,40 @@
+ASGI
+backoffice
+BIGBLUEBUTTON
+blocktranslate
+CLUBFRIENDS
+Conferencemember
+derefer
+Dereferrer
+endblocktranslate
+exneuland
+gettz
+JITSI
+keepalive
+markdownify
+plainui
+pretix
+renderable
+Shibboleet
+Workadventure
+Orga
+Einlöseseite
+htmlhead
+endspaceless
+endfor
+naturaltime
+yesno
+datatables
+msgid
+msgstr
+pentabarf
+Andi
+Roang
+metanav
+engelsystem
+pois
+nplurals
+clonbares
+Vorlesungsraum
+Vorlesungssaal
+forloop
diff --git a/cspell.config.yaml b/cspell.config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..d4b352c897f71b13c9c2ae12a20426654789023e
--- /dev/null
+++ b/cspell.config.yaml
@@ -0,0 +1,41 @@
+---
+$schema: https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json
+version: "0.2"
+
+import:
+  - "@cspell/dict-python/cspell-ext.json"
+  - "@cspell/dict-de-de/cspell-ext.json"
+
+dictionaryDefinitions:
+  - name: project-words
+    path: "./.project-dictionary.txt"
+    addWords: true
+
+dictionaries:
+  - python
+  - html
+  - project-words
+  - en_US
+  - de-de
+
+ignorePaths:
+  - "node_modules"
+  - ".venv"
+  - ".tools"
+  - "/.project-dictionary.txt"
+  - "src/**/migrations"
+  - "src/**/fixtures"
+  - "src/**/vendor"
+  - "src/**/tests"
+  - "src/static.dist"
+  - "src/hub/settings"
+  - "*.svg"
+  - "tox.ini"
+
+languageSettings:
+  - languageId: markdown
+    caseSensitive: true
+  - languageId: python
+    ignoreRegExpList:
+      - /from .* import .*/g
+      - /import .*/g
diff --git a/package.json b/package.json
index d7a6e85005bddc2de3e2ec78a430c0483927f0f3..c86ab50e52f356f6824f7c339b980a32fe0b9042 100644
--- a/package.json
+++ b/package.json
@@ -2,6 +2,9 @@
   "name": "hub",
   "packageManager": "yarn@4.5.0",
   "devDependencies": {
+    "@cspell/dict-de-de": "^4.0.3",
+    "@cspell/dict-python": "^4.2.12",
+    "cspell": "^8.16.0",
     "prettier": "^3.3.3"
   },
   "scripts": {