diff --git a/src/app/ZoneManager.ts b/src/app/ZoneManager.ts
index 4d1cff0..101ee14 100644
--- a/src/app/ZoneManager.ts
+++ b/src/app/ZoneManager.ts
@@ -1,5 +1,6 @@
 import {Character, Zone} from "@prisma/client";
 import ZoneRepository from "./repositories/zone.repository";
+import ZoneService from "./services/zone.service";
 
 interface ILoadedZone {
     zone: Zone;
@@ -23,6 +24,12 @@ class ZoneManager {
     // Method to initialize zone loading
     public async boot() {
         const zoneRepository = new ZoneRepository();
+
+        if (!await zoneRepository.getById(1)) {
+            const zoneService = new ZoneService();
+            await zoneService.createDemoZone();
+        }
+
         const zones = await zoneRepository.getAll();
 
         for (const zone of zones) {
diff --git a/src/app/repositories/zone.repository.ts b/src/app/repositories/zone.repository.ts
index 508eb74..8b07d19 100644
--- a/src/app/repositories/zone.repository.ts
+++ b/src/app/repositories/zone.repository.ts
@@ -19,6 +19,35 @@ class ZoneRepository {
             throw new Error(`Failed to get all zone: ${error.message}`);
         }
     }
+
+    async getById(id: number): Promise<Zone | null> {
+        try {
+            return await prisma.zone.findUnique({
+                where: {
+                    id: id
+                }
+            });
+        } catch (error: any) {
+            // Handle error
+            throw new Error(`Failed to get zone by id: ${error.message}`);
+        }
+    }
+
+    async create(name: string, width: number, height: number, tiles: any): Promise<Zone> {
+        try {
+            return await prisma.zone.create({
+                data: {
+                    name: name,
+                    width: width,
+                    height: height,
+                    tiles: tiles
+                }
+            });
+        } catch (error: any) {
+            // Handle error
+            throw new Error(`Failed to create zone: ${error.message}`);
+        }
+    }
 }
 
 export default ZoneRepository;
\ No newline at end of file
diff --git a/src/app/services/zone.service.ts b/src/app/services/zone.service.ts
index 6007f68..3343398 100644
--- a/src/app/services/zone.service.ts
+++ b/src/app/services/zone.service.ts
@@ -1,13 +1,26 @@
-import {LoadedZoneEntity} from "../entities/LoadedZoneEntity";
 import {Zone} from "@prisma/client";
+import ZoneRepository from "../repositories/zone.repository";
 
 class ZoneService
 {
-    public loaded: LoadedZoneEntity[] = [];
-
-    public boot() {
-        // Load all zones
-        // const zones = await new ZoneRepository().getAll();
-        // this.loadedZones = zones;
+    async createDemoZone(): Promise<boolean>
+    {
+        const zoneRepo = new ZoneRepository();
+        await zoneRepo.create("Demo Zone", 10, 10, [
+            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+            [0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
+            [0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
+            [0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
+            [0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
+            [0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
+            [0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
+            [0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
+            [0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
+            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        ])
+        console.log("Demo zone created.");
+        return true;
     }
-}
\ No newline at end of file
+}
+
+export default ZoneService;
\ No newline at end of file
diff --git a/src/app/utilities/api.ts b/src/app/utilities/api.ts
index 5f5ecdf..aabe027 100644
--- a/src/app/utilities/api.ts
+++ b/src/app/utilities/api.ts
@@ -26,7 +26,7 @@ async function addAuthRoutes(app: any) {
         return res.status(400).json({ message: 'Failed to register user' });
     });
 
-    console.log('[🕸️] Auth routes added');
+    console.log('[✅] Auth routes added');
 }
 
 export default { addAuthRoutes };
\ No newline at end of file