diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 1bcb6a7..f67eced 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -5606,6 +5606,23 @@
         }
       }
     },
+    "eslint-config-prettier": {
+      "version": "6.15.0",
+      "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz",
+      "integrity": "sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw==",
+      "dev": true,
+      "requires": {
+        "get-stdin": "^6.0.0"
+      },
+      "dependencies": {
+        "get-stdin": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz",
+          "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==",
+          "dev": true
+        }
+      }
+    },
     "eslint-config-react-app": {
       "version": "6.0.0",
       "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz",
@@ -5799,6 +5816,15 @@
         }
       }
     },
+    "eslint-plugin-prettier": {
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz",
+      "integrity": "sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw==",
+      "dev": true,
+      "requires": {
+        "prettier-linter-helpers": "^1.0.0"
+      }
+    },
     "eslint-plugin-react": {
       "version": "7.21.5",
       "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.21.5.tgz",
@@ -6296,6 +6322,12 @@
       "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
       "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
     },
+    "fast-diff": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
+      "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
+      "dev": true
+    },
     "fast-glob": {
       "version": "3.2.5",
       "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz",
@@ -11886,6 +11918,21 @@
       "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
       "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
     },
+    "prettier": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz",
+      "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==",
+      "dev": true
+    },
+    "prettier-linter-helpers": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+      "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+      "dev": true,
+      "requires": {
+        "fast-diff": "^1.1.2"
+      }
+    },
     "pretty-bytes": {
       "version": "5.5.0",
       "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.5.0.tgz",
diff --git a/frontend/package.json b/frontend/package.json
index f3aef06..4906724 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -32,8 +32,18 @@
   "eslintConfig": {
     "extends": [
       "react-app",
-      "react-app/jest"
-    ]
+      "react-app/jest",
+      "prettier"
+    ],
+    "plugins": [
+      "prettier"
+    ],
+    "rules": {
+      "prettier/prettier": "error",
+      "standard/array-bracket-even-spacing": 0,
+      "standard/computed-property-even-spacing": 0,
+      "standard/object-curly-even-spacing": 0
+    }
   },
   "browserslist": {
     "production": [
@@ -62,6 +72,17 @@
     "@types/react-dom": "^17.0.0",
     "@types/redux-localstorage": "^1.0.8",
     "@types/react-redux": "^7.1.16",
-    "@types/react-router-dom": "^5.1.7"
+    "@types/react-router-dom": "^5.1.7",
+    "eslint-config-prettier": "^6.15.0",
+    "eslint-plugin-prettier": "^3.3.1",
+    "prettier": "^2.2.1"
+  },
+  "prettier": {
+    "useTabs": false,
+    "trailingComma": "all",
+    "tabWidth": 2,
+    "semi": true,
+    "singleQuote": true,
+    "printWidth": 120
   }
 }
diff --git a/frontend/src/components/RegistrationForm.tsx b/frontend/src/components/RegistrationForm.tsx
index 236c99e..b9c197e 100644
--- a/frontend/src/components/RegistrationForm.tsx
+++ b/frontend/src/components/RegistrationForm.tsx
@@ -1,28 +1,32 @@
-import React from 'react'
-import {Form, Button} from 'semantic-ui-react'
+import React from 'react';
+import { Form, Button } from 'semantic-ui-react';
 
 type RegistrationFormSubmit = {
-  username: string | null,
-  email: string | null,
-  password: string | null
-}
+  username: string | null;
+  email: string | null;
+  password: string | null;
+};
 
-export default function RegistrationForm({onSubmit: onSubmitOuter}: {onSubmit: (data: RegistrationFormSubmit) => void}) {
-  const [username, setUsername] = React.useState(null)
-  const [email, setEmail] = React.useState(null)
-  const [password, setPassword] = React.useState(null)
-  const [password2, setPassword2] = React.useState(null)
+export default function RegistrationForm({
+  onSubmit: onSubmitOuter,
+}: {
+  onSubmit: (data: RegistrationFormSubmit) => void;
+}) {
+  const [username, setUsername] = React.useState(null);
+  const [email, setEmail] = React.useState(null);
+  const [password, setPassword] = React.useState(null);
+  const [password2, setPassword2] = React.useState(null);
 
-  const onChangeUsername = React.useCallback((e) => setUsername(e.target.value), [])
-  const onChangeEmail = React.useCallback((e) => setEmail(e.target.value), [])
-  const onChangePassword = React.useCallback((e) => setPassword(e.target.value), [])
-  const onChangePassword2 = React.useCallback((e) => setPassword2(e.target.value), [])
+  const onChangeUsername = React.useCallback((e) => setUsername(e.target.value), []);
+  const onChangeEmail = React.useCallback((e) => setEmail(e.target.value), []);
+  const onChangePassword = React.useCallback((e) => setPassword(e.target.value), []);
+  const onChangePassword2 = React.useCallback((e) => setPassword2(e.target.value), []);
 
   const onSubmit = React.useCallback(() => {
     if (username && email && password && password2 === password) {
-      onSubmitOuter({username, email, password})
+      onSubmitOuter({ username, email, password });
     }
-  }, [username, email, password, password2, onSubmitOuter])
+  }, [username, email, password, password2, onSubmitOuter]);
 
   return (
     <Form onSubmit={onSubmit}>
@@ -39,5 +43,5 @@ export default function RegistrationForm({onSubmit: onSubmitOuter}: {onSubmit: (
       />
       <Button type="submit">Submit</Button>
     </Form>
-  )
+  );
 }
diff --git a/frontend/src/pages/RegistrationPage.tsx b/frontend/src/pages/RegistrationPage.tsx
index 5963859..e007151 100644
--- a/frontend/src/pages/RegistrationPage.tsx
+++ b/frontend/src/pages/RegistrationPage.tsx
@@ -1,18 +1,19 @@
-import React from 'react'
-import {connect} from 'react-redux'
-import {Redirect} from 'react-router-dom'
+import React from 'react';
+import { connect } from 'react-redux';
+import { Redirect } from 'react-router-dom';
 
-import api from 'api'
-import {Page, RegistrationForm} from 'components'
+import api from 'api';
+import { Page, RegistrationForm } from 'components';
 import type { RootState } from '../store';
 
-const RegistrationPage = connect((state: RootState) => ({loggedIn: Boolean(state.login)}))(function RegistrationPage({loggedIn}) {
-  const onSubmit = React.useCallback(async ({username, email, password}) => {
+const RegistrationPage = connect((state: RootState) => ({ loggedIn: Boolean(state.login) }))(function RegistrationPage({
+  loggedIn,
+}) {
+  const onSubmit = React.useCallback(async ({ username, email, password }) => {
     const response = await api.post(`/accounts/register`, {
-      body: {username, email, password, confirmPassword: password},
+      body: { username, email, password, confirmPassword: password },
     });
 
-
     console.log('response', response);
   }, []);
 
@@ -21,9 +22,9 @@ const RegistrationPage = connect((state: RootState) => ({loggedIn: Boolean(state
   ) : (
     <Page small>
       <h2>Register</h2>
-      <RegistrationForm onSubmit={onSubmit}/>
+      <RegistrationForm onSubmit={onSubmit} />
     </Page>
-  )
-})
+  );
+});
 
-export default RegistrationPage
+export default RegistrationPage;
diff --git a/frontend/src/store.ts b/frontend/src/store.ts
index da1a8d4..39d03f9 100644
--- a/frontend/src/store.ts
+++ b/frontend/src/store.ts
@@ -1,7 +1,7 @@
-import {applyMiddleware, createStore, compose } from 'redux'
-import { save, load } from "redux-localstorage-simple"
+import { applyMiddleware, createStore, compose } from 'redux';
+import { save, load } from 'redux-localstorage-simple';
 
-import rootReducer from './reducers'
+import rootReducer from './reducers';
 
 declare global {
   interface Window {
@@ -13,8 +13,8 @@ const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
 
 export const store = createStore(
   rootReducer,
-  load({ states: ["login"], disableWarnings: true }),
-  composeEnhancers(applyMiddleware(save({ states: ["login"] })))
+  load({ states: ['login'], disableWarnings: true }),
+  composeEnhancers(applyMiddleware(save({ states: ['login'] }))),
 );
 
 export type AppDispatch = typeof store.dispatch;