diff --git a/src/Gargantext/Utils/ReactBootstrap.js b/src/Gargantext/Utils/ReactBootstrap.js
new file mode 100644
index 0000000000000000000000000000000000000000..d574ee1eaabfe82c56a0b05f36a7c3da6aa1b6f4
--- /dev/null
+++ b/src/Gargantext/Utils/ReactBootstrap.js
@@ -0,0 +1,15 @@
+'use strict';
+
+const ReactBootstrap = require('react-bootstrap');
+
+if (typeof window !== 'undefined') {
+  window.ReactBootstrap = ReactBootstrap;
+}
+
+const OverlayTrigger = require('react-bootstrap/OverlayTrigger');
+const Popover = require('react-bootstrap/Popover');
+
+exports.overlayTriggerCpt = OverlayTrigger;
+exports.popoverCpt = Popover;
+exports.popoverContentCpt = Popover.Content;
+exports.popoverTitleCpt = Popover.Title;
diff --git a/src/Gargantext/Utils/ReactBootstrap.purs b/src/Gargantext/Utils/ReactBootstrap.purs
new file mode 100644
index 0000000000000000000000000000000000000000..4a21334a63e8a313fa68e2dcbedda3a92df5c8a7
--- /dev/null
+++ b/src/Gargantext/Utils/ReactBootstrap.purs
@@ -0,0 +1,55 @@
+module Gargantext.Utils.ReactBootstrap where
+
+import Reactix as R
+
+import Gargantext.Prelude
+
+type OverlayTriggerProps =
+  (
+    overlay   :: R.Element
+  , placement :: String
+  , trigger   :: String
+  )
+
+type Props =
+  (
+  )
+
+type ContentProps =
+  (
+  )
+
+type TitleProps =
+  (
+    "as" :: String
+  )
+
+foreign import overlayTriggerCpt :: R.Component OverlayTriggerProps
+foreign import popoverCpt :: R.Component Props
+foreign import popoverContentCpt :: R.Component ContentProps
+foreign import popoverTitleCpt :: R.Component TitleProps
+
+overlayTrigger :: Record OverlayTriggerProps -> Array R.Element -> R.Element
+overlayTrigger = R.rawCreateElement overlayTriggerCpt
+
+popover :: Record Props -> Array R.Element -> R.Element
+popover = R.rawCreateElement popoverCpt
+
+popoverContent :: Record ContentProps -> Array R.Element -> R.Element
+popoverContent = R.rawCreateElement popoverContentCpt
+
+popoverTitle :: Record TitleProps -> Array R.Element -> R.Element
+popoverTitle = R.rawCreateElement popoverTitleCpt
+
+
+-- example
+-- example =
+--     let popover = GUB.popover {} [
+--               GUB.popoverTitle { "as": "h3" } [ H.text "hello title" ]
+--             , GUB.popoverContent {} [ H.div {} [ H.text "content" ] ]
+--            ]
+--     in GUB.overlayTrigger { overlay: popover
+--                           , placement: "right"
+--                           , trigger: "click" } [
+--       H.button { className: "btn btn-default" } [ H.text "Click me" ]
+--       ]