diff --git a/backend/src/api/utils/markdown-body.decorator.ts b/backend/src/api/utils/markdown-body.decorator.ts
index 75dbf8eec..d339d1f01 100644
--- a/backend/src/api/utils/markdown-body.decorator.ts
+++ b/backend/src/api/utils/markdown-body.decorator.ts
@@ -43,6 +43,7 @@ export const MarkdownBody = createParamDecorator(
     (target, key): void => {
       if (key === undefined) {
         throw new Error(
+          // eslint-disable-next-line @typescript-eslint/no-base-to-string
           `Could not enhance param decorator for target ${target.toString()} because key is undefined`,
         );
       }
@@ -52,6 +53,7 @@ export const MarkdownBody = createParamDecorator(
       );
       if (!ownPropertyDescriptor) {
         throw new Error(
+          // eslint-disable-next-line @typescript-eslint/no-base-to-string
           `Could not get property descriptor for target ${target.toString()} and key ${key.toString()}`,
         );
       }
diff --git a/backend/src/identity/utils.ts b/backend/src/identity/utils.ts
index 038250ea0..47dfe10d9 100644
--- a/backend/src/identity/utils.ts
+++ b/backend/src/identity/utils.ts
@@ -22,6 +22,6 @@ export async function getFirstIdentityFromUser(
     return undefined;
   }
   return identities.find(
-    (aIdentity) => aIdentity.providerType === providerType,
+    (aIdentity) => aIdentity.providerType === (providerType as string),
   );
 }
diff --git a/backend/src/media/backends/imgur-backend.ts b/backend/src/media/backends/imgur-backend.ts
index 22541007b..342d7565e 100644
--- a/backend/src/media/backends/imgur-backend.ts
+++ b/backend/src/media/backends/imgur-backend.ts
@@ -77,6 +77,7 @@ export class ImgurBackend implements MediaBackend {
           headers: { Authorization: `Client-ID ${this.config.clientID}` },
         },
       ).then((res) => ImgurBackend.checkStatus(res));
+      // eslint-disable-next-line @typescript-eslint/no-base-to-string
       this.logger.debug(`Response: ${result.toString()}`, 'deleteFile');
       this.logger.log(`Deleted ${fileName}`, 'deleteFile');
       return;
diff --git a/backend/src/notes/notes.service.spec.ts b/backend/src/notes/notes.service.spec.ts
index 5a25eee50..73663d826 100644
--- a/backend/src/notes/notes.service.spec.ts
+++ b/backend/src/notes/notes.service.spec.ts
@@ -370,13 +370,15 @@ describe('NotesService', () => {
         const groupPermissions = await newNote.groupPermissions;
         expect(groupPermissions).toHaveLength(2);
         expect(groupPermissions[0].canEdit).toEqual(
-          everyoneDefaultAccessPermission !== DefaultAccessLevel.WRITE,
+          everyoneDefaultAccessPermission !==
+            (DefaultAccessLevel.WRITE as string),
         );
         expect((await groupPermissions[0].group).name).toEqual(
           SpecialGroup.EVERYONE,
         );
         expect(groupPermissions[1].canEdit).toEqual(
-          loggedinDefaultAccessPermission === DefaultAccessLevel.WRITE,
+          loggedinDefaultAccessPermission ===
+            (DefaultAccessLevel.WRITE as string),
         );
         expect((await groupPermissions[1].group).name).toEqual(
           SpecialGroup.LOGGED_IN,
@@ -394,13 +396,15 @@ describe('NotesService', () => {
         const groupPermissions = await newNote.groupPermissions;
         expect(groupPermissions).toHaveLength(2);
         expect(groupPermissions[0].canEdit).toEqual(
-          everyoneDefaultAccessPermission === DefaultAccessLevel.WRITE,
+          everyoneDefaultAccessPermission ===
+            (DefaultAccessLevel.WRITE as string),
         );
         expect((await groupPermissions[0].group).name).toEqual(
           SpecialGroup.EVERYONE,
         );
         expect(groupPermissions[1].canEdit).toEqual(
-          loggedinDefaultAccessPermission === DefaultAccessLevel.WRITE,
+          loggedinDefaultAccessPermission ===
+            (DefaultAccessLevel.WRITE as string),
         );
         expect((await groupPermissions[1].group).name).toEqual(
           SpecialGroup.LOGGED_IN,
@@ -417,13 +421,15 @@ describe('NotesService', () => {
         const groupPermissions = await newNote.groupPermissions;
         expect(groupPermissions).toHaveLength(2);
         expect(groupPermissions[0].canEdit).toEqual(
-          everyoneDefaultAccessPermission !== DefaultAccessLevel.WRITE,
+          everyoneDefaultAccessPermission !==
+            (DefaultAccessLevel.WRITE as string),
         );
         expect((await groupPermissions[0].group).name).toEqual(
           SpecialGroup.EVERYONE,
         );
         expect(groupPermissions[1].canEdit).toEqual(
-          loggedinDefaultAccessPermission === DefaultAccessLevel.WRITE,
+          loggedinDefaultAccessPermission ===
+            (DefaultAccessLevel.WRITE as string),
         );
         expect((await groupPermissions[1].group).name).toEqual(
           SpecialGroup.LOGGED_IN,
@@ -442,13 +448,15 @@ describe('NotesService', () => {
         const groupPermissions = await newNote.groupPermissions;
         expect(groupPermissions).toHaveLength(2);
         expect(groupPermissions[0].canEdit).toEqual(
-          everyoneDefaultAccessPermission === DefaultAccessLevel.WRITE,
+          everyoneDefaultAccessPermission ===
+            (DefaultAccessLevel.WRITE as string),
         );
         expect((await groupPermissions[0].group).name).toEqual(
           SpecialGroup.EVERYONE,
         );
         expect(groupPermissions[1].canEdit).toEqual(
-          loggedinDefaultAccessPermission === DefaultAccessLevel.WRITE,
+          loggedinDefaultAccessPermission ===
+            (DefaultAccessLevel.WRITE as string),
         );
         expect((await groupPermissions[1].group).name).toEqual(
           SpecialGroup.LOGGED_IN,
@@ -471,13 +479,15 @@ describe('NotesService', () => {
           const groupPermissions = await newNote.groupPermissions;
           expect(groupPermissions).toHaveLength(2);
           expect(groupPermissions[0].canEdit).toEqual(
-            everyoneDefaultAccessPermission === DefaultAccessLevel.WRITE,
+            everyoneDefaultAccessPermission ===
+              (DefaultAccessLevel.WRITE as string),
           );
           expect((await groupPermissions[0].group).name).toEqual(
             SpecialGroup.EVERYONE,
           );
           expect(groupPermissions[1].canEdit).toEqual(
-            loggedinDefaultAccessPermission === DefaultAccessLevel.WRITE,
+            loggedinDefaultAccessPermission ===
+              (DefaultAccessLevel.WRITE as string),
           );
           expect((await groupPermissions[1].group).name).toEqual(
             SpecialGroup.LOGGED_IN,
@@ -505,7 +515,8 @@ describe('NotesService', () => {
           const groupPermissions = await newNote.groupPermissions;
           expect(groupPermissions).toHaveLength(1);
           expect(groupPermissions[0].canEdit).toEqual(
-            loggedinDefaultAccessPermission === DefaultAccessLevel.WRITE,
+            loggedinDefaultAccessPermission ===
+              (DefaultAccessLevel.WRITE as string),
           );
           expect((await groupPermissions[0].group).name).toEqual(
             SpecialGroup.LOGGED_IN,
diff --git a/backend/src/permissions/utils/find-highest-note-permission-by-group.ts b/backend/src/permissions/utils/find-highest-note-permission-by-group.ts
index 310f14868..1b57279f4 100644
--- a/backend/src/permissions/utils/find-highest-note-permission-by-group.ts
+++ b/backend/src/permissions/utils/find-highest-note-permission-by-group.ts
@@ -47,8 +47,8 @@ async function findNotePermissionByGroup(
 function isSpecialGroup(group: Group): boolean {
   return (
     group.special &&
-    (group.name === SpecialGroup.LOGGED_IN ||
-      group.name === SpecialGroup.EVERYONE)
+    (group.name === (SpecialGroup.LOGGED_IN as string) ||
+      group.name === (SpecialGroup.EVERYONE as string))
   );
 }
 
diff --git a/commons/src/permissions/permissions.ts b/commons/src/permissions/permissions.ts
index 3cf03b1de..98218d3a7 100644
--- a/commons/src/permissions/permissions.ts
+++ b/commons/src/permissions/permissions.ts
@@ -37,10 +37,12 @@ export const userCanEdit = (
   const mayWriteViaGroupPermission =
     !!user &&
     permissions.sharedToGroups.some(
-      (value) => value.groupName === SpecialGroup.LOGGED_IN && value.canEdit
+      (value) =>
+        value.groupName === (SpecialGroup.LOGGED_IN as string) && value.canEdit
     )
   const everyoneMayWriteViaGroupPermission = permissions.sharedToGroups.some(
-    (value) => value.groupName === SpecialGroup.EVERYONE && value.canEdit
+    (value) =>
+      value.groupName === (SpecialGroup.EVERYONE as string) && value.canEdit
   )
   return (
     isOwner ||
diff --git a/commons/src/y-doc-sync/realtime-doc.ts b/commons/src/y-doc-sync/realtime-doc.ts
index 53e5afc9c..5ac782ed4 100644
--- a/commons/src/y-doc-sync/realtime-doc.ts
+++ b/commons/src/y-doc-sync/realtime-doc.ts
@@ -68,6 +68,7 @@ export class RealtimeDoc extends EventEmitter2<RealtimeDocEvents> {
    * @return The current note content.
    */
   public getCurrentContent(): string {
+    // eslint-disable-next-line @typescript-eslint/no-base-to-string
     return this.getMarkdownContentChannel().toString()
   }
 
diff --git a/commons/src/y-doc-sync/y-doc-sync-adapter.spec.ts b/commons/src/y-doc-sync/y-doc-sync-adapter.spec.ts
index b55cc8c38..033d5c4c6 100644
--- a/commons/src/y-doc-sync/y-doc-sync-adapter.spec.ts
+++ b/commons/src/y-doc-sync/y-doc-sync-adapter.spec.ts
@@ -29,12 +29,15 @@ describe('y-doc-sync-adapter', () => {
     const textClient2 = docClient2.getMarkdownContentChannel()
 
     textServer.observe(() =>
+      // eslint-disable-next-line @typescript-eslint/no-base-to-string
       console.log('textServer', new Date(), textServer.toString())
     )
     textClient1.observe(() =>
+      // eslint-disable-next-line @typescript-eslint/no-base-to-string
       console.log('textClient1', new Date(), textClient1.toString())
     )
     textClient2.observe(() =>
+      // eslint-disable-next-line @typescript-eslint/no-base-to-string
       console.log('textClient2', new Date(), textClient2.toString())
     )
 
@@ -206,8 +209,11 @@ describe('y-doc-sync-adapter', () => {
     textClient1.insert(0, 'test3')
     textClient2.insert(0, 'test4')
 
+    // eslint-disable-next-line @typescript-eslint/no-base-to-string
     expect(textServer.toString()).toBe('test4test3test2This is a test note')
+    // eslint-disable-next-line @typescript-eslint/no-base-to-string
     expect(textClient1.toString()).toBe('test4test3test2This is a test note')
+    // eslint-disable-next-line @typescript-eslint/no-base-to-string
     expect(textClient2.toString()).toBe('test4test3test2This is a test note')
 
     docServer.destroy()
diff --git a/frontend/src/components/editor-page/editor-pane/hooks/yjs/use-bind-y-text-to-redux.ts b/frontend/src/components/editor-page/editor-pane/hooks/yjs/use-bind-y-text-to-redux.ts
index 6b4518a00..809512aeb 100644
--- a/frontend/src/components/editor-page/editor-pane/hooks/yjs/use-bind-y-text-to-redux.ts
+++ b/frontend/src/components/editor-page/editor-pane/hooks/yjs/use-bind-y-text-to-redux.ts
@@ -15,6 +15,7 @@ import { useEffect } from 'react'
 export const useBindYTextToRedux = (realtimeDoc: RealtimeDoc): void => {
   useEffect(() => {
     const yText = realtimeDoc.getMarkdownContentChannel()
+    // eslint-disable-next-line @typescript-eslint/no-base-to-string
     const yTextCallback = () => setNoteContent(yText.toString())
     yText.observe(yTextCallback)
     return () => yText.unobserve(yTextCallback)
diff --git a/frontend/src/components/editor-page/editor-pane/tool-bar/emoji-picker/extract-emoji-short-code.ts b/frontend/src/components/editor-page/editor-pane/tool-bar/emoji-picker/extract-emoji-short-code.ts
index e918f9cda..7ead6760e 100644
--- a/frontend/src/components/editor-page/editor-pane/tool-bar/emoji-picker/extract-emoji-short-code.ts
+++ b/frontend/src/components/editor-page/editor-pane/tool-bar/emoji-picker/extract-emoji-short-code.ts
@@ -16,7 +16,7 @@ export const extractEmojiShortCode = (emoji: EmojiClickEventDetail): string | un
     return undefined
   }
   let skinToneModifier = ''
-  if ((emoji.emoji as NativeEmoji).skins && emoji.skinTone !== 0) {
+  if ((emoji.emoji as NativeEmoji).skins && (emoji.skinTone as number) !== 0) {
     skinToneModifier = `:skin-tone-${emoji.skinTone as number}:`
   }
   return `:${emoji.emoji.shortcodes[0]}:${skinToneModifier}`
diff --git a/frontend/src/components/editor-page/sidebar/specific-sidebar-entries/permissions-sidebar-entry/permissions-modal/permission-section-special-groups.tsx b/frontend/src/components/editor-page/sidebar/specific-sidebar-entries/permissions-sidebar-entry/permissions-modal/permission-section-special-groups.tsx
index fd234557d..dfa5f4c52 100644
--- a/frontend/src/components/editor-page/sidebar/specific-sidebar-entries/permissions-sidebar-entry/permissions-modal/permission-section-special-groups.tsx
+++ b/frontend/src/components/editor-page/sidebar/specific-sidebar-entries/permissions-sidebar-entry/permissions-modal/permission-section-special-groups.tsx
@@ -22,8 +22,8 @@ export const PermissionSectionSpecialGroups: React.FC<PermissionDisabledProps> =
   const isOwner = useIsOwner()
 
   const specialGroupEntries = useMemo(() => {
-    const groupEveryone = groupPermissions.find((entry) => entry.groupName === SpecialGroup.EVERYONE)
-    const groupLoggedIn = groupPermissions.find((entry) => entry.groupName === SpecialGroup.LOGGED_IN)
+    const groupEveryone = groupPermissions.find((entry) => entry.groupName === (SpecialGroup.EVERYONE as string))
+    const groupLoggedIn = groupPermissions.find((entry) => entry.groupName === (SpecialGroup.LOGGED_IN as string))
 
     return {
       everyone: groupEveryone
diff --git a/frontend/src/components/editor-page/splitter/split-divider/split-divider.tsx b/frontend/src/components/editor-page/splitter/split-divider/split-divider.tsx
index 4445178be..433445057 100644
--- a/frontend/src/components/editor-page/splitter/split-divider/split-divider.tsx
+++ b/frontend/src/components/editor-page/splitter/split-divider/split-divider.tsx
@@ -55,7 +55,7 @@ export const SplitDivider: React.FC<SplitDividerProps> = ({
   const className = useMemo(() => {
     return concatCssClasses(styles.middle, {
       [styles.open]: forceOpen,
-      [styles[dividerButtonsShift]]: dividerButtonsShift !== ''
+      [styles[dividerButtonsShift]]: dividerButtonsShift !== DividerButtonsShift.NO_SHIFT
     })
   }, [dividerButtonsShift, forceOpen])
 
diff --git a/frontend/src/components/global-dialogs/settings-dialog/utils/on-off-button-group.tsx b/frontend/src/components/global-dialogs/settings-dialog/utils/on-off-button-group.tsx
index 6fdc26a23..ae2dd2001 100644
--- a/frontend/src/components/global-dialogs/settings-dialog/utils/on-off-button-group.tsx
+++ b/frontend/src/components/global-dialogs/settings-dialog/utils/on-off-button-group.tsx
@@ -27,7 +27,7 @@ export interface OnOffButtonGroupProps {
 export const OnOffButtonGroup: React.FC<OnOffButtonGroupProps> = ({ onSelect, value }) => {
   const buttonGroupValue = useMemo(() => (value ? OnOffState.ON : OnOffState.OFF), [value])
   const onButtonSelect = useCallback(
-    (value: number) => {
+    (value: OnOffState) => {
       onSelect(value === OnOffState.ON)
     },
     [onSelect]
diff --git a/frontend/src/pages/profile.tsx b/frontend/src/pages/profile.tsx
index 8d59b84c0..6d32836fb 100644
--- a/frontend/src/pages/profile.tsx
+++ b/frontend/src/pages/profile.tsx
@@ -32,7 +32,7 @@ export const ProfilePage: React.FC = () => {
         <Row className='h-100 flex justify-content-center'>
           <Col lg={6}>
             <ProfileDisplayName />
-            <ShowIf condition={userProvider === AuthProviderType.LOCAL}>
+            <ShowIf condition={userProvider === (AuthProviderType.LOCAL as string)}>
               <ProfileChangePassword />
             </ShowIf>
             <ProfileAccessTokens />