diff --git a/{{cookiecutter.project_slug}}/frontend/.eslintrc.js b/{{cookiecutter.project_slug}}/frontend/.eslintrc.js
index 428e4222..a56c47a2 100644
--- a/{{cookiecutter.project_slug}}/frontend/.eslintrc.js
+++ b/{{cookiecutter.project_slug}}/frontend/.eslintrc.js
@@ -21,7 +21,7 @@ let rules = {
 };
 
 module.exports = {
-  extends: ['airbnb', 'plugin:prettier/recommended', 'prettier/react'],
+  extends: ['airbnb', 'plugin:prettier/recommended', 'prettier'],
   parser: 'babel-eslint',
   rules,
   env: {
diff --git a/{{cookiecutter.project_slug}}/frontend/package.json b/{{cookiecutter.project_slug}}/frontend/package.json
index 14dd1f81..00301ddd 100644
--- a/{{cookiecutter.project_slug}}/frontend/package.json
+++ b/{{cookiecutter.project_slug}}/frontend/package.json
@@ -3,17 +3,20 @@
   "version": "0.1.0",
   "private": true,
   "dependencies": {
+    "@material-ui/core": "^4.0.0",
+    "@material-ui/icons": "^4.0.0",
+    "@material-ui/lab": "^4.0.0-alpha.54",
+    "jwt-decode": "^3.0.0",
     "ra-data-json-server": "^3.5.2",
     "ra-data-simple-rest": "^3.3.2",
     "react": "^16.13.1",
     "react-admin": "^3.5.2",
     "react-dom": "^16.13.1",
+    "react-router": "^5.1.2",
     "react-router-dom": "^5.1.2",
-    "react-scripts": "3.4.3",
+    "react-scripts": "4.0.3",
     "react-truncate": "^2.4.0",
-    "standard": "^14.3.3",
-    "jwt-decode": "^3.0.0",
-    "@material-ui/lab": "^4.0.0-alpha.54"
+    "standard": "^16.0.0"
   },
   "scripts": {
     "start": "react-scripts start",
@@ -37,26 +40,27 @@
     ]
   },
   "devDependencies": {
-    "typescript": "^4.0.2",
     "@testing-library/jest-dom": "^5.11.1",
     "@testing-library/react": "^11.0.4",
-    "@typescript-eslint/eslint-plugin": "^2.24.0",
-    "@typescript-eslint/parser": "^2.24.0",
     "@testing-library/user-event": "^12.0.11",
     "@types/jest": "^26.0.3",
+    "@types/jwt-decode": "^2.2.1",
     "@types/node": "^14.0.1",
     "@types/react": "^16.9.19",
     "@types/react-dom": "^16.9.5",
     "@types/react-router-dom": "^5.1.3",
-    "@types/jwt-decode": "^2.2.1",
+    "@typescript-eslint/eslint-plugin": "^4.0.0",
+    "@typescript-eslint/parser": "^4.0.0",
     "eslint-config-airbnb": "^18.1.0",
-    "eslint-config-react-app": "^5.2.1",
-    "eslint-plugin-flowtype": "^4.6.0",
+    "eslint-plugin-flowtype": "^5.2.0",
     "eslint-plugin-import": "^2.20.1",
     "eslint-plugin-jsx-a11y": "^6.2.3",
+    "eslint-config-prettier": "^8.3.0",
     "eslint-plugin-react": "^7.19.0",
-    "eslint-plugin-react-hooks": "^2.5.1",
+    "eslint-config-react-app": "^6.0.0",
+    "eslint-plugin-react-hooks": "^4.2.0",
     "prettier": "^2.0.5",
-    "react-test-renderer": "^16.13.1"
+    "react-test-renderer": "^16.13.1",
+    "typescript": "^4.0.2"
   }
 }
diff --git a/{{cookiecutter.project_slug}}/frontend/src/views/Home.tsx b/{{cookiecutter.project_slug}}/frontend/src/views/Home.tsx
index 123e827d..a82f9695 100644
--- a/{{cookiecutter.project_slug}}/frontend/src/views/Home.tsx
+++ b/{{cookiecutter.project_slug}}/frontend/src/views/Home.tsx
@@ -17,10 +17,10 @@ export const Home: FC = () => {
 
   const queryBackend = async () => {
     try {
-      const message = await getMessage();
-      setMessage(message);
+      const msg = await getMessage();
+      setMessage(msg);
     } catch (err) {
-      setError(err);
+      setError(String(err));
     }
   };
 
@@ -64,3 +64,5 @@ export const Home: FC = () => {
     >
   );
 };
+
+export default Home;
diff --git a/{{cookiecutter.project_slug}}/frontend/src/views/Login.tsx b/{{cookiecutter.project_slug}}/frontend/src/views/Login.tsx
index b791a2c1..a5497a10 100644
--- a/{{cookiecutter.project_slug}}/frontend/src/views/Login.tsx
+++ b/{{cookiecutter.project_slug}}/frontend/src/views/Login.tsx
@@ -51,7 +51,7 @@ export const Login: FC = () => {
         setError(err.message);
       } else {
         // handle errors thrown from backend
-        setError(err);
+        setError(String(err));
       }
     }
   };
@@ -65,7 +65,7 @@ export const Login: FC = () => {
           
             
           
-          
+          
              {
           
             
           
-          
+          
              {
     
   );
 };
+
+export default Login;
diff --git a/{{cookiecutter.project_slug}}/frontend/src/views/SignUp.tsx b/{{cookiecutter.project_slug}}/frontend/src/views/SignUp.tsx
index 140ee36f..686bd82a 100644
--- a/{{cookiecutter.project_slug}}/frontend/src/views/SignUp.tsx
+++ b/{{cookiecutter.project_slug}}/frontend/src/views/SignUp.tsx
@@ -48,7 +48,7 @@ export const SignUp: FC = () => {
           setError(err.message);
         } else {
           // handle errors thrown from backend
-          setError(err);
+          setError(String(err));
         }
       }
     }
@@ -63,7 +63,7 @@ export const SignUp: FC = () => {
           
             
           
-          
+          
              {
           
             
           
-          
+          
              {
           
             
           
-          
+          
              {
     
   );
 };
+
+export default SignUp;
diff --git a/{{cookiecutter.project_slug}}/frontend/tsconfig.json b/{{cookiecutter.project_slug}}/frontend/tsconfig.json
index 4a41017b..e8b99dec 100644
--- a/{{cookiecutter.project_slug}}/frontend/tsconfig.json
+++ b/{{cookiecutter.project_slug}}/frontend/tsconfig.json
@@ -1,7 +1,11 @@
 {
   "compilerOptions": {
     "target": "es5",
-    "lib": ["dom", "dom.iterable", "esnext"],
+    "lib": [
+      "dom",
+      "dom.iterable",
+      "esnext"
+    ],
     "allowJs": true,
     "skipLibCheck": true,
     "esModuleInterop": true,
@@ -13,7 +17,11 @@
     "resolveJsonModule": true,
     "isolatedModules": true,
     "noEmit": true,
-    "jsx": "react"
+    "jsx": "react-jsx",
+    "noFallthroughCasesInSwitch": true
   },
-  "include": ["src", "decs.d.ts"]
+  "include": [
+    "src",
+    "decs.d.ts"
+  ]
 }