diff --git a/src/components/milestone/ActiveMilestonesList.vue b/src/components/milestone/ActiveMilestonesList.vue
new file mode 100644
index 0000000000000000000000000000000000000000..0d22a44591ee974347e5aa3f2bc598f6edd29e28
--- /dev/null
+++ b/src/components/milestone/ActiveMilestonesList.vue
@@ -0,0 +1,78 @@
+<script setup lang="ts">
+
+import ActiveMilestoneDisplay from '@/components/milestone/ActiveMilestoneDisplay.vue'
+import { onMounted, ref } from 'vue'
+import { useTokenStore } from '@/stores/token'
+import { getAllMilestones } from '@/utils/MilestoneUtils'
+import router from '@/router'
+
+interface Milestone{
+  milestoneId: number;
+  milestoneTitle: string;
+  milestoneDescription: string
+  milestoneGoalSum: number;
+  milestoneCurrentSum: number;
+  deadlineDate: Date;
+  startDate: Date;
+  milestoneImage: string;
+  username: string;
+}
+
+const activeMilestones = ref(<Milestone[]>[])
+
+onMounted(async () => {
+  const token = useTokenStore().$state.jwtToken
+  activeMilestones.value = await getAllMilestones(token);
+})
+
+</script>
+
+<template>
+  <div class="active-milestones">
+    <template v-if="activeMilestones.length === 0">
+      <h4>Opps, her var det tomt.<br>Lag ditt første sparemål for å komme i gang!</h4>
+    </template>
+    <template v-else>
+      <ActiveMilestoneDisplay
+        class="active-milestone"
+        v-for="(activeMilestone, index) in activeMilestones"
+        :key="index"
+        :id="activeMilestone.milestoneId"
+        :title="activeMilestone.milestoneTitle"
+        :description="activeMilestone.milestoneDescription"
+        :goalSum="activeMilestone.milestoneGoalSum"
+        :currentSum="activeMilestone.milestoneCurrentSum"
+        :deadline="activeMilestone.deadlineDate"
+        :startDate="activeMilestone.startDate"
+        :image="activeMilestone.milestoneImage"
+      ></ActiveMilestoneDisplay>
+    </template>
+  </div>
+</template>
+
+<style scoped>
+.active-milestones{
+  display: flex;
+  flex-direction: column;
+  text-align: center;
+
+  height: 100%;
+  width: 100%;
+  gap: 2.5%;
+}
+
+.active-milestone{
+  border-radius: 20px;
+  border: 2px solid var(--color-border);
+  box-shadow: 0 4px 4px var(--color-shadow);
+
+  min-height: 30%;
+  width: 100%;
+}
+
+.active-milestone:hover{
+  transform: scale(1.02);
+  transition: 0.3s;
+}
+
+</style>
\ No newline at end of file
diff --git a/src/views/HomePage/HomeView.vue b/src/views/HomePage/HomeView.vue
index 949aead68fb2087c5342319294ca464c79f36792..2d6373869f2643453a06c658db14b3397298c4f1 100644
--- a/src/views/HomePage/HomeView.vue
+++ b/src/views/HomePage/HomeView.vue
@@ -1,11 +1,61 @@
 <script setup lang="ts">
 
+import ActiveChallengeDisplay from '@/components/challenge/ActiveChallengeDisplay.vue'
+import { getAllMilestones } from '@/utils/MilestoneUtils'
+import { useTokenStore } from '@/stores/token'
+import { getActiveChallenges } from '@/utils/challengeutils'
+import ActiveMilestonesList from '@/components/milestone/ActiveMilestonesList.vue'
+
+console.log(getAllMilestones(useTokenStore().getJwtToken));
+console.log(getActiveChallenges(useTokenStore().getJwtToken, 0, 5))
+
 </script>
 
 <template>
-  <h1>HomeView</h1>
+  <div id = TopInfo>
+    <h2>Velkommen!</h2>
+    <div id = TotalSavings>
+      <h3>TotalSavingsDiv</h3>
+    </div>
+  </div>
+  <div id = HomeViewComponents>
+    <div class = ActiveMilestones>
+      <ActiveMilestonesList/>
+    </div>
+    <div class = ActiveChallenges>
+    </div>
+  </div>
 </template>
 
 <style scoped>
 
+  #TopInfo{
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+  }
+
+  #TotalSavings{
+    margin-right: 5%;
+  }
+
+  #HomeViewComponents{
+    display: flex;
+  }
+
+  .ActiveMilestones, .ActiveChallenges{
+    margin: 2%;
+    border-radius: 20px;
+  }
+
+  .ActiveMilestones{
+    width: 60%;
+  }
+
+  .ActiveChallenges{
+    width: 40%;
+    box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.6);
+
+  }
+
 </style>
\ No newline at end of file
diff --git a/src/views/HomePage/MilestoneView.vue b/src/views/HomePage/MilestoneView.vue
index 62d67cfbc0d408705c6a0eb60bfaf05980c6eead..fd3fcb72363703ba8bf374ebea48d00b5769bf89 100644
--- a/src/views/HomePage/MilestoneView.vue
+++ b/src/views/HomePage/MilestoneView.vue
@@ -6,6 +6,7 @@ import CompletedMilestoneDisplay from '@/components/milestone/CompletedMilestone
 import ActiveMilestoneDisplay from '@/components/milestone/ActiveMilestoneDisplay.vue'
 import {getAllMilestoneLogs, getAllMilestones} from "@/utils/MilestoneUtils";
 import {useTokenStore} from "@/stores/token";
+import ActiveMilestonesList from '@/components/milestone/ActiveMilestonesList.vue'
 
 const activeMilestones = ref(<Milestone[]>[])
 const completedMilestones = ref<Milestone[]>([])
@@ -49,26 +50,7 @@ interface Milestone{
         <button class="create-milestone-button" @click="navigateTo('/homepage/create-milestone')">
           <h2 class="create-milestone-button-title">Lag nytt sparemål + </h2>
         </button>
-        <div class="active-milestones">
-          <template v-if="activeMilestones.length === 0">
-            <h4>Opps, her var det tomt.<br>Lag ditt første sparemål for å komme i gang!</h4>
-          </template>
-          <template v-else>
-          <ActiveMilestoneDisplay
-            class="active-milestone"
-            v-for="(activeMilestone, index) in activeMilestones"
-            :key="index"
-            :id="activeMilestone.milestoneId"
-            :title="activeMilestone.milestoneTitle"
-            :description="activeMilestone.milestoneDescription"
-            :goalSum="activeMilestone.milestoneGoalSum"
-            :currentSum="activeMilestone.milestoneCurrentSum"
-            :deadline="activeMilestone.deadlineDate"
-            :startDate="activeMilestone.startDate"
-            :image="activeMilestone.milestoneImage"
-          ></ActiveMilestoneDisplay>
-          </template>
-        </div>
+        <ActiveMilestonesList/>
       </div>
 
       <div class="right">
@@ -161,30 +143,6 @@ flex-direction: column;
   font-weight: bold;
 }
 
-.active-milestones{
-  display: flex;
-  flex-direction: column;
-  text-align: center;
-
-  height: 100%;
-  width: 100%;
-  gap: 2.5%;
-}
-
-.active-milestone{
-  border-radius: 20px;
-  border: 2px solid var(--color-border);
-  box-shadow: 0 4px 4px var(--color-shadow);
-
-  min-height: 30%;
-  width: 100%;
-}
-
-.active-milestone:hover{
-  transform: scale(1.02);
-  transition: 0.3s;
-}
-
 .right{
   display: flex;
   flex-direction: column;