diff --git a/frontend/src/api/cubicweb.ts b/frontend/src/api/cubicweb.ts
index bd71b63e626f29a1f7858d8bb3aed6447d6e766c_ZnJvbnRlbmQvc3JjL2FwaS9jdWJpY3dlYi50cw==..3f2b148c20701c688d3b5337caa424cce791a4f7_ZnJvbnRlbmQvc3JjL2FwaS9jdWJpY3dlYi50cw== 100644
--- a/frontend/src/api/cubicweb.ts
+++ b/frontend/src/api/cubicweb.ts
@@ -27,3 +27,44 @@
     "INSERT DataService X: X name %(name)s, X data_url %(data_url)s, X refresh_period %(refresh_period)s, X description %(description)s";
   return client.execute(rql, data);
 }
+
+export async function getProjectList(): Promise<Array<Project>> {
+  const rql =
+    "Any X, ATTR_NAME, ATTR_SPARQL_ENDPOINT, ATTR_ACTIVATED " +
+    "GROUPBY X, ATTR_NAME, ATTR_SPARQL_ENDPOINT, ATTR_ACTIVATED " +
+    "WHERE X is ImportProcedure, X name ATTR_NAME, X sparql_endpoint ATTR_SPARQL_ENDPOINT, X activated ATTR_ACTIVATED";
+  const result = await client.execute(rql, {});
+
+  const jsonResult: Array<Project> = result.map(
+    (r) =>
+      ({
+        eid: r[0],
+        name: r[1],
+        sparql_endpoint: r[2],
+        activated: r[3],
+      }) as Project,
+  );
+
+  return jsonResult;
+}
+
+export async function getDataServiceList(): Promise<Array<DataService>> {
+  const rql =
+    "Any X, ATTR_NAME, ATTR_DATA_URL, ATTR_REFRESH_PERIOD, ATTR_DESCRIPTION " +
+    "GROUPBY X, ATTR_NAME, ATTR_DATA_URL, ATTR_REFRESH_PERIOD, ATTR_DESCRIPTION " +
+    "WHERE X is DataService, X name ATTR_NAME, X data_url ATTR_DATA_URL, X refresh_period ATTR_REFRESH_PERIOD, X description ATTR_DESCRIPTION";
+  const result = await client.execute(rql, {});
+
+  const jsonResult: Array<DataService> = result.map(
+    (r) =>
+      ({
+        eid: r[0],
+        name: r[1],
+        data_url: r[2],
+        refresh_period: r[3],
+        description: r[4],
+      }) as DataService,
+  );
+
+  return jsonResult;
+}
diff --git a/frontend/src/app/page.tsx b/frontend/src/app/page.tsx
index bd71b63e626f29a1f7858d8bb3aed6447d6e766c_ZnJvbnRlbmQvc3JjL2FwcC9wYWdlLnRzeA==..3f2b148c20701c688d3b5337caa424cce791a4f7_ZnJvbnRlbmQvc3JjL2FwcC9wYWdlLnRzeA== 100644
--- a/frontend/src/app/page.tsx
+++ b/frontend/src/app/page.tsx
@@ -7,5 +7,4 @@
 import { Box, Button, Container, Stack, Typography } from "@mui/material";
 import { ProjectCard } from "@/components/cards/ProjectCard";
 import { DataServiceCard } from "@/components/cards/DataServiceCard";
-import { useLoad } from "@/hooks/useLoad";
 import { CardList } from "@/components/cards/CardList";
@@ -11,6 +10,5 @@
 import { CardList } from "@/components/cards/CardList";
-import { DATA_SERVICES, PROJECTS } from "@/constants/constants";
 import { useRouter } from "next/navigation";
 import AddIcon from "@mui/icons-material/Add";
 import { useState } from "react";
 import { ConfirmModal } from "@/components/ConfirmModal";
@@ -13,6 +11,8 @@
 import { useRouter } from "next/navigation";
 import AddIcon from "@mui/icons-material/Add";
 import { useState } from "react";
 import { ConfirmModal } from "@/components/ConfirmModal";
+import { useGetDataServiceList } from "@/hooks/useGetDataServiceList";
+import { useGetProjectList } from "@/hooks/useGetProjectList";
 
 export default function Home() {
@@ -17,4 +17,4 @@
 
 export default function Home() {
-  const { data: projects, loading: projectsLoading } = useLoad(PROJECTS);
+  const { data: projects, loading: projectsLoading } = useGetProjectList();
   const { data: dataServices, loading: dataServicesLoading } =
@@ -20,5 +20,5 @@
   const { data: dataServices, loading: dataServicesLoading } =
-    useLoad(DATA_SERVICES);
+    useGetDataServiceList();
   const router = useRouter();
   const [modal, setModal] = useState<{
     visible: boolean;
diff --git a/frontend/src/hooks/useGetDataServiceList.tsx b/frontend/src/hooks/useGetDataServiceList.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..3f2b148c20701c688d3b5337caa424cce791a4f7_ZnJvbnRlbmQvc3JjL2hvb2tzL3VzZUdldERhdGFTZXJ2aWNlTGlzdC50c3g=
--- /dev/null
+++ b/frontend/src/hooks/useGetDataServiceList.tsx
@@ -0,0 +1,18 @@
+import { getDataServiceList } from "@/api/cubicweb";
+import { DataService } from "@/types";
+import { useEffect, useState } from "react";
+
+export function useGetDataServiceList() {
+  const [loading, setLoading] = useState(true);
+  const [data, setData] = useState<Array<DataService> | undefined>(undefined);
+
+  useEffect(() => {
+    setLoading(true);
+    getDataServiceList().then((result) => {
+      console.log(result);
+      setLoading(false);
+      setData(result);
+    });
+  }, []);
+  return { loading, data };
+}
diff --git a/frontend/src/hooks/useGetProjectList.tsx b/frontend/src/hooks/useGetProjectList.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..3f2b148c20701c688d3b5337caa424cce791a4f7_ZnJvbnRlbmQvc3JjL2hvb2tzL3VzZUdldFByb2plY3RMaXN0LnRzeA==
--- /dev/null
+++ b/frontend/src/hooks/useGetProjectList.tsx
@@ -0,0 +1,18 @@
+import { getProjectList } from "@/api/cubicweb";
+import { Project } from "@/types";
+import { useState, useEffect } from "react";
+
+export function useGetProjectList() {
+  const [loading, setLoading] = useState(true);
+  const [data, setData] = useState<Array<Project> | undefined>(undefined);
+
+  useEffect(() => {
+    setLoading(true);
+    getProjectList().then((result) => {
+      console.log(result);
+      setLoading(false);
+      setData(result);
+    });
+  }, []);
+  return { loading, data };
+}