diff --git a/components/search_results/free_text/CompoundsResults.vue b/components/search_results/free_text/CompoundsResults.vue
new file mode 100644
index 0000000000000000000000000000000000000000..b84ac3bdf0f644e711b7b5b3a54320d81d3611a2
--- /dev/null
+++ b/components/search_results/free_text/CompoundsResults.vue
@@ -0,0 +1,11 @@
+<template>
+  <v-card flat>
+    <v-card-text> Compounds results </v-card-text>
+  </v-card>
+</template>
+
+<script>
+export default {}
+</script>
+
+<style></style>
diff --git a/components/search_results/free_text/FreeTextResults.vue b/components/search_results/free_text/FreeTextResults.vue
new file mode 100644
index 0000000000000000000000000000000000000000..023393c0f55fce373254ae243654800859a2ca1f
--- /dev/null
+++ b/components/search_results/free_text/FreeTextResults.vue
@@ -0,0 +1,43 @@
+<template>
+  <v-tabs show-arrows :vertical="makeTabsVertical">
+    <v-tab> 1000 Compounds </v-tab>
+    <v-tab> 400 Targets </v-tab>
+    <v-tab> Heatmap </v-tab>
+    <v-tab-item> <CompoundsResults /> </v-tab-item>
+    <v-tab-item> <TargetsResults /> </v-tab-item>
+    <v-tab-item> <HeatmapResults /> </v-tab-item>
+  </v-tabs>
+</template>
+
+<script>
+import CompoundsResults from '~/components/search_results/free_text/CompoundsResults.vue'
+import TargetsResults from '~/components/search_results/free_text/TargetsResults.vue'
+import HeatmapResults from '~/components/search_results/free_text/HeatmapResults.vue'
+export default {
+  components: {
+    CompoundsResults,
+    TargetsResults,
+    HeatmapResults,
+  },
+  props: {
+    searchTerm: {
+      type: String,
+      default: () => {},
+    },
+  },
+  computed: {
+    makeTabsVertical() {
+      switch (this.$vuetify.breakpoint.name) {
+        case 'xs':
+          return false
+        case 'sm':
+          return false
+        default:
+          return true
+      }
+    },
+  },
+}
+</script>
+
+<style></style>
diff --git a/components/search_results/free_text/HeatmapResults.vue b/components/search_results/free_text/HeatmapResults.vue
new file mode 100644
index 0000000000000000000000000000000000000000..de082ee59b434b3923d81a2011cf1a22236ed44d
--- /dev/null
+++ b/components/search_results/free_text/HeatmapResults.vue
@@ -0,0 +1,11 @@
+<template>
+  <v-card flat>
+    <v-card-text> Heatmap </v-card-text>
+  </v-card>
+</template>
+
+<script>
+export default {}
+</script>
+
+<style></style>
diff --git a/components/search_results/free_text/TargetsResults.vue b/components/search_results/free_text/TargetsResults.vue
new file mode 100644
index 0000000000000000000000000000000000000000..4b78eef1225786b2fcf20e30292320b635d752d0
--- /dev/null
+++ b/components/search_results/free_text/TargetsResults.vue
@@ -0,0 +1,11 @@
+<template>
+  <v-card flat>
+    <v-card-text> Targets results </v-card-text>
+  </v-card>
+</template>
+
+<script>
+export default {}
+</script>
+
+<style></style>
diff --git a/layouts/searchResults.vue b/layouts/searchResults.vue
new file mode 100644
index 0000000000000000000000000000000000000000..5f0af70416c64a204709e75c90c3455d0557e5b5
--- /dev/null
+++ b/layouts/searchResults.vue
@@ -0,0 +1,35 @@
+<template>
+  <v-app>
+    <Notifications />
+    <MainAppBar :permanently-pinned="true">
+      <template #logo>
+        <Logo />
+      </template>
+    </MainAppBar>
+    <v-main class="lowered">
+      <nuxt />
+    </v-main>
+    <Footer />
+  </v-app>
+</template>
+
+<script>
+import MainAppBar from '~/web-components-submodule/components/common/Masthead/MainAppBar.vue'
+import Footer from '~/components/footer/Footer.vue'
+import Notifications from '~/web-components-submodule/components/common/Notifications.vue'
+import Logo from '~/components/Logo.vue'
+
+export default {
+  components: {
+    MainAppBar,
+    Footer,
+    Notifications,
+    Logo,
+  },
+}
+</script>
+<style scoped>
+.lowered {
+  margin-top: 80px;
+}
+</style>
diff --git a/pages/search/_term.vue b/pages/search/_term.vue
new file mode 100644
index 0000000000000000000000000000000000000000..e31c3c4b27321ff41aedd85a1d27468350653886
--- /dev/null
+++ b/pages/search/_term.vue
@@ -0,0 +1,31 @@
+<template>
+  <v-container fluid>
+    <div class="text-h5">Search results for {{ searchTerm }}</div>
+    <v-divider />
+    <br />
+    <FreeTextResults :search-term="searchTerm" />
+  </v-container>
+</template>
+
+<script>
+import FreeTextResults from '~/components/search_results/free_text/FreeTextResults.vue'
+
+export default {
+  components: {
+    FreeTextResults,
+  },
+  layout: 'reportCard',
+  computed: {
+    searchTerm() {
+      let searchTerm = this.$route.params.term
+      if (searchTerm == null || searchTerm === '') {
+        searchTerm = '*'
+      }
+
+      return searchTerm
+    },
+  },
+}
+</script>
+
+<style></style>