diff --git a/src/views/HomePage.js b/src/views/HomePage.js
index b54c64954f4d5e983a398c71db5c1a1ef6b9b0b6..39d0e059f166b948c298557d3dd4028cf38e4102 100644
--- a/src/views/HomePage.js
+++ b/src/views/HomePage.js
@@ -1,6 +1,7 @@
 import React, { useEffect, useState } from "react";
 import Api from "../utils/api";
 
+import debounce from "lodash/debounce";
 import { makeStyles } from "@material-ui/core/styles";
 import Table from "@material-ui/core/Table";
 import TableBody from "@material-ui/core/TableBody";
@@ -11,6 +12,7 @@ import TableRow from "@material-ui/core/TableRow";
 import Paper from "@material-ui/core/Paper";
 import Pagination from "@material-ui/lab/Pagination";
 import CircularProgress from "@material-ui/core/CircularProgress";
+import TextField from "@material-ui/core/TextField";
 import { useHistory } from "react-router-dom";
 
 const useStyles = makeStyles((theme) => ({
@@ -77,21 +79,36 @@ const DataTable = ({ rows }) => {
   );
 };
 
+const queryBuilder = ({ max = 15, skip = 0, filter, sortBy }) => {
+  return `max=${max}&skip=${skip}`;
+};
+
 const HomePage = () => {
   const [data, setData] = useState([]);
-  const [{ max, skip, count }, setPagination] = useState({
+  const [{ max, skip, count, filterValue }, setPagination] = useState({
     max: 15,
     skip: 0,
-    count: 0
+    count: 0,
+    filterValue: ""
   });
   const [initialized, setInitialized] = useState(false);
+  const [filter, setFilter] = useState("");
+  const handleFilter = ({ target: { value } }) => {
+    setFilter(value);
+  };
+  const onFilter = () =>
+    setPagination((prevPagination) => ({
+      ...prevPagination,
+      filterValue: filter
+    }));
+
   const handlePagination = (_event, page) => {
     setPagination((prevPagination) => ({
       ...prevPagination,
       skip: (page - 1) * prevPagination.max
     }));
   };
-  const query = `max=${max}&skip=${skip}`;
+  const query = queryBuilder({ max, skip, filterValue });
   useEffect(() => {
     setInitialized(false);
     Promise.all([
@@ -100,7 +117,7 @@ const HomePage = () => {
         setPagination((prevPagination) => ({ ...prevPagination, count: data["COUNT "] }))
       )
     ]).then(() => setInitialized(true));
-  }, [skip]);
+  }, [skip, filterValue]);
 
   if (!initialized) {
     return (
@@ -117,6 +134,7 @@ const HomePage = () => {
       <h1>Home page</h1>
       <button onClick={addMessage}>Add message</button>
       <button onClick={replaceMessage}>replace message</button>
+      <TextField onBlur={onFilter} type="number" label="Filter by year" value={filter} onChange={handleFilter} />
       <Pagination count={Math.ceil(count / max)} page={skip / max + 1} onChange={handlePagination} />
       <DataTable rows={data} />
     </div>