diff --git a/diskuy/src/App.js b/diskuy/src/App.js
index bea072ecee1a97a86efda395bf27d95496055d67..9e4f4cdbe0b556b4955ccdb8468fd719a7e99d25 100644
--- a/diskuy/src/App.js
+++ b/diskuy/src/App.js
@@ -4,11 +4,12 @@ import Topic from './Topic';
 import Navbar from './Navbar';
 import Profile from './Profile/Profile';
 import ListThreads from './Threads/ListThreads';
-import Form from './Form';
+import CreateThreadForm from './CreateThreadForm';
 import LoginForm from './LoginForm'
 import TopicList from './TopicList';
 import RegisterForm from './RegisterForm'
 import CreateTopicForm from './CreateTopicForm'
+import Search from './Search'
 import {
   BrowserRouter as Router,
   Route,
@@ -25,7 +26,8 @@ function App() {
       <Route exact path='/login' component={LoginForm} />
       <Route exact path='/register' component={RegisterForm} />
       <Route exact path='/create/topic' component={CreateTopicForm} />
-      <Route exact path='/create/:topic/thread' component={Form} />
+      <Route exact path='/create/:topic/thread' component={CreateThreadForm} />
+      <Route exact path='/search/:input' component={Search} />
       <Route exact path='/topic/:topic/:thread' component={Thread} />
       <Route exact path='/topic/:topic' component={Topic} />
       <Route exact path='/threads' component={ListThreads} />
diff --git a/diskuy/src/CreateThreadForm.js b/diskuy/src/CreateThreadForm.js
index 6c99666b5f77f042a79b3714f76e4be0f421e114..520b860ddaf2631644f2ed3185ab52b2c5730e41 100644
--- a/diskuy/src/CreateThreadForm.js
+++ b/diskuy/src/CreateThreadForm.js
@@ -6,7 +6,7 @@ import authHeader from './services/auth-header'
 
 const LINK = 'http://localhost:4000';
 
-export default function Form(props){
+export default function CreateThreadForm(props){
     const { value: title, bind: bindTitle, reset: resetTitle } = useInput('')
     const { value: body, bind: bindBody, reset: resetBody } = useInput('')
 
diff --git a/diskuy/src/CreateTopicForm.js b/diskuy/src/CreateTopicForm.js
index 027b318290ab0d481b6f3accee3dd16593ce2c0c..2d593517d37a7d7f4a784679edba41ae46e057b9 100644
--- a/diskuy/src/CreateTopicForm.js
+++ b/diskuy/src/CreateTopicForm.js
@@ -1,7 +1,7 @@
 import axios from "axios";
 import React from "react";
 import { useInput } from './hooks/input-hook';
-import './Form.css';
+import './CreateThreadForm.css';
 import authHeader from './services/auth-header'
 
 const LINK = 'http://localhost:4000';
diff --git a/diskuy/src/Navbar.js b/diskuy/src/Navbar.js
index d9a685d91abb1d39f00622541e8569de129fd3bc..52b7f4d583759cc50aae7dbd90088017a3a023ad 100644
--- a/diskuy/src/Navbar.js
+++ b/diskuy/src/Navbar.js
@@ -3,18 +3,26 @@ import {ReactComponent as DiskuyLogo} from './Logo.svg';
 import './Navbar.css';
 import { useState } from "react";
 import AuthService from './services/auth.service'
+import { useInput } from './hooks/input-hook';
 import {
-    Link
+    Link, withRouter
   } from "react-router-dom"
 
-const Navbar = () => {
+const Navbar = (props) => {
     const [loggedIn, setLoggedIn] = useState(AuthService.getCurrentUser() && 1)
+    const { value: search, bind: bindSearch, reset: resetSearch } = useInput('')
     
-    const handleLogout = (event) => {
+    const handleLogout = () => {
         AuthService.logout()
         setLoggedIn(false)
         window.location.reload()
     }
+
+    const handleSearch = (event) => {
+        event.preventDefault()
+        props.history.push(`/search/${search}`)
+        resetSearch()
+    }
     return (
         <nav id = "navbar" className='navbar navbar-expand-lg navbar-light position-sticky fixed-top'>
             <div className="navbar-brand">
@@ -31,15 +39,20 @@ const Navbar = () => {
                 </li>
                 {loggedIn ?  (
                     <li className='nav-item ml-auto' onClick={handleLogout}>
-                    <Link to='/login' className='nav-link'><b>Logout</b></Link>
+                        <Link to='/login' className='nav-link'><b>Logout</b></Link>
                     </li>
                     ):
                     <li className='nav-item ml-auto'>
-                    <Link to='/login' className='nav-link'><b>Login</b></Link>
-                    </li>}
+                        <Link to='/login' className='nav-link'><b>Login</b></Link>
+                    </li>
+                }
             </ul>
+            <form className='form-inline my-2 my-lg-0' onSubmit={handleSearch}>
+                <input className='form-control mr-sm-2' type='search' placholder='search threads' aria-label="Search" {...bindSearch}/>
+                <button className='btn btn-outline-success my-2 my-sm-0' type='submit'>Search</button>
+            </form>
         </nav>
     );
 }
 
-export default Navbar;
+export default withRouter(Navbar);
diff --git a/diskuy/src/Search.js b/diskuy/src/Search.js
new file mode 100644
index 0000000000000000000000000000000000000000..42247b19ed668a9c3e64710232f9daaf4733df4c
--- /dev/null
+++ b/diskuy/src/Search.js
@@ -0,0 +1,38 @@
+import React, { useState, useEffect } from 'react'
+import axios from 'axios'
+import ThreadList from './ThreadList'
+import { Link } from 'react-router-dom'
+
+const API_URL = 'http://localhost:4000/api'
+
+export default function Search(props) {
+    const [threads, setThreads] = useState([])
+    const searchParam = props.match.params.input
+
+    useEffect(() => {
+        const fetch = async () => {
+            const responseThreads = await axios.get(`${API_URL}/threads`)
+            const filteredThreads = responseThreads.data.data.filter(thread => thread.title.includes(searchParam))
+            setThreads(filteredThreads)
+        }
+        fetch()
+    }, [searchParam])
+
+    return (
+        <div>
+            <ul>
+                {threads.map((value) => (
+                    <Link to={`/topic/${value.topic_name}/${value.id}` } style={{ textDecoration: 'none' }}>
+                        <ThreadList
+                            header={value.title}
+                            user={value.username}
+                            points={value.points}
+                            time={value.updated_at}
+                            topic={value.topic_name}>
+                        </ThreadList>
+                    </Link>
+            ))}
+            </ul>
+        </div>
+    )
+}
\ No newline at end of file