diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 6b53f8cce6e94c5f58850d8616c3dc7c09e94db1..d4fc8381cfa68e7aa5f834a4010d04a1607d2f8c 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -3832,6 +3832,14 @@
         "chalk": "^2.0.1"
       }
     },
+    "loose-envify": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+      "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+      "requires": {
+        "js-tokens": "^3.0.0 || ^4.0.0"
+      }
+    },
     "magic-string": {
       "version": "0.22.5",
       "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz",
@@ -5042,6 +5050,25 @@
       "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
       "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
     },
+    "react": {
+      "version": "17.0.2",
+      "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
+      "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
+      "requires": {
+        "loose-envify": "^1.1.0",
+        "object-assign": "^4.1.1"
+      }
+    },
+    "react-dom": {
+      "version": "17.0.2",
+      "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
+      "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
+      "requires": {
+        "loose-envify": "^1.1.0",
+        "object-assign": "^4.1.1",
+        "scheduler": "^0.20.2"
+      }
+    },
     "readable-stream": {
       "version": "2.3.7",
       "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
@@ -5290,6 +5317,15 @@
         "xmlchars": "^2.1.1"
       }
     },
+    "scheduler": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
+      "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
+      "requires": {
+        "loose-envify": "^1.1.0",
+        "object-assign": "^4.1.1"
+      }
+    },
     "semver": {
       "version": "5.7.1",
       "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
diff --git a/frontend/package.json b/frontend/package.json
index 5ef5b251e4daf465083a22dbc7db84c7d3bdb05d..cff6686cadc69f4c42295439f1348365196d5735 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -10,6 +10,8 @@
   "author": "Matt Grau",
   "license": "ISC",
   "dependencies": {
-    "parcel-bundler": "^1.12.5"
+    "parcel-bundler": "^1.12.5",
+    "react": "^17.0.2",
+    "react-dom": "^17.0.2"
   }
-}
\ No newline at end of file
+}
diff --git a/frontend/src/device.jsx b/frontend/src/device.jsx
new file mode 100644
index 0000000000000000000000000000000000000000..4ab83b17780c90ac2d746070f57b0125bfba131e
--- /dev/null
+++ b/frontend/src/device.jsx
@@ -0,0 +1,27 @@
+import  React from 'react'
+
+export default class Device extends React.Component {
+    render() {
+        return (
+            <div>
+                <div>
+                    <h3>Device Name</h3>
+                </div>
+                <div>
+                    <div>
+                        <label>Voltage</label>
+                        <input></input>
+                    </div>
+                    <div>
+                        <label>Current</label>
+                        <input></input>
+                    </div>
+                    <div>
+                        <label>Resistance</label>
+                        <input></input>
+                    </div>
+                </div>
+            </div>
+        )
+    }
+}
\ No newline at end of file
diff --git a/frontend/src/index.js b/frontend/src/index.js
index 4f3ac027854720e0516a9970c7c18d4d7d14c4c9..5aef46490c8f622a7a81748a0067fdc6fa4d7e01 100644
--- a/frontend/src/index.js
+++ b/frontend/src/index.js
@@ -1 +1,6 @@
-console.log('Hello World!')
\ No newline at end of file
+import React from "react";
+import ReactDOM from "react-dom";
+
+import Device from './device'
+
+ReactDOM.render(<Device />, document.getElementById("root"));