diff --git a/src/modules/apps/Apps.tsx b/src/modules/apps/Apps.tsx
index f29b377dcd4b44ad779416fc5934fd86573cda19..71594a2f2715260821d3b868752361ec8b8dba1f 100644
--- a/src/modules/apps/Apps.tsx
+++ b/src/modules/apps/Apps.tsx
@@ -1,6 +1,6 @@
 /* eslint-disable react-hooks/exhaustive-deps */
 import React, { useState, useCallback, useMemo } from 'react';
-import { SearchIcon, PlusIcon } from '@heroicons/react/solid';
+import { SearchIcon } from '@heroicons/react/solid';
 import { Table } from 'src/components';
 import { columns, data } from './consts';
 
@@ -20,16 +20,6 @@ export const Apps: React.FC = () => {
       <div className="max-w-7xl mx-auto py-4 px-3 sm:px-6 lg:px-8 h-full flex-grow">
         <div className="pb-5 mt-6 border-b border-gray-200 sm:flex sm:items-center sm:justify-between">
           <h1 className="text-3xl leading-6 font-bold text-gray-900">Apps</h1>
-
-          <div className="mt-3 sm:mt-0 sm:ml-4">
-            <button
-              type="button"
-              className="inline-flex items-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-primary-700 hover:bg-primary-800 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-800"
-            >
-              <PlusIcon className="-ml-0.5 mr-2 h-4 w-4" aria-hidden="true" />
-              Add new app
-            </button>
-          </div>
         </div>
 
         <div className="flex justify-between w-100 my-3 items-center">
diff --git a/src/modules/apps/consts.tsx b/src/modules/apps/consts.tsx
index 093040758ac90369553b33760750cf5fda116f45..7f58f33646855bd01e504def7fd09ec15a091a84 100644
--- a/src/modules/apps/consts.tsx
+++ b/src/modules/apps/consts.tsx
@@ -1,5 +1,6 @@
 import React from 'react';
-import { CogIcon } from '@heroicons/react/outline';
+import { CogIcon, PlusCircleIcon } from '@heroicons/react/outline';
+import _ from 'lodash';
 
 export const initialEditorYaml = () => {
   return `luck: except
@@ -25,6 +26,38 @@ search:
                   great: stomach`;
 };
 
+export enum AppStatus {
+  NotInstalled = 'Not installed',
+  Installed = 'Installed',
+  Installing = 'Installing',
+}
+
+const tableConsts = [
+  {
+    status: AppStatus.Installed,
+    colorClass: 'green-600',
+    buttonTitle: 'Configure',
+    buttonIcon: <CogIcon className="-ml-0.5 mr-2 h-4 w-4" aria-hidden="true" />,
+  },
+  {
+    status: AppStatus.NotInstalled,
+    colorClass: 'gray-600',
+    buttonTitle: 'Install',
+    buttonIcon: <PlusCircleIcon className="-ml-0.5 mr-2 h-4 w-4" aria-hidden="true" />,
+  },
+  {
+    status: AppStatus.Installing,
+    colorClass: 'primary-600',
+    buttonTitle: null,
+    buttonIcon: null,
+  },
+];
+
+const getConstForStatus = (appStatus: AppStatus, paramName: string) => {
+  const tableConst = _.find(tableConsts, { status: appStatus });
+  return _.get(tableConst, paramName);
+};
+
 export const columns: any = [
   {
     Header: 'Name',
@@ -47,10 +80,11 @@ export const columns: any = [
     Header: 'Status',
     accessor: 'status',
     Cell: (e: any) => {
+      const appStatus = e.cell.row.original.status as AppStatus;
       return (
         <div className="flex items-center">
-          <div className="flex-shrink-0 h-4 w-4 rounded-full bg-green-600" />
-          <div className="ml-2 text-sm text-green-600">{e.cell.row.original.status}</div>
+          <div className={`flex-shrink-0 h-4 w-4 rounded-full bg-${getConstForStatus(appStatus, 'colorClass')}`} />
+          <div className={`ml-2 text-sm text-${getConstForStatus(appStatus, 'colorClass')}`}>{appStatus}</div>
         </div>
       );
     },
@@ -58,7 +92,11 @@ export const columns: any = [
   },
   {
     Header: ' ',
-    Cell: () => {
+    Cell: (e: any) => {
+      const appStatus = e.cell.row.original.status as AppStatus;
+      if (appStatus === AppStatus.Installing) {
+        return null;
+      }
       return (
         <div className="text-right opacity-0 group-hover:opacity-100 transition-opacity">
           <button
@@ -66,8 +104,8 @@ export const columns: any = [
             type="button"
             className="inline-flex items-center px-4 py-2 border border-gray-200 shadow-sm text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500"
           >
-            <CogIcon className="-ml-0.5 mr-2 h-4 w-4" aria-hidden="true" />
-            Configure
+            {getConstForStatus(appStatus, 'buttonIcon')}
+            {getConstForStatus(appStatus, 'buttonTitle')}
           </button>
         </div>
       );
@@ -80,25 +118,32 @@ export const data: any[] = [
   {
     id: 1,
     name: 'Nextcloud',
-    status: 'Active for everyone',
+    status: AppStatus.Installed,
     assetSrc: './assets/nextcloud.svg',
   },
   {
     id: 2,
     name: 'Wekan',
-    status: 'Active for everyone',
+    status: AppStatus.Installing,
     assetSrc: './assets/wekan.svg',
   },
   {
     id: 3,
     name: 'Zulip',
-    status: 'Active for everyone',
+    status: AppStatus.NotInstalled,
     assetSrc: './assets/zulip.svg',
   },
   {
     id: 4,
     name: 'Wordpress',
-    status: 'Active for everyone',
+    status: AppStatus.NotInstalled,
     assetSrc: './assets/wordpress.svg',
   },
 ];
+
+export interface AppInfo {
+  id: number;
+  name: string;
+  status: AppStatus;
+  assetSrc: string;
+}