Index: backend/controllers/forumController.js
===================================================================
--- backend/controllers/forumController.js	(revision cdddb452dcea23dc778d472452e7d26d0a4aaf5c)
+++ backend/controllers/forumController.js	(revision 651732b55287b0f7024ade07d408dc90f7f41ccc)
@@ -2,6 +2,10 @@
 const ForumPost = require('../models/ForumPost');
 const Comment = require('../models/Comment');
-
-// Forum Post Functions
+const Filter = require('bad-words');
+const filter = new Filter();
+const mkProfanity = require('../filters/macedonianProfanity')
+filter.addWords(...mkProfanity);
+const safeWords = require('../filters/safeWords');
+
 const createForumPost = async (req, res) => {
   const { title, content, authorId, authorName } = req.body;
@@ -15,5 +19,13 @@
     });
 
-    // Store in database using Prisma
+    if (filter.isProfane(post.content + post.title)) {
+      console.log("Profanity detected!");
+      return res.status(400).json({
+        error: 'Content contains inappropriate language',
+      });
+    } else if(!(safeWords.includes(post.content) || safeWords.includes(post.title))) {
+      console.log("Safe words check failed!");
+      // TUKA VIKAME AI
+    }
     const savedPost = await prisma.forum_posts.create({
       data: {
@@ -152,5 +164,13 @@
       authorId: authorId,
     });
-    console.log(comment);
+
+    if (filter.isProfane(comment.content + post.title) || !(safeWords.includes(comment.content) || safeWords.includes(post.title))) {
+      console.log("not safe words or profanity detected!");
+      return res.status(400).json({
+        error: 'Content contains inappropriate language or is not on topic',
+      });
+    } 
+
+
     // Store in database using Prisma
     const savedComment = await prisma.comments.create({
Index: backend/filters/macedonianProfanity.js
===================================================================
--- backend/filters/macedonianProfanity.js	(revision 651732b55287b0f7024ade07d408dc90f7f41ccc)
+++ backend/filters/macedonianProfanity.js	(revision 651732b55287b0f7024ade07d408dc90f7f41ccc)
@@ -0,0 +1,8 @@
+
+module.exports = [
+    "кур", "пичка", "ебам", "мрш", "глуп", "идиот", "гомно", "курва", 
+    "срање",
+    // English alphabet variants
+    "kur", "picka", "pichka", "ebam", "mrsh", "glup", "idiot", "gomno", "kurva",
+    "srane", "sranje"
+  ];
Index: backend/filters/safeWords.js
===================================================================
--- backend/filters/safeWords.js	(revision 651732b55287b0f7024ade07d408dc90f7f41ccc)
+++ backend/filters/safeWords.js	(revision 651732b55287b0f7024ade07d408dc90f7f41ccc)
@@ -0,0 +1,48 @@
+module.exports = [
+    // Macedonian Cyrillic
+    "код", "функција", "променлива", "класа", "јамка", "ако", "инаку", "низа",
+    "објект", "стринг", "цел број", "булијан", "точно", "неточно", "увези", "извези",
+    "конзола", "логирај", "компајлирај", "стартувај", "изврши", "врати", "циклус",
+    "испечати", "тест", "алгоритам", "влез", "излез", "програма", "девелопер",
+    "софтвер", "хардвер", "логика", "бубачка", "поправи", "грешка", "предај",
+    "предизвик", "ИДЕ", "уредувач", "терминал", "тастатура", "грешка при компајлирање",
+    "синтакса", "фрејмворк", "база на податоци", "сервер", "клиент", "јазик", "платформа",
+    "апликација", "интерфејс", "библиотека", "структура", "метод", "конструктор", "база",
+    "податоци", "запис", "изјава", "прашање", "решение", "корисник", "форма", "задаток",
+    "веб", "страница", "линк", "барање", "одговор", "алатка", "список", "јсон", "клуч",
+    "вредност", "влезни податоци", "излезни податоци", "гит", "гитхаб", "функционалност",
+    "коментар", "објаснување", "решавање", "дефинирање", "дебагирање",
+  
+    // Macedonian Latin
+    "kod", "funkcija", "promenliva", "klasa", "jamka", "ako", "inaku", "niza",
+    "objekt", "string", "cel broj", "bulijan", "tochno", "netochno", "uvezi", "izvezi",
+    "konzola", "logiraj", "kompajliraj", "startuvaj", "izvrshi", "vrati", "ciklus",
+    "ispečati", "test", "algoritam", "vlez", "izlez", "programa", "developer",
+    "softver", "hardver", "logika", "bubačka", "popravi", "greška", "predaj",
+    "predizvik", "IDE", "ureduvač", "terminal", "tastatura", "greška pri kompajliranje",
+    "sintaksa", "frejmvork", "baza na podatoci", "server", "klient", "jazik", "platforma",
+    "aplikacija", "interfejs", "biblioteka", "struktura", "metod", "konstruktor", "baza",
+    "podatoci", "zapis", "izjava", "prašenje", "rešenje", "korisnik", "forma", "zadatok",
+    "web", "stranica", "link", "baranje", "odgovor", "alatka", "spisok", "json", "ključ",
+    "vrednost", "vlezni podatoci", "izlezni podatoci", "git", "github", "funkcionalnost",
+    "komentar", "objasnuvanje", "rešavanje", "definiranje", "debugiranje",
+  
+    // English
+    "code", "function", "variable", "class", "loop", "if", "else", "array",
+    "object", "string", "integer", "boolean", "true", "false", "import", "export",
+    "console", "log", "compile", "run", "execute", "return", "cycle", "print", "test",
+    "algorithm", "input", "output", "program", "developer", "software", "hardware",
+    "logic", "bug", "fix", "error", "correct", "submit", "challenge", "IDE", "editor",
+    "terminal", "keyboard", "compile error", "syntax", "framework", "database",
+    "server", "client", "language", "platform", "application", "interface", "library",
+    "structure", "method", "constructor", "record", "statement", "question", "solution",
+    "user", "form", "task", "web", "page", "link", "request", "response", "tool",
+    "list", "json", "key", "value", "input data", "output data", "git", "github",
+    "feature", "comment", "explanation", "debug", "define", "solve",
+  
+    // Programming languages
+    "javascript", "python", "java", "csharp", "c#", "c++", "cpp", "html", "css", "php",
+    "sql", "typescript", "react", "vue", "angular", "dotnet", "aspnet", "django",
+    "flask", "nodejs", "express", "tailwind", "bootstrap", "webflow"
+  ];
+  
Index: backend/node_modules/.package-lock.json
===================================================================
--- backend/node_modules/.package-lock.json	(revision cdddb452dcea23dc778d472452e7d26d0a4aaf5c)
+++ backend/node_modules/.package-lock.json	(revision 651732b55287b0f7024ade07d408dc90f7f41ccc)
@@ -129,4 +129,22 @@
         "node": ">= 8"
       }
+    },
+    "node_modules/bad-words": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/bad-words/-/bad-words-4.0.0.tgz",
+      "integrity": "sha512-fLjG/I0N3I7xhurqGnGitSRD10UeEE63a7hyXtutQDpxo4+Eal+i7veWeZxZJPNtsl6X1mUIoWPwt8gQ7NMQUw==",
+      "license": "MIT",
+      "dependencies": {
+        "badwords-list": "^2.0.1-4"
+      },
+      "engines": {
+        "node": ">=8.0.0"
+      }
+    },
+    "node_modules/badwords-list": {
+      "version": "2.0.1-4",
+      "resolved": "https://registry.npmjs.org/badwords-list/-/badwords-list-2.0.1-4.tgz",
+      "integrity": "sha512-FxfZUp7B9yCnesNtFQS9v6PvZdxTYa14Q60JR6vhjdQdWI4naTjJIyx22JzoER8ooeT8SAAKoHLjKfCV7XgYUQ==",
+      "license": "MIT"
     },
     "node_modules/balanced-match": {
Index: backend/package-lock.json
===================================================================
--- backend/package-lock.json	(revision cdddb452dcea23dc778d472452e7d26d0a4aaf5c)
+++ backend/package-lock.json	(revision 651732b55287b0f7024ade07d408dc90f7f41ccc)
@@ -11,4 +11,5 @@
       "dependencies": {
         "@supabase/supabase-js": "^2.39.7",
+        "bad-words": "^4.0.0",
         "bcrypt": "^6.0.0",
         "dotenv": "^16.5.0",
@@ -143,4 +144,22 @@
         "node": ">= 8"
       }
+    },
+    "node_modules/bad-words": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/bad-words/-/bad-words-4.0.0.tgz",
+      "integrity": "sha512-fLjG/I0N3I7xhurqGnGitSRD10UeEE63a7hyXtutQDpxo4+Eal+i7veWeZxZJPNtsl6X1mUIoWPwt8gQ7NMQUw==",
+      "license": "MIT",
+      "dependencies": {
+        "badwords-list": "^2.0.1-4"
+      },
+      "engines": {
+        "node": ">=8.0.0"
+      }
+    },
+    "node_modules/badwords-list": {
+      "version": "2.0.1-4",
+      "resolved": "https://registry.npmjs.org/badwords-list/-/badwords-list-2.0.1-4.tgz",
+      "integrity": "sha512-FxfZUp7B9yCnesNtFQS9v6PvZdxTYa14Q60JR6vhjdQdWI4naTjJIyx22JzoER8ooeT8SAAKoHLjKfCV7XgYUQ==",
+      "license": "MIT"
     },
     "node_modules/balanced-match": {
Index: backend/package.json
===================================================================
--- backend/package.json	(revision cdddb452dcea23dc778d472452e7d26d0a4aaf5c)
+++ backend/package.json	(revision 651732b55287b0f7024ade07d408dc90f7f41ccc)
@@ -13,8 +13,9 @@
   "license": "ISC",
   "dependencies": {
+    "@supabase/supabase-js": "^2.39.7",
+    "bad-words": "^4.0.0",
     "bcrypt": "^6.0.0",
     "dotenv": "^16.5.0",
-    "express": "^5.1.0",
-    "@supabase/supabase-js": "^2.39.7"
+    "express": "^5.1.0"
   },
   "devDependencies": {
