diff --git a/src/views/CommunityViews/MyCommunitiesView.vue b/src/views/CommunityViews/MyCommunitiesView.vue
index b2abf6c58e23ed50f27c12a94fbe80c1cbc9aad8..c59bd819f086799b861e1364da58046af473ba86 100644
--- a/src/views/CommunityViews/MyCommunitiesView.vue
+++ b/src/views/CommunityViews/MyCommunitiesView.vue
@@ -1,32 +1,116 @@
 <template>
-  <div>
-    <div id="myGroups">
-      <div>Mine grupper:</div>
-      <group-list :groupList="myGroups" />
+  <!-- My communities, with pagination -->
+  <div v-if="loggedIn">
+    <div class="flex flex-row p-4 relative">
+      <div class="text-xl md:text-2xl text-gray-600 font-medium w-full">
+        Mine grupper
+      </div>
+      <UserAddIcon
+          class="cursor-pointer max-h-6 max-w-6 float-right grow text-primary-dark"
+          @click="$router.push('/newCommunity')"
+          alt="Opprett ny gruppe"
+      />
+    </div>
+    <CommunityList :communities="visibleMyCommunities" :member="true"/>
+
+    <!-- pagination my communities -->
+    <div class="flex justify-center">
+      <PaginationTemplate
+          v-bind:items="myCommunities"
+          v-on:page:update="updatePageMyCommunities"
+          v-bind:currentPage="currentPageMyCommunities"
+          v-bind:pageSize="pageSizeMyCommunities"
+          class="mt-10 mb-5"
+      />
     </div>
   </div>
+
+  <!-- Public communities, with search and pagination -->
+  <p class="text-xl md:text-2xl text-gray-600 font-medium w-full p-4">
+    Offentlige grupper
+  </p>
+  <!-- Search field -->
+  <div class="relative mt-1 mx-2" id="searchComponent">
+    <span class="absolute inset-y-0 left-0 flex items-center pl-3">
+      <div class="w-5 h-5 text-gray-400">
+        <SearchIcon/>
+      </div>
+    </span>
+
+    <input
+        type="text"
+        id="searchInput"
+        class="w-full py-3 pl-10 pr-4 text-gray-700 bg-white border rounded-md dark:bg-gray-800 dark:text-gray-300 dark:border-gray-600 focus:border-primary-medium dark:focus:border-primary-medium focus:outline-none focus:ring"
+        placeholder="Search"
+        v-model="search"
+        @change="searchWritten"
+    />
+  </div>
+
+  <!-- Public communities list, two lists, one for when it's searched and one for pagination -->
+
+  <!-- pagination Public communities -->
 </template>
 
 <script>
-import GroupList from "@/components/CommunityComponents/CommunityList.vue";
-import { getMyGroups } from "@/utils/apiutil";
+import CommunityList from "@/components/CommunityComponents/CommunityList.vue";
+import {UserAddIcon, SearchIcon} from "@heroicons/vue/outline";
+import PaginationTemplate from "@/components/BaseComponents/PaginationTemplate";
+import CommunityService from "@/services/community.service";
 
 export default {
+  name: "HomeView",
   data() {
     return {
-      myGroups: [],
+      loggedIn: false,
+      myCommunities: [],
+      search: "",
+      showSearched: false,
+      showPaginated: true,
+
+      //Variables connected to pagination
+      currentPageMyCommunities: 0,
+      pageSizeMyCommunities: 5,
+      visibleMyCommunities: [],
     };
   },
   components: {
-    GroupList,
+    CommunityList,
+    UserAddIcon,
+    PaginationTemplate,
+    SearchIcon,
   },
   methods: {
-    async getMyGroups() {
-      this.myGroups = await getMyGroups();
+    //Pagination
+    updatePageMyCommunities(pageNumber) {
+      this.currentPageMyCommunities = pageNumber;
+      this.updateVisibleCommunities();
+    },
+    updateVisibleCommunities() {
+      this.visibleMyCommunities = this.myCommunities.slice(
+          this.currentPageMyCommunities * this.pageSizeMyCommunities,
+          this.currentPageMyCommunities * this.pageSizeMyCommunities +
+          this.pageSizeMyCommunities
+      );
+
+      // if we have 0 visible communities, go back a page
+      if (
+          this.visibleMyCommunities.length === 0 &&
+          this.currentPageMyCommunities > 0
+      ) {
+        this.updatePageMyCommunities(this.currentPageMyCommunities - 1);
+      }
+    },
+    searchWritten() {
+      //This method triggers when search input field is changed
+      this.showPaginated = this.search.length < 1;
+      this.showSearched = this.search.length > 0;
+    },
+    async load() {
+      this.loggedIn = this.$store.state.user.token !== null;
+      if (!this.loggedIn) return;
+      this.myCommunities = await CommunityService.getUserCommunities();
     },
-  },
-  beforeMount() {
-    this.getMyGroups();
   },
 };
 </script>